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.mdsource content
/cfe-patch-method — Генерация перехватчика метода
Генерирует
.bsl файл с декоратором перехвата для заимствованного объекта расширения. Создаёт файл или дописывает в существующий.
Предусловие
Объект должен быть заимствован в расширение (
/cfe-borrow). Скрипт читает NamePrefix из Configuration.xml расширения для формирования имени процедуры.
Параметры
| Параметр | Описание | По умолчанию |
|---|---|---|
| Путь к расширению (обязат.) | — |
| Путь к модулю (обязат.) | — |
| Имя перехватываемого метода (обязат.) | — |
| / / (обязат.) | — |
| Директива контекста | |
| Метод — функция (добавит ) | false |
Формат ModulePath
| ModulePath | Файл |
|---|---|
| |
| |
| |
| |
| |
| |
Аналогично для Report, DataProcessor, InformationRegister и других типов.
Типы перехвата
| InterceptorType | Декоратор | Назначение |
|---|---|---|
| | Код до вызова оригинального метода |
| | Код после вызова оригинального метода |
| | Копия тела метода с маркерами / |
Команда
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: код перед вызовом оригинального метода КонецПроцедуры