Предопределенные процедуры Модуля документа
Описанные в данном разделе системные предопределенные процедуры должны располагаться только в Модулях документов (см. "Виды программных модулей").
Данные предопределенные процедуры вызываются как при интерактивном так и при программном возникновении события.
Предопределенные процедуры не является встроенными процедурами языка. Для них зарезервированы только название и синтаксис. Тело процедур должно быть написано самим разработчиком в соответствующих программных модулях. Вызов предопределенных процедур на исполнение производится в системе 1С:Предприятие неявно при возникновении соответствующего события. Описание предопределенных процедур также см. гл. "Системные предопределенные процедуры".
ОбработкаПроведения
Предопределенная процедура обработки проведения документа.
Синтаксис:
ОбработкаПроведения(<3нач>)
Англоязычный синоним:
Posting
Параметры:
<3нач> | Необязательный параметр. Идентификатор переменной, в которую системой будет передано значение параметра, если проведение документа запущено программно при помощи метода Провести. Использовать данное значение можно, например, для того, чтобы в процедуре ОбработкаПроведения правильно отработать режим проведения, т. к. в случае вызова метода Провести это будет программный, а не интерактивный и не групповой (см. ГрупповаяОбработка) способ проведения документа. |
Описание:
Процедура ОбработкаПроведения – предопределенная процедура. Она не является встроенной процедурой языка. Для нее определено только название и синтаксис. Тело процедуры должно быть написано разработчиком конфигурации в Модуле документа (см. "Виды программных модулей"). Собственно говоря, весь алгоритм проведения документа и заключается в данной процедуре.
Вызов процедуры ОбработкаПроведения производится в системе 1С:Предприятие неявно при выполнении проведения документа в любом режиме (интерактивное проведение документа, групповое проведение, программная инициализация проведения при помощи метода Провести). Если проведение документа запущено программно, то система подставляет фактическое значение параметра <3нач>, содержащее значение параметра, заданного при вызове метода Провести.
Замечание
В предопределенных процедурах ОбработкаПроведения и ОбработкаУдаленияПроведения система 1С:Предприятие сама выполняет все действия через транзакцию (см. "Процедуры работы с транзакциями"), поэтому никаких специальных действий по обработке транзакций в этих предопределенных процедурах предпринимать не нужно.
Если в данной предопределенной процедуре установить статус возврата – 0 (например, если данному пользователю нельзя проводить документ), то проведение документа не будет выполнено и будет отменена системная транзакция.
Замечание
В предопределенных процедурах ОбработкаПроведения и ОбработкаУдаленияПроведения нельзя использовать элементы интерактивного управления (например, операторы Предупреждение, Вопрос, ВвестиЧисло и т. п.), т. к. в этом случае при открытой транзакции система ожидает отклика пользователя, а все остальные пользователи ждут завершения транзакции (в результате документы у всех остальных пользователей в этот момент не могут проводиться). Если в конфигурации необходимо при проведении документа выдавать пользователю некоторые coofi щения, то следует использовать операторы Сообщить или Состояние.
Для корректного выполнения алгоритма проведения документа в Модуле документа доступны методы ИтогиАктуальны и ГрупповаяОбработка, которые позволяют правильно определить режим проведения документа (см. "Работа с документами").
Данная предопределенная процедура может располагаться только в Модулях документов (см. "Виды программных модулей").
Пример:
Процедура ОбработкаПроведения() Регистр.ТовЗап.Склад = Склад; ВыбратьСтроки(); Пока( ПолучитьСтроку() > 0) Цикл Регистр.ТовЗап.Товар = Товар; Регистр.ТовЗап.Количество = Количество; Регистр.ТовЗап.ДвижениеРасходВыполнить(); КонецЦикла; КонецПроцедуры
См. также: СтатусВозврата, МтогиАктуальны, ГрупповаяОбработка, Провести.