Чтобы отловить событие пометки на удаление записи БД в 1С, можно воспользоваться следующим кодом:
Процедура ПриЗаписи(Отказ)
Если пометкаУдаления = Истина Тогда
Сообщить("привет");
КОнецЕсли;
КонецПроцедуры
Этот код надо разместить в модуле документа. В модуле документа обработчик срабатывает всегда когда документа записывается, не важно из списка или открывая/закрывая документ, и даже если это делать программно средствами языка.
Или еще можно так:
ПередЗаписью(<Отказ>, <РежимЗаписи>, <РежимПроведения>)
Если Ссылка.ПометккаУдаления = Ложь И ПометкаУдаления = Истина Тогда
// Выполняю свои процедуры
КонецЕсли;
КонецПроцедуры
Или так:
Процедура ПередЗаписью(Отказ)
Если (этотобъект.ПометкаУдаления) И (НЕ ссылка.ПометкаУдаления) Тогда
Отказ=Истина;
КонецЕсли;
КонецПроцедуры
В общем, в ПередЗаписью сравнить ПометкаУдаления с Ссылка.ПометкаУдаления, и выполнить нужные действия:
ЕСли { Ссылка.ПометкаУдаления = Истина, ПометкаУдаления = ложь } - Это отмена пометки удаления
ЕСли { Ссылка.ПометкаУдаления = ложь, ПометкаУдаления = истина } - Это установка пометки удаления
Если они равны (оба ложь или оба истина) то это обычная запись объекта не относыщаяся к пометке удаления.
Ну и ориентируясь на эти флаги добавляйте свою логику и при необходимости выставляйте флаг отказ = истина.