Релизы
Вся фича написана роботами. Багрепорты принимаю с благодарностью
Легковесное и быстрое расширение для Visual Studio Code для визуализации, разработки и редактирования конфигураций 1С:Предприятие (выгрузки Designer XML и EDT).
⚡ Native TypeScript & No Java: старт и отображение десятка конфигураций (включая масштабные решения уровня ERP и Управление холдингом) занимают около 20 секунд, а потребление оперативной памяти составляет менее 1 ГБ RAM (в отличие от тяжеловесной среды 1C:EDT).
Возможности
- 📁 Дерево метаданных конфигурации 1С: иерархическое отображение 40+ типов метаданных с ленивой загрузкой и мгновенным откликом. Поддержка выгрузок Designer XML и EDT.
- 🆕 Создание пустой конфигурации: создайте базовую конфигурацию Designer XML 2.20 из палитры команд, заголовка дерева метаданных или кнопки в пустом дереве. Установленная платформа 1С не требуется.
- 🪄 Встроенный Конструктор запросов 1С (Query Builder): визуальный редактор запросов SDBL на 11 вкладок (Таблицы и поля, Связи, Группировка, Условия WHERE/HAVING, Дополнительно, Объединения, Порядок, Индексы, Итоги, Пакет запросов, Текст запроса SDBL). Двусторонняя синхронизация текста и UI, конструктор выражений («карандаш» ✏️) с разворачиванием ссылочных полей через точку, параметры виртуальных таблиц регистров, поддержка соединений таблицы самой на себя (self-joins) и автогенерация BSL-кода (включая режим «с обработкой результата»).
- Компактный вид в духе Конфигуратора, светлая и тёмная темы следуют теме VS Code; ширины панелей меняются перетаскиванием.
- Слева — дерево пакета: все запросы, ветви объединений и вложенные запросы из ИЗ; вложенный запрос правится на всех вкладках.
- Панель текста запроса рядом с конструктором: строки вкладок подсвечивают свой фрагмент текста, щелчок по тексту выбирает строку конструктора; комментарии запроса сохраняются при форматировании.
- Вкладка «Текст запроса»: текст проверяется при уходе с вкладки, ошибка разбора — на русском, с выделением места (строка, колонка); с ошибкой вкладку не покинуть.
- «Связи»: строка — одна часть условия соединения, как в Конфигураторе; таблицы перетаскиваются друг на друга, условие предлагается, когда выбраны обе таблицы.
- «Условия»: группы И/ИЛИ/НЕ, выбор строк щелчком с Ctrl и Shift, у МЕЖДУ два поля; «Группировка»: поле суммируется на месте, «>>» суммирует все числовые поля.
- «Объединения»: поле копируется и удаляется сразу во всех запросах объединения, колонки ветвей выравниваются.
- «Изменения» — построчное сравнение с запросом, каким он был при открытии; форматирование само по себе изменением не считается.
- ОК без правок не переписывает исходный текст; если конструктор изменил смысл запроса без правки пользователя, сохранение останавливается.
- 🐞 Нативная отладка BSL из VS Code (RDBG): отладочный адаптер на TypeScript (без сторонних Java-процессов) — точки останова (в т.ч. условные), пошаговое выполнение, стек вызовов, вычисление выражений, поддержка тонкого клиента и веб-сервера.
- ✨ Автодополнение BSL и подсказки параметров: язык платформенных имён и ключевых слов зависит от основного языка конфигурации: при коде
en или en-* подсказки на английском, иначе — на русском. Автодополнение включает глобальные имена и типы платформы, методы локальных переменных, созданных через Новый, процедуры и функции текущего модуля, имена уже загруженных общих модулей и их экспортируемые методы ОбщийМодуль.Метод, методы платформы и экспортируемые процедуры и функции модулей менеджера и объекта справочника, а также имена всех поддержанных глобальным контекстом коллекций метаданных, если соответствующие папки уже загружены в дерево. Выбор вызываемой процедуры, функции или метода вставляет скобки с курсором внутри; для известных безаргументных вызовов, включая ТекущаяДата(), сразу добавляется закрывающая скобка. Подсказки параметров показывают сигнатуры процедур и функций текущего модуля, экспортируемых процедур и функций общих модулей и два поддержанных варианта конструктора Новый Структура(...). Общий модуль читается только по точному пути после ввода его имени; файлы больше 1 МиБ пропускаются. Имена текущего модуля берутся из несохранённого текста и обновляются не чаще одного раза за 500 мс при наборе. Подсказки из дерева не запускают ленивую загрузку.
- 📚 Справка по синтаксису BSL: нажмите
Ctrl+F1 в редакторе, чтобы найти статьи по текущей строке с учётом позиции курсора, выбрать результат и открыть статью в отдельной панели. Для пустой строки или произвольного запроса используйте команду CDT 41: Найти в справке из палитры команд. В справке есть отдельные статьи методов и свойств; внутренние ссылки открывают связанную статью в той же панели, с возвратом кнопкой «Назад».
- 🔀 Интеллектуальное сравнение и объединение конфигураций (Compare & Merge): встроенный Compare View, семантический выбор безопасных изменений Designer XML в дескрипторах, формах и предопределённых элементах, а также сравнение BSL-модулей по процедурам и функциям.
- Передачи CF↔CFE и CFE↔CFE используют все 46 корневых типов общего реестра метаданных; собственные объекты копируются целиком, а заимствованные формируются по дескриптору доказанной базовой конфигурации.
- В переносе применяются только выбранные объекты; отсутствие объекта не означает его удаление. Форматы, проверки базы и ограничения adopted-объектов описаны в руководстве Compare & Merge.
- На 1С 8.3.27.1859 end-to-end подтверждены конкретные сценарии: merge элементов заимствованной CFE-формы и перенос собственного Catalog в Patch CFE. Это не заявление о native-паритете всех 46 типов.
- 🎨 Визуальные редакторы (Custom Editors & Webview):
- Редактор прав ролей: интерактивная матрица прав доступа к объектам метаданных с сохранением в XML.
- Редактор типов: примитивные, ссылочные и составные типы, квалификаторы длины и точности.
- Редакторы состава: подсистем (с настройкой командного интерфейса), планов обмена, общих реквизитов, функциональных опций и критериев отбора.
- Редактор форм: редактирование структуры
Form.xml с Taxi-предпросмотром, вкладками страниц, группами и таблицами.
- Предпросмотр макетов: визуализация табличных документов (MXL).
- Редактор макетов: табличный документ
Template.xml в виде Конфигуратора — ввод текста, параметров и шаблонов, оформление, объединение ячеек, строки и колонки, именованные области; сравнение макета с HEAD или с другим макетом по ячейкам.
- Редактор СКД: схема компоновки данных в виде окна Конфигуратора — наборы данных, связи, вычисляемые поля, ресурсы, параметры, макеты, вложенные схемы и варианты настроек; правка свойств и текста запроса; сравнение схем по сущностям.
- Схемы XDTO-пакетов: визуальный редактор схемы, экспорт в XSD, импорт из XSD, создание пакета из XSD, сравнение и объединение пакетов.
- 🚀 Информационные базы, Deploy и запуск 1С:
- Привязка нескольких баз данных и массовая раскатка.
- Инкрементальная раскатка измененных по Git файлов в базу через
ibcmd.
- Прямой запуск 1С:Предприятия (тонкий клиент) и Конфигуратора из расширения.
- 🔍 Быстрый поиск и фильтрация:
- Сквозной поиск по имени, синонимам, комментариям и регулярным выражениям (RegEx).
- Фильтрация по типам метаданных и контекстная фильтрация по подсистеме (ПКМ на узле подсистемы).
- Позиционирование активного файла в дереве (
revealActiveFileInTree).
- 🔒 Хранилище конфигурации 1С (фаза 1): подключение к хранилищу, захват/освобождение объектов, помещение изменений и обновление конфигурации с безопасным хранением паролей в SecretStorage.
- 📦 Расширения (CFE) и внешние файлы (EPF/ERF):
- Создание расширений, заимствование объектов и форм, структурные BSL-перехваты (
&Вместо, &Перед, &После).
- Создание пустых XML-проектов EPF/ERF, выгрузка встроенных обработок и отчётов из дерева метаданных во внешние проекты, разбор и сборка
.cf, .epf и .erf через пакетный Конфигуратор. Создание и выгрузка формируют XML-исходники; бинарный EPF/ERF собирается отдельной командой. Объекты с командами конфигурации отклоняются до выгрузки, чтобы не терять их поведение.
- 🤖 Agent API и MCP: 100 runtime-операций Agent API для AI-агентов; включая операции Хранилища конфигурации и фоновые задачи, разрешение семантических адресов исходников (main: / cfe:), справку по синтаксису платформы и стандартам разработки, редактирование метаданных, источников подписок на события, прав ролей и Form.xml, отладку, DSL для СКД и поиск, запуск и управление нативным TestClient 1С.
Agent API (для AI-агентов)
CDT 41 предоставляет 100 runtime-операций Agent API для программного управления метаданными, Хранилищем конфигурации, фоновыми задачами, ролями, CFE-проектами, поддержкой конфигурации, EPF/ERF, отладкой, формами, справкой по синтаксису и стандартам разработки, СКД и XDTO-пакетами 1С. Основной способ подключения — встроенный Streamable HTTP MCP endpoint; команды также доступны через vscode.commands.executeCommand, а legacy HTTP bridge сохранён только для совместимости. AI-агент (Claude Code, Copilot, MCP-клиент) может:
- Разрешение адресов исходников (1 команда, новое) —
agent.resolveSourceAddress (cdt_resolve_source_address): сопоставляет префиксный семантический адрес (например, main:Catalog.Товары, cfe:Catalog.Товары при единственном CFE-проекте или ExtName:Catalog.Товары для явного имени расширения) с конкретной конфигурационной сессией, корнем и узлом дерева метаданных без ручного поиска путей
- CRUD метаданных (12 команд) — создавать объекты, добавлять реквизиты/ТЧ/колонки, читать/писать свойства, переименовывать и удалять
- Отладка (15 команд) — запускать отладочную сессию (thinClient / webServer), ставить breakpoints, читать переменные, шагать по коду, фильтровать исключения
- Привязки (2 команды) — resolveBinding (фикстура→база), listBindings (все привязки с базами)
- Раскатка и выгрузка (5 команд) — deploy конфигурации, раскатка выбранных файлов / изменённых по git, выгрузка объектов из ИБ, статус конфигурации — через ibcmd; полный deploy управляемой конфигурации закрыт fail-closed, а файловый deploy явно сообщает о частичном результате
- Хранилище конфигурации (8 команд) — подключать и отключать точную конфигурацию, блокировать, разблокировать, помещать и обновлять объекты или конфигурацию, читать локальное последнее наблюдаемое состояние
- Фоновые задачи (3 команды) — читать состояние и исходный результат длительной операции, запрашивать отмену и отслеживать подтверждённое завершение
- Поддержка конфигурации (6 команд) — читать блокировки
ParentConfigurations.bin, менять режим объекта с CAS, включать объектные правила, синхронизировать и проверять связанные ИБ, читать последний target-by-target результат
- Внешние обработки и отчёты (2 команды) — разбирать EPF/ERF в XML и собирать их из корневого XML через пакетный Конфигуратор
- Типы (2 команды) — getType / setType для реквизитов и колонок ТЧ
- Источники подписок на события (2 команды) — читать и полностью заменять список типов Source объекта EventSubscription
- Интерфейс команд подсистем (4 команды) — getSubsystemCommandInterface, setSubsystemCommandVisibility, setSubsystemCommandOrder, setSubsystemSubsystemsOrder
- Предопределённые характеристики (4 команды) — listPredefinedCharacteristics, getPredefinedCharacteristicType, setPredefinedCharacteristicType, getCharacteristicValueRegisters
- Формы конфигурации (3 команды) — статически читать и проверять
Form.xml, безопасно редактировать его с diff предпросмотром и CAS по SHA-256 ревизии без запуска 1С
- Справка синтаксиса и стандартов (1 команда) — искать и читать SQLite-справку платформы и оригинальные памятки с ссылками на ИТС
- Формы enterprise (7 команд) —
forms.discover находит локальные TestClient по PID и TCP-порту, forms.launch запускает тонкий клиент и повторяет native-подключение до 90 секунд (максимум 120 секунд), чтобы дождаться готовности или подтверждения диалога 1С; forms.start подключается к уже запущенному клиенту. forms.native читает интерфейс команд и контекст формы, выполняет команду по URL, снимает и сравнивает локальные snapshots, управляет записью UI log; readTable читает строки корректно описанных таблиц формы. На 8.3.27.1859 проверена таблица с двумя строками: обе прочитаны, полнота подтверждена, исходное выделение восстановлено. Ошибки TestClient возвращаются как ошибки, а не как пустая таблица. forms.shot снимает окно локального Windows TestClient, найденное по порту активной сессии.
- СКД (4 команды, новое) — agent.skd.{compile, info, edit, validate}: PowerShell-скрипты внутри расширения, JSON DSL → Template.xml, 26 операций редактирования
- XDTO-пакеты (7 команд, новое) — agent.xdto.{listPackages, getPackage, exportXsd, importXsd, createFromXsd, compare, merge}: чтение Package.bin, экспорт/импорт XSD, создание пакетов из XSD, сравнение и объединение XDTO/XSD/XML/BIN
- CFE-проекты (9 команд) — agent.cfe.{listProjects, getContext, validate, createProject, borrowObject, createInterceptor, createOwnForm, borrowForm, extendForm}: создание расширения, структурные BSL-перехваты, собственные и заимствованные формы Catalog/Document. Заимствованную форму можно менять только через
extendForm; зависимости должны быть уже заимствованы в CFE.
- Права ролей — создайте роль через
agent.createObject с type: "Role", затем задайте права операцией roles.setRights. В DSL доступны пресеты @view, @edit, @post (только для Document), @admin и явный список прав, например Catalog.Товары: @edit. Права хранятся отдельно от метаданных роли в Roles/<имя>/Ext/Rights.xml (Designer) или src/Roles/<имя>/Ext/Rights.xml (EDT); для Designer метаданные роли находятся в Roles/<имя>.xml. Команда сохраняет настройки наследования и существующие явные права реквизитов, табличных частей и колонок.
Совместимость форматов Designer XML
Таблица описывает общий CRUD метаданных Designer XML. Версия берётся из корневого Configuration.xml; CDT сохраняет её при записи и не конвертирует проект автоматически.
| Версия формата (платформа) |
Просмотр |
Автоопределение версии из Configuration.xml |
Запись общего CRUD |
2.13–2.15 (8.3.20–8.3.22) |
Чтение/просмотр доступно |
Значение читается из корневого version |
Заблокирована |
2.16 (8.3.23) |
Чтение/просмотр доступно |
Значение читается из корневого version |
Разрешена и проверена пакетным round-trip на 8.3.23 |
2.17–2.21 (8.3.24–8.5.1) |
Чтение/просмотр доступно |
Значение читается из корневого version |
Разрешена; эта же версия используется для новых XML-файлов |
| Версия отсутствует или неизвестна |
Просмотр возможен, если XML удаётся разобрать |
Отсутствующую версию определить нельзя; неизвестное значение определяется, но не подтверждено для записи |
Заблокирована |
Проверка 2.16 выполнена на Designer 8.3.23.2157: LoadConfigFromFiles → UpdateDBCfg → DumpConfigToFiles прошли; в выгрузке сохранились 64 XML-файла, включая 46 объектов Matrix_*, а версия корня осталась 2.16. Проверенный генерационный путь сохраняет version="2.16" и не добавляет TypeReductionMode (2.18), LineNumberLength (2.20) и xmlns:pal (2.21).
Это подтверждение относится к общему CRUD и не распространяется на все функции CDT. Создание CFE и операции с CFE-формами, внешние проекты EPF/ERF и статическое редактирование форм через Agent API имеют отдельные ограничения и по-прежнему принимают только 2.17–2.21. Формат 2.16 соответствует платформе 8.3.23; автоопределение не повышает его до 2.17. По официальной таблице 1С, платформам 8.3.20, 8.3.23, 8.3.24 и 8.3.27 соответствуют форматы 2.13, 2.16, 2.17 и 2.20 соответственно (1C:Enterprise Developer Guide 8.3.27, §2.17.2).
MCP-клиент находит endpoint через discovery-файл .vscode/cdt-agent-bridge.json: URL находится в mcp.url, Bearer token — в верхнеуровневом поле token. По умолчанию MCP публикует семь компактных tools: шесть диспетчеров (cdt_read, cdt_write, cdt_write_idempotent, cdt_read_live, cdt_write_live, cdt_verify_live) и cdt_catalog. Каждый диспетчер принимает { operation, arguments }, где operation выбирает одну из 100 операций, а arguments содержит её параметры. cdt_catalog({}) перечисляет операции и профили; cdt_catalog({ operation: "cdt_syntax_help" }) возвращает схему справки по синтаксису и стандартам. Отдельные tools для каждой операции включаются только при запуске расширения с CDT_MCP_LEGACY_TOOLS=1; legacy /command остаётся доступен для совместимости. Длительные deploy/pull, операции Хранилища, сборка EPF/ERF, команды СКД, поддержка конфигураций, cdt_forms_launch/cdt_forms_start/cdt_forms_shot/cdt_forms_native и ожидание/запуск debug по умолчанию возвращают MCP task receipt. Проверяйте состояние через cdt_read({ operation: "cdt_task_status", arguments: { taskId } }), а результат получайте через cdt_read({ operation: "cdt_task_result", arguments: { taskId } }); запрос отмены отправляйте через cdt_write_live({ operation: "cdt_task_cancel", arguments: { taskId } }). Для синхронного вызова задайте background: false. У прямых Agent-команд эти операции, кроме мутаций Хранилища, сохраняют синхронный режим без background; мутации Хранилища уже по умолчанию возвращают receipt. Объекты адресуются через dot-path: Catalog.Товары, Document.ПриходТовара.Attribute.Склад. cdt_list_children помогает найти вложенные элементы, свойства которых затем читаются и изменяются по dot-path, например HTTPService.Api.URLTemplate.Items.Method.Get и WebService.Api.Operation.Find.Parameter.Query.
cdt_resolve_source_address позволяет AI-агенту без знания физической структуры каталогов разрешить семантический адрес с префиксом main:, cfe: (при единственном расширении) или <имя_расширения>: (например, ExtShop:Catalog.Товары) в точную сессию, путь к корню и сводку узла метаданных (AgentTreeNodeSummary).
cdt_get_properties, cdt_set_properties и cdt_list_children также поддерживают внешние источники данных: ExternalDataSource.esb_PowerBi.Table.esb_public_Tasks, ExternalDataSource.esb_PowerBi.Table.esb_public_Tasks.Field.finaldate и inline ExternalDataSource.esb_PowerBi.Function.GetTask. Таблицы через этот Agent/MCP путь поддержаны в Designer XML: свойства читаются из ExternalDataSources/<источник>/Tables/<таблица>.xml; EDT .mdo-раскладка этим путём пока не поддерживается. listChildren у источника перечисляет scalar-ссылки на таблицы и inline-функции, а у таблицы — поля. MCP использует полный dot-path и вызывает те же Agent-команды.
Для MCP сначала создайте роль через cdt_write({ operation: "cdt_create_object", arguments: { type: "Role", name: "МенеджерТоваров", synonym: "Менеджер товаров" } }), затем вызовите cdt_write для задания прав:
{
"name": "cdt_write",
"arguments": {
"operation": "cdt_roles_set_rights",
"arguments": {
"roleName": "МенеджерТоваров",
"objects": ["Catalog.Товары: @edit", "Document.Заказ: @post"]
}
}
}
Bearer разрешает локальному MCP-клиенту весь Agent API, включая мутации и запуск процессов. cdt_debug_evaluate исполняет BSL-выражение; deploy/debug/forms/SKD/EPF/ERF и Хранилище взаимодействуют с внешними процессами, файлами или информационными базами. Для cdt_dump_external_processor и cdt_build_external_processor нужно явно выбрать существующую файловую ИБ либо автономный режим с подтверждением риска потери ссылочных типов; обе операции создают новые файлы и не перезаписывают существующие. Подключайте только доверенный локальный MCP-клиент. Синхронный abort передаётся в Agent token; для фоновой задачи используйте cdt_task_cancel, которая сообщает о запросе отмены и ждёт фактического исхода операции. Полный каталог и inputs: docs/features/agent-api/agent-skill.md.
Как подключить своего агента через MCP
Расширение создаёт discovery-файл .vscode/cdt-agent-bridge.json. Возьмите из него mcp.url и верхнеуровневый token, затем настройте доверенный MCP-клиент: транспорт Streamable HTTP, URL из mcp.url, заголовок Authorization: Bearer <token>.
Схематичный пример — точный формат настройки зависит от MCP-клиента:
{
"servers": {
"cdt41": {
"transport": "streamable-http",
"url": "<значение mcp.url>",
"headers": {
"Authorization": "Bearer <верхнеуровневый token>"
}
}
}
}
Порт и token меняются при перезапуске расширения. После перезапуска перечитайте discovery-файл и переподключите MCP-клиент с актуальными значениями. Если файла нет, расширение ещё не активировано.
Legacy endpoint /command остаётся доступен для совместимости, но MCP-клиентам рекомендуется стандартное подключение через mcp.url.
Чего пока нет (в планах развития)
- Полное визуальное соответствие предпросмотра дизайнеру 1С для всех типов элементов формы (сейчас доступны дерево формы, синхронный инспектор и Taxi-предпросмотр распространённых контролов).
Включайся в разработку — будет!
Установка
Из VSIX с GitHub Releases
- Скачайте файл
.vsix со страницы GitHub Releases.
- В VS Code:
Ctrl+Shift+P → Install from VSIX… → укажите скачанный файл.
- Перезагрузите окно при необходимости.
Установка в Cursor и других редакторах на базе VS Code
Аналогично
Из исходников (для разработки)
- Клонируйте репозиторий и перейдите в каталог проекта.
- Установите зависимости:
npm install
- Соберите проект:
npm run compile (или .\build-all.bat для сборки VSIX).
- Запуск: нажмите
F5 в VS Code для отладки.
Использование
Открытие панели метаданных
- Откройте папку с конфигурацией 1С в VS Code
- Панель CDT 41 появится автоматически в Explorer
- Или: Ctrl+Alt+1 (Windows/Linux) / Cmd+Alt+1 (macOS), либо Command Palette (Ctrl+Shift+P) → «CDT 41: Открыть дерево метаданных»
Предпросмотр форм
Откройте Ext/Form.xml, чтобы работать с деревом элементов и видеть форму в нижней панели предпросмотра. Дерево, реквизиты и служебные панели следуют теме VS Code; холст формы остаётся в постоянной светлой палитре платформы 1С. Вкладки Pages, группы, командные панели, поля, флажки, переключатели и таблицы используют Taxi-компоновку и соответствующий платформенный вид. Выберите элемент в дереве или превью, чтобы открыть его свойства справа; событие элемента можно открыть в модуле формы из списка свойств. Кнопка По ширине подгоняет широкое превью под доступную ширину панели. Тип привязанного реквизита задаёт ширину поля: ссылка — 15 знаков по умолчанию, дата/время/дата-время — 10/8/22, булево — 10, число — по его квалификаторам. Экспорт превью в PNG пока не поддерживается.
Палитра, размеры контролов и стили Taxi адаптированы по BslEdit v2.0.0 (MIT, © 2026 1c-form-viewer contributors); SVG-иконки команд созданы для CDT 41. Подробности и текст лицензии: docs/third-party-notices.md.
Редактор макетов
Откройте Ext/Template.xml через Open With… → Редактор макета 1С (табличный документ, СКД). Редактор сам определяет вид макета по корневому элементу.
Табличный документ рисуется как в Конфигураторе: области слева, заголовки строк и колонок, объединения и оформление ячеек. Двойной щелчок или ввод с клавиатуры редактирует ячейку, панель инструментов и панель свойств справа меняют оформление, области и параметры. Документ остаётся текстовым: отмена, повтор, сохранение и XML-редактор рядом работают как обычно.
Схема компоновки данных открывается окном Конфигуратора с вкладками наборов данных, связей, вычисляемых полей, ресурсов, параметров, макетов, вложенных схем и настроек. Свойства, флажки ограничений, роли и текст запроса правятся прямо в окне; добавление, копирование, перемещение и удаление записей — кнопками панелей. Текст запроса правится в текстовом поле или кнопкой Конструктор запроса... во встроенном конструкторе запросов: сохранённый там запрос возвращается в набор данных. С флажком «Автозаполнение» поля набора, как в Конфигураторе, следуют за запросом: новые колонки добавляются, новые параметры запроса — в параметры схемы; поля без колонки остаются (с флажком «Удалять поля, которых нет в запросе» — удаляются, если их не настраивали). Выражения пока правятся как текст, без подсказок.
Команда CDT 41: Сравнить макет с HEAD (контекстное меню Template.xml и заголовок редактора) показывает обе версии рядом с подсветкой изменённых ячеек, строк и колонок (для СКД — изменённых наборов, полей, ресурсов, параметров и настроек) и списком изменений; CDT 41: Сравнить макеты сравнивает два выбранных файла. Кнопка XML-текст открывает обычный текстовый diff.
Модули макета взяты из BslEdit (MIT) без изменений; подробности — resources/preview-core/UPSTREAM.md и docs/third-party-notices.md.
Команды (CDT 41)
| Команда |
Описание |
| CDT 41: Открыть дерево метаданных |
Открыть панель дерева метаданных |
| Обновить |
Обновить дерево |
| Свойства |
Открыть панель свойств выбранного элемента |
| Открыть XML |
Открыть XML файл элемента |
| Создать элемент |
Создать элемент |
| Дублировать элемент |
Дублировать элемент |
| Удалить элемент |
Удалить элемент |
| Переименовать элемент |
Переименовать элемент |
| Копировать путь / имя |
Копировать путь или имя в буфер |
| Поиск по дереву |
Фокус в поле поиска по дереву |
| Очистить поиск и фильтры |
Сбросить поиск и фильтры |
| Фильтр по типу метаданных |
Фильтр по типу метаданных |
| Фильтр по подсистеме |
Фильтр по подсистеме (правый клик на подсистеме) |
| Сбросить фильтр подсистемы |
Сбросить фильтр по подсистеме |
| Следующий результат |
Следующий результат поиска |
| Предыдущий результат |
Предыдущий результат поиска |
| Очистить кэш дерева |
Очистить кэш дерева |
| Сравнить/объединить конфигурацию из файлов... |
Открыть compare-view для текущей конфигурации и выбранной файловой выгрузки: безопасные изменения Designer XML выбираются по семантическим узлам, BSL-модули сравниваются по процедурам. Поддержанные форматы и ограничения: docs/features/configuration-compare-merge.md |
| CDT 41: Конструктор запроса... |
Открыть визуальный конструктор запроса 1С (SDBL) для выделенного запроса или текущей строки |
| CDT 41: Конструктор запроса с обработкой результата... |
Открыть конструктор с автоматической генерацией BSL-кода обхода результата и параметров |
| CDT 41: Редактор прав ролей |
Открыть интерактивную матрицу прав ролей по метаданным |
| CDT 41: Редактировать состав подсистемы |
Открыть webview редактирования состава выбранной подсистемы |
| CDT 41: Редактировать командный интерфейс подсистемы |
Настройка видимости и порядка команд подсистемы |
| CDT 41: Редактировать состав плана обмена |
Настройка состава и авторегистрации плана обмена |
| CDT 41: Редактировать состав общего реквизита |
Настройка состава использования общего реквизита |
| CDT 41: Редактировать состав функциональной опции |
Настройка состава объектов и реквизитов функциональной опции |
| CDT 41: Редактировать состав критерия отбора |
Настройка состава критерия отбора |
| CDT 41: Редактировать схему XDTO-пакета |
Открыть визуальный редактор структуры схемы XDTO |
| CDT 41: Импортировать XSD как новый XDTO-пакет |
Создать новый XDTO-пакет из XSD-файла схемы |
| CDT 41: Экспорт логов |
Экспорт логов расширения |
| CDT 41: Копировать диагностику |
Сводка для багрепортов: версии, хост-приложение, ОС, язык UI, remote (если есть), режим расширения (production / development / test), папки workspace и найденные корни конфигурации (поиск до глубины 5), метка UTC. Словарь полей |
Хранилище конфигурации 1С (фаза 1)
Для файловой ИБ доступны команды контекстного меню дерева: подключить/отключить Хранилище,
захватить и освободить объект, поместить изменения, обновить объект или всю конфигурацию.
Поддерживаются основная конфигурация (CF) и отдельные расширения (CFE). При подключении выбираются
путь и пользователь Хранилища, пароль хранится только в VS Code SecretStorage; пароль ИБ берётся из
каталога информационных баз. Выбранная файловая ИБ сохраняется в привязке и используется всеми
последующими операциями; если её удалили из каталога, требуется переподключение. Привязка Хранилища
сохраняется отдельно от .vscode/infobase-bindings.json.
Операции выполняются штатным пакетным Конфигуратором и сериализуются по физической файловой ИБ.
Перед помещением изменённые XML доставляются в ИБ, после обновления из Хранилища затронутые файлы
выгружаются обратно и дерево перезагружается. Замок на объекте означает только последнее подтверждённое
состояние CDT; пакетный интерфейс 1С не предоставляет read-only запроса владельца блокировки, поэтому
неизвестное состояние явно не показывается как «свободно». При отмене, тайм-ауте или потере результата
состояние становится неизвестным, а операции этой ИБ требуют закрытого восстановления.
Горячие клавиши (в панели CDT 41)
- Ctrl+Alt+1 / Cmd+Alt+1 — открыть панель метаданных
- Ctrl+Shift+M / Cmd+Shift+M — открыть/закрыть панель
- Ctrl+Alt+Q — открыть Конструктор запроса в редакторе BSL
- Ctrl+F / Cmd+F — поиск в дереве
- Delete — удалить выбранный элемент
- F2 — переименовать элемент
- Ctrl+D / Cmd+D — дублировать элемент
- Ctrl+C / Cmd+C — копировать имя/путь
Навигация
- Развернуть/свернуть узел: Клик на стрелку рядом с элементом
- Открыть файл: Клик на элемент с файлом
- Обновить дерево: Кнопка «Обновить» в панели или команда палитры
CDT 41: Обновить
Поиск и фильтрация
- Поиск по имени: кнопка поиска в панели или Ctrl+F; ввод подстроки фильтрует дерево, показываются совпадающие узлы и их предки.
- По синониму и комментарию: опция в поиске (при включении поиск идёт также по синониму и комментарию).
- Регулярные выражения: опция «использовать regex» в поиске.
- Фильтр по типу: команда «Filter by metadata type» — выбор типов метаданных (Справочники, Документы и т.д.).
- Фильтр по подсистеме: правый клик на узле подсистемы → «Filter by Subsystem» — показывает только объекты, принадлежащие данной подсистеме. Фильтр можно сбросить через контекстное меню или команду «Clear Subsystem Filter».
- Навигация по результатам: Next search result / Previous search result для перехода по совпадениям.
Поведение фильтрации по подсистеме
Фильтрация по подсистеме работает следующим образом:
- Применение фильтра: Правый клик на узле подсистемы в дереве → «Filter by Subsystem»
- Видимость узлов: Показываются только узлы, принадлежащие выбранной подсистеме (включая саму подсистему и все её дочерние элементы)
- Иерархия: Все предки отфильтрованных узлов остаются видимыми для сохранения структуры дерева
- Совместимость с другими фильтрами: Фильтр по подсистеме комбинируется с фильтром по типу и поиском
- Сброс фильтра:
- Через контекстное меню (правый клик → «Clear Subsystem Filter»)
- Через команду «Clear search and filters» (сбрасывает все фильтры)
- Индикация: Активный фильтр отображается в заголовке дерева в формате «Подсистема: {имя}»
Примеры использования:
- Просмотр только объектов подсистемы «Продажи»: правый клик на «Продажи» → «Filter by Subsystem»
- Комбинированный фильтр: сначала примените фильтр по подсистеме, затем выберите типы метаданных (например, только Справочники)
- Поиск внутри подсистемы: примените фильтр по подсистеме, затем используйте поиск (Ctrl+F)
Поддерживаемые типы метаданных
Основные объекты
- Справочники (Catalogs)
- Документы (Documents)
- Перечисления (Enums)
- Отчеты (Reports)
- Обработки (DataProcessors)
- Регистры (Information/Accumulation/Accounting/Calculation)
- Бизнес-процессы (BusinessProcesses)
- Задачи (Tasks)
- Планы видов характеристик (ChartsOfCharacteristicTypes)
- Планы счетов (ChartsOfAccounts)
- Планы видов расчета (ChartsOfCalculationTypes)
- Планы обмена (ExchangePlans)
Другие объекты
- Константы (Constants)
- Общие модули (CommonModules)
- Роли (Roles)
- Подсистемы (Subsystems)
- Общие реквизиты (CommonAttributes)
- Функциональные опции (FunctionalOptions)
- Параметры функциональных опций (FunctionalOptionsParameters)
- Критерии отбора (FilterCriteria)
- Пакеты XDTO (XDTOPackages)
- Web-сервисы (WebServices)
- HTTP-сервисы (HTTPServices)
- WS-ссылки (WSRefs)
- Элементы стиля (StyleItems)
- Общие картинки (CommonPictures)
- Общие макеты (CommonTemplates)
- Языки (Languages)
- И многое другое...
Требования
- VS Code версии 1.82.0 или выше (соответствует
engines.vscode в пакете расширения)
- Node.js 20.x рекомендуется для разработки и используется в CI
- Конфигурация 1С в формате EDT или Designer
Разработка
Компиляция
npm run compile
Режим watch
npm run watch
Запуск тестов
Полный прогон (компиляция, линт, все тесты):
npm test
Быстрый прогон парсеров и части тестов (Windows):
.\test-suite.bat
Линтинг
npm run lint
Быстрая проверка перед PR (строгий линт, линт async для тестовых entrypoints, core-набор без VS Code):
npm run verify
Форматирование
npm run format
Поток данных
Workspace → FormatDetector → MetadataParser → TreeNode → TreeDataProvider → VS Code Tree View
Производительность
- Ленивая загрузка: Дочерние элементы загружаются только при развёртывании узла
- Кэширование: Используется Map для быстрого поиска узлов по ID
- Асинхронность: Все операции ввода-вывода выполняются асинхронно
Благодарности
Полезные ссылки и экосистема инструментов 1С
Рекомендуемые открытые инструменты сообщества для совместной работы с CDT 41 и AI-агентами:
- bsl-language-server — протокол языкового сервера (LSP) и мощный статический анализатор (линтер) для 1С:Предприятие: глубокая проверка модулей всей конфигурации, контроль стандартов разработки и автоматические исправления (quick-fixes).
- rlm-tools-bsl — токен-эффективный RLM-поиск по кодовой базе BSL, построение графа вызовов и быстрая навигация по процедурам/функциям. Рекомендуется подключать параллельно с CDT 41 при анализе, отладке и модификации кода в масштабных конфигурациях.
- 1c-mcp-toolkit — набор MCP-инструментов для сценариев, требующих прямого доступа к данным работающей информационной базы 1С (выполнение произвольных запросов, чтение Журнала регистрации, поиск ссылок на объекты с обязательной анонимизацией персональных данных).
Вклад в проект
Приветствуются pull requests! Для крупных изменений сначала откройте issue для обсуждения.
Лицензия
MIT - делайте с этим кодом все, что захотите, Open Source, but AS IS.
Поддержка
Если у вас возникли проблемы или вопросы:
- Проверьте Issues
- Создайте новый Issue с описанием проблемы
- Приложите логи из Output канала CDT 41
| |