Cc-1c-skills cfe-patch-method

Генерация перехватчика метода в расширении 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-patch-method" ~/.claude/skills/nikolay-shirokov-cc-1c-skills-cfe-patch-method && rm -rf "$T"
manifest: .claude/skills/cfe-patch-method/SKILL.md
source content

/cfe-patch-method — Генерация перехватчика метода

Генерирует

.bsl
файл с декоратором перехвата для заимствованного объекта расширения. Создаёт файл или дописывает в существующий.

Предусловие

Объект должен быть заимствован в расширение (

/cfe-borrow
). Скрипт читает
NamePrefix
из
Configuration.xml
расширения для формирования имени процедуры.

Параметры

ПараметрОписаниеПо умолчанию
ExtensionPath
Путь к расширению (обязат.)
ModulePath
Путь к модулю (обязат.)
MethodName
Имя перехватываемого метода (обязат.)
InterceptorType
Before
/
After
/
ModificationAndControl
(обязат.)
Context
Директива контекста
НаСервере
IsFunction
Метод — функция (добавит
Возврат
)
false

Формат ModulePath

ModulePathФайл
Catalog.X.ObjectModule
Catalogs/X/Ext/ObjectModule.bsl
Catalog.X.ManagerModule
Catalogs/X/Ext/ManagerModule.bsl
Catalog.X.Form.Y
Catalogs/X/Forms/Y/Ext/Form/Module.bsl
CommonModule.X
CommonModules/X/Ext/Module.bsl
Document.X.ObjectModule
Documents/X/Ext/ObjectModule.bsl
Document.X.Form.Y
Documents/X/Forms/Y/Ext/Form/Module.bsl

Аналогично для Report, DataProcessor, InformationRegister и других типов.

Типы перехвата

InterceptorTypeДекораторНазначение
Before
&Перед
Код до вызова оригинального метода
After
&После
Код после вызова оригинального метода
ModificationAndControl
&ИзменениеИКонтроль
Копия тела метода с маркерами
#Вставка
/
#Удаление

Команда

powershell.exe -NoProfile -File .claude/skills/cfe-patch-method/scripts/cfe-patch-method.ps1 -ExtensionPath src -ModulePath "Catalog.Контрагенты.ObjectModule" -MethodName "ПриЗаписи" -InterceptorType Before

Примеры

# Перехват &Перед на сервере
... -ExtensionPath src -ModulePath "Catalog.Контрагенты.ObjectModule" -MethodName "ПриЗаписи" -InterceptorType Before

# Перехват &После на клиенте
... -ExtensionPath src -ModulePath "Document.Заказ.Form.ФормаДокумента" -MethodName "ПослеЗаписиНаСервере" -InterceptorType After -Context "НаКлиенте"

# ИзменениеИКонтроль для функции
... -ExtensionPath src -ModulePath "CommonModule.ОбщийМодуль" -MethodName "ПолучитьДанные" -InterceptorType ModificationAndControl -IsFunction

Генерируемый код (Before)

&НаСервере
&Перед("ПриЗаписи")
Процедура Расш1_ПриЗаписи()
	// TODO: код перед вызовом оригинального метода
КонецПроцедуры