Документ (бизнес-объект)

Материал из GedeminWiki
Перейти к: навигация, поиск

Документы предназначены для отражения разнообразных событий происходящих в хозяйственной жизни предприятия. Документы несколько по иному сохраняются в базе данных и обрабатываются системой. Все документы подразделяются на простые, однопозиционные, например, платежное поручение, и сложные, многопозиционные, например, товарная накладная. Общие данные документа, такие как его номер и дата регистрации, хранятся в таблице 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
Персональные инструменты
Пространства имён

Варианты
Действия
Навигация
Инструменты