Skill v1.0.1
currentAutomated scan100/100+3 new
version: "1.0.1" name: cfe-borrow description: Заимствование объектов из конфигурации 1С в расширение (CFE). Используй когда нужно перехватить метод, изменить форму или добавить реквизит к существующему объекту конфигурации argument-hint: -ExtensionPath <path> -ConfigPath <path> -Object "Catalog.Контрагенты.Form.ФормаЭлемента" -BorrowMainAttribute allowed-tools:
- Bash
- Read
- Glob
/cfe-borrow — Заимствование объектов из конфигурации
MCP routing
- Preferred path: use MCP
unicatoolunica.cfe.borrow;unicaowns XML/JSON DSL work and refreshes related workspace caches after mutations. - Do not call internal MCP/CLI adapters directly. They are hidden behind
unicaand synchronized by the orchestrator. - Execution path: call MCP
unicatoolunica.cfe.borrow; skill-local operation scripts are not part of the workflow. - For mutating operations, pass
dryRun: falseonly when the user explicitly requested the change; otherwise keep the default dry run.
Заимствует объекты из основной конфигурации в расширение. Создаёт XML-файлы с ObjectBelonging=Adopted и ExtendedConfigurationObject, добавляет запись в ChildObjects расширения.
Предусловие
Расширение должно быть создано (/cfe-init) и содержать валидный Configuration.xml.
Авто-определение ConfigPath
Если пользователь не указал -ConfigPath — попробуй определить автоматически:
- Используй
./v8project.yaml. - Найди
source-setсtype: CONFIGURATION. - Используй его
pathкак-ConfigPath. - Если source-set не найден — спроси путь у пользователя.
Параметры
| Параметр | Описание | |
|---|---|---|
ExtensionPath | Путь к каталогу расширения (обязат.) | |
ConfigPath | Путь к конфигурации-источнику (обязат.) | |
Object | Что заимствовать (обязат.), batch через ;; | |
BorrowMainAttribute | Заимствовать основной реквизит формы. Без параметра — не заимствует. Form — реквизиты, используемые на форме. All — все реквизиты объекта. Требует форму в -Object |
Формат -Object
Catalog.Контрагенты— справочникCommonModule.РаботаСФайлами— общий модульDocument.РеализацияТоваров— документEnum.ВидыОплат— перечислениеCatalog.Контрагенты.Form.ФормаЭлемента— форма объекта (заимствование формы)Catalog.X ;; CommonModule.Y ;; Enum.Z— несколько объектов
Поддерживаются все 44 типа объектов конфигурации.
Заимствование форм
Формат Тип.Имя.Form.ИмяФормы заимствует форму конкретного объекта. Если родительский объект ещё не заимствован — он будет заимствован автоматически.
Создаётся:
- Метаданные формы —
Forms/ИмяФормы.xmlсObjectBelonging=Adopted,FormType=Managed - Form.xml —
Forms/ИмяФормы/Ext/Form.xmlс копией исходной формы +<BaseForm>(начальное состояние) - Module.bsl — пустой файл
Forms/ИмяФормы/Ext/Form/Module.bsl - Регистрация —
<Form>в ChildObjects родительского объекта
Заимствование основного реквизита формы (-BorrowMainAttribute)
Когда нужно: пользователь хочет добавить новый реквизит в существующий объект конфигурации и вывести его на заимствованную форму. Без -BorrowMainAttribute форма заимствуется "пустой" — только визуальные элементы, без привязки к данным объекта. С -BorrowMainAttribute форма сохраняет привязки к реквизитам объекта (DataPath), что позволяет затем добавить на неё новые элементы через /form-edit.
Два режима:
Form(по умолчанию) — заимствует только те реквизиты объекта, которые уже выведены на форму. Оптимальный выбор для большинства случаевAll— заимствует все реквизиты и табличные части объекта. Используй если планируешь выводить на форму реквизиты, которых на ней ещё нет
Типовой сценарий (добавление реквизита + вывод на форму):
/cfe-borrowс-BorrowMainAttribute— заимствовать форму с реквизитами/meta-edit— добавить новый реквизит в объект расширения/form-edit— вывести реквизит на заимствованную форму
Защита существующих данных: если зависимый объект уже заимствован с содержимым (реквизитами, формами) — скрипт не перезаписывает его, а добавляет только недостающее.
MCP вызов
{"jsonrpc": "2.0","method": "tools/call","params": {"name": "unica.cfe.borrow","arguments": {"cwd": "<workspace>","ExtensionPath": "src/extensions/MyExtension","ConfigPath": "src","Object": "Catalog.Контрагенты.Form.ФормаЭлемента","BorrowMainAttribute": "Form","dryRun": false}}}
Примеры
Заимствовать один объект
{"jsonrpc": "2.0","method": "tools/call","params": {"name": "unica.cfe.borrow","arguments": {"cwd": "<workspace>","ExtensionPath": "src","ConfigPath": "C:\\cfsrc\\erp","Object": "Catalog.Контрагенты","dryRun": false}}}
Заимствовать форму
{"jsonrpc": "2.0","method": "tools/call","params": {"name": "unica.cfe.borrow","arguments": {"cwd": "<workspace>","ExtensionPath": "src","ConfigPath": "C:\\cfsrc\\erp","Object": "Catalog.Контрагенты.Form.ФормаЭлемента","dryRun": false}}}
Несколько объектов за раз
{"jsonrpc": "2.0","method": "tools/call","params": {"name": "unica.cfe.borrow","arguments": {"cwd": "<workspace>","ExtensionPath": "src","ConfigPath": "C:\\cfsrc\\erp","Object": "Catalog.Контрагенты ;; CommonModule.ОбщийМодуль ;; Enum.ВидыОплат","dryRun": false}}}
Заимствовать форму с основным реквизитом
{"jsonrpc": "2.0","method": "tools/call","params": {"name": "unica.cfe.borrow","arguments": {"cwd": "<workspace>","ExtensionPath": "src","ConfigPath": "C:\\cfsrc\\erp","Object": "Catalog.Номенклатура.Form.ФормаЭлемента","BorrowMainAttribute": true,"dryRun": false}}}
Заимствовать форму со всеми реквизитами объекта
{"jsonrpc": "2.0","method": "tools/call","params": {"name": "unica.cfe.borrow","arguments": {"cwd": "<workspace>","ExtensionPath": "src","ConfigPath": "C:\\cfsrc\\erp","Object": "Catalog.Номенклатура.Form.ФормаЭлемента","BorrowMainAttribute": "All","dryRun": false}}}
Верификация
{"jsonrpc": "2.0","method": "tools/call","params": {"name": "unica.cfe.validate","arguments": {"cwd": "<workspace>","ExtensionPath": "src/extensions/MyExtension"}}}