Генерация перехватчика процедуры в расширении 1С (CFE). Используй для Before/After-перехвата существующей процедуры без параметров у заимствованного объекта
Installs into .claude/skills of the current project.
Are you the author of Cfe Patch Method?
Add the live security badge to your README. It updates with every re-scan.
[](https://www.skillsdirectory.com/skills/ingvarconsulting-cfe-patch-method)
---
name: cfe-patch-method
description: Генерация перехватчика процедуры в расширении 1С (CFE). Используй для Before/After-перехвата существующей процедуры без параметров у заимствованного объекта
argument-hint: -ExtensionPath <path> -ModulePath "Catalog.X.ObjectModule" -MethodName "ОбновитьДанные" -InterceptorType Before
allowed-tools:
- Bash
- Read
- Glob
---
# /cfe-patch-method — Генерация перехватчика процедуры
## MCP routing
- **Канонической операции перехвата на поверхности нет.** `unica.apply` правит
код существующего модуля (`code.insert`, `code.replace`), но модуль
расширения для заимствованного объекта вместе с пометкой перекрытого
свойства (`xr:PropertyState`) ни одна операция не создаёт.
- Не зови внутренние адаптеры напрямую: они спрятаны за MCP `unica`.
- Готовность проверяет `unica.check`, результат читает `unica.view` по адресу.
Что делать сейчас: заимствовать объект (см. `cfe-borrow`), затем записать
`.bsl` с декоратором `&Перед` или `&После` по формату ниже и пометить свойство
модуля в дескрипторе расширения. Проверить результат — `unica.check` на узле
модуля, прочитать — `unica.view`.
Форма пометки перекрытия платформенной уликой пока не подтверждена: её снимает
круговой путь из отдельной архитектурной записки Unica. Пока
улики нет, считай перехват незавершённым фактом и сообщай о пробеле контракта.
## Примеры
### Перехват Перед в модуле объекта
Поля, которые должен нести записанный файл:
```json
{
"ExtensionPath": "src",
"ModulePath": "Catalog.Контрагенты.ObjectModule",
"MethodName": "ОбновитьДанные",
"InterceptorType": "Before"
}
```
### Перехват обычной процедуры формы После на клиенте
Поля, которые должен нести записанный файл:
```json
{
"ExtensionPath": "src",
"ModulePath": "Document.Заказ.Form.ФормаДокумента",
"MethodName": "ОбновитьОтображение",
"InterceptorType": "After",
"Context": "НаКлиенте"
}
```
### Перехват процедуры общего модуля
Поля, которые должен нести записанный файл:
```json
{
"ExtensionPath": "src",
"ModulePath": "CommonModule.ОбщийМодуль",
"MethodName": "ОбновитьДанные",
"InterceptorType": "Before"
}
```
## Генерируемый код (Before)
```bsl
&Перед("ОбновитьДанные")
Процедура Расш1_ОбновитьДанные()
// TODO: код перед вызовом оригинального метода
КонецПроцедуры
```