Документ (бизнес-объект)
SYSDBA (обсуждение | вклад) (→Составные части документа) |
SYSDBA (обсуждение | вклад) (→1) |
||
| Строка 46: | Строка 46: | ||
AND v.data_type = 'B' | AND v.data_type = 'B' | ||
| − | === | + | ===Перекрытые методы бизнес-классов и экранных форм=== |
| + | |||
| + | SELECT | ||
| + | ev.* | ||
| + | FROM | ||
| + | evt_objectevent ev | ||
| + | JOIN evt_object o ON o.id = ev.objectkey | ||
| + | JOIN evt_object r ON r.lb < o.lb AND r.rb >= o.rb | ||
| + | WHERE | ||
| + | r.parent IS NULL | ||
| + | AND | ||
| + | r.NAME = 'TgdcBase' | ||
| + | AND | ||
| + | o.name LIKE '%' || :RUID | ||
| + | |||
| + | UNION ALL | ||
| + | |||
| + | SELECT | ||
| + | ev.* | ||
| + | FROM | ||
| + | evt_objectevent ev | ||
| + | JOIN evt_object o ON o.id = ev.objectkey | ||
| + | JOIN evt_object r ON r.lb < o.lb AND r.rb >= o.rb | ||
| + | WHERE | ||
| + | r.parent IS NULL | ||
| + | AND | ||
| + | r.NAME = 'TgdcCreateableForm' | ||
| + | AND | ||
| + | o.name LIKE '%' || :RUID | ||
| + | |||
| + | ===Обработчики событий компонентов на экранных формах=== | ||
| + | |||
| + | SELECT | ||
| + | ev.* | ||
| + | FROM | ||
| + | evt_objectevent ev | ||
| + | JOIN evt_object o ON o.id = ev.objectkey | ||
| + | JOIN evt_object p ON p.id = o.parent | ||
| + | WHERE | ||
| + | p.parent IS NULL | ||
| + | AND | ||
| + | p.name LIKE '%' || :RUID | ||
Версия 12:50, 17 декабря 2015
Документы предназначены для отражения разнообразных событий происходящих в хозяйственной жизни предприятия. Документы несколько по иному сохраняются в базе данных и обрабатываются системой. Все документы подразделяются на простые, однопозиционные, например, платежное поручение, и сложные, многопозиционные, например, товарная накладная. Общие данные документа, такие как его номер и дата регистрации, хранятся в таблице gd_document. Специфические данные, свойственные только документу определенного класса, хранятся в одной таблице, для простых, или в двух — для сложных документов. Зарегистрированный в системе документ может быть проведен, т.е. для него будет сформирована хозяйственная операция и одна или несколько бухгалтерских проводок.
Алгоритм, по которому конкретному документу сопоставляется хозяйственная операция и бухгалтерская проводка задается в специальном конструкторе, освоить который сможет даже далекий от программирования бухгалтер или экономист.
Содержание |
Составные части документа
Ниже перечислены составные части документа и приведены запросы для извлечения информации о них из базы данных. Параметр RUID в запросе -- это RUID типа документа.
Экранные формы
Экранная форма диалогового окна хранится в текстовом представлении, в формате DFM, в значении с именем РУИД-а документа, в подветке корневой ветки DFM глобального хранилища. Имя подветки соответствует имени класса диалогового окна, которое возвращает функция класса GetDialogFormClassName.
SELECT
v.id
FROM
gd_storage_data glbl
JOIN gd_storage_data dfm
ON dfm.parent = glbl.id AND dfm.name = 'DFM'
JOIN gd_storage_data frm_class
ON frm_class.parent = dfm.id
JOIN gd_storage_data v
ON v.parent = frm_class.id
WHERE
glbl.name = 'GLOBAL' AND glbl.data_type = 'G'
AND v.name = :RUID AND v.data_type = 'B'
Форма просмотра хранится аналогичным образом.
Визуальные настройки гридов диалоговой формы и формы просмотра хранятся в хранилище пользователя. Пример: \gdc_dlgUserComplexDocument147093641_497053859(Tgdc_dlgUserComplexDocument)\ibgrDetail(TgsIBGrid)\data
SELECT
v.id
FROM
gd_storage_data usr
JOIN gd_storage_data frm
ON frm.parent = usr.id
JOIN gd_storage_data ibgr
ON ibgr.parent = frm.id
JOIN gd_storage_data v
ON v.parent = ibgr.id
WHERE
usr.id = 990010
AND frm.name CONTAINING :N
AND ibgr.name LIKE 'ibgr%'
AND v.name = 'data'
AND v.data_type = 'B'
Перекрытые методы бизнес-классов и экранных форм
SELECT ev.* FROM evt_objectevent ev JOIN evt_object o ON o.id = ev.objectkey JOIN evt_object r ON r.lb < o.lb AND r.rb >= o.rb WHERE r.parent IS NULL AND r.NAME = 'TgdcBase' AND o.name LIKE '%' || :RUID UNION ALL SELECT ev.* FROM evt_objectevent ev JOIN evt_object o ON o.id = ev.objectkey JOIN evt_object r ON r.lb < o.lb AND r.rb >= o.rb WHERE r.parent IS NULL AND r.NAME = 'TgdcCreateableForm' AND o.name LIKE '%' || :RUID
Обработчики событий компонентов на экранных формах
SELECT ev.* FROM evt_objectevent ev JOIN evt_object o ON o.id = ev.objectkey JOIN evt_object p ON p.id = o.parent WHERE p.parent IS NULL AND p.name LIKE '%' || :RUID