Skip to content
| Marketplace
Sign in
Visual Studio Code>Programming Languages>CDT 41 (Community Development Tools for 1C)New to Visual Studio Code? Get it now.
CDT 41 (Community Development Tools for 1C)

CDT 41 (Community Development Tools for 1C)

Max Lekot

|
93 installs
| (0) | Free
Community Development Tools for 1C: visualize and edit 1C:Enterprise configuration metadata tree (EDT & Designer XML).
Installation
Launch VS Code Quick Open (Ctrl+P), paste the following command, and press enter.
Copied to clipboard
More Info

Релизы

Вся фича написана роботами. Багрепорты принимаю с благодарностью

CDT 41 (Community Development Tools for 1C)

Легковесное и быстрое расширение для 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С.
image image image image image

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

  1. Скачайте файл .vsix со страницы GitHub Releases.
  2. В VS Code: Ctrl+Shift+P → Install from VSIX… → укажите скачанный файл.
  3. Перезагрузите окно при необходимости.

Установка в Cursor и других редакторах на базе VS Code

Аналогично

Из исходников (для разработки)

  1. Клонируйте репозиторий и перейдите в каталог проекта.
  2. Установите зависимости: npm install
  3. Соберите проект: npm run compile (или .\build-all.bat для сборки VSIX).
  4. Запуск: нажмите F5 в VS Code для отладки.

Использование

Открытие панели метаданных

  1. Откройте папку с конфигурацией 1С в VS Code
  2. Панель CDT 41 появится автоматически в Explorer
  3. Или: 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 для перехода по совпадениям.

Поведение фильтрации по подсистеме

Фильтрация по подсистеме работает следующим образом:

  1. Применение фильтра: Правый клик на узле подсистемы в дереве → «Filter by Subsystem»
  2. Видимость узлов: Показываются только узлы, принадлежащие выбранной подсистеме (включая саму подсистему и все её дочерние элементы)
  3. Иерархия: Все предки отфильтрованных узлов остаются видимыми для сохранения структуры дерева
  4. Совместимость с другими фильтрами: Фильтр по подсистеме комбинируется с фильтром по типу и поиском
  5. Сброс фильтра:
    • Через контекстное меню (правый клик → «Clear Subsystem Filter»)
    • Через команду «Clear search and filters» (сбрасывает все фильтры)
  6. Индикация: Активный фильтр отображается в заголовке дерева в формате «Подсистема: {имя}»

Примеры использования:

  • Просмотр только объектов подсистемы «Продажи»: правый клик на «Продажи» → «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.
  • Благодарим alonehobo за BslEdit и существенный вклад в CDT 41: сравнение макетов, редактор СКД и визуал конструктора запросов ([PR #268](https://github.com/lekot/VScodePluginFor1CDev/pull/268), [PR #269](https://github.com/lekot/VScodePluginFor1CDev/pull/269), [PR #270](https://github.com/lekot/VScodePluginFor1CDev/pull/270)).
  • onec-debug-adapter — реверс-инжиниринг протокола RDBG и взаимодействия с dbgs, на основе которого реализована отладка 1С из VS Code.
  • 1C Testpilot — публичные сценарии и описание методов прямой работы с клиентом тестирования 1С, послужившие ориентиром при реализации нативного TestClient в CDT 41.
  • 1c-syntax — грамматики и шаблоны для подсветки синтаксиса BSL/SDBL.
  • cc-1c-skills — навыки и спецификации для AI-агентов, работающих с платформой 1С.
  • 1c-agent-based-dev-framework — фреймворк агентной разработки для 1С, идеи по работе с формами enterprise и СКД.

Полезные ссылки и экосистема инструментов 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.

Поддержка

Если у вас возникли проблемы или вопросы:

  1. Проверьте Issues
  2. Создайте новый Issue с описанием проблемы
  3. Приложите логи из Output канала CDT 41
  • Contact us
  • Jobs
  • Privacy
  • Manage cookies
  • Terms of use
  • Trademarks
  • Your Privacy Choices
  • Consumer Health Privacy
© 2026 Microsoft