Дерево конфигураций 1С: Предприятие 8
VS Code (Cursor) расширение для работы с метаданными конфигураций 1С: Предприятие 8. Позволяет просматривать, редактировать и навигироваться по структуре конфигураций 1С в форматах XML.
Язык интерфейса
Расширение использует русский язык по умолчанию для всех команд и интерфейсных элементов.
Возможности расширения
- Расширение ищет в открытой папке пары файлов
ConfigDumpInfo.xml и Configuration.xml (для XML формата) выгруженных конфигураций 1С и для каждого варианта строит дерево метаданных в панели VS Code (Cursor). Для задания глубины просмотра подкаталогов существует настройка "Search Depth". По умолчанию значение настройки равно трём. Есть есть расширения, то глубину выставлять больше.
- Открывает текстовые модули 1С (*.bsl) через контекстное меню у соответствующих элементов.
- У метаданных для которых есть возможность создания предопределенных элементов можно открыть панель существующих в конфигурации элементов.
- Открывает формы объектов и табличные документы в режиме просмотра.
- Через контекстное меню подсистемы можно отфильтровать объекты относящиеся только к выбранной подсистеме. Снимается фильтр так же через контекстное меню на любой подсистеме.
📋 Команды расширения
⚙️ Настройки
- Настройки (
metadataViewer.settings) - открывает панель настроек расширения. Доступна через кнопку в заголовке панели "1C Metadata Viewer".
📂 Открытие модулей BSL
Все команды открытия модулей доступны через контекстное меню в дереве метаданных:
- Открыть модуль приложения (
metadataViewer.openAppModule) - открывает ManagedApplicationModule.bsl для корня конфигурации
- Открыть модуль сеанса (
metadataViewer.openSessionModule) - открывает SessionModule.bsl для корня конфигурации
- Открыть модуль внешнего соединения (
metadataViewer.openExternalConnectionModule) - открывает ExternalConnectionModule.bsl для корня конфигурации
- Открыть модуль объекта (
metadataViewer.openObjectModule) - открывает ObjectModule.bsl для объекта метаданных (справочник, документ и т.д.)
- Открыть модуль менеджера (
metadataViewer.openManagerModule) - открывает ManagerModule.bsl для объекта метаданных
- Открыть модуль (
metadataViewer.openModule) - открывает Module.bsl для общего модуля
- Открыть модуль команды (
metadataViewer.openCommandModule) - открывает CommandModule.bsl для команды объекта
- Открыть модуль набора записей (
metadataViewer.openRecordSetModule) - открывает RecordSetModule.bsl для набора записей регистра
- Открыть модуль менеджера значения (
metadataViewer.openValueManagerModule) - открывает ValueManagerModule.bsl для константы
📄 Работа с файлами и данными
- Открыть XML (
metadataViewer.openXml) - открывает XML файл объекта метаданных в редакторе. Доступна через контекстное меню для большинства объектов метаданных
- Открыть предопределенные данные (
metadataViewer.openPredefinedData) - открывает редактор предопределенных элементов для справочников и других объектов, поддерживающих предопределенные элементы. Позволяет редактировать, добавлять и удалять предопределенные элементы с сохранением структуры XML
- Открыть обработчик (
metadataViewer.openHandler) - открывает модуль обработчика события для элементов форм и других объектов
- Просмотр макета (
metadataViewer.showTemplate) - открывает макет (табличный документ) для просмотра. Доступна для макетов объектов метаданных
🎨 Редактирование метаданных
Редактировать метаданные (metadataViewer.editMetadata) - открывает полнофункциональный редактор метаданных объекта. Позволяет редактировать:
- Свойства объекта (синоним, комментарий и т.д.)
- Реквизиты и их типы
- Табличные части
- Измерения и ресурсы регистров
- И другие свойства объектов метаданных
После сохранения объект и соответствующая конфигурация автоматически пересобираются в дереве с учётом изменений (кэш L1/L2/L3 инвалидируется и обновляется при следующем раскрытии узла конфигурации).
Открыть редактор СКД (metadataViewer.openDcsEditor) - открывает визуальный редактор схемы компоновки данных (СКД) для отчётов. Позволяет редактировать запросы, настройки, параметры и другие элементы СКД.
📊 Просмотр форм
- Открыть модуль формы (
metadataViewer.openForm) - открывает модуль формы (Module.bsl) для редактирования
- Открыть форму (
metadataViewer.previewForm) - открывает визуальный предпросмотр формы с возможностью просмотра элементов, команд, реквизитов и других свойств формы.
🔄 Управление структурой дерева
Поиск (metadataViewer.searchInTree) — поиск по дереву метаданных. Введите текст в поле ввода; через 3 секунды после последнего ввода выполняется поиск по всем объектам (документы, справочники, реквизиты, табличные части и т.д.). Найденные элементы отображаются в списке с указанием пути в дереве. При выборе элемента дерево автоматически раскрывается до выбранного узла и выделяет его. Доступна через кнопку в заголовке панели «1C Metadata Viewer».
Переиндексировать структуру (metadataViewer.reindexStructure) - выполняет полную пересборку дерева метаданных и сброс всего кэша. Доступна через контекстное меню корня конфигурации. Используется при изменении структуры конфигурации вне расширения или при проблемах с отображением дерева.
Обновить структуру (metadataViewer.refreshObjectStructure) - обновляет структуру конкретного объекта метаданных в дереве. Доступна через контекстное меню объекта. Инвалидирует кэш для объекта и пересобирает его при следующем раскрытии узла.
Свойства (metadataViewer.openMetadataProperties) - открывает панель свойств конфигурации. Доступна через контекстное меню корня конфигурации.
🔍 Фильтрация по подсистемам
- Фильтровать по подсистеме (
metadataViewer.filterBySubsystem) - применяет фильтр для отображения только объектов, относящихся к выбранной подсистеме. Доступна через контекстное меню подсистемы.
🤖 Генерация кода (autogen-bsl)
BSL: Сгенерировать из // @gen
Генерирует код на основе комментариев // @gen в BSL файлах. Доступна:
- Через Code Action (QuickFix) при наведении на комментарий
//@gen - команда metadataViewer.genFromComment
- Из контекстного меню редактора (правая кнопка мыши в BSL файле) - команда
metadataViewer.genFromCommentPrompt
Поддерживаемые намерения:
// @gen <естественный язык> - AI-генерация кода на основе описания (например, // @gen код для получения реквизитов контрагентов)
Примеры использования:
// @gen код для получения реквизитов контрагентов
// Сгенерирует процедуру для получения реквизитов контрагента (ИНН, КПП, адрес, контакты, банковские реквизиты)
AI-генерация:
Для запросов, которые не соответствуют стандартным намерениям, используется AI-генератор. Он анализирует запрос на естественном языке и генерирует соответствующий BSL код. AI-генератор использует MCP серверы (если доступны) для более точной генерации кода.
BSL: Редактировать запрос
- BSL: Редактировать запрос (
metadataViewer.editQueryFromEditor) - открывает редактор запросов для редактирования текста запроса из BSL кода. Доступна через контекстное меню редактора BSL файлов. Автоматически определяет выделенный текст запроса или ищет запрос вокруг курсора.
📑 Закладки в BSL модулях
Установить/удалить закладку (metadataViewer.toggleBookmark) - устанавливает или удаляет закладку на текущей строке в BSL файле. Горячая клавиша: Alt+F2. Также доступна через контекстное меню номера строки.
Следующая закладка (metadataViewer.nextBookmark) - переходит к следующей закладке в текущем BSL файле. Горячая клавиша: F2.
Удалить все закладки (metadataViewer.clearAllBookmarks) - удаляет все закладки в текущем BSL файле. Доступна через контекстное меню номера строки.
📏 Управление отступами в BSL
Увеличить отступ (metadataViewer.increaseIndent) - увеличивает отступ для выделенных строк или текущей строки в BSL файле. Горячая клавиша: Tab. Также доступна через контекстное меню номера строки.
Уменьшить отступ (metadataViewer.decreaseIndent) - уменьшает отступ для выделенных строк или текущей строки в BSL файле. Горячая клавиша: Alt+Backspace. Также доступна через контекстное меню номера строки.
Настройки
Расширение предоставляет следующие настройки (доступны через File → Preferences → Settings или Ctrl+,):
- Тип:
integer
- По умолчанию:
10
- Описание: Глубина поиска конфигураций в подкаталогах. Особенно важно для формата EDT, где конфигурация может находиться в глубокой структуре папок.
- Тип:
boolean
- По умолчанию:
false
- Описание: Включает детальное логирование для отладки. Все логи отображаются в Output канале "1C Metadata Viewer". Полезно для диагностики проблем с кешированием, генерацией кода и другими функциями расширения.
- Тип:
string
- По умолчанию:
${workspaceFolder}\\build\\commit.txt
- Описание: Путь к файлу Commit.txt, в который записываются имена изменённых BSL файлов при их сохранении.
- Тип:
string
- По умолчанию:
1c-ai
- Описание: Имя mcp сервера 1C-напарник для генерации кода в модулях BSL
- Тип:
string
- По умолчанию:
ask_1c_ai
- Описание: Имя инструмента для генерации кода mcp сервера 1C-напарник для генерации кода в модулях BSL
- Тип:
boolean
- По умолчанию:
false
- Описание: Включить валидацию структуры XML при сохранении
Горячие клавиши
| Команда |
Горячая клавиша |
Контекст |
| Установить/удалить закладку |
Alt+F2 |
BSL редактор |
| Следующая закладка |
F2 |
BSL редактор |
| Увеличить отступ |
Tab |
BSL редактор |
| Уменьшить отступ |
Alt+Backspace |
BSL редактор |
Метаданные и модули
Метаданные:
Развернуть
- Подсистемы
- Параметры сеанса
- Роли
- Общие реквизиты
- Планы обмена
- Подписки на события
- Регламентные задания
- Общие формы
- Web-сервисы
- Http-сервисы
- WS-ссылки
- Стили
- Константы
- Справочники
- Документы
- Журналы документов
- Перечисления
- Отчеты
- Обработки
- Планы видов характеристик
- Планы счетов
- Планы видов расчета
- Регистры сведений
- Регистры накопления
- Регистры бухгалтерии
- Регистры расчета
- Бизнес-процессы
- Задачи
- Внешние источники данных
Модули:
Развернуть
- Модуль приложения
- Модуль сеанса
- Общий модуль
- Модуль объекта
- Модуль менеджера
- Модуль формы
- Модуль команды
- Модуль записи
- Модуль менеджера значения (для констант)
Особенности работы
Кэширование
Расширение использует трёхуровневую систему кэширования для оптимизации работы с большими конфигурациями:
- L1 кэш - кэш на уровне конфигурации
- L2 кэш - кэш на уровне объекта метаданных
- L3 кэш - кэш на уровне элементов структуры объекта
Кэш автоматически инвалидируется при изменении объектов метаданных через редактор. Для принудительного обновления используйте команды "Обновить структуру" или "Переиндексировать структуру".
Редактор предопределенных элементов
Редактор предопределенных элементов поддерживает:
- Просмотр всех предопределенных элементов объекта
- Добавление новых элементов
- Редактирование существующих элементов (название, код, описание, признак папки)
- Удаление элементов
- Сохранение структуры XML с правильным форматированием
- Автоматическое определение типа Code (число/строка) для новых элементов
- Сохранение исходного формата Code для существующих элементов
Редактор метаданных
Редактор метаданных предоставляет:
- Визуальное редактирование свойств объектов
- Редактор типов данных для реквизитов
- Просмотр и редактирование реквизитов и табличных частей
- Просмотр форм и команд объектов
- Просмотр XML представления объекта
- Автоматическое обновление дерева метаданных после сохранения
Редактор СКД
Редактор схемы компоновки данных позволяет:
- Редактировать запросы СКД
- Настраивать параметры и настройки
- Работать с виртуальными таблицами регистров
- Сохранять изменения в XML файлы конфигурации
Важно
За основу взят проект https://github.com/zerobig/vscode-1c-metadata-viewer
Сохранение xml формата работает в тестовом режиме!
Возможно нарушение структуры xml согласно схеме MDClasses.
Перед сохранением xml файлов объектов делайте резервную копию!