/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. Пока улики нет, считай перехват незавершённым фактом и сообщай о пробеле контракта.
Примеры
Перехват Перед в модуле объекта
Поля, которые должен нести записанный файл:
{
"ExtensionPath": "src",
"ModulePath": "Catalog.Контрагенты.ObjectModule",
"MethodName": "ОбновитьДанные",
"InterceptorType": "Before"
}
Перехват обычной процедуры формы После на клиенте
Поля, которые должен нести записанный файл:
{
"ExtensionPath": "src",
"ModulePath": "Document.Заказ.Form.ФормаДокумента",
"MethodName": "ОбновитьОтображение",
"InterceptorType": "After",
"Context": "НаКлиенте"
}
Перехват процедуры общего модуля
Поля, которые должен нести записанный файл:
{
"ExtensionPath": "src",
"ModulePath": "CommonModule.ОбщийМодуль",
"MethodName": "ОбновитьДанные",
"InterceptorType": "Before"
}
Генерируемый код (Before)
&Перед("ОбновитьДанные")
Процедура Расш1_ОбновитьДанные()
// TODO: код перед вызовом оригинального метода
КонецПроцедуры