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.md
source content

/cfe-borrow — Заимствование объектов из конфигурации

Заимствует объекты из основной конфигурации в расширение. Создаёт XML-файлы с

ObjectBelonging=Adopted
и
ExtendedConfigurationObject
, добавляет запись в ChildObjects расширения.

Предусловие

Расширение должно быть создано (

/cfe-init
) и содержать валидный
Configuration.xml
.

Авто-определение ConfigPath

Если пользователь не указал

-ConfigPath
— попробуй определить автоматически:

  1. Прочитай
    .v8-project.json
    из корня проекта
  2. Разреши целевую базу (по имени, ветке или
    default
    — алгоритм из
    /db-list
    )
  3. Если у базы есть поле
    configSrc
    — используй как
    -ConfigPath
  4. Если
    configSrc
    нет — спроси у пользователя

Параметры

ПараметрОписание
ExtensionPath
Путь к каталогу расширения (обязат.)
ConfigPath
Путь к конфигурации-источнику (обязат.)
Object
Что заимствовать (обязат.), batch через
;;
BorrowMainAttribute
Заимствовать основной реквизит формы. Без параметра — не заимствует.
Form
— реквизиты, используемые на форме.
All
— все реквизиты объекта. Требует форму в -Object

Формат -Object

  • Catalog.Контрагенты
    — справочник
  • CommonModule.РаботаСФайлами
    — общий модуль
  • Document.РеализацияТоваров
    — документ
  • Enum.ВидыОплат
    — перечисление
  • Catalog.Контрагенты.Form.ФормаЭлемента
    — форма объекта (заимствование формы)
  • Catalog.X ;; CommonModule.Y ;; Enum.Z
    — несколько объектов Поддерживаются все 44 типа объектов конфигурации.

Заимствование форм

Формат

Тип.Имя.Form.ИмяФормы
заимствует форму конкретного объекта. Если родительский объект ещё не заимствован — он будет заимствован автоматически.

Создаётся:

  1. Метаданные формы
    Forms/ИмяФормы.xml
    с
    ObjectBelonging=Adopted
    ,
    FormType=Managed
  2. Form.xml
    Forms/ИмяФормы/Ext/Form.xml
    с копией исходной формы +
    <BaseForm>
    (начальное состояние)
  3. Module.bsl — пустой файл
    Forms/ИмяФормы/Ext/Form/Module.bsl
  4. Регистрация
    <Form>
    в ChildObjects родительского объекта

Заимствование основного реквизита формы (-BorrowMainAttribute)

Когда нужно: пользователь хочет добавить новый реквизит в существующий объект конфигурации и вывести его на заимствованную форму. Без

-BorrowMainAttribute
форма заимствуется "пустой" — только визуальные элементы, без привязки к данным объекта. С
-BorrowMainAttribute
форма сохраняет привязки к реквизитам объекта (DataPath), что позволяет затем добавить на неё новые элементы через
/form-edit
.

Два режима:

  • Form
    (по умолчанию) — заимствует только те реквизиты объекта, которые уже выведены на форму. Оптимальный выбор для большинства случаев
  • All
    — заимствует все реквизиты и табличные части объекта. Используй если планируешь выводить на форму реквизиты, которых на ней ещё нет

Типовой сценарий (добавление реквизита + вывод на форму):

  1. /cfe-borrow
    с
    -BorrowMainAttribute
    — заимствовать форму с реквизитами
  2. /meta-edit
    — добавить новый реквизит в объект расширения
  3. /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>