Документ (бизнес-объект)
Документы предназначены для отражения разнообразных событий происходящих в хозяйственной жизни предприятия. Документы несколько по иному сохраняются в базе данных и обрабатываются системой. Все документы подразделяются на простые, однопозиционные, например, платежное поручение, и сложные, многопозиционные, например, товарная накладная. Общие данные документа, такие как его номер и дата регистрации, хранятся в таблице gd_document. Специфические данные, свойственные только документу определенного класса, хранятся в одной таблице, для простых, или в двух — для сложных документов. Зарегистрированный в системе документ может быть проведен, т.е. для него будет сформирована хозяйственная операция и одна или несколько бухгалтерских проводок.
Алгоритм, по которому конкретному документу сопоставляется хозяйственная операция и бухгалтерская проводка задается в специальном конструкторе, освоить который сможет даже далекий от программирования бухгалтер или экономист.
Содержание |
Составные части документа
Ниже перечислены составные части документа и приведены запросы для извлечения информации о них из базы данных. Параметр RUID в запросе -- это RUID типа документа.
Экранные формы
Экранная форма диалогового окна хранится в текстовом представлении, в формате DFM, в значении с именем РУИД-а документа, в подветке корневой ветки DFM глобального хранилища. Имя подветки соответствует имени класса диалогового окна, которое возвращает функция класса GetDialogFormClassName.
Бизнес-класс: TgdcStorage
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'
Перекрытые методы бизнес-классов и экранных форм
Бизнес-класс: TgdcEvent
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
Обработчики событий компонентов на экранных формах
Бизнес-класс: TgdcEvent
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
Отчеты
Отчеты бизнес-класса и экранной формы просмотра.
Бизнес-класс: TgdcReport
SELECT l.id FROM evt_object ev JOIN rp_reportgroup gr ON ev.reportgroupkey = gr.id JOIN rp_reportlist l ON l.REPORTGROUPKEY = gr.id WHERE ev.parent IS NULL AND ev.name LIKE '%' || :RUID UNION ALL SELECT l.id FROM gd_documenttype dt JOIN rp_reportgroup gr ON dt.reportgroupkey = gr.id JOIN rp_reportlist l ON l.REPORTGROUPKEY = gr.id WHERE dt.ruid = :RUID
Макросы экранной формы просмотра
Бизнес-класс: TgdcMacros
SELECT ml.id FROM evt_macroslist ml JOIN evt_macrosgroup mg ON ml.MACROSGROUPKEY = mg.id JOIN evt_macrosgroup mgp ON mgp.lb <= mg.LB AND mgp.rb >= mg.rb JOIN evt_object p ON p.MACROSGROUPKEY = mgp.id WHERE p.parent IS NULL AND p.name LIKE '%' || :RUID
Типовые проводки
Бизнес-класс: TgdcAcctTransactionEntry
SELECT tr.id FROM ac_trrecord tr JOIN gd_documenttype dt ON dt.id = tr.documenttypekey WHERE dt.ruid = :RUID
Скрипт-объекты
Скрипт-объекты для экранных форм.
Бизнес-класс: TgdcDelphiObject
SELECT id FROM evt_object WHERE name LIKE '%' || :RUID AND parent IS NOT NULL
SELECT id FROM evt_object WHERE name LIKE '%' || :RUID AND parent IS NULL
Параметры документа
Бизнес-класс: TgdcInvDocumentTypeOptions
SELECT o.id FROM gd_documenttype_option o JOIN gd_documenttype dt ON dt.id = o.DTKEY JOIN gd_documenttype dth ON dth.LB >= dt.LB AND dth.rb <= dt.rb WHERE dth.ruid = :RUID
Таблицы шапки и позиций
Бизнес-класс: TgdcRelation
SELECT r.id FROM at_relations r JOIN gd_documenttype dt ON dt.headerrelkey = r.id WHERE dt.ruid = :RUID
SELECT r.id FROM at_relations r JOIN gd_documenttype dt ON dt.linerelkey = r.id WHERE dt.ruid = :RUID