Два обработчика расширения обрамляют настоящую процедуру заимствованного объекта. Исходная процедура продолжает выполняться.
Где и как запускать
Модуль объекта заимствованной собственной обработки в расширении; сервер.
Подготовка
В своей учебной конфигурации создайте обработку УчебныйРасчет. В ее модуле объекта разместите полный исходный модуль из отдельного блока ниже.
Создайте свое расширение, заимствуйте эту обработку и вставьте приведенный блок в ее модуль объекта расширения. На сервере создайте объект через Обработки.УчебныйРасчет.Создать() и вызовите его ПоказатьУчебнуюСумму().
&Перед("ПоказатьУчебнуюСумму")
Процедура ДоУчебнойСуммы()
Сообщить("До исходной процедуры");
КонецПроцедуры
&После("ПоказатьУчебнуюСумму")
Процедура ПослеУчебнойСуммы()
Сообщить("После исходной процедуры");
КонецПроцедурыИсходный модуль объекта УчебныйРасчет
Исходная учебная конфигурация → Обработки → УчебныйРасчет → Модуль объекта
Серверный модуль собственного объекта; это исходный код, не модуль расширения.
Процедура ПоказатьУчебнуюСумму() Экспорт
Первое = 50;
Второе = 75;
Сообщить(Первое + Второе);
КонецПроцедурыРазбор по шагам
Подготовьте исходную экспортную процедуру.
Укажите ее точное имя в двух аннотациях.
Вызовите исходный метод через настоящий объект обработки.
Как проверить результат
Порядок сообщений: До исходной процедуры, 125, После исходной процедуры.
Число параметров аннотированных процедур совпадает с исходной процедурой.
Ожидаемый результат
Понятный порядок выполнения своего исходного метода и обработчиков расширения.
На что обратить внимание
Не вызывайте ДоУчебнойСуммы и ПослеУчебнойСуммы вручную. Для функций аннотации Перед и После не подходят; применяются Вместо или ИзменениеИКонтроль.
Пример не запускался в вашей базе. Перед применением проверьте его в указанном учебном контексте.