Расширение: выполнить код до и после своей процедуры

Учебные задачи

Два обработчика расширения обрамляют настоящую процедуру заимствованного объекта. Исходная процедура продолжает выполняться.

Где и как запускать

Модуль объекта заимствованной собственной обработки в расширении; сервер.

Подготовка

  1. В своей учебной конфигурации создайте обработку УчебныйРасчет. В ее модуле объекта разместите полный исходный модуль из отдельного блока ниже.

  2. Создайте свое расширение, заимствуйте эту обработку и вставьте приведенный блок в ее модуль объекта расширения. На сервере создайте объект через Обработки.УчебныйРасчет.Создать() и вызовите его ПоказатьУчебнуюСумму().

&Перед("ПоказатьУчебнуюСумму")
Процедура ДоУчебнойСуммы()
    Сообщить("До исходной процедуры");
КонецПроцедуры
&После("ПоказатьУчебнуюСумму")
Процедура ПослеУчебнойСуммы()
    Сообщить("После исходной процедуры");
КонецПроцедуры
Исходный модуль объекта УчебныйРасчет

Исходная учебная конфигурация → Обработки → УчебныйРасчет → Модуль объекта

Серверный модуль собственного объекта; это исходный код, не модуль расширения.

Процедура ПоказатьУчебнуюСумму() Экспорт
    Первое = 50;
    Второе = 75;
    Сообщить(Первое + Второе);
КонецПроцедуры

Разбор по шагам

  1. Подготовьте исходную экспортную процедуру.

  2. Укажите ее точное имя в двух аннотациях.

  3. Вызовите исходный метод через настоящий объект обработки.

Как проверить результат

  1. Порядок сообщений: До исходной процедуры, 125, После исходной процедуры.

  2. Число параметров аннотированных процедур совпадает с исходной процедурой.

Ожидаемый результат

Понятный порядок выполнения своего исходного метода и обработчиков расширения.

На что обратить внимание

  1. Не вызывайте ДоУчебнойСуммы и ПослеУчебнойСуммы вручную. Для функций аннотации Перед и После не подходят; применяются Вместо или ИзменениеИКонтроль.

Пример не запускался в вашей базе. Перед применением проверьте его в указанном учебном контексте.

Не хотите разбираться сами?

Адаптируем это решение под вашу базу. Оценка бесплатно.

Оставить задачу

1С, 1С:Предприятие — товарные знаки ООО «1С». Сайт не является официальным представительством фирмы «1С» и не аффилирован с ней.