• Иллюстрированный самоучитель по языку системы 1С:Предприятие

    Предопределенные процедуры Модуля документа

    ОбработкаУдаленияПроведения

    Предопределенная процедура обработки удаления проведения документа.

    Синтаксис:

    ОбработкаУдаленияПроведения()
    

    Англоязычный синоним:

    UnPostingProcess
    

    Описание:

    Процедура ОбработкаУдаленияПроведения – предопределенная процедура. Она не является встроенной процедурой языка. Для нее определено только название и синтаксис. Тело процедуры должно быть написано разработчиком конфигурации в Модуле документа (см. "Виды программных модулей"). Вызов процедуры ОбработкаУдаленияПроведения производится в системе 1С:Предприятие неявно при отмене проведения документа или при удалении проведенных документов в любом режиме – интерактивно или программно. (см. СделатьНеПроведенным, Удалить).

    Замечание
    В предопределенных процедурах ОбработкаПроведения и ОбработкаУдаленияПроведения система 1С:Предприятие сама выполняет все действия через транзакцию (см. "Процедуры работы с транзакциями"), поэтому никаких специальных действий по обработке транзакций в этих предопределенных процедурах предпринимать не нужно
    .

    Если в данной предопределенной процедуре установить статус возврата – 0 (например, если данному пользователю нельзя отменять проведение документа) то отмена проведения документа не будет выполнена и будет отменена системная транзакция.

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

    Данная предопределенная процедура может располагаться только в Модулях документов (см. "Виды программных модулей").

    Пример:

    Процедура ОбработкаУдаленияПроведения()
    
    // Процедура выполняется при отмене проведения
    
    // или удалении документа
    
    // Сотрудник — это реквизит документа
    
    СпрСотрудники.НайтиЭлемент(Сотрудник);
    
    // если нашли сотрудника...
    
    Если СпрСотрудники.Выбран() = 1 Тогда
    
    // СтРасч — это реквизит документа
    
    СпрСотрудники.НайтиЭлемент(СтРасч);
    
    ВозвратРасч = 0;
    
    Если СпрСотрудники.Выбран() = 1 Тогда
    
    // если старый расчетчик еще есть — откатим!
    
    ВозвратРасч = 1;
    
    КонецЕсли;
    
    СпрСотрудники.НайтиЭлемент(Сотрудник);
    
    Если ВозвратРасч = 1 Тогда
    
    СпрСотрудники.Родитель = СтРасч;
    
    КонецЕсли;
    
    СпрСотрудники.Записать();
    
    КонецЕсли;
    
    КонецПроцедуры
    

    См. также: СтатусВозврата, СделатьНеПроведенным, Удалить.

    Если Вы заметили ошибку, выделите, пожалуйста, необходимый текст и нажмите CTRL + Enter, чтобы сообщить об этом редактору.