| name | cfe-borrow |
| description | Заимствование объектов из конфигурации 1С в расширение (CFE). Используй когда нужно перехватить метод, изменить форму или добавить реквизит к существующему объекту конфигурации |
| argument-hint | -ExtensionPath <path> -ConfigPath <path> -Object "Catalog.Контрагенты.Form.ФормаЭлемента" -BorrowMainAttribute |
| allowed-tools | ["Bash","Read","Glob"] |
/cfe-borrow - Заимствование объектов из конфигурации
Заимствует объекты из основной конфигурации в расширение. Создает XML-файлы с ObjectBelonging=Adopted и ExtendedConfigurationObject, добавляет запись в ChildObjects расширения.
Предусловие
Расширение должно быть создано (/cfe-init) и содержать валидный Configuration.xml.
Авто-определение ConfigPath
Если пользователь не указал -ConfigPath - попробуй определить автоматически:
- Прочитай
.v8-project.json из корня проекта
- Разреши целевую базу (по имени, ветке или
default - алгоритм из /db-list)
- Если у базы есть поле
configSrc - используй как -ConfigPath
- Если
configSrc нет - спроси у пользователя
Параметры
| Параметр | Описание |
|---|
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 - вывести реквизит на заимствованную форму
Защита существующих данных: если зависимый объект уже заимствован с содержимым (реквизитами, формами) - скрипт не перезаписывает его, а добавляет только недостающее.
Команда
powershell.exe -NoProfile -File .claude/skills/cfe-borrow/scripts/cfe-borrow.ps1 -ExtensionPath src -ConfigPath C:\cfsrc\erp -Object "Catalog.Контрагенты"
Примеры
# Заимствовать один объект
... -ExtensionPath src -ConfigPath C:\cfsrc\erp -Object "Catalog.Контрагенты"
# Заимствовать форму (автоматически заимствует родительский объект)
... -ExtensionPath src -ConfigPath C:\cfsrc\erp -Object "Catalog.Контрагенты.Form.ФормаЭлемента"
# Несколько объектов за раз
... -ExtensionPath src -ConfigPath C:\cfsrc\erp -Object "Catalog.Контрагенты ;; CommonModule.ОбщийМодуль ;; Enum.ВидыОплат"
# Заимствовать форму с основным реквизитом (реквизиты по DataPath формы)
... -ExtensionPath src -ConfigPath C:\cfsrc\erp -Object "Catalog.Номенклатура.Form.ФормаЭлемента" -BorrowMainAttribute
# Заимствовать форму с ВСЕМИ реквизитами объекта
... -ExtensionPath src -ConfigPath C:\cfsrc\erp -Object "Catalog.Номенклатура.Form.ФормаЭлемента" -BorrowMainAttribute All
Верификация
/cfe-validate <ExtensionPath>