v8vscedit — расширение для VS Code и Cursor, которое позволяет полноценно работать с конфигурациями и расширениями 1С:Предприятие прямо в редакторе: просматривать и менять метаданные, писать код, синхронизировать проект с базой, запускать 1С и работать с хранилищем конфигурации.
Страница в Marketplace: https://marketplace.visualstudio.com/items?itemName=macegor.v8vscedit
В качестве шаблона проекта используется структура vanessa-bootstrap: основная конфигурация хранится в src/cf, расширения — в src/cfe/<ИмяРасширения>, а параметры окружения задаются в env.json.
- Дерево основной конфигурации и расширений в панели 1С: Редактор.
- Поиск по дереву метаданных.
- Открытие XML-файлов объектов и модулей 1С из контекстного меню.
- Отображение собственных и заимствованных объектов расширений.
- Информация о поддержке конфигурации и контроль возможности редактирования.
- Подсветка объектов конфигурации по состоянию изменений в Git.
- Добавление объектов метаданных в конфигурацию и расширения.
- Удаление объектов метаданных с учётом ограничений поддержки и хранилища.
- Редактирование свойств объектов через отдельную панель свойств.
- Заимствование объектов основной конфигурации в расширение.
- Работа с модулями объектов, менеджеров, форм, команд, регистров, сервисов и общих модулей.
- Импорт основной конфигурации и расширений из информационной базы в XML-исходники.
- Обновление конфигурации или расширения в базе из текущих исходников.
- Автоматическое определение изменённых конфигураций по локальному хеш-кэшу.
- Обновление всех изменённых конфигураций одной кнопкой.
- Предложение обновить базу перед запуском тонкого клиента, если в исходниках есть незагруженные изменения.
- Удобный интерфейс настройки проекта: выбор платформы 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, если он устанавливается через команды расширения.
- Откройте вкладку Extensions (
Ctrl+Shift+X) в VS Code или Cursor. - Введите в поиске
Редактор конфигураций 1Силиmacegor.v8vsceditи нажмите Install.
Либо установите одной командой из палитры (Ctrl+P):
ext install macegor.v8vscedit
Или из терминала:
code --install-extension macegor.v8vscedit
cursor --install-extension macegor.v8vsceditСтраница расширения: https://marketplace.visualstudio.com/items?itemName=macegor.v8vscedit.
- Скачайте
v8vscedit-<версия>.vsixиз GitHub Releases. - В VS Code или Cursor выполните Extensions → ... → Install from VSIX....
Можно установить и из командной строки:
code --install-extension v8vscedit-<версия>.vsix
cursor --install-extension v8vscedit-<версия>.vsixnpm install
npm run compile
npm run buildДля разработки:
npm run watchПосле этого откройте корень репозитория в VS Code или Cursor и нажмите F5, чтобы запустить Extension Development Host.
Самый простой путь — открыть пустой каталог в 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-сервер после полной загрузки дерева метаданных. Сервер нужен, чтобы ИИ-агент работал с конфигурацией через те же сервисы, что и пользовательский интерфейс расширения: без прямой записи XML в обход проверок.
По умолчанию endpoint:
http://127.0.0.1:38481/mcp
Если порт занят, расширение пробует следующие порты. Фактический адрес пишется в канал вывода 1С Редактор строкой вида:
[mcp] Сервер запущен: http://127.0.0.1:38481/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, почему действие недоступно агенту.
- При изменении входной схемы, имени инструмента, результата или правил безопасности обновляйте список инструментов, порядок использования и примеры подключения.
В настройках расширения доступны параметры:
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