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