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

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

Обработчик вызывается настоящим событием документа. После удаления подписки второе сохранение не вызывает этот дополнительный обработчик.

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

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

Подготовка

  1. Создайте в своей учебной конфигурации документ УчебнаяОперация без обязательных реквизитов кроме стандартной даты, без движений и внешних действий в обработчиках.

  2. Поместите обе процедуры в модуль объекта собственной учебной обработки. На сервере создайте ее реальный объект и вызовите ПроверитьУчебнуюПодписку(). Этот пример записывает один свой новый документ дважды; на рабочей базе не выполняйте.

Процедура ПроверитьУчебнуюПодписку() Экспорт
    Документ = Документы.УчебнаяОперация.СоздатьДокумент();
    Документ.Дата = ТекущаяДата();
    ДобавитьОбработчик Документ.ПриЗаписи, УчебныйДокументЗаписан;
    Документ.Записать();
    УдалитьОбработчик Документ.ПриЗаписи, УчебныйДокументЗаписан;
    Документ.Записать();
КонецПроцедуры
Процедура УчебныйДокументЗаписан(Отказ) Экспорт
    Если Не Отказ Тогда
        Сообщить("Сработал дополнительный обработчик записи");
    КонецЕсли;
КонецПроцедуры

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

  1. Создайте настоящий объект собственного документа.

  2. Подпишите процедуру с тем же числом параметров, что у события ПриЗаписи.

  3. После первой записи снимите именно свою подписку и запишите тот же объект повторно.

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

  1. Дополнительное сообщение появляется один раз при двух успешных записях.

  2. Обработчик не вызывается вручную, удаление использует ту же пару событие/процедура.

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

Показана разница между добавлением, срабатыванием и удалением дополнительного обработчика.

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

  1. Запись постоянная, это не чтение. При исключении между добавлением и удалением короткий пример не гарантирует снятие подписки. Снятие этой подписки не отключает штатные обработчики документа.

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

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

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

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

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