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

