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

Материал из GedeminWiki
(Различия между версиями)
Перейти к: навигация, поиск
(Обработчики событий компонентов на экранных формах)
(Типовые проводки)
 
(не показаны 2 промежуточные версии 1 участника)
Строка 10: Строка 10:
  
 
Экранная форма диалогового окна хранится в текстовом представлении, в формате DFM, в значении с именем РУИД-а документа, в подветке корневой ветки '''DFM''' глобального [[Хранилище|хранилища]]. Имя подветки соответствует имени класса диалогового окна, которое возвращает функция класса [[GdcBase.TgdcBase.GetDialogFormClassName|GetDialogFormClassName]].
 
Экранная форма диалогового окна хранится в текстовом представлении, в формате DFM, в значении с именем РУИД-а документа, в подветке корневой ветки '''DFM''' глобального [[Хранилище|хранилища]]. Имя подветки соответствует имени класса диалогового окна, которое возвращает функция класса [[GdcBase.TgdcBase.GetDialogFormClassName|GetDialogFormClassName]].
 +
 +
Бизнес-класс: [[GdcStorage.TgdcStorage|TgdcStorage]]
  
 
   SELECT
 
   SELECT
Строка 47: Строка 49:
  
 
===Перекрытые методы бизнес-классов и экранных форм===
 
===Перекрытые методы бизнес-классов и экранных форм===
 +
 +
Бизнес-класс: [[GdcEvent.TgdcEvent|TgdcEvent]]
  
 
   SELECT
 
   SELECT
Строка 77: Строка 81:
  
 
===Обработчики событий компонентов на экранных формах===
 
===Обработчики событий компонентов на экранных формах===
 +
 +
Бизнес-класс: [[GdcEvent.TgdcEvent|TgdcEvent]]
  
 
   SELECT
 
   SELECT
Строка 92: Строка 98:
  
 
Отчеты бизнес-класса и экранной формы просмотра.
 
Отчеты бизнес-класса и экранной формы просмотра.
 +
 +
Бизнес-класс: [[GdcReport.TgdcReport|TgdcReport]]
  
 
   SELECT
 
   SELECT
Строка 116: Строка 124:
  
 
===Макросы экранной формы просмотра===
 
===Макросы экранной формы просмотра===
 +
 +
Бизнес-класс: [[GdcMacros.TgdcMacros|TgdcMacros]]
  
 
   SELECT
 
   SELECT
Строка 128: Строка 138:
 
     AND
 
     AND
 
     p.name LIKE '%' || :RUID
 
     p.name LIKE '%' || :RUID
 +
 +
===Типовые проводки===
 +
 +
Бизнес-класс: [[GdcAcctTransaction.TgdcAcctTransactionEntry|TgdcAcctTransactionEntry]]
 +
 +
  SELECT
 +
    tr.id
 +
  FROM
 +
    ac_trrecord tr
 +
    JOIN gd_documenttype dt ON dt.id = tr.documenttypekey
 +
  WHERE
 +
    dt.ruid = :RUID
 +
 +
===Скрипт-объекты===
 +
 +
Скрипт-объекты для экранных форм.
 +
 +
Бизнес-класс: [[GdcDelphiObject.TgdcDelphiObject|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
 +
 +
===Параметры документа===
 +
 +
Бизнес-класс: [[GdcInvDocumentOptions.TgdcInvDocumentTypeOptions|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
 +
 +
===Таблицы шапки и позиций===
 +
 +
Бизнес-класс: [[GdcMetaData.TgdcRelation|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
 +
 +
 +
[[Category:Бизнес-объект]]

Текущая версия на 14:22, 17 декабря 2015

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

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