алгоритм ТХО АПИ на SQL
Добавлено: 05 янв 2011, 19:45
Предлагется принципиально другой подход к разработке алгоритмов ТХО АПИ. Подход заключается в возможности написания запроса непосредственно в шаблоне проводки ТХО без какой-либо дополнительной компиляции ресурса.
Достоинства:
- Быстродействие на этапе выборки до 10 раз
- удобство и быстрота настройки шаблонов, без использования дополнительных идентификаторов
- гораздо большая визульная наглядность алгоритмов формирования проводок
- возможность проверки правильности запроса через sql-developer
- возможность использования абсолютно всех возможностей SQL (в том числе вложенные запросы, вызов хранимых процедур и др)
- совместимость со стандартными алгоритмами ТХО
- возможность использования внешних таблиц, не входящих в словарь базы данных системы "Галактика"
простейший пример:
По накладной на приход МЦ необходимо сформировать проводки в корреспонденции 10/60 по каждой МЦ на сумму без налогов
В шаблоне ТХО указывается счета корреспонденции: дебет - 10, кредит - 60
В мемо-поле шаблона заносится запрос:
select spsopr.f$price*spsopr.f$kolfact as f0
, 0 as f1
, dbo.toInt64(katmc.f$cgroupmc) as d1
, dbo.toInt64(katmc.f$nrec) as d2
, dbo.toInt64(katsopr.f$cpodrto) as d3
, '0' as d4
, '0' as d5
, '0' as d6
, '0' as k1
, dbo.toInt64(katsopr.f$corg) as k2
, dbo.toInt64(katsopr.f$cdogovor) as k3
, '0' as k4
, '0' as k5
, '0' as k6
from t$katmc katmc, t$katsopr katsopr, t$spsopr spsopr
where buf.cSoprDoc=katsopr.f$nrec
and katsopr.f$nrec=spsopr.f$csopr
and spsopr.f$cmcusl=katmc.f$nrec
где f0 – сумма в разрезе аналитики в НДЕ
, f1 – сумма в разрезе аналитики в Вал.
,d1 – Аналитика 1-го уровня по дебету
,d2 – Аналитика 2-го уровня по дебету
,d3 – Аналитика 3-го уровня по дебету
,d4 – Аналитика 4-го уровня по дебету
,d5 – Аналитика 5-го уровня по дебету
,d6 – Аналитика 6-го уровня по дебету
,k1 – Аналитика 1-го уровня по дебету
,k2 – Аналитика 2-го уровня по кредиту
,k3 – Аналитика 3-го уровня по кредиту
,k4 – Аналитика 4-го уровня по кредиту
,k5 – Аналитика 5-го уровня по кредиту
,k6 – Аналитика 6-го уровня по кредиту
Механизму ТХО АПИ передается сумма и нреки аналитик из запроса, проводки формируются стандартным функционалом
Пример приведен простейший, думаю владеющие синтаксисом SQL могут творчески подойти к возможностям данной разработки
Если у кого есть заинтересованность - пишите:)
Алгоритм работает как под ОРАКЛ, так и под MSSQLServer
Достоинства:
- Быстродействие на этапе выборки до 10 раз
- удобство и быстрота настройки шаблонов, без использования дополнительных идентификаторов
- гораздо большая визульная наглядность алгоритмов формирования проводок
- возможность проверки правильности запроса через sql-developer
- возможность использования абсолютно всех возможностей SQL (в том числе вложенные запросы, вызов хранимых процедур и др)
- совместимость со стандартными алгоритмами ТХО
- возможность использования внешних таблиц, не входящих в словарь базы данных системы "Галактика"
простейший пример:
По накладной на приход МЦ необходимо сформировать проводки в корреспонденции 10/60 по каждой МЦ на сумму без налогов
В шаблоне ТХО указывается счета корреспонденции: дебет - 10, кредит - 60
В мемо-поле шаблона заносится запрос:
select spsopr.f$price*spsopr.f$kolfact as f0
, 0 as f1
, dbo.toInt64(katmc.f$cgroupmc) as d1
, dbo.toInt64(katmc.f$nrec) as d2
, dbo.toInt64(katsopr.f$cpodrto) as d3
, '0' as d4
, '0' as d5
, '0' as d6
, '0' as k1
, dbo.toInt64(katsopr.f$corg) as k2
, dbo.toInt64(katsopr.f$cdogovor) as k3
, '0' as k4
, '0' as k5
, '0' as k6
from t$katmc katmc, t$katsopr katsopr, t$spsopr spsopr
where buf.cSoprDoc=katsopr.f$nrec
and katsopr.f$nrec=spsopr.f$csopr
and spsopr.f$cmcusl=katmc.f$nrec
где f0 – сумма в разрезе аналитики в НДЕ
, f1 – сумма в разрезе аналитики в Вал.
,d1 – Аналитика 1-го уровня по дебету
,d2 – Аналитика 2-го уровня по дебету
,d3 – Аналитика 3-го уровня по дебету
,d4 – Аналитика 4-го уровня по дебету
,d5 – Аналитика 5-го уровня по дебету
,d6 – Аналитика 6-го уровня по дебету
,k1 – Аналитика 1-го уровня по дебету
,k2 – Аналитика 2-го уровня по кредиту
,k3 – Аналитика 3-го уровня по кредиту
,k4 – Аналитика 4-го уровня по кредиту
,k5 – Аналитика 5-го уровня по кредиту
,k6 – Аналитика 6-го уровня по кредиту
Механизму ТХО АПИ передается сумма и нреки аналитик из запроса, проводки формируются стандартным функционалом
Пример приведен простейший, думаю владеющие синтаксисом SQL могут творчески подойти к возможностям данной разработки
Если у кого есть заинтересованность - пишите:)
Алгоритм работает как под ОРАКЛ, так и под MSSQLServer