1С: Редактор конфигураций (v8vscedit)
v8vscedit — расширение для VS Code и Cursor, которое позволяет полноценно работать с конфигурациями и расширениями 1С:Предприятие прямо в редакторе: просматривать и менять метаданные, писать код, синхронизировать проект с базой, запускать 1С и работать с хранилищем конфигурации.
В качестве шаблона проекта используется структура vanessa-bootstrap: основная конфигурация хранится в src/cf, расширения — в src/cfe/<ИмяРасширения>, а параметры окружения задаются в env.json.
Возможности
Навигация по метаданным
- Дерево основной конфигурации и расширений в панели 1С: Редактор.
- Поиск по дереву метаданных.
- Открытие XML-файлов объектов и модулей 1С из контекстного меню.
- Отображение собственных и заимствованных объектов расширений.
- Информация о поддержке конфигурации и контроль возможности редактирования.
- Подсветка объектов конфигурации по состоянию изменений в Git.
Редактирование конфигурации и расширений
- Добавление объектов метаданных в конфигурацию и расширения.
- Удаление объектов метаданных с учётом ограничений поддержки и хранилища.
- Редактирование свойств объектов через отдельную панель свойств.
- Заимствование объектов основной конфигурации в расширение.
- Работа с модулями объектов, менеджеров, форм, команд, регистров, сервисов и общих модулей.
Синхронизация с базой 1С
- Импорт основной конфигурации и расширений из информационной базы в XML-исходники.
- Обновление конфигурации или расширения в базе из текущих исходников.
- Автоматическое определение изменённых конфигураций по локальному хеш-кэшу.
- Обновление всех изменённых конфигураций одной кнопкой.
- Предложение обновить базу перед запуском тонкого клиента, если в исходниках есть незагруженные изменения.
- Удобный интерфейс настройки проекта: выбор платформы 1С, информационной базы, пользователя и параметров подключения.
Запуск и окружение
- Запуск тонкого клиента 1С из проекта.
- Запуск конфигуратора 1С из проекта.
- Работа с автономным сервером 1С: настройка, запуск, остановка, перезапуск, открытие веб-клиента и просмотр лога.
- Автоматическая остановка и повторный запуск автономного сервера вокруг операций, которым нужен монопольный доступ к файловой базе.
Хранилище конфигурации
- Подключение конфигурации или расширения к хранилищу.
- Создание и отключение хранилища.
- Захват, освобождение, помещение и получение объектов.
- Добавление и копирование пользователей хранилища.
- Выгрузка конфигурации из хранилища, отчёт по хранилищу и установка метки версии.
- Ограничение команд редактирования для объектов, которые нельзя менять из-за состояния хранилища.
Код 1С и ИИ-агенты
- Поддержка языка 1С через интегрированный запуск
bsl-analyzer.
- Автоматическая загрузка
bsl-analyzer, если путь к нему не задан вручную.
- Проверка обновлений
bsl-analyzer и команды перезапуска/просмотра лога.
- Локальный MCP-сервер для ИИ-агентов с инструментами навигации, чтения контрактов свойств и безопасного изменения метаданных.
- Канонический формат путей метаданных и типов 1С для MCP-инструментов: см. docs/mcp-paths.md.
- Установка проектных ИИ-ролей 1С для Codex, Cursor, Claude Code, Cline, GitHub Copilot, Roo Code, Windsurf и других поддерживаемых клиентов.
Требования
- VS Code или Cursor с API VS Code 1.85 и выше.
- Node.js 18 и выше, если расширение собирается из исходников.
- Установленная платформа 1С:Предприятие для команд запуска, импорта, обновления и хранилища.
- Информационная база 1С, доступная через строку подключения из
env.json.
- Доступ к интернету для автоматической установки
bsl-analyzer, если он устанавливается через команды расширения.
Установка
Из VSIX
- Скачайте
v8vscedit-<версия>.vsix из GitHub Releases.
- В VS Code или Cursor выполните Extensions → ... → Install from VSIX....
Можно установить и из командной строки:
code --install-extension v8vscedit-<версия>.vsix
cursor --install-extension v8vscedit-<версия>.vsix
Из исходников
npm install
npm run compile
npm run build
Для разработки:
npm run watch
После этого откройте корень репозитория в VS Code или Cursor и нажмите F5, чтобы запустить Extension Development Host.
Инициализация проекта 1С
Самый простой путь — открыть пустой каталог в VS Code или Cursor и перейти в панель 1С: Редактор. Если проект ещё не инициализирован, расширение покажет стартовый интерфейс для создания структуры проекта.
Инициализация создаёт базовую структуру каталогов, env.json, настройки bsl-analyzer и правила .gitignore. Она специально разрешена только для пустого каталога, чтобы не перезаписать существующий проект.
После инициализации в той же панели доступны настройки проекта: выбор платформы 1С, информационной базы, пользователя и пароля. Эти параметры сохраняются в env.json в формате, совместимом с vanessa-runner.
Когда окружение настроено, можно импортировать конфигурацию и расширения из базы через кнопки синхронизации в панели 1С: Редактор.
Основная конфигурация будет выгружена в src/cf, расширения — в src/cfe/<ИмяРасширения>.
Требования к структуре проекта
Расширение считает каталог проектом 1С, если в корне рабочей области есть:
project-root/
├── env.json
└── src/
├── cf/
└── cfe/
env.json хранит параметры подключения:
{
"default": {
"--ibconnection": "/F/path/to/base",
"--db-user": "",
"--db-pwd": "",
"--path": "/path/to/1cv8",
"--root": ".",
"--workspace": "."
}
}
После импорта или ручной выгрузки структура обычно выглядит так:
project-root/
├── env.json
├── src/
│ ├── cf/
│ │ └── Configuration.xml
│ └── cfe/
│ └── МоеРасширение/
│ └── Configuration.xml
└── .v8vscedit/
└── ...
Каталоги с конфигурациями определяются по файлу Configuration.xml. Основная конфигурация и расширения могут находиться глубже внутри рабочей области, но для команд синхронизации используется соглашение:
src/cf — основная конфигурация;
src/cfe/<ИмяРасширения> — расширение с именем, совпадающим с именем расширения в базе;
.v8vscedit — служебные кэши расширения, их не нужно хранить в Git;
env.json — локальные параметры подключения, его обычно не коммитят, потому что там могут быть пути, пользователи и пароли.
Основные команды
- Инициализировать проект 1С — создаёт структуру нового проекта.
- Настройки проекта — выбирает платформу и информационную базу.
- Импортировать конфигурации из базы — выгружает XML-исходники из базы.
- Обновить изменённые конфигурации — загружает в базу только то, что изменилось в файлах.
- Запустить тонкий клиент — запускает 1С:Предприятие, при необходимости предлагает сначала обновить базу.
- Запустить конфигуратор — открывает 1С в режиме конфигуратора.
- Автономный сервер: Настроить / Запустить / Остановить — управляет автономным сервером проекта.
- Установить ИИ-роли 1С — устанавливает проектные роли для выбранных ИИ-агентов без внешних скриптов.
Большинство объектных команд доступны из контекстного меню узлов в панели 1С: Редактор: открыть XML, открыть модуль, показать свойства, добавить, удалить, добавить в расширение, команды хранилища.
MCP-сервер для ИИ-агентов
Расширение поднимает локальный MCP-сервер после полной загрузки дерева метаданных. Сервер нужен, чтобы ИИ-агент работал с конфигурацией через те же сервисы, что и пользовательский интерфейс расширения: без прямой записи XML в обход проверок.
По умолчанию endpoint:
http://127.0.0.1:38481/mcp
Если порт занят, расширение пробует следующие порты. Фактический адрес пишется в канал вывода 1С Редактор строкой вида:
[mcp] Сервер запущен: http://127.0.0.1:38481/mcp
Настройки MCP
v8vscedit.mcp.enabled — запускать MCP-сервер автоматически после загрузки дерева метаданных.
v8vscedit.mcp.host — локальный адрес сервера. Разрешены только 127.0.0.1, localhost и ::1.
v8vscedit.mcp.port — стартовый порт. Если он занят, расширение попробует следующие порты.
Сервер намеренно слушает только loopback-адрес. Не публикуйте его наружу через прокси или порт-форвардинг без отдельной модели авторизации: инструменты MCP могут менять исходники конфигурации и запускать операции синхронизации с базой.
Подключение клиента
- Откройте проект в VS Code или Cursor.
- Дождитесь загрузки панели 1С: Редактор и строки
[mcp] Сервер запущен... в канале вывода.
- В MCP-клиенте добавьте HTTP / Streamable HTTP сервер с URL из канала вывода.
Пример конфигурации для клиентов, которые поддерживают mcp.json с HTTP-серверами:
{
"mcpServers": {
"v8vscedit": {
"type": "http",
"url": "http://127.0.0.1:38481/mcp"
}
}
}
Некоторые клиенты используют ключ servers вместо mcpServers или не требуют поле type. В таком случае оставьте тот же URL, а форму записи возьмите из документации конкретного клиента.
Доступные инструменты
v8vscedit_list_configurations — список найденных конфигураций и расширений.
v8vscedit_list_metadata_types — реестр типов метаданных из META_TYPES: папки, дочерние элементы, слоты модулей.
v8vscedit_workspace_overview — быстрый обзор основной конфигурации и расширений: корни, имена, версии и счётчики объектов.
v8vscedit_search_metadata — поиск по части строки в предметных путях метаданных выбранной конфигурации; параметр configuration обязателен при нескольких корнях.
v8vscedit_list_metadata — список объектов группы или дочерних элементов по пути без nodeId.
v8vscedit_get_properties — все свойства объекта по предметному пути: текущие значения, readonly, допустимые enum/multiEnum-значения.
v8vscedit_set_property_by_path — безопасное изменение простого свойства по предметному пути.
v8vscedit_list_available_types — стандартные и конфигурационные типы для свойств Тип, Источник, Тип параметра команды; возвращает русское поле value, а для CFE показывает только собственные и заимствованные объекты.
v8vscedit_set_type — изменение типа реквизита, измерения, ресурса, колонки, константы, общего реквизита или параметра команды; принимает русские значения типа, длину и точность.
v8vscedit_rename_metadata — переименование объекта или дочернего элемента через общий XML-сервис.
v8vscedit_add_metadata_by_path — добавление объекта, реквизита, табличной части, колонки, формы, команды или макета по предметному пути.
v8vscedit_remove_metadata — удаление объекта или дочернего элемента по предметному пути.
v8vscedit_execute_command — ограниченный запуск разрешённых команд расширения: v8vscedit.refresh, v8vscedit.importConfigurations, v8vscedit.updateChangedConfigurations.
Предметные пути принимают русские группы и технические имена типов. Примеры:
Справочники.Пользователи — объект справочника.
Справочники.Пользователи.Фамилия — реквизит объекта.
Справочники.Пользователи.ТабличныеЧасти.Состав — табличная часть объекта.
Справочники.Пользователи.ТабличныеЧасти.Состав.Реквизиты.Номенклатура — реквизит табличной части.
Справочники.Пользователи.Формы.ФормаСписка — форма объекта.
Справочники.Пользователи.ДополнительныеРеквизиты.Ссылка — реквизит табличной части.
Быстрый порядок для агента:
- Получить корни через
v8vscedit_workspace_overview.
- Найти объект через
v8vscedit_search_metadata или получить список через v8vscedit_list_metadata.
- Для чтения и изменения простых свойств использовать
v8vscedit_get_properties и v8vscedit_set_property_by_path.
- Для ссылочного типа сначала вызвать
v8vscedit_list_available_types с тем же metadataPath и брать значение из поля value; затем вызвать v8vscedit_set_type. Для числа сразу указывать length/digits и precision/fractionDigits.
- Для состава подсистем использовать
v8vscedit_edit_subsystem_content: свойства подсистемы меняются обычными get_properties/set_property_by_path, а объекты в Content добавляются и удаляются отдельной точечной операцией.
- Для создания использовать
v8vscedit_add_metadata_by_path, для переименования — v8vscedit_rename_metadata.
Такой порядок не заставляет агента ориентироваться по внутренним nodeId и английским enum-именам, но сохраняет проверки пользовательского режима: enum, boolean, readonly, допустимые типы и переименование корневых объектов проходят через те же сервисы, что панель свойств.
Как дополнять инструменты
При добавлении или изменении MCP-инструмента обновляйте этот раздел README в том же изменении кода.
Правила сопровождения:
- Новый инструмент регистрируется в
src/ui/mcp/V8McpServer.ts.
- Бизнес-логика инструмента должна жить в общем сервисе, который может использовать и UI-команда. Не дублируйте запись XML внутри MCP-обработчика.
- Если инструмент меняет файлы, он возвращает список изменённых файлов, обновляет дерево или кэш и маркирует конфигурацию изменённой тем же механизмом, что UI.
- Для новых действий, меняющих конфигурацию или базу, добавляйте MCP-инструмент или явно фиксируйте в README, почему действие недоступно агенту.
- При изменении входной схемы, имени инструмента, результата или правил безопасности обновляйте список инструментов, порядок использования и примеры подключения.
Настройки BSL Analyzer
В настройках расширения доступны параметры:
v8vscedit.lsp.mode — режим языковой поддержки 1С: bsl-analyzer или off.
v8vscedit.bslAnalyzer.autoUpdate — проверять обновления bsl-analyzer при запуске.
v8vscedit.bslAnalyzer.path — путь к установленному bsl-analyzer; если пусто, расширение скачает бинарник автоматически.
Разработка расширения
npm install
npm run compile
npm run lint
npm test
Перед коммитом должны проходить:
npm run compile
npm run lint
Для production-сборки:
npm run build