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

Материал из GedeminWiki
(Различия между версиями)
Перейти к: навигация, поиск
(Составные части документа)
(Типовые проводки)
 
(не показаны 5 промежуточных версий 1 участника)
Строка 5: Строка 5:
 
==Составные части документа==
 
==Составные части документа==
  
# Экранная форма диалогового окна хранится в текстовом представлении, в формате DFM, в значении с именем РУИД-а документа, в подветке корневой ветки '''DFM''' глобального [[Хранилище|хранилища]]. Имя подветки соответствует имени класса диалогового окна, которое возвращает функция класса [[GdcBase.TgdcBase.GetDialogFormClassName|GetDialogFormClassName]].
+
Ниже перечислены составные части документа и приведены запросы для извлечения информации о них из базы данных. Параметр RUID в запросе -- это RUID типа документа.
# Экранная форма просмотра хранится аналогично диалоговому окну, см.выше.
+
 
# Визуальные настройки гридов диалоговой формы и формы просмотра хранятся в хранилище пользователя. Пример: '''\gdc_dlgUserComplexDocument147093641_497053859(Tgdc_dlgUserComplexDocument)\ibgrDetail(TgsIBGrid)\data'''
+
===Экранные формы===
#
+
 
 +
Экранная форма диалогового окна хранится в текстовом представлении, в формате DFM, в значении с именем РУИД-а документа, в подветке корневой ветки '''DFM''' глобального [[Хранилище|хранилища]]. Имя подветки соответствует имени класса диалогового окна, которое возвращает функция класса [[GdcBase.TgdcBase.GetDialogFormClassName|GetDialogFormClassName]].
 +
 
 +
Бизнес-класс: [[GdcStorage.TgdcStorage|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'
 +
 
 +
===Перекрытые методы бизнес-классов и экранных форм===
 +
 
 +
Бизнес-класс: [[GdcEvent.TgdcEvent|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
 +
 
 +
===Обработчики событий компонентов на экранных формах===
 +
 
 +
Бизнес-класс: [[GdcEvent.TgdcEvent|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
 +
 
 +
===Отчеты===
 +
 
 +
Отчеты бизнес-класса и экранной формы просмотра.
 +
 
 +
Бизнес-класс: [[GdcReport.TgdcReport|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
 +
 
 +
===Макросы экранной формы просмотра===
 +
 
 +
Бизнес-класс: [[GdcMacros.TgdcMacros|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
 +
 
 +
===Типовые проводки===
 +
 
 +
Бизнес-класс: [[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
Персональные инструменты
Пространства имён

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