|
Кто как хранит в ИС "события хозяйственной деятельности"?
|
|||
---|---|---|---|
#18+
Собственно мне приходит в голову 2 варианта: Пример №1 В передметной области есть документ, допустим приходная накладная от контрагента Пупкина в количестве 2 единиц кошельков по 2 руб. на сумму 4р. После сохранения(проведения, записи, утверждения и т.д.) документа имеем такие последствия в системе: отражаем в таблице "Шапки Приходных накладных" строку такого вида: ID-10 (ID Приходной накладной) Client_ID-145 (ID клиента Пупкина из таблицы "Клиенты") Date-2006-05-01 (Дата сохранения(утверждения)) Total -4.00 (общая сумма накладной для скорого построения отчетов в дальнейшем) отражаем в таблице "Табличные Части Приходных накладных" строку такого вида: ID-100 (ID строки таблицы) Document_ID-10 (ссылка на таблицу "Шапки Приходных накладных") Tovar_ID (ID товара кошелька из таблицы "Товары") Price-2.00 Amount-2.00 Все отчеты по бух. проводкам, движений партий и т.д. "строим на лету" через множество различных ХП. Пример №2 все тоже самое как в Примере №1, и еще добавляем "движения" документов по различным таблицам (разные учеты) каждая по своим правилам, назовем из регистры. Например в выше рассмотренном примере добавим проводки в таблицу проводок, добавим движения партий в таблицу партий и т.д. Все отчеты по бух. проводкам, движений партий и т.д. строим простыми селектами из профильных таблиц. Собственно вопрос : Что предпочтительней в зависимости от ситуации? Приведите какой-то ваш пример (как у вас построена ИС), думаю это всем интересно узнать. ... |
|||
:
Нравится:
Не нравится:
|
|||
27.05.2006, 13:29 |
|
Кто как хранит в ИС "события хозяйственной деятельности"?
|
|||
---|---|---|---|
#18+
it-templar пишет: > Total -4.00 (общая сумма накладной для скорого построения отчетов в > дальнейшем) Это, пожалуй, не очень оправданная денормализация в общем случае. > Собственно вопрос : Что предпочтительней в зависимости от ситуации? Второй вариант проще, особенно если система в развитии. Позволяет более безболезненно вносить изменения в часть системы, касающуюся документооборота, работы с первичными документами. Posted via ActualForum NNTP Server 1.3 ... |
|||
:
Нравится:
Не нравится:
|
|||
27.05.2006, 14:45 |
|
Кто как хранит в ИС "события хозяйственной деятельности"?
|
|||
---|---|---|---|
#18+
2Александр Безусловно, вы правы насчет второго варианта Документ создает движения в каких-то регистрах. А в строках регистра есть ссылка на ID документа, породивший эти записи. И вот обоснование, допустим на начальном этапе разработки системы, у нас есть 3 документа, которые двигают регистр партий (Приходная накладная, Расходная накладная, Внутреннее перемещение). Если в первом варианте мы будем строить некий отчет по партиям, мы берем 6 таблиц и из них делаем хранимку (представление), которая выдаст набор движений, и которая является базой для отчета. Во втором же варианте, мы просто выберем движения(остатки) посредством различного агрегирования. Первый вариант обгоняет второй по скорости утверждения (в транзакции меньше операторов и меньше констрейнов различного рода), второй вариант обгоняет первый по скорости выборки, так как селект из одной таблицы фактов с 3-4 измерениями (справочниками) будет всегда быстрее, чем хранимка (хотя неизвестно, в зависимости от того, кто ее писал, если грамотно оптимизировать и всякое такое, хотя когда записей будет много ...). Вообщем проходит полгода и бухгалтер говорит: Мне нужен документ "Комиссионное перемещение", который по своим бизнес правилам отличается от первых трех. Разработчик, имеющий вариант №1 должен: 1. Написать процедуру сохранения документа 2. Сильно изменить процедуру построения отчета, при этом, сильно рискуя получить в отчете неверные данные, и долго отлаживать ее. Разработчик, имеющий вариант №2 1.Написать более сложную процедуру сохранения документа, чем в первом варианте, потратив больше времени на отладку. 2. Абсолютно не менять процедуру построения отчета, и не рисковать как в варианте №1 ... |
|||
:
Нравится:
Не нравится:
|
|||
27.05.2006, 15:51 |
|
Кто как хранит в ИС "события хозяйственной деятельности"?
|
|||
---|---|---|---|
#18+
it-templar пишет: > Первый вариант > обгоняет второй по скорости утверждения (в транзакции меньше операторов > и меньше констрейнов различного рода), Практически нет ощутимой разницы. > 1.Написать более сложную процедуру сохранения документа, чем в первом > варианте, потратив больше времени на отладку. Маленькое замечание. Категорически не рекомендую делать какие-либо проводки сразу при создании-сохранении документа. Документ должен иметь несколько состояний, в зависимости от бизнес-логики и типа документа. Как минимум - 2 состояния: черновик и проведен. Черновик не должен ни на что влиять - это как лист бумаги, на котором можешь писать что угодно, зачеркивать, править, дописывать или отправить в мусорную урну/шреддер. Вот когда ты на бланке накладной поставишь печать и подпись, отдашь ее клиенту - это уже совсем другой статус. Клиент получит по ней товар и отдаст копию со своей печатью/подписью - еще один статус. Это упрощенный, но наглядный пример. Какие-либо изменения в движениях, проводках и т.п. должны делаться как раз при переходах - сменах состояний. Переходы между состояниями удобнее делать в ХП. Для документов еще на этапе проектирования весьма полезно расписать и задокументировать диаграммы состояний, описывающие состояния и их свойства, события перехода между состояниями и правила перехода. Posted via ActualForum NNTP Server 1.3 ... |
|||
:
Нравится:
Не нравится:
|
|||
27.05.2006, 17:27 |
|
Кто как хранит в ИС "события хозяйственной деятельности"?
|
|||
---|---|---|---|
#18+
В общем-то Александр все рассказал. Я тоже придерживаюсь всегда второй схемы. Проверено, мин нет. Неизменная отчетность при добавлении новых документов (это самая изменяемая в жц системы часть), четко выделенные состояния документов и еще много разных преимуществ. А насчет более долгого проведения (учета, постинга) документов думаю не стоит волноваться. Хорошо прописанные ХП делают это мгновенно. ... |
|||
:
Нравится:
Не нравится:
|
|||
27.05.2006, 19:13 |
|
Кто как хранит в ИС "события хозяйственной деятельности"?
|
|||
---|---|---|---|
#18+
Ваше мнение по поводу обязательности наличий полей ID типа документа-регистратора и собственно ID-документа-регистратора в таблице проводок(движений)? Опять вижу две варианта: Полей нет. Если таких полей нет, тогда с одной стороны нет внешних ключей и соответсвенно нет риска с проблемами целостности базы, в отношении документ-таблица проводок (полей нет и все тут, целостность как понятие перестает сущестовать), но с другой стороны нет возможности удалить записи из таблицы проводок при отмене постинга документа-регистратора (нет информации о том, что собственно откатывать), хотя если документ живет в системе в последней стадии своего сущестовования, и есть некоторые жесткие бизнес-правила, то НИКТО не имеет право его удалить. Как пример Александра накладную распечатали, подписали кладовщик ФИЗИЧЕСКИ отпустил товар со склада. То есть отмена постинга документа в оконечной стадии НЕВОЗМОЖНА. То есть эти поля будут избыточни в системе(ими просто не пользуются). Второй вариант поля есть. Тут тогда все просто, мы можем отменять и проводить документы хоть 100 раз на день, если бизнес-правила не запрещают;единственное необходимо создать таблицу "порядка следования" документов, как вариант делаем некий глобальный ID для всех документов и в зависимости от его значения(чтобы не получить казус- есть приход,теперь только возможен расход, сделали расход, а теперь взяли и оменили(изменили) приход). В случае наличия такой таблицы, можем глоабльный ID присваивать в зависимости от "временной метки первого проведения". А в расходе допустим сделаем триггер Before (что к большой радости есть в ASA), который не допустит списания товара если остаток после списания будет меньше 0. ... |
|||
:
Нравится:
Не нравится:
|
|||
30.05.2006, 10:52 |
|
Кто как хранит в ИС "события хозяйственной деятельности"?
|
|||
---|---|---|---|
#18+
Что характерно мы с вами пришли к выводу, что оптимальной системой построения ИС -это вариант с регистрами событий и с связкой регистратор-регистр- в чистейшем виде архитектура 1С 8.0. Кстати, такое впечатление, что ребята из 1С скорпировали интересные идеи с разным ERP. Регистры хранятся не просто как таблицы, а еще хранится статическая таблица с срезом агрегированных остатков или оборотов за некий период. И отчеты строят уже с использованием этих таблиц, что значительно ускоряет скорость. На всякий случай я не фанат 1С, но идеи в нем заложенные радуют своей логикой. Интересно, а как построено тема топика в Axapte или Navision? ... |
|||
:
Нравится:
Не нравится:
|
|||
30.05.2006, 13:11 |
|
Кто как хранит в ИС "события хозяйственной деятельности"?
|
|||
---|---|---|---|
#18+
it-templarКстати, такое впечатление, что ребята из 1С скорпировали интересные идеи с разным ERP. Регистры хранятся не просто как таблицы, а еще хранится статическая таблица с срезом агрегированных остатков или оборотов за некий период. И отчеты строят уже с использованием этих таблиц, что значительно ускоряет скорость. Так в общем то выбор подходов невелик. И при решении одних и тех же задач люди приходят к одинаковым результатам. ... |
|||
:
Нравится:
Не нравится:
|
|||
30.05.2006, 13:19 |
|
Кто как хранит в ИС "события хозяйственной деятельности"?
|
|||
---|---|---|---|
#18+
it-templarИнтересно, а как построено тема топика в Axapte или Navision? Так же. Подход в общем-то один: Форма ввода->Транзакция->Журналы У всех просто по разному называется. ... |
|||
:
Нравится:
Не нравится:
|
|||
30.05.2006, 13:44 |
|
Кто как хранит в ИС "события хозяйственной деятельности"?
|
|||
---|---|---|---|
#18+
Если хотите построить действительно мощную и гибкую систему, управленческую а не учетную, то надо расширить постановку задачи. Так называемые "события хозяйственной деятельности" -- это, на самом деле, середина бизнес-процесса. Сквозной бизнес-процесс начинается с того, что наш отдел закупок позвонил Пупкину и спросил "а почем, Пупкин, твои кошельки поганенькие?". Почему программисты берутся в основном только за хозяйственную деятельность понятно: там хоть как-то все упорядочено -- проводки, номенклатура... А тут: может мы позвонили Пупкину, может он нам, а может вообще у нас с ним рамочное соглашение на поставку кошельков. Традиционным программирование такие штуки не взять. Но если обратить внимание на BPM, то в нем мы увидим мощное организующее средство, в рамках которого поднятая задача решается как частный случай. Зашивать в прикладные коды состояние документов -- плавали, знаем. Резюме: сколько не предусматривай состояний и вариантов перехода, все равно не хватит. Полноценное, гибкое решение только одно: визуальная диаграмма процесса, данные, составляющие контекст процесса, и стандартизованные прикладные процедуры, которые движок процессов тем или иным способом вызывает. ... |
|||
:
Нравится:
Не нравится:
|
|||
01.06.2006, 11:38 |
|
Кто как хранит в ИС "события хозяйственной деятельности"?
|
|||
---|---|---|---|
#18+
АБЗашивать в прикладные коды состояние документов -- плавали, знаем. Резюме: сколько не предусматривай состояний и вариантов перехода, все равно не хватит. Полноценное, гибкое решение только одно: визуальная диаграмма процесса, данные, составляющие контекст процесса, и стандартизованные прикладные процедуры, которые движок процессов тем или иным способом вызывает. Полноценных решений много, но не все из них реально работоспособные. Некоторые хороши в теории. ... |
|||
:
Нравится:
Не нравится:
|
|||
01.06.2006, 11:48 |
|
Кто как хранит в ИС "события хозяйственной деятельности"?
|
|||
---|---|---|---|
#18+
Не то что бы совсем всерьез, но АБЕсли хотите построить действительно мощную и гибкую систему, управленческую а не учетную, то надо расширить постановку задачи. И углУбить АБТак называемые "события хозяйственной деятельности" -- это, на самом деле, середина бизнес-процесса. Сквозной бизнес-процесс начинается.Внимание! Выделение начала и тем более конца бизнес-процесса незаконно. Согласно Закону РФ О бухучете деятельность предприятия - непрерывна. АБ с того, что наш отдел закупок позвонил Пупкину и спросил "а почем, Пупкин, твои кошельки поганенькие?". . Кстати, не забыть стоимость звонка вычесть из зарплаты звонившего - мы не покупаем и не продаем кошельки АБ Почему программисты берутся в основном только за хозяйственную деятельность понятно: там хоть как-то все упорядочено -- проводки, номенклатура... А тут: может мы позвонили Пупкину, может он нам, а может вообще у нас с ним рамочное соглашение на поставку кошельков. Традиционным программирование такие штуки не взять. Но если обратить внимание на BPM, то в нем мы увидим мощное организующее средство, в рамках которого поднятая задача решается как частный случай. Зашивать в прикладные коды состояние документов -- плавали, знаем.. Резюме: сколько не предусматривай состояний и вариантов перехода, все равно не хватит. "Традиционным" программированием эта дверь давно открыта. АБПолноценное, гибкое решение только одно: визуальная диаграмма процесса, данные, составляющие контекст процесса, и стандартизованные прикладные процедуры, которые движок процессов тем или иным способом вызывает.О! Т.е если вы же умеете считать амортизацию и звонить по IP, то перед вами открываются невиданные перспективы - запустить расчет по входящему звонку и позвонить Пупкину на Канары при его (расчета) окончании. И почему эти бестолочи-программисты начинают с алгоритмов расчета амортизации? ... |
|||
:
Нравится:
Не нравится:
|
|||
01.06.2006, 12:11 |
|
Кто как хранит в ИС "события хозяйственной деятельности"?
|
|||
---|---|---|---|
#18+
iscrafm it-templarИнтересно, а как построено тема топика в Axapte или Navision? Так же. Подход в общем-то один: Форма ввода->Транзакция->Журналы У всех просто по разному называется. авторКстати, такое впечатление, что ребята из 1С скорпировали интересные идеи с разным ERP. Регистры хранятся не просто как таблицы, а еще хранится статическая таблица с срезом агрегированных остатков или оборотов за некий период. И отчеты строят уже с использованием этих таблиц, что значительно ускоряет скорость. Нет. В аксапте такого бреда как промежуточные регистры итогов нет. Но и вменяемых отчетов, в моем понимании этого слова, там тоже нет. Хотя тема очень размыто сформулирована, сложно давать однозначные ответы. Попробую раскрыть немного: шапка закупки 1:н - строки закупки Закупка это некий БП со своими статусами На основании закупки - накладные - шапка строки Складские проводки привязаны и к строкам закупки и к строкам накладных Складские проводки порождают проводки в главной книге Складские проводки меняют таблицу остатков Таблица остатков не содержит некаких информаций о датах и актуальности остатков на некую точку Таблица остатков = сумма всех складских проводок с соответствующим статусом У этой авторинтересные идеи с разным ERP агроменная толпа недостатков, которые выявляются на этапе эксплуатации. Но всё же их меньше чем у 1с. Недостатки начинаются в области постоянного конфликта и блокировок на таблице остатков и заканчиваются отсутствием ссылочной целостности и тупиком производительности на длинных транзакциях по всем связанным таблицам. Неборльшие компании (1-2 миллионов проводок в год) гораздо менее подвержены этим недостаткам ... |
|||
:
Нравится:
Не нравится:
|
|||
01.06.2006, 14:17 |
|
Кто как хранит в ИС "события хозяйственной деятельности"?
|
|||
---|---|---|---|
#18+
RecoilmeНет. В аксапте такого бреда как промежуточные регистры итогов нет. Расскажите плз, какая информация хранится в таблицах INVENTSUM и WMSLOCATIONSUM. ... |
|||
:
Нравится:
Не нравится:
|
|||
01.06.2006, 14:48 |
|
Кто как хранит в ИС "события хозяйственной деятельности"?
|
|||
---|---|---|---|
#18+
iscrafm RecoilmeНет. В аксапте такого бреда как промежуточные регистры итогов нет. Расскажите плз, какая информация хранится в таблицах INVENTSUM и WMSLOCATIONSUM. Таблицей остатков, достаточно подробно описанной в предыдущем сообщении, и является inventsum. код товара, код аналитики, остаток, стоимость остатков + остатки по статусам (заказано, зарезервировано и т.п.). WMSLOCATIONSUM - таблица от отдельно приобретаемого модуля. ... |
|||
:
Нравится:
Не нравится:
|
|||
01.06.2006, 15:17 |
|
Кто как хранит в ИС "события хозяйственной деятельности"?
|
|||
---|---|---|---|
#18+
Recoilme Таблицей остатков, достаточно подробно описанной в предыдущем сообщении, и является inventsum. код товара, код аналитики, остаток, стоимость остатков + остатки по статусам (заказано, зарезервировано и т.п.). WMSLOCATIONSUM - таблица от отдельно приобретаемого модуля. Да я в курсе что в них. Просто Вы сказали, что аксапта не хранит итоги и назвали это бредом. Может я не так Вас понял? Или имелось ввиду не текущие остатки, а история остатков? ... |
|||
:
Нравится:
Не нравится:
|
|||
01.06.2006, 15:21 |
|
Кто как хранит в ИС "события хозяйственной деятельности"?
|
|||
---|---|---|---|
#18+
Recoilme авторКстати, такое впечатление, что ребята из 1С скорпировали интересные идеи с разным ERP. Регистры хранятся не просто как таблицы, а еще хранится статическая таблица с срезом агрегированных остатков или оборотов за некий период. И отчеты строят уже с использованием этих таблиц, что значительно ускоряет скорость. Нет. В аксапте такого бреда как промежуточные регистры итогов нет. Хотя тема очень размыто сформулирована, сложно давать однозначные ответы. Попробую раскрыть немного: Таблица остатков не содержит некаких информаций о датах и актуальности остатков на некую точку Недостатки начинаются в области постоянного конфликта и блокировок на таблице остатков и заканчиваются отсутствием ссылочной целостности и тупиком производительности на длинных транзакциях по всем связанным таблицам. Неборльшие компании (1-2 миллионов проводок в год) гораздо менее подвержены этим недостаткам Извините за самоцитирование. Возможно Вы с автором топика не понимаете друг-друга. Нет никаких срезов. Нет никаких дат. Есть таблица (остатков) в которой регистрируются все движения (складские проводки) независимо от дат. "+" или "-". Остаток на дату вычисляется рассчетным путем. Никаких промежуточных итогов на дату закрытия и т.п. как в 1С. Итого: 1. Отличия от архитектуры регистров в 1С - носят принципиальный характер 2. Гениальностью данный архитектуры.. Хм.. Соглашусь разве что под страхом смертной казни. ... |
|||
:
Нравится:
Не нравится:
|
|||
01.06.2006, 15:29 |
|
Кто как хранит в ИС "события хозяйственной деятельности"?
|
|||
---|---|---|---|
#18+
RecoilmeИзвините за самоцитирование. Возможно Вы с автором топика не понимаете друг-друга. Нет никаких срезов. Нет никаких дат. Есть таблица (остатков) в которой регистрируются все движения (складские проводки) независимо от дат. "+" или "-". Остаток на дату вычисляется рассчетным путем. Никаких промежуточных итогов на дату закрытия и т.п. как в 1С. Итого: 1. Отличия от архитектуры регистров в 1С - носят принципиальный характер 2. Гениальностью данный архитектуры.. Хм.. Соглашусь разве что под страхом смертной казни. Да мы то понимаем, а вот Вас так и не понял ... |
|||
:
Нравится:
Не нравится:
|
|||
02.06.2006, 00:39 |
|
Кто как хранит в ИС "события хозяйственной деятельности"?
|
|||
---|---|---|---|
#18+
iscrafmДа мы то понимаем, а вот Вас так и не понял Ну я честно пытался объяснить в чем отличия ) Извиняйте если не получилось.. ... |
|||
:
Нравится:
Не нравится:
|
|||
02.06.2006, 09:52 |
|
Кто как хранит в ИС "события хозяйственной деятельности"?
|
|||
---|---|---|---|
#18+
Recoilme Ну я честно пытался объяснить в чем отличия ) Извиняйте если не получилось.. Да, я например, не понял отличия между чем и кому, все таки, Вы объясняли :) Если между 1С и Аксаптой, но они и так известны. Если между приведенной мной схемой и устройством аксапты, то их нет. А про срезы на дату и регистры я вообще не говорил. Если автору, то зачем ко мне ссылались :) Да и вообще, в принципе, речь шла о событиях и способе их "хранения". Ну да ладно. Успехов. ... |
|||
:
Нравится:
Не нравится:
|
|||
02.06.2006, 12:06 |
|
|
start [/forum/topic.php?fid=33&fpage=59&tid=1549386]: |
0ms |
get settings: |
10ms |
get forum list: |
14ms |
check forum access: |
5ms |
check topic access: |
5ms |
track hit: |
37ms |
get topic data: |
11ms |
get forum data: |
3ms |
get page messages: |
66ms |
get tp. blocked users: |
2ms |
others: | 231ms |
total: | 384ms |
0 / 0 |