Add 5 new skills for 1C configuration extensions (CFE): - cfe-init: create extension scaffold with Configuration.xml, Languages, Roles - cfe-borrow: borrow objects from configuration with ObjectBelonging=Adopted - cfe-patch-method: generate &Перед, &После, &ИзменениеИКонтроль decorators - cfe-validate: validate extension structure with 9 checks - cfe-diff: analyze extension and check transfer status Remove ConfigDumpInfo.xml from cf-init scaffold as it's not required for 1C configuration source files. Add cfe-guide documentation.
9.2 KiB
Расширения конфигурации (CFE)
Навыки группы /cfe-* позволяют создавать, заимствовать объекты, перехватывать методы, проверять и анализировать расширения конфигурации 1С.
Навыки
| Навык | Параметры | Описание |
|---|---|---|
/cfe-init |
<Name> [-Purpose Patch|Customization|AddOn] [-CompatibilityMode] |
Создание расширения (scaffold XML-исходников) |
/cfe-borrow |
-ExtensionPath <path> -ConfigPath <path> -Object "Type.Name" |
Заимствование объектов из конфигурации |
/cfe-patch-method |
-ExtensionPath <path> -ModulePath "Type.Name.Module" -MethodName "X" -InterceptorType Before |
Генерация перехватчика метода |
/cfe-validate |
<ExtensionPath> [-MaxErrors 30] |
Валидация структурной корректности (9 проверок) |
/cfe-diff |
-ExtensionPath <path> -ConfigPath <path> [-Mode A|B] |
Анализ расширения и проверка переноса |
Рабочий цикл
cf-info (версия, совместимость)
↓
/cfe-init → scaffold расширения
↓
/cfe-borrow → заимствование объектов из конфигурации
↓
/cfe-patch-method → перехват методов
↓
/cfe-validate → проверка корректности
↓
/cfe-diff Mode A → обзор изменений
Типичные сценарии
Создание расширения для исправления бага
> Создай расширение для исправления бага в справочнике Контрагенты,
конфигурация ERP в C:\cfsrc\erp
Claude выполнит:
/cf-info C:\cfsrc\erp -Mode brief— получить версию и режим совместимости/cfe-init— создать расширение с нужнымCompatibilityMode/cfe-borrow— заимствоватьCatalog.Контрагенты/cfe-patch-method— создать перехватчик нужного метода/cfe-validate— проверить результат
Анализ существующего расширения
> Покажи что изменено в расширении src/
Claude вызовет /cfe-diff -Mode A и покажет: заимствованные объекты, перехватчики, собственные объекты.
Проверка переноса изменений
> Проверь, все ли изменения из расширения перенесены в конфигурацию
Claude вызовет /cfe-diff -Mode B — найдёт блоки #Вставка и проверит их наличие в конфигурации.
cfe-init — создание расширения
Параметры:
| Параметр | Описание | По умолчанию |
|---|---|---|
Name |
Имя расширения (обязат.) | — |
Synonym |
Синоним | = Name |
NamePrefix |
Префикс собственных объектов | = Name + "_" |
OutputDir |
Каталог | src |
Purpose |
Назначение | Customization |
Version |
Версия | — |
Vendor |
Поставщик | — |
CompatibilityMode |
Режим совместимости | Version8_3_24 |
NoRole |
Без основной роли | false |
Создаёт:
<OutputDir>/
├── Configuration.xml # Свойства расширения
├── Languages/
│ └── Русский.xml # Язык (Adopted)
└── Roles/ # Если не -NoRole
└── <Prefix>ОсновнаяРоль.xml
Назначение расширения (Purpose):
Patch— исправление ошибок (минимальные изменения, только перехватчики)Customization— доработка (реквизиты, формы, модули)AddOn— дополнение (полноценный функционал)
cfe-borrow — заимствование объектов
Заимствует объекты из основной конфигурации в расширение. Создаёт минимальные XML-файлы с ObjectBelonging=Adopted и ExtendedConfigurationObject.
Формат -Object:
Catalog.Контрагенты— справочникCommonModule.РаботаСФайлами— общий модульEnum.ВидыОплат— перечислениеDocument.Заказ ;; Catalog.Товары— несколько объектов через;;
Поддерживаемые типы: Catalog, Document, Enum, CommonModule, Report, DataProcessor, ExchangePlan, InformationRegister, AccumulationRegister, AccountingRegister, CalculationRegister, ChartOfAccounts, ChartOfCharacteristicTypes, ChartOfCalculationTypes, BusinessProcess, Task, и другие (44 типа).
cfe-patch-method — перехват методов
Генерирует .bsl файл с декоратором перехвата для заимствованного объекта.
Параметры:
| Параметр | Описание |
|---|---|
ModulePath |
Catalog.X.ObjectModule, CommonModule.Y, Catalog.X.Form.Z |
MethodName |
Имя перехватываемого метода |
InterceptorType |
Before / After / ModificationAndControl |
Context |
НаСервере / НаКлиенте / НаСервереБезКонтекста |
IsFunction |
Добавить Возврат |
Типы перехватчиков:
| Тип | Декоратор | Когда использовать |
|---|---|---|
Before |
&Перед |
Выполнить код до вызова оригинального метода |
After |
&После |
Выполнить код после вызова оригинального метода |
ModificationAndControl |
&ИзменениеИКонтроль |
Полная замена тела метода с маркерами #Вставка/#Удаление |
Пример генерируемого кода (Before):
&НаСервере
&Перед("ПриЗаписи")
Процедура Расш1_ПриЗаписи()
// TODO: код перед вызовом оригинального метода
КонецПроцедуры
cfe-validate — проверки
| # | Проверка | Уровень |
|---|---|---|
| 1 | XML well-formedness, MetaDataObject/Configuration, version | ERROR |
| 2 | InternalInfo: 7 ContainedObject, валидные ClassId | ERROR |
| 3 | Extension properties: ObjectBelonging=Adopted, Name, Purpose, NamePrefix, KeepMapping | ERROR |
| 4 | Enum-значения (4 свойства) | ERROR |
| 5 | ChildObjects: валидные типы, нет дубликатов, порядок | ERROR/WARN |
| 6 | DefaultLanguage ссылается на существующий Language | ERROR |
| 7 | Файлы языков существуют | WARN |
| 8 | Каталоги объектов существуют | WARN |
| 9 | Заимствованные объекты: ObjectBelonging=Adopted, ExtendedConfigurationObject UUID | ERROR/WARN |
cfe-diff — режимы
Mode A — обзор расширения
Для каждого объекта показывает:
[BORROWED]— заимствованный: перехватчики, собственные реквизиты/формы[OWN]— собственный: количество реквизитов, ТЧ, форм
Mode B — проверка переноса
Для каждого &ИзменениеИКонтроль проверяет, перенесены ли блоки #Вставка в конфигурацию:
[TRANSFERRED]— код найден в конфигурации[NOT_TRANSFERRED]— код не найден[NEEDS_REVIEW]— нет блоков#Вставкаили модуль конфигурации не найден
Связь с другими навыками
/cf-info— получение версии и совместимости конфигурации передcfe-init/meta-compile— создание собственных объектов расширения (реквизиты, ТЧ)/form-compile,/form-edit— создание и модификация форм расширения/cfe-validate— всегда проверяйте расширение после изменений
Спецификации
- 1c-extension-spec.md — XML-формат выгрузки расширений конфигурации (CFE)