OnCloseDocument - Событие закрытие документа
Событие закрытие документа.
Событие OnCloseDocument является одним из самым главным событием в системе и часто имеет достаточно обьемный код. Обработчик данного события призван решать следующие задачи :
- Генерация заголовка документа
- Генерация связей в бизнес-процессе
- Проверка целостности и установка флагов по документу
- Генерация учетной информации
Синтаксис вызова события :
PROCEDURE OnCloseDocument :
define input parameter rid-doc as integer.
Где rid-doc - внутренний номер закрываемого в форме или обрабатываемого в автоматическом режиме документа.
Пример Использования:
PROCEDURE OnCloseDocument :
define input parameter rid-doc as integer.
define variable doc-date as date.
define variable doc-num as integer.
define variable doc-descr as character.
define variable doc-currency as integer initial 0.
define variable doc-fil as integer.
define variable tovar as character.
define variable tovar-obj as character.
define variable sum as decimal.
define variable price as decimal.
define variable sumdoc as decimal.
define variable rows as integer.
define variable i as integer.
define variable whouse as integer.
define variable quantity as decimal.
define variable costs as decimal.
define variable sumpr as decimal initial 0.
define variable count as character.
define variable count-def as character.
run src/kernel/get_ffv.p ( "1:1", rid-doc ).
doc-date = DATE ( RETURN-VALUE ).
run src/kernel/get_ffv.p ( "1:2", rid-doc ).
doc-num = INTEGER ( RETURN-VALUE ).
run src/kernel/get_ffv.p ( "1:5", rid-doc ).
whouse = INTEGER ( RETURN-VALUE ).
run src/kernel/get_ffv.p ( "1:3", rid-doc ).
doc-fil = INTEGER ( RETURN-VALUE ).
run src/kernel/get_ffv.p ( "1:4", rid-doc ).
sumdoc = DECIMAL ( RETURN-VALUE ).
run src/kernel/get_ffv.p ( "1:6", rid-doc ).
doc-descr = RETURN-VALUE.
run src/kernel/get_ffv.p ( "1:7", rid-doc ).
count-def = RETURN-VALUE.
run src/kernel/get_tr.p ( 2, rid-doc, OUTPUT rows ).
DO i = 1 TO rows :
run src/kernel/get_ftv.p ( "2:2", rid-doc, i ).
tovar = RETURN-VALUE.
run src/kernel/wr_toobj.p ( tovar, OUTPUT tovar-obj ).
run src/kernel/get_ftv.p ( "2:4", rid-doc, i ).
quantity = DECIMAL ( RETURN-VALUE ).
run src/kernel/get_ftv.p ( "2:3", rid-doc, i ).
price = DECIMAL ( RETURN-VALUE ).
costs = ROUND ( price * quantity, 2).
run src/kernel/get_ftv.p ( "2:6", rid-doc, i ).
count = RETURN-VALUE.
if count = "" then count = count-def.
run src/kernel/gen_opr.p ( rid-doc, doc-date,count,"719",
tovar-obj,"", costs,0,0,0,quantity,
doc-descr ).
run src/kernel/wh_in.p ( rid-doc, doc-date, whouse, tovar-obj,
quantity, costs ).
run src/kernel/wh_own.p ( yes, count, 0, 0, no ).
END.
run src/kernel/gen_doc.p( rid-doc,doc-num,doc-fil,doc-date,doc-descr,
sumdoc,doc-currency).
END.