Skip to content

Repository files navigation

EDT Extension Tweaks

Плагин для 1C:Enterprise Development Tools, который упрощает работу с расширениями, внешними обработками и отчетами, конструктором запросов, контекстной подсказкой результатов запросов и параметров методов, отбором измененных Git-объектов в Навигаторе, обновлением ИБ из EDT и методами &ИзменениеИКонтроль.

Плагин рассчитан на workspace, где рядом живут основная конфигурация, несколько расширений, внешние обработки или внешние отчеты. Он помогает этим проектам видеть общий контекст без ручного копирования метаданных между расширениями.

Установка и обновление из EDT

В EDT откройте Справка -> Установить новое ПО... и добавьте update site:

jar:https://github.com/Xelgo/edt-extension-tweaks/releases/latest/download/edt-extension-tweaks-update-site.zip!/

После добавления выберите EDT Extension Tweaks и завершите установку. Для обновления можно использовать тот же update site: ссылка latest всегда указывает на последний опубликованный релиз.

Прямая ссылка на архив update site последнего релиза:

https://github.com/Xelgo/edt-extension-tweaks/releases/latest/download/edt-extension-tweaks-update-site.zip

Поддерживаемые версии EDT

  • 1C:EDT 2025.2.6
  • 1C:EDT 2026.1.1
  • 1C:EDT 2026.2.0

Возможности

Общий контекст EDT

  • Команда Настроить контекст EDT в контекстном меню проектов расширений, внешних обработок, внешних отчетов и других поддерживаемых проектов workspace.
  • Подключение выбранных соседних проектов как видимого BSL-контекста: экспортные общие модули, методы и метаданные становятся доступны в подсказке и навигации EDT.

Навигатор и Git

  • В панели Навигатор рядом с типовыми отборами добавлена кнопка фильтра измененных объектов Git.
  • Фильтр оставляет в дереве конфигурации только объекты, у которых есть незакоммиченные изменения в рабочей области Git: измененные .mdo, модули, формы, макеты и другие файлы объекта.
  • Для контейнеров метаданных фильтр сохраняет родительские узлы, необходимые для навигации к измененному объекту.

Конструктор запросов

  • Видимость метаданных связанных расширений, внешних обработок и отчетов в конструкторе запросов.
  • Вложенные конструкторы запросов, открытые из условий и произвольных выражений, могут видеть временные таблицы, созданные в предыдущих пакетах текущего запроса.

Комментарии результата запроса

  • Команда Скопировать комментарий результата запроса доступна рядом с командами конструктора запроса в редакторе BSL, во встроенном редакторе текста запроса и по Ctrl+Alt+S.
  • Команда строит служебную область #Область edt_tweaks_query_result_* с описанием колонок результата запроса и копирует готовый фрагмент в буфер обмена.
  • Если запрос хранится в переменной, имя служебной области строится по имени этой переменной, например edt_tweaks_query_result_Запрос11, а код выполнения использует эту же переменную запроса.
  • Для одиночного запроса генерируется переменная результата, для пакетов запросов - переменные Пакет1, Пакет2 и далее. Запросы, которые только формируют временные таблицы, пропускаются, но их реальные индексы в ВыполнитьПакет() сохраняются.
  • BSL-подсказка использует служебный комментарий, чтобы дополнять колонки у ТаблицаЗначений, строк таблицы значений, коллекции колонок и ВыборкаИзРезультатаЗапроса, не меняя исходный тип переменной.
  • Если тип колонки не удалось определить надежно, в комментарии остается только имя колонки.

Подсказка параметров методов

  • Контекстная подсказка параметров метода может открываться автоматически при вводе внутри списка аргументов, без ручного Ctrl+Shift+Space.
  • Подробное описание параметров можно раскрывать сразу при открытии подсказки.
  • Описания параметров и метода дополняются из типовых шаблонных комментариев BSL, поэтому вместо null чаще показывается фактическое описание из комментария к экспортному методу.
  • После выбора метода из контекстной подсказки каретка может автоматически переходить в первый параметр.
  • Для самостоятельного вызова перед переносом каретки добавляется завершающая ;; вложенные вызовы и уже закрытые конструкции не изменяются.

Обновление ИБ из EDT

  • Команда Настроить обновляемые проекты во вкладке приложений EDT.
  • Позволяет исключить выбранные проекты из цепочки обновления ИБ для конкретного приложения: например, не трогать тяжелую основную конфигурацию или отдельные расширения при проверке другой части workspace.
  • Команда Обновить расширение... во вкладке приложений EDT позволяет выбрать конкретное расширение и выполнить его полное обновление в информационной базе приложения.
  • Для принудительного обновления используется штатный EDT-механизм полного обновления reloadInfobase, поэтому команда работает отдельно от списка проектов, исключенных из автоматической цепочки обновления.

Снимки переменных в отладке

  • Новая панель Снимки переменных находится в перспективе отладки EDT рядом с панелями отладчика.
  • Кнопка Сохранить снимок переменных сохраняет состояние уже вычисленных выражений встроенного языка из текущей остановки отладчика.
  • В снимок попадают дата и время, место остановки, строка исходного модуля, debug target, настройки обхода и значения выражений в JSON.
  • Структуры, объекты и коллекции раскрываются рекурсивно с учетом настроек глубины обхода и лимита элементов коллекций. Для ссылочных данных в value сохраняется уникальный идентификатор ссылки, а человекочитаемое представление остается в presentation.
  • Кнопка Сравнить выбранные снимки открывает стандартное Eclipse-сравнение двух выбранных JSON-снимков.
  • Кнопка Сохранить снимки в файл выгружает текущий список снимков во внешний JSON-файл.
  • Кнопка Загрузить снимки из файла заменяет текущий список снимков данными из выбранного JSON-файла и сохраняет их в workspace.
  • Кнопка Очистить снимки и клавиша Delete в списке очищают список и удаляют файл снимков из workspace metadata.
  • Внутреннее хранилище находится в metadata текущего workspace: .metadata/.plugins/ru.xelgo.edt.contextlinks.ui/variable-snapshots.json.

Форматирование вставок

  • Форматирует код внутри блоков #Вставка / #КонецВставки в методах &ИзменениеИКонтроль по Ctrl+Shift+F.
  • Форматирование ограничивается содержимым вставки и не переписывает основной метод за пределами блока конфигураторной вставки.

Сравнение и объединение &ИзменениеИКонтроль

  • Для ошибки EDT о расхождении метода расширения с базовым методом доступно быстрое исправление Сравнить и объединить ИзменениеИКонтроль.
  • Исправление доступно не только в редакторе BSL, но и из панели Ошибки конфигурации для проверки bsl-legacy-check-module-extension.
  • Исправление открывает трехстороннее сравнение: слева текущий типовой метод, справа текущий метод расширения, ancestor собирается из метода расширения без блоков #Вставка/#КонецВставки и с раскрытыми блоками #Удаление/#КонецУдаления.
  • Начальный результат строится от текущего типового метода и поверх него накладывает существующие блоки #Вставка и #Удаление из расширения. После сохранения результата текст метода расширения заменяется выбранным merge-результатом.

Массовое сравнение и объединение &ИзменениеИКонтроль

  • Команда Сравнить и объединить все ИзменениеИКонтроль открывает одно окно сразу для всех расхождений методов расширения с базовыми. Она доступна в контекстном меню и на панели инструментов панели Ошибки конфигурации, а также в контекстном меню проекта расширения в навигаторе.
  • В панели ошибок команда работает по выделенным ошибкам; если выделения нет, собираются все расхождения по проектам рабочей области. Ошибки других проверок в выделении игнорируются.
  • Слева в окне дерево «Расширение - Модуль - Метод» с флажками, справа то же трехстороннее сравнение с редактируемой панелью результата, что и у одиночного исправления. Правки результата сохраняются при переходе между методами.
  • Метод, для которого предложенный результат ненадежен (несбалансированные блоки #Вставка/#Удаление, не найден базовый метод или модуль, пустой результат), помечается в дереве и по умолчанию не отмечен: его нужно посмотреть вручную.
  • Кнопка Применить отмеченные записывает результаты в модули расширения. Перед записью каждый метод сверяется с текущим текстом модуля: если модуль изменился, пока окно было открыто, метод пропускается, а не переписывается вслепую. По завершении показывается отчет о примененных и пропущенных методах.
  • Отмена уже записанных изменений средствами Ctrl+Z недоступна для модулей, которые не были открыты в редакторе. Перед массовым применением имеет смысл зафиксировать состояние в системе контроля версий.

Подсветка серверных вызовов

  • В клиентском коде BSL подсвечивает обращения, которые EDT помечает как серверные вызовы.
  • Для вызовов через общий модуль подсвечиваются и имя модуля, и вызываемый метод.
  • При выключении настройки родная semantic-подсветка EDT сохраняется, а дополнительный стиль серверного вызова не применяется.

Связь редакторов с панелями EDT

  • При активации редактора кода BSL плагин переключает открытую панель Свойства на Схема.
  • При активации редактора формы, вкладки формы внутри редактора формы или навигатора плагин переключает открытую панель Схема на Свойства.
  • Если в том же месте открыта другая панель, плагин ее не заменяет.

Настройки

Страница настроек находится в Окно -> Настройки -> EDT Extension Tweaks.

На странице можно отдельно включать и выключать:

  • расширение BSL-контекста между проектами;
  • расширения конструктора запросов;
  • доступ к временным таблицам во вложенных конструкторах запросов;
  • модель помощника контекста результата запроса: Выгрузить() для таблицы значений или Выбрать() для выборки;
  • форматирование внутри #Вставка;
  • автоматическое открытие подсказки параметров метода;
  • раскрытие подробного описания параметра в подсказке метода;
  • перенос каретки в первый параметр после выбора метода из контекстной подсказки;
  • автоматическое переключение панелей Схема и Свойства;
  • подсветку серверных вызовов в клиентском коде BSL;
  • снимки переменных в отладке.

Для серверных вызовов отдельно настраиваются цвет и стиль шрифта.

Для снимков переменных отдельно настраиваются максимальная глубина обхода и лимит элементов коллекций. По умолчанию лимит коллекций равен 300.

Изменения применяются сразу там, где это возможно. Для уже загруженных классов EDT, weaving-патчей и некоторых сервисов может потребоваться перезапуск EDT.

Сборка

Требования:

  • JDK 17
  • Maven 3.9.4+

Собрать p2 update site:

$env:JAVA_HOME='C:\Program Files\1C\1CE\components\azul-jdk-full-17.0.13+11-x86_64'
& 'C:\Users\USER\Documents\EDT Plugins\.tools\apache-maven-3.9.9\bin\mvn.cmd' package -DskipTests

Архив update site будет создан здесь:

repositories/ru.xelgo.edt.contextlinks.repository/target/ru.xelgo.edt.contextlinks.repository.zip

Журналы отладки

Структура проекта

  • bundles/ru.xelgo.edt.contextlinks.ui - UI-команды, интеграция BSL/QL-контекста, патчи конструктора запросов, форматтер и настройки.
  • features/ru.xelgo.edt.contextlinks.feature - устанавливаемая feature.
  • repositories/ru.xelgo.edt.contextlinks.repository - p2 update site.
  • targets/default/default.target - target platform для EDT 2025.2.6.

Публикация на Infostart

Infostart

About

Плагин для 1C:EDT: общий BSL-контекст между проектами, метаданные расширений в конструкторе запросов и настройка обновления ИБ.

Topics

Resources

Stars

65 stars

Watchers

5 watching

Forks

Releases

Packages

Contributors

Languages