Cc-1c-skills cfe-borrow
Заимствование объектов из конфигурации 1С в расширение (CFE). Используй когда нужно перехватить метод, изменить форму или добавить реквизит к существующему объекту конфигурации
install
source · Clone the upstream repo
git clone https://github.com/Nikolay-Shirokov/cc-1c-skills
Claude Code · Install into ~/.claude/skills/
T=$(mktemp -d) && git clone --depth=1 https://github.com/Nikolay-Shirokov/cc-1c-skills "$T" && mkdir -p ~/.claude/skills && cp -r "$T/.claude/skills/cfe-borrow" ~/.claude/skills/nikolay-shirokov-cc-1c-skills-cfe-borrow && rm -rf "$T"
manifest:
.claude/skills/cfe-borrow/SKILL.mdsource content
/cfe-borrow — Заимствование объектов из конфигурации
Заимствует объекты из основной конфигурации в расширение. Создаёт XML-файлы с
ObjectBelonging=Adopted и ExtendedConfigurationObject, добавляет запись в ChildObjects расширения.
Предусловие
Расширение должно быть создано (
/cfe-init) и содержать валидный Configuration.xml.
Авто-определение ConfigPath
Если пользователь не указал
-ConfigPath — попробуй определить автоматически:
- Прочитай
из корня проекта.v8-project.json - Разреши целевую базу (по имени, ветке или
— алгоритм изdefault
)/db-list - Если у базы есть поле
— используй какconfigSrc-ConfigPath - Если
нет — спроси у пользователяconfigSrc
Параметры
| Параметр | Описание |
|---|---|
| Путь к каталогу расширения (обязат.) |
| Путь к конфигурации-источнику (обязат.) |
| Что заимствовать (обязат.), batch через |
| Заимствовать основной реквизит формы. Без параметра — не заимствует. — реквизиты, используемые на форме. — все реквизиты объекта. Требует форму в -Object |
Формат -Object
— справочникCatalog.Контрагенты
— общий модульCommonModule.РаботаСФайлами
— документDocument.РеализацияТоваров
— перечислениеEnum.ВидыОплат
— форма объекта (заимствование формы)Catalog.Контрагенты.Form.ФормаЭлемента
— несколько объектов Поддерживаются все 44 типа объектов конфигурации.Catalog.X ;; CommonModule.Y ;; Enum.Z
Заимствование форм
Формат
Тип.Имя.Form.ИмяФормы заимствует форму конкретного объекта. Если родительский объект ещё не заимствован — он будет заимствован автоматически.
Создаётся:
- Метаданные формы —
сForms/ИмяФормы.xml
,ObjectBelonging=AdoptedFormType=Managed - Form.xml —
с копией исходной формы +Forms/ИмяФормы/Ext/Form.xml
(начальное состояние)<BaseForm> - Module.bsl — пустой файл
Forms/ИмяФормы/Ext/Form/Module.bsl - Регистрация —
в ChildObjects родительского объекта<Form>
Заимствование основного реквизита формы (-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>