framework/skills/tool-usage/platform-data/xml-generation/extension-operations/SKILL.md
Операции с расширениями конфигурации 1С (CFE) — init, borrow, diff, validate. Используй при создании расширений, заимствовании объектов, анализе состава и перехватчиков.
npx skillsauth add steelmorgan/1c-agent-based-dev-framework extension-operationsInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Работа с расширениями конфигурации 1С.
| Триггер | Действие |
|---------|----------|
| Нужно создать расширение | extension init <output_dir> <Name> [--config-path <configPath>] |
| Нужно заимствовать объект из конфигурации | extension borrow <extPath> <configPath> "Type.Name" |
| Нужно заимствовать форму | extension borrow <extPath> <configPath> "Catalog.Name.Form.FormName" |
| Нужно добавить реквизит и вывести его на форму типовой | extension borrow ... "Type.Name.Form.X" --borrow-main-attribute form |
| Нужно сгенерировать перехватчик метода | extension patch-method <extPath> --module "Catalog.X.Form.Y" --method "ПриЗаписи" --type Before |
| Нужно проанализировать расширение | extension diff <extPath> <configPath> |
| Нужно проверить расширение | extension validate <extPath> |
Создать расширение конфигурации.
xml-gen extension init <output_dir> <Name> [--config-path <configPath>] [--purpose Patch|Customization|AddOn] [--prefix <Prefix>]
Параметры (позиционные):
<output_dir> — каталог, куда будет создано расширение (первый позиционный аргумент)<Name> — имя расширения (второй позиционный аргумент)Параметры (флаги):
--config-path — путь к базовой конфигурации (для чтения CompatibilityMode, DefaultLanguage и Language UUID). Без него — [WARN] Language ExtendedConfigurationObject set to zeros.--purpose — назначение (по умолчанию: Customization)--prefix — префикс имён (по умолчанию: из имени с суффиксом _)Антипаттерн (старый синтаксис): --name <Name> и --config <Path> НЕ работают — CLI принимает имя и output как позиционные, а флаг для базовой конфигурации называется --config-path.
Заимствование объекта из базовой конфигурации.
xml-gen extension borrow <extensionPath> <configPath> "<objectSpec>"
Формат objectSpec:
Catalog.Товары — заимствовать объектCatalog.Товары.Form.ФормаЭлемента — заимствовать формуСправочник.Товары — русские синонимы поддерживаютсяCatalog.Товары ;; Document.Заказ — batch (разделитель ;;)Анализ расширения: состав, перехватчики, проверка переноса.
xml-gen extension diff <extensionPath> <configPath> [--mode A|B]
&ИзменениеИКонтроль, проверка #Вставка/#КонецВставки, сверка с базовой конфигурацией.Без флага заимствованная форма не имеет DataPath — form-edit упадёт при попытке вывести реквизит расширения.
# Реквизиты, уже выведенные на форме (рекомендуется)
xml-gen extension borrow <extPath> <configPath> "Catalog.Номенклатура.Form.ФормаЭлемента" --borrow-main-attribute form
# Все реквизиты и табличные части объекта
xml-gen extension borrow <extPath> <configPath> "Catalog.Номенклатура.Form.ФормаЭлемента" --borrow-main-attribute all
form — только реквизиты, уже выведенные на форме (оптимально в большинстве случаев).all — все реквизиты объекта (нужно, если планируешь выводить реквизиты, которых на форме ещё нет).Типовой сценарий: borrow с --borrow-main-attribute form → добавить реквизит → form-edit.
Важно: если объект уже заимствован — CLI добавляет недостающее, не перезаписывает.
Генерация перехватчика метода в модуле расширения.
xml-gen extension patch-method <extPath> \
--module "Catalog.X.Form.Y" \
--method "ПриЗаписи" \
--type Before|After|Instead|ModificationAndControl \
[--config <configPath>]
Параметры:
<extPath> — путь к каталогу расширения--module — путь к модулю в формате Тип.Имя.ТипМодуля или Тип.Имя.Form.ИмяФормы--method — имя перехватываемого метода типовой конфигурации--type — тип перехвата (см. таблицу)--config — путь к базовой конфигурации (обязателен для ModificationAndControl)Типы перехвата:
| --type | Декоратор BSL | Назначение |
|----------|--------------|------------|
| Before | &Перед | Код до вызова оригинального метода |
| After | &После | Код после вызова оригинального метода |
| Instead | &Вместо | Полная замена оригинального метода |
| ModificationAndControl | &ИзменениеИКонтроль | Копия тела оригинального метода с маркерами вставки |
Маппинг ModulePath → BSL-файл:
| ModulePath | Файл в расширении |
|------------|-------------------|
| Catalog.X.ObjectModule | Catalogs/X/Ext/ObjectModule.bsl |
| Catalog.X.ManagerModule | Catalogs/X/Ext/ManagerModule.bsl |
| Catalog.X.Form.Y | Catalogs/X/Forms/Y/Ext/Form/Module.bsl |
| CommonModule.X | CommonModules/X/Ext/Module.bsl |
| Document.X.ObjectModule | Documents/X/Ext/ObjectModule.bsl |
| Document.X.Form.Y | Documents/X/Forms/Y/Ext/Form/Module.bsl |
| InformationRegister.X.RecordSetModule | InformationRegisters/X/Ext/RecordSetModule.bsl |
Аналогично для Report, DataProcessor и других типов объектов.
Имя процедуры-перехватчика формируется с NamePrefix расширения: Расш1_ПриЗаписи (читается из Configuration.xml расширения).
ModificationAndControl: CLI читает тело оригинального метода из --config и вставляет его с маркерами #Вставка/#КонецВставки. Требует --config.
При существующем файле: дописывает процедуру в конец модуля, не перезаписывает.
Валидация расширения (9 проверок).
xml-gen extension validate <extensionPath>
Проверки: MetaDataObject/Configuration, InternalInfo (7 ClassId), Properties (ObjectBelonging, Name, Purpose, Prefix), enum-значения, ChildObjects, DefaultLanguage, файлы языков, каталоги объектов, заимствованные объекты (ObjectBelonging=Adopted + ExtendedConfigurationObject).
Adopted — заимствованный объект; отсутствие атрибута — собственный.&Перед, &После, &Вместо, &ИзменениеИКонтроль над процедурой с префиксом расширения.#Вставка / #КонецВставки (или #Область <Префикс>_Вставка).tools
Diagnostics for Vanessa Automation runs. Use when a feature scenario failed, artifacts were not created, or you need to classify a failure after launch.
tools
Creating and refining Vanessa Automation feature scenarios based on real project requirements. Use when you need to write or update a scenario test, not just run it.
tools
--- name: v8-session-manager description: Use when working with the 1С session manager (v8-session-manager) - launch, configuration, connecting 1С clients, reading session_list, calling proxied MCP-tools from 1С extensions, diagnostics. Triggers: mention of `v8-session-manager`, `session_list`, 1С extension MCP showcase, error “no active sessions” / “session_id required”, connecting a client to the manager via `mcpMode=ws`. provides_capabilities: # Built-in manager tools — always available whi
tools
Use when Codex needs to manage v8-runner on local 1C projects through the CLI: configure v8project.yaml, initialize infobases or EDT workspaces, build sources from Designer or EDT, run syntax checks and tests, dump infobase changes, convert source formats, load or export artifacts, launch 1C clients, or choose safe 1C automation command sequences.