Релизы
Вся фича написана роботами. Багрепорты принимаю с благодарностью
Легковесное и быстрое расширение для Visual Studio Code для визуализации, разработки и редактирования конфигураций 1С:Предприятие (выгрузки Designer XML и EDT).
⚡ Native TypeScript & No Java: старт и отображение десятка конфигураций (включая масштабные решения уровня ERP и Управление холдингом) занимают около 20 секунд, а потребление оперативной памяти составляет менее 1 ГБ RAM (в отличие от тяжеловесной среды 1C:EDT).
Возможности
- 📁 Дерево метаданных конфигурации 1С: иерархическое отображение 40+ типов метаданных с ленивой загрузкой и мгновенным откликом. Поддержка выгрузок Designer XML и EDT.
- 🪄 Встроенный Конструктор запросов 1С (Query Builder): визуальный редактор запросов SDBL на 11 вкладок (Таблицы и поля, Связи, Группировка, Условия WHERE/HAVING, Дополнительно, Объединения, Порядок, Индексы, Итоги, Пакет запросов, Текст запроса SDBL). Двусторонняя синхронизация текста и UI, конструктор выражений («карандаш» ✏️) с разворачиванием ссылочных полей через точку, параметры виртуальных таблиц регистров, поддержка соединений таблицы самой на себя (self-joins) и автогенерация BSL-кода (включая режим «с обработкой результата»).
- 🐞 Нативная отладка BSL из VS Code (RDBG): отладочный адаптер на TypeScript (без сторонних Java-процессов) — точки останова (в т.ч. условные), пошаговое выполнение, стек вызовов, вычисление выражений, поддержка тонкого клиента и веб-сервера.
- 🔀 Интеллектуальное сравнение и объединение конфигураций (Compare & Merge): семантическое сравнение метаданных по UUID/именам и BSL-модулей по процедурам и функциям (встроенный Compare View).
- 🎨 Визуальные редакторы (Custom Editors & Webview):
- Редактор прав ролей: интерактивная матрица прав доступа к объектам метаданных с сохранением в XML.
- Редактор типов: примитивные, ссылочные и составные типы, квалификаторы длины и точности.
- Редакторы состава: подсистем (с настройкой командного интерфейса), планов обмена, общих реквизитов, функциональных опций и критериев отбора.
- Редактор форм: визуальное отображение структуры
Form.xml с выбором темы оформления.
- Предпросмотр макетов: визуализация табличных документов (MXL).
- Схемы XDTO-пакетов: визуальный редактор схемы, экспорт в XSD, импорт из XSD, создание пакета из XSD, сравнение и объединение пакетов.
- 🚀 Информационные базы, Deploy и запуск 1С:
- Привязка нескольких баз данных и массовая раскатка.
- Инкрементальная раскатка измененных по Git файлов в базу через
ibcmd.
- Прямой запуск 1С:Предприятия (тонкий клиент) и Конфигуратора из расширения.
- 🔍 Быстрый поиск и фильтрация:
- Сквозной поиск по имени, синонимам, комментариям и регулярным выражениям (RegEx).
- Фильтрация по типам метаданных и контекстная фильтрация по подсистеме (ПКМ на узле подсистемы).
- Позиционирование активного файла в дереве (
revealActiveFileInTree).
- 🔒 Хранилище конфигурации 1С (фаза 1): подключение к хранилищу, захват/освобождение объектов, помещение изменений и обновление конфигурации с безопасным хранением паролей в SecretStorage.
- 📦 Расширения (CFE) и внешние файлы (EPF/ERF):
- Создание расширений, заимствование объектов и форм, структурные BSL-перехваты (
&Вместо, &Перед, &После).
- Разбор и сборка
.cf, а также внешних отчетов и обработок (.epf / .erf) в XML и обратно.
- 🤖 Agent API и MCP: более 78 runtime-команд для AI-агентов (создание и редактирование метаданных, отладка, DSL для СКД, тестирование форм через Playwright).
Agent API (для AI-агентов)
CDT 41 предоставляет 78 runtime-команд Agent API для программного управления метаданными, CFE-проектами, поддержкой конфигурации, EPF/ERF, отладкой, формами, СКД и XDTO-пакетами 1С. Основной способ подключения — встроенный Streamable HTTP MCP endpoint; команды также доступны через vscode.commands.executeCommand, а legacy HTTP bridge сохранён только для совместимости. AI-агент (Claude Code, Copilot, MCP-клиент) может:
- CRUD метаданных (12 команд) — создавать объекты, добавлять реквизиты/ТЧ/колонки, читать/писать свойства, переименовывать и удалять
- Отладка (15 команд) — запускать отладочную сессию (thinClient / webServer), ставить breakpoints, читать переменные, шагать по коду, фильтровать исключения
- Привязки (2 команды) — resolveBinding (фикстура→база), listBindings (все привязки с базами)
- Раскатка и выгрузка (5 команд) — deploy конфигурации, раскатка выбранных файлов / изменённых по git, выгрузка объектов из ИБ, статус конфигурации — через ibcmd; полный deploy управляемой конфигурации закрыт fail-closed, а файловый deploy явно сообщает о частичном результате
- Поддержка конфигурации (6 команд) — читать блокировки
ParentConfigurations.bin, менять режим объекта с CAS, включать объектные правила, синхронизировать и проверять связанные ИБ, читать последний target-by-target результат
- Внешние обработки и отчёты (2 команды) — разбирать EPF/ERF в XML и собирать их из корневого XML через пакетный Конфигуратор
- Типы (2 команды) — getType / setType для реквизитов и колонок ТЧ
- Интерфейс команд подсистем (4 команды) — getSubsystemCommandInterface, setSubsystemCommandVisibility, setSubsystemCommandOrder, setSubsystemSubsystemsOrder
- Предопределённые характеристики (4 команды) — listPredefinedCharacteristics, getPredefinedCharacteristicType, setPredefinedCharacteristicType, getCharacteristicValueRegisters
- Формы enterprise (5 команд, новое) — agent.forms.{start, exec, stop, shot, status}: Playwright + ibsrv внутри расширения, без внешних скриптов
- СКД (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.
Мутации Designer XML поддерживаются для форматов 2.17–2.21 (платформы 8.3.24–8.5.1): CRUD берёт точную версию из корня Configuration.xml, применяет версионные свойства и сохраняет её в новых дочерних XML. Выгрузки 2.13–2.16, XML без версии и неизвестные будущие форматы можно читать, но запись в них блокируется до изменения файлов — без автоматической подмены версии.
MCP-клиент находит endpoint через discovery-файл .vscode/cdt-agent-bridge.json: URL находится в mcp.url, Bearer token — в верхнеуровневом поле token. MCP публикует полный каталог 78/78: metadata CRUD, CFE, support, EPF/ERF, bindings/deploy, types/subsystems, debug, forms, SKD и XDTO. Каждый cdt_* tool является строгой тонкой обёрткой над одноимённой Agent-командой; legacy /command остаётся доступен без изменений. Объекты адресуются через dot-path: Catalog.Товары, Document.ПриходТовара.Attribute.Склад.
Bearer разрешает локальному MCP-клиенту весь Agent API, включая мутации и запуск процессов. cdt_forms_exec исполняет произвольный JavaScript, cdt_debug_evaluate — BSL-выражение, deploy/debug/forms/SKD/EPF/ERF взаимодействуют с внешними процессами, файлами или информационными базами. Для cdt_dump_external_processor и cdt_build_external_processor нужно явно выбрать существующую файловую ИБ либо автономный режим с подтверждением риска потери ссылочных типов; оба инструмента создают новые файлы и не перезаписывают существующие. Подключайте только доверенный локальный MCP-клиент; отмена MCP-запроса не прерывает уже запущенную Agent-команду. Полный каталог и 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.
Чего пока нет (в планах развития)
- Полноценный визуальный WYSIWYG-редактор управляемых форм с drag-and-drop элементов (сейчас доступен просмотр структуры и Form.xml, идёт работа над портированием визуального дизайнера).
- Интерактивный редактор макетов (сейчас поддерживается просмотр MXL).
Включайся в разработку — будет!
Установка
Из 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: Открыть дерево метаданных»
Команды (CDT 41)
| Команда |
Описание |
| CDT 41: Открыть дерево метаданных |
Открыть панель дерева метаданных |
| Обновить |
Обновить дерево |
| Свойства |
Открыть панель свойств выбранного элемента |
| Открыть XML |
Открыть XML файл элемента |
| Создать элемент |
Создать элемент |
| Дублировать элемент |
Дублировать элемент |
| Удалить элемент |
Удалить элемент |
| Переименовать элемент |
Переименовать элемент |
| Копировать путь / имя |
Копировать путь или имя в буфер |
| Поиск по дереву |
Фокус в поле поиска по дереву |
| Очистить поиск и фильтры |
Сбросить поиск и фильтры |
| Фильтр по типу метаданных |
Фильтр по типу метаданных |
| Фильтр по подсистеме |
Фильтр по подсистеме (правый клик на подсистеме) |
| Сбросить фильтр подсистемы |
Сбросить фильтр по подсистеме |
| Следующий результат |
Следующий результат поиска |
| Предыдущий результат |
Предыдущий результат поиска |
| Очистить кэш дерева |
Очистить кэш дерева |
| Сравнить/объединить конфигурацию из файлов... |
Открыть compare-view для текущей конфигурации и выбранной файловой выгрузки: метаданные сравниваются по uuid/name, 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
- Асинхронность: Все операции ввода-вывода выполняются асинхронно
Благодарности
- Благодарим портал maxlekot.ru за поддержку проекта и оплату PRO-подписок на Claude Code и Codex.
- onec-debug-adapter — реверс-инжиниринг протокола RDBG и взаимодействия с dbgs, на основе которого реализована отладка 1С из VS Code.
- 1c-syntax — грамматики и шаблоны для подсветки синтаксиса BSL/SDBL.
- cc-1c-skills — навыки и спецификации для AI-агентов, работающих с платформой 1С.
- 1c-agent-based-dev-framework — фреймворк агентной разработки для 1С, идеи по работе с формами enterprise и СКД через Playwright.
Полезные ссылки и экосистема инструментов 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
| |