Skip to content

About

Дерево метаданных 1С в VS Code и VSCodium

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Repository files navigation

Open VSX Version Open VSX Downloads

ESKA: 1C Explorer

Дерево метаданных 1С в VS Code и VSCodium: находите объекты по имени или синониму, открывайте модули и XML, следите за изменениями исходников прямо в дереве.

Расширение работает с Designer XML через eska CLI. Поддерживает конфигурации, расширения конфигураций, внешние отчёты и обработки.

Установка · Горячие клавиши · Настройки · Подробное руководство

Возможности

  • Все файлы в одном дереве. Метаданные 1С, настройки проекта, README, сборки и остальные файлы, включая скрытые папки.
  • Структура как в Конфигураторе. Группы и их порядок зависят от типа проекта. Конечные объекты отображаются без стрелки; пустота ветки подтверждается backend или результатом ленивой загрузки.
  • Модули под рукой. Группа «Модули» идёт первой внутри объекта; общий модуль открывается нажатием на его имя.
  • Свойства объекта. Клик по форме, объекту с группой «Модули» или без кода открывает отдельную вкладку со свойствами и поиском, как у настроек редактора. Команда Свойства доступна в контекстном меню.
  • Поиск по имени и синониму. Находит объекты и вложенные элементы, в том числе в нераскрытых ветках.
  • Переход от файла к дереву. Раскрывает нужную ветку и выделяет элемент, сохраняя открытый файл и несохранённые правки.
  • Сортировка объектов. Кнопка на проекте включает алфавитный порядок всего дерева метаданных — групп и вложенных элементов; выбор сохраняется отдельно для каждого проекта.
  • Фильтр пустых разделов. Скрывает пустые разделы корня и группы внутри «Общие»; выбор сохраняется отдельно для каждого проекта.
  • Подсветка Git. Показывает изменения исходников цветами текущей темы и отмечает группы с изменениями внутри.
  • Предопределённые данные. Отображает иерархию из XML и позволяет перейти к нужному элементу.
  • Работа с большими конфигурациями. Ветки загружаются по мере раскрытия; изменения файлов обновляют затронутые части дерева.

Язык групп можно выбрать независимо от языка редактора. Иконки поддерживают светлую, тёмную и контрастные темы.

Установка

Понадобятся:

  • VS Code или VSCodium с поддержкой API 1.109.0 или новее;
  • eska CLI 0.11.0 или новее, со сборкой, поддерживающей IDE API 1.11 (можно установить из расширения);
  • проект с eska.toml и исходниками в формате Designer XML.

1. Подготовьте CLI

Если ESKA уже установлена глобально, расширение использует её. При отсутствии или несовместимой версии оно предложит кнопку Установить ESKA для пользователя. Установка выполняется для текущего пользователя и доступна также из терминала. Можно заранее установить CLI по инструкции ESKA.

Поиск идёт по PATH, затем в ~/.eska/bin. Новая установка использует официальный установщик и каталог ~/.eska/bin; для новых встроенных терминалов расширение добавляет каталог в PATH. Внешний терминал после первой установки переоткройте.

Настройка eska.explorer.executable предназначена для разработки: она выбирает другой backend. Его совместимость проверяется при подключении; наличие и версия глобальной установки не блокируют запуск явно выбранной сборки. Передавайте только путь, без аргументов.

2. Установите расширение

Скачайте файл .vsix из Assets нужного релиза расширения. В редакторе откройте Расширения → … → Установить из VSIX… и выберите файл.

Идентификатор расширения — 1c-tooling.eska-explorer. Подробности установки и проверки пакета — в инструкции VSIX.

3. Откройте проект

Откройте папку с eska.toml, предоставьте доверие рабочей области и раскройте ESKA: 1C Explorer в проводнике. Если eska.toml ещё нет, настройте проект через eska init: инструкция подготовки проекта.

При успешном подключении справа в строке состояния появится ESKA v<версия>. Подсказка показывает версию и путь к запущенному бинарнику. Нажатие проверяет обновления общей установки ESKA. Из нескольких независимых папок редактора выбирается одна; при открытии рабочей области eska в дереве доступны её проекты.

Рабочая область

Конфигурации отображаются непосредственно под ESKA: 1C Explorer. Внутри конфигурации сразу идут «Модули», «Общие», «Справочники» и остальные разделы метаданных — отдельной группы «Структура проекта 1С» нет.

Если у проекта есть собственный eska.toml внутри workspace, после метаданных показываются его файловые группы. Общие файлы рабочей области находятся рядом с конфигурациями, без дополнительного узла папки:

ESKA: 1C Explorer
├─ Конфигурация
│  ├─ Модули
│  ├─ Общие
│  ├─ Справочники
│  ├─ …
│  ├─ Настройки проекта
│  ├─ Документация
│  └─ Прочие файлы
├─ Другая конфигурация
│  └─ …
├─ Настройки проекта
├─ Документация
└─ Прочие файлы

«Настройки проекта» содержит настройки ESKA, Git, BSL-анализаторов, редактора, агентов и платформ размещения репозитория: например, eska.toml, AGENTS.md, .codex/, .vscode/ и .github/. Каталоги сохраняют внутреннюю структуру. «Документация» — README.md и его языковые варианты. Остальное, включая build, .git/ и неизвестные скрытые папки, доступно в «Прочих файлах». Настройки с одним корневым eska.toml находятся на общем уровне, рядом с единственной конфигурацией. Файлы сохраняют настоящие имена; пустые файловые группы не показываются.

Папки читаются при раскрытии. Ctrl+K, затем E (на macOS Cmd+K, затем E) находит в дереве также настройки и другие файлы. Правила группировки.

Навигация по исходникам

Пример ветки справочника:

Конфигурация
└─ Справочники
   └─ Товары
      ├─ Модули
      │  ├─ Модуль объекта
      │  └─ Модуль менеджера
      ├─ Предопределённые данные
      ├─ Реквизиты
      ├─ Табличные части
      ├─ Формы
      │  └─ ФормаЭлемента
      │     ├─ Форма
      │     └─ Модуль
      ├─ Команды
      └─ Макеты

Выбор модуля открывает BSL. Объект с группой Модули открывает свойства, даже если в группе только один BSL. Общие модули, команды, сервисы и перерасчёты открывают свой код; если BSL отсутствует, открываются свойства. Корень и вложенные элементы без кода тоже открывают свойства. Контекстное меню Открыть XML открывает описание с выделением имени.

Щёлкните правой кнопкой по объекту метаданных и выберите Свойства. Откроется вкладка с поиском по именам и значениям, локализованными строками и вложенными полями. Кнопка Открыть XML у свойства выделяет его в исходнике. Подписи свойств поступают из словаря backend для 1С 8.3.27 и 8.5.1, на русском или английском согласно языку дерева. XML-имя доступно для поиска. Значения перечислений и встроенные типы тоже получают подписи: например, Version8_3_27 — «Версия 8.3.27», xs:string — «Строка». Техническое значение участвует в поиске. Пользовательские имена и комментарии сохраняются как введены. Со старым backend или для неизвестного значения используется исходное представление.

Мобильные возможности показаны плоским списком с галочками слева. Простые вложенные поля выровнены в строки; сложные структуры занимают всю ширину. Элементы коллекций раскрываются по имени и имеют краткую сводку. Большие списки свёрнуты по умолчанию; поиск оставляет подходящие элементы и раскрывает их. Раскрытие сохраняется при обновлении вкладки и смене языка дерева. Для каждого объекта используется своя вкладка; повторный вызов возвращает её. Вкладка доступна также у корня, вложенных элементов и объектов, обычный клик по которым открывает BSL. Просмотр не изменяет исходники.

У формы есть отдельные узлы Форма и Модуль: первый открывает XML содержимого формы, второй — её BSL. Клик по названию общей формы или формы объекта всегда открывает её свойства. Это открытие исходников, без визуального редактора форм. Модули показываются только при наличии BSL; двоичные .bin не отображаются как исходники кода.

Пустые группы внутри объектов остаются видимыми. Кнопка фильтра у корня конфигурации управляет только пустыми разделами корня и разделами внутри «Общие».

Редактирование свойств

Свойства открываются для чтения. Кнопка замочка в шапке включает редактирование только в текущей вкладке; повторно открытая вкладка снова заблокирована. Текст сохраняется при выходе из поля или Enter, Shift+Enter добавляет строку, Esc отменяет несохранённый ввод. Флажки и списки сохраняются сразу. Тип выбирается из списка платформенных типов и объектов текущего проекта. Основные роли и поддержанные ссылки на формы, язык, стиль и другие объекты выбираются в списке с поиском. Одиночную ссылку можно очистить; состав списков не меняется. Несохранённый выбор виден в кнопке и после перечитывания доступен для явного сохранения или отмены.

Кнопки «Отменить»/«Повторить» и Ctrl+Z/Ctrl+Shift+Z (Cmd на macOS) работают с сохранёнными изменениями объекта. Пока текст редактируется, его обычная отмена остаётся в поле. При внешней правке черновик сохраняется в форме; «Обновить» перечитывает файл, после чего свой ввод можно явно сохранить. Разрыв соединения не запускает повторную запись. Несохранённый XML в текстовом редакторе блокирует запись из свойств.

Изменяются только поля, для которых backend публикует проверенную схему. «Значение заполнения» выбирается по типам реквизита. Пустая строка и незаданное значение различаются; доступны существующие значения перечислений и предопределённые элементы. Даты вводятся без технического XML-формата. Целочисленные поля показывают допустимый диапазон, который обновляется при изменении зависимых свойств. Параметры номера, управляемые нумератором документа, остаются для чтения с пояснением после разблокировки вкладки. Число уровней справочника редактируется после включения иерархии и ограничения уровней; рядом с недоступными полями показано, что требуется включить. Длина порядка счетов учитывает длину кода и существующие предопределённые значения. Длина периода корректировки регистра бухгалтерии ограничена 0–3. Срок жизни сеанса HTTP- и Web-сервисов редактируется без округления больших целых значений; границы показывает backend. Максимальное количество субконто — 0–50, после выбора плана видов характеристик. Уменьшение лимита и смена плана проверяют существующие предопределённые счета; их строки автоматически не удаляются. Для очистки плана сначала требуется явно установить количество в ноль.

В существующих связях параметров выбора доступны имя, источник и режим изменения значения. Источник выбирается из полей владельца и текущей строки табличной части; стандартные поля имеют переведённые подписи. Backend исключает самоссылки, дубли и чужие поля и проверяет выбор повторно при сохранении.

В «Связи по типу» доступны выбор/очистка источника и номер элемента связи. При выборе источника в пустом свойстве номер равен нулю; замена источника сохраняет существующий номер. Диапазон 0–4294967295 показан рядом с полем, переполнение отклоняется. Очистка и изменения входят в историю отмены объекта.

В параметрах выбора редактируются имена и существующие значения: строка, число, булево, дата, ссылки на перечисления и предопределённые элементы. Ссылочные типы загружаются при открытии выбора. У фиксированного массива каждое значение имеет отдельный редактор с номером элемента; состав и порядок массива сохраняются. Изменение имени затрагивает только XML-атрибут name.

Связанные параметры нумерации сохраняются и отменяются вместе с соответствующими полями документов. Выбор нумератора переносит пять общих параметров; изменение его поля переносит только выбранный параметр. Редактор показывает количество связанных документов. Несохранённые исходники блокируют такую запись; внешнее изменение зависимостей сохраняет черновик и требует явного обновления свойств. Добавление и удаление полей и элементов списков остаются отложенными.

У свойства «Имя» после разблокировки доступна кнопка «Переименовать». Предварительный просмотр показывает подтверждённые XML/BSL-замены, перемещения файлов и сомнительные места. Их можно открыть в редакторе; сомнительные вхождения остаются без изменения. Перед применением нужно подтвердить их просмотр. Переименование входит в общую историю отмены объекта. Несохранённые документы проекта блокируют переименование и его отмену/повтор. Изменённый после просмотра исходник требует нового предварительного просмотра.

Неизвестные свойства, UUID, неподдержанные ссылки и остальные структурные операции остаются для чтения. Добавление/удаление языков, строк и типов пока отсутствует. Правила поддержки 1С проверяются backend-ом независимо от замочка. Нужен backend с IDE API 1.11 и capabilities propertyEditing, metadataRename, linkedPropertyEdits и unsignedIntegerProperties; номер CLI сам по себе не подтверждает наличие этой возможности в development-сборке.

Поиск

Нажмите лупу в панели дерева и введите часть имени или синонима. Стрелками выберите результат, нажмите Enter, чтобы перейти к нему в дереве, или Escape, чтобы закрыть поиск.

При первом поиске eska строит индекс в фоне. Пока он не готов, видны прогресс и частичные результаты. Поиск не зависит от раскрытия ветвей; готовый индекс используется повторно. Имена и синонимы ищутся без учёта регистра, без нечёткого сопоставления. При слишком большой выдаче уточните запрос.

Горячие клавиши

Действие Windows / Linux macOS
Показать открытый файл в дереве eska Ctrl+K, затем E Cmd+K, затем E
Поиск по дереву Ctrl+K, затем F Cmd+K, затем F
Обновить дерево при фокусе в нём F5 F5

После первой комбинации отпустите модификатор и нажмите букву. Переход и поиск переопределяют стандартные сочетания только при фокусе в редакторе файла подключённого проекта eska. Поиск также доступен при фокусе в дереве. В остальных случаях сохраняются стандартные команды редактора.

Изменить или удалить назначения можно в Сочетаниях клавиш / Keyboard Shortcuts: найдите команды по строке ESKA Explorer.

Настройки

Настройка Значение по умолчанию Назначение
eska.explorer.executable eska Глобальная ESKA или путь к backend для разработки
eska.explorer.supportPolicy true Адресно проверять поддержку 1С и открывать запрещённые исходники в защищённых вкладках; отключение снимает ограничения ESKA без перезапуска
eska.explorer.checkForUpdates true Проверять обновления CLI не чаще раза в сутки
eska.explorer.treeLanguage auto Язык групп: auto, ru-RU или en-US
eska.explorer.hideEmptyRootGroups true Скрывать пустые разделы по умолчанию

Переключение фильтра кнопкой сохраняет собственный режим проекта. Действие Использовать фильтр по умолчанию возвращает применение настройки. Имена объектов остаются такими, как в исходниках; выбор языка меняет подписи групп и типов, а не содержимое конфигурации.

Подсветка Git

Расширение использует статусы встроенного Git редактора и цвета текущей темы. M обозначает изменение, A / U — добавленный или неотслеживаемый файл, R — переименование, D — удаление, ! — конфликт. Точка • на родительском элементе означает, что внутри есть изменённые исходники.

Подсветка обновляется после сохранения файлов, добавления в индекс и коммита. Код и XML формы отмечаются раздельно. Несохранённые правки сами по себе Git-статус не меняют; состояние файла не означает изменение каждого свойства внутри XML. Удалённые элементы, которых уже нет в дереве метаданных, отдельными строками не добавляются.

Нужен включённый встроенный Git. Настройка git.decorations.enabled управляет подсветкой; дополнительный опрос репозитория расширение не запускает.

Обновления и совместимость

Расширение обновляется установкой нового VSIX из GitHub Releases. Обновление CLI доступно через меню … → Проверить обновления ESKA. После подключения выполняется фоновая проверка не чаще раза в сутки; она отключается настройкой eska.explorer.checkForUpdates. Установка начинается только после нажатия кнопки пользователя. Ход операции виден в терминале задач.

CLI с поддержкой самообновления вызывается через eska update. У старых версий первое обновление выполняется через Cargo либо официальный установщик. Для Cargo сохраняются прежний каталог и параметры установки; ошибка Cargo не вызывает переход на установщик. После успешного обновления Explorer переподключается. Подробности и ограничения — управление CLI.

Глобальная CLI проверяется на минимальную версию 0.11.0. При подключении проверяются IDE API 1.11 и обязательные возможности дерева, поиска, редактирования свойств и уведомлений о файлах. Версии CLI и расширения не обязаны совпадать. Отсутствие возможности selfUpdate допускается: оно требует первого обновления прежним способом.

Рекомендую использовать расширение вместе с bsl-analyzer. Само ESKA Explorer не регистрирует язык BSL, отладчик, форматтер или анализатор кода. Настройки других расширений и ассоциации файлов не изменяются.

Поддерживается только Designer XML. Поддержка формата EDT не планируется. Встроенных команд сборки 1С, Git-операций и визуального редактора форм нет. XML и BSL можно редактировать обычными средствами редактора.

Проверки выполнены на Linux с VSCodium. Приёмка Windows, macOS и Remote ещё не завершена. Для SSH, WSL и контейнеров CLI должен находиться на машине проекта. В браузерной IDE и виртуальной рабочей области расширение не работает.

Если что-то не работает

Откройте меню … в заголовке дерева: там доступны выбор проекта, отключение и Показать журнал подключения. Перезапуск подключения вынесен в панель рядом с поиском и обновлением дерева.

Проверьте путь к CLI, наличие eska.toml и совместимость IDE API. Если после изменения исходников ветка не обновилась, воспользуйтесь обновлением дерева. Для точного перехода к имени внутри XML сначала сохраните его правки.

При сообщении об ошибке укажите версию редактора, расширения и CLI, ОС и шаги воспроизведения. Приложите относящийся к сбою фрагмент журнала; он может содержать пути к проекту.

Документация и разработка

Лицензия

Apache License 2.0. Полный текст находится в файле LICENSE репозитория и включён в VSIX как LICENSE.txt.

Правила поддержки 1С: индикаторы, защищённое открытие и ограничения обычных файлов.

About

Дерево метаданных 1С в VS Code и VSCodium

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Contributors

Languages