Продолжить свою функцию из расширения ровно один раз

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

ПродолжитьВызов работает в расширении с аннотацией Вместо. Параметры должны совпадать с заимствованной функцией.

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

Серверный общий модуль собственного расширения, аннотация Вместо.

Подготовка

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

  2. В своей учебной конфигурации создайте серверный общий модуль УчебныеРасчеты с экспортной функцией Сложить(Первое, Второе), возвращающей Первое + Второе. Заимствуйте этот модуль в собственное расширение; вставьте блок в его модуль, не в форму.

&Вместо("Сложить")
Функция УчебноеРасширениеСложить(Первое, Второе)
    РезультатОсновнойФункции = ПродолжитьВызов(Первое, Второе);
    Сообщить("Основная функция вернула: " + Строка(РезультатОсновнойФункции));
    Возврат РезультатОсновнойФункции;
КонецФункции

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

  1. Создайте реальную исходную функцию и заимствуйте модуль.

  2. Переопределите Сложить через Вместо.

  3. Вызовите исходный модуль со значениями 50 и 75.

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

  1. ПродолжитьВызов встречается один раз.

  2. Расширение возвращает настоящий результат исходной функции 125.

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

Показан вызов расширяемой функции с сохранением ее результата.

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

  1. Нельзя вызывать в обычном модуле или повторно в том же переопределении. Не переносите пример на чужую функцию с другими параметрами.

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

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

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

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

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