powered by simpleCommunicator - 2.0.49     © 2025 Programmizd 02
Форумы / Разработка информационных систем [игнор отключен] [закрыт для гостей] / Кто как хранит в ИС "события хозяйственной деятельности"?
21 сообщений из 21, страница 1 из 1
Кто как хранит в ИС "события хозяйственной деятельности"?
    #33755884
it-templar
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Собственно мне приходит в голову 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, и еще добавляем "движения" документов по различным таблицам (разные учеты) каждая по своим правилам, назовем из регистры. Например в выше рассмотренном примере добавим проводки в таблицу проводок, добавим движения партий в таблицу партий и т.д.

Все отчеты по бух. проводкам, движений партий и т.д. строим простыми селектами из профильных таблиц.

Собственно вопрос : Что предпочтительней в зависимости от ситуации?
Приведите какой-то ваш пример (как у вас построена ИС), думаю это всем интересно узнать.
...
Рейтинг: 0 / 0
Кто как хранит в ИС "события хозяйственной деятельности"?
    #33755935
Фотография Александр Гoлдун
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
it-templar пишет:

> Total -4.00 (общая сумма накладной для скорого построения отчетов в
> дальнейшем)

Это, пожалуй, не очень оправданная денормализация в общем случае.

> Собственно вопрос : Что предпочтительней в зависимости от ситуации?

Второй вариант проще, особенно если система в развитии. Позволяет более
безболезненно вносить изменения в часть системы, касающуюся
документооборота, работы с первичными документами.
Posted via ActualForum NNTP Server 1.3
...
Рейтинг: 0 / 0
Кто как хранит в ИС "события хозяйственной деятельности"?
    #33755988
it-templar
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
2Александр
Безусловно, вы правы насчет второго варианта
Документ создает движения в каких-то регистрах. А в строках регистра есть ссылка на ID документа, породивший эти записи. И вот обоснование, допустим на начальном этапе разработки системы, у нас есть 3 документа, которые двигают регистр партий (Приходная накладная, Расходная накладная, Внутреннее перемещение). Если в первом варианте мы будем строить некий отчет по партиям, мы берем 6 таблиц и из них делаем хранимку (представление), которая выдаст набор движений, и которая является базой для отчета. Во втором же варианте, мы просто выберем движения(остатки) посредством различного агрегирования. Первый вариант обгоняет второй по скорости утверждения (в транзакции меньше операторов и меньше констрейнов различного рода), второй вариант обгоняет первый по скорости выборки, так как селект из одной таблицы фактов с 3-4 измерениями (справочниками) будет всегда быстрее, чем хранимка (хотя неизвестно, в зависимости от того, кто ее писал, если грамотно оптимизировать и всякое такое, хотя когда записей будет много ...). Вообщем проходит полгода и бухгалтер говорит: Мне нужен документ "Комиссионное перемещение", который по своим бизнес правилам отличается от первых трех. Разработчик, имеющий вариант №1 должен:
1. Написать процедуру сохранения документа
2. Сильно изменить процедуру построения отчета, при этом, сильно рискуя получить в отчете неверные данные, и долго отлаживать ее.

Разработчик, имеющий вариант №2
1.Написать более сложную процедуру сохранения документа, чем в первом варианте, потратив больше времени на отладку.
2. Абсолютно не менять процедуру построения отчета, и не рисковать как в варианте №1
...
Рейтинг: 0 / 0
Кто как хранит в ИС "события хозяйственной деятельности"?
    #33756087
Фотография Александр Гoлдун
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
it-templar пишет:
> Первый вариант
> обгоняет второй по скорости утверждения (в транзакции меньше операторов
> и меньше констрейнов различного рода),

Практически нет ощутимой разницы.

> 1.Написать более сложную процедуру сохранения документа, чем в первом
> варианте, потратив больше времени на отладку.

Маленькое замечание. Категорически не рекомендую делать какие-либо
проводки сразу при создании-сохранении документа. Документ должен иметь
несколько состояний, в зависимости от бизнес-логики и типа документа.
Как минимум - 2 состояния: черновик и проведен. Черновик не должен ни на
что влиять - это как лист бумаги, на котором можешь писать что угодно,
зачеркивать, править, дописывать или отправить в мусорную урну/шреддер.
Вот когда ты на бланке накладной поставишь печать и подпись, отдашь ее
клиенту - это уже совсем другой статус. Клиент получит по ней товар и
отдаст копию со своей печатью/подписью - еще один статус. Это
упрощенный, но наглядный пример. Какие-либо изменения в движениях,
проводках и т.п. должны делаться как раз при переходах - сменах
состояний. Переходы между состояниями удобнее делать в ХП. Для
документов еще на этапе проектирования весьма полезно расписать и
задокументировать диаграммы состояний, описывающие состояния и их
свойства, события перехода между состояниями и правила перехода.
Posted via ActualForum NNTP Server 1.3
...
Рейтинг: 0 / 0
Кто как хранит в ИС "события хозяйственной деятельности"?
    #33756163
Фотография iscrafm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В общем-то Александр все рассказал. Я тоже придерживаюсь всегда второй схемы. Проверено, мин нет. Неизменная отчетность при добавлении новых документов (это самая изменяемая в жц системы часть), четко выделенные состояния документов и еще много разных преимуществ. А насчет более долгого проведения (учета, постинга) документов думаю не стоит волноваться. Хорошо прописанные ХП делают это мгновенно.
...
Рейтинг: 0 / 0
Кто как хранит в ИС "события хозяйственной деятельности"?
    #33759827
it-templar
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Ваше мнение по поводу обязательности наличий полей ID типа документа-регистратора и собственно ID-документа-регистратора в таблице проводок(движений)?

Опять вижу две варианта:
Полей нет.
Если таких полей нет, тогда с одной стороны нет внешних ключей и соответсвенно нет риска с проблемами целостности базы, в отношении документ-таблица проводок (полей нет и все тут, целостность как понятие перестает сущестовать), но с другой стороны нет возможности удалить записи из таблицы проводок при отмене постинга документа-регистратора (нет информации о том, что собственно откатывать), хотя если документ живет в системе в последней стадии своего сущестовования, и есть некоторые жесткие бизнес-правила, то НИКТО не имеет право его удалить. Как пример Александра накладную распечатали, подписали кладовщик ФИЗИЧЕСКИ отпустил товар со склада. То есть отмена постинга документа в оконечной стадии НЕВОЗМОЖНА. То есть эти поля будут избыточни в системе(ими просто не пользуются).

Второй вариант поля есть.
Тут тогда все просто, мы можем отменять и проводить документы хоть 100 раз на день, если бизнес-правила не запрещают;единственное необходимо создать таблицу "порядка следования" документов, как вариант делаем некий глобальный ID для всех документов и в зависимости от его значения(чтобы не получить казус- есть приход,теперь только возможен расход, сделали расход, а теперь взяли и оменили(изменили) приход). В случае наличия такой таблицы, можем глоабльный ID присваивать в зависимости от "временной метки первого проведения". А в расходе допустим сделаем триггер Before (что к большой радости есть в ASA), который не допустит списания товара если остаток после списания будет меньше 0.
...
Рейтинг: 0 / 0
Кто как хранит в ИС "события хозяйственной деятельности"?
    #33760023
Фотография Александр Гoлдун
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
it-templarВаше мнение по поводу обязательности наличий полей ID типа документа-регистратора и собственно ID-документа-регистратора в таблице проводок(движений)?

По-моему тут никаких мнений быть не может: должна быть возможность по проводке-движению однозначно определить документ, вызвавший ее.

it-templar
Опять вижу две варианта:
Полей нет.
Если таких полей нет, тогда с одной стороны нет внешних ключей и соответсвенно нет риска с проблемами целостности базы, в отношении документ-таблица проводок (полей нет и все тут, целостность как понятие перестает сущестовать),

Как раз таки в таком варианте могут оказаться очень большие проблемы с целостностью. Целостность - это не только FK. А FK предназначены не для создания проблем, а наоборот - для уменьшения риска их появления. Самый банальный пример: документ уже удален, а проводки по каким-то причинам остались.
it-templar
То есть отмена постинга документа в оконечной стадии НЕВОЗМОЖНА.

Реальность сложнее жестких правил. В накладной могут обнаружить тупую ошибку уже после проведения.

--


...
Рейтинг: 0 / 0
Кто как хранит в ИС "события хозяйственной деятельности"?
    #33760486
it-templar
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Что характерно мы с вами пришли к выводу, что оптимальной системой построения ИС -это вариант с регистрами событий и с связкой регистратор-регистр- в чистейшем виде архитектура 1С 8.0. Кстати, такое впечатление, что ребята из 1С скорпировали интересные идеи с разным ERP. Регистры хранятся не просто как таблицы, а еще хранится статическая таблица с срезом агрегированных остатков или оборотов за некий период. И отчеты строят уже с использованием этих таблиц, что значительно ускоряет скорость. На всякий случай я не фанат 1С, но идеи в нем заложенные радуют своей логикой. Интересно, а как построено тема топика в Axapte или Navision?
...
Рейтинг: 0 / 0
Кто как хранит в ИС "события хозяйственной деятельности"?
    #33760518
Alexey Kudinov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
it-templarКстати, такое впечатление, что ребята из 1С скорпировали интересные идеи с разным ERP. Регистры хранятся не просто как таблицы, а еще хранится статическая таблица с срезом агрегированных остатков или оборотов за некий период. И отчеты строят уже с использованием этих таблиц, что значительно ускоряет скорость. Так в общем то выбор подходов невелик. И при решении одних и тех же задач люди приходят к одинаковым результатам.
...
Рейтинг: 0 / 0
Кто как хранит в ИС "события хозяйственной деятельности"?
    #33760618
Фотография iscrafm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
it-templarИнтересно, а как построено тема топика в Axapte или Navision?
Так же. Подход в общем-то один: Форма ввода->Транзакция->Журналы
У всех просто по разному называется.
...
Рейтинг: 0 / 0
Кто как хранит в ИС "события хозяйственной деятельности"?
    #33765353
АБ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Если хотите построить действительно мощную и гибкую систему, управленческую а не учетную, то надо расширить постановку задачи. Так называемые "события хозяйственной деятельности" -- это, на самом деле, середина бизнес-процесса. Сквозной бизнес-процесс начинается с того, что наш отдел закупок позвонил Пупкину и спросил "а почем, Пупкин, твои кошельки поганенькие?". Почему программисты берутся в основном только за хозяйственную деятельность понятно: там хоть как-то все упорядочено -- проводки, номенклатура... А тут: может мы позвонили Пупкину, может он нам, а может вообще у нас с ним рамочное соглашение на поставку кошельков. Традиционным программирование такие штуки не взять. Но если обратить внимание на BPM, то в нем мы увидим мощное организующее средство, в рамках которого поднятая задача решается как частный случай. Зашивать в прикладные коды состояние документов -- плавали, знаем. Резюме: сколько не предусматривай состояний и вариантов перехода, все равно не хватит. Полноценное, гибкое решение только одно: визуальная диаграмма процесса, данные, составляющие контекст процесса, и стандартизованные прикладные процедуры, которые движок процессов тем или иным способом вызывает.
...
Рейтинг: 0 / 0
Кто как хранит в ИС "события хозяйственной деятельности"?
    #33765393
Фотография iscrafm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
АБЗашивать в прикладные коды состояние документов -- плавали, знаем. Резюме: сколько не предусматривай состояний и вариантов перехода, все равно не хватит. Полноценное, гибкое решение только одно: визуальная диаграмма процесса, данные, составляющие контекст процесса, и стандартизованные прикладные процедуры, которые движок процессов тем или иным способом вызывает.
Полноценных решений много, но не все из них реально работоспособные. Некоторые хороши в теории.
...
Рейтинг: 0 / 0
Кто как хранит в ИС "события хозяйственной деятельности"?
    #33765485
ModelR
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Не то что бы совсем всерьез, но
АБЕсли хотите построить действительно мощную и гибкую систему, управленческую а не учетную, то надо расширить постановку задачи. И углУбить АБТак называемые "события хозяйственной деятельности" -- это, на самом деле, середина бизнес-процесса. Сквозной бизнес-процесс начинается.Внимание! Выделение начала и тем более конца бизнес-процесса незаконно. Согласно Закону РФ О бухучете деятельность предприятия - непрерывна. АБ с того, что наш отдел закупок позвонил Пупкину и спросил "а почем, Пупкин, твои кошельки поганенькие?". . Кстати, не забыть стоимость звонка вычесть из зарплаты звонившего - мы не покупаем и не продаем кошельки АБ Почему программисты берутся в основном только за хозяйственную деятельность понятно: там хоть как-то все упорядочено -- проводки, номенклатура... А тут: может мы позвонили Пупкину, может он нам, а может вообще у нас с ним рамочное соглашение на поставку кошельков. Традиционным программирование такие штуки не взять. Но если обратить внимание на BPM, то в нем мы увидим мощное организующее средство, в рамках которого поднятая задача решается как частный случай. Зашивать в прикладные коды состояние документов -- плавали, знаем.. Резюме: сколько не предусматривай состояний и вариантов перехода, все равно не хватит. "Традиционным" программированием эта дверь давно открыта. АБПолноценное, гибкое решение только одно: визуальная диаграмма процесса, данные, составляющие контекст процесса, и стандартизованные прикладные процедуры, которые движок процессов тем или иным способом вызывает.О! Т.е если вы же умеете считать амортизацию и звонить по IP, то перед вами открываются невиданные перспективы - запустить расчет по входящему звонку и позвонить Пупкину на Канары при его (расчета) окончании.
И почему эти бестолочи-программисты начинают с алгоритмов расчета амортизации?
...
Рейтинг: 0 / 0
Кто как хранит в ИС "события хозяйственной деятельности"?
    #33766068
Recoilme
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
iscrafm it-templarИнтересно, а как построено тема топика в Axapte или Navision?
Так же. Подход в общем-то один: Форма ввода->Транзакция->Журналы
У всех просто по разному называется.

авторКстати, такое впечатление, что ребята из 1С скорпировали интересные идеи с разным ERP. Регистры хранятся не просто как таблицы, а еще хранится статическая таблица с срезом агрегированных остатков или оборотов за некий период. И отчеты строят уже с использованием этих таблиц, что значительно ускоряет скорость.

Нет. В аксапте такого бреда как промежуточные регистры итогов нет. Но и вменяемых отчетов, в моем понимании этого слова, там тоже нет.
Хотя тема очень размыто сформулирована, сложно давать однозначные ответы.
Попробую раскрыть немного:
шапка закупки
1:н - строки закупки
Закупка это некий БП со своими статусами
На основании закупки -
накладные - шапка строки

Складские проводки привязаны и к строкам закупки и к строкам накладных

Складские проводки порождают проводки в главной книге

Складские проводки меняют таблицу остатков

Таблица остатков не содержит некаких информаций о датах и актуальности остатков на некую точку

Таблица остатков = сумма всех складских проводок с соответствующим статусом

У этой авторинтересные идеи с разным ERP агроменная толпа недостатков, которые выявляются на этапе эксплуатации. Но всё же их меньше чем у 1с.

Недостатки начинаются в области постоянного конфликта и блокировок на таблице остатков и заканчиваются отсутствием ссылочной целостности и тупиком производительности на длинных транзакциях по всем связанным таблицам. Неборльшие компании (1-2 миллионов проводок в год) гораздо менее подвержены этим недостаткам
...
Рейтинг: 0 / 0
Кто как хранит в ИС "события хозяйственной деятельности"?
    #33766171
Фотография iscrafm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
RecoilmeНет. В аксапте такого бреда как промежуточные регистры итогов нет.
Расскажите плз, какая информация хранится в таблицах INVENTSUM и WMSLOCATIONSUM.
...
Рейтинг: 0 / 0
Кто как хранит в ИС "события хозяйственной деятельности"?
    #33766282
Recoilme
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
iscrafm RecoilmeНет. В аксапте такого бреда как промежуточные регистры итогов нет.
Расскажите плз, какая информация хранится в таблицах INVENTSUM и WMSLOCATIONSUM.

Таблицей остатков, достаточно подробно описанной в предыдущем сообщении, и является inventsum. код товара, код аналитики, остаток, стоимость остатков + остатки по статусам (заказано, зарезервировано и т.п.).

WMSLOCATIONSUM - таблица от отдельно приобретаемого модуля.
...
Рейтинг: 0 / 0
Кто как хранит в ИС "события хозяйственной деятельности"?
    #33766293
Фотография iscrafm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Recoilme
Таблицей остатков, достаточно подробно описанной в предыдущем сообщении, и является inventsum. код товара, код аналитики, остаток, стоимость остатков + остатки по статусам (заказано, зарезервировано и т.п.).
WMSLOCATIONSUM - таблица от отдельно приобретаемого модуля.
Да я в курсе что в них. Просто Вы сказали, что аксапта не хранит итоги и назвали это бредом. Может я не так Вас понял? Или имелось ввиду не текущие остатки, а история остатков?
...
Рейтинг: 0 / 0
Кто как хранит в ИС "события хозяйственной деятельности"?
    #33766319
Recoilme
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Recoilme

авторКстати, такое впечатление, что ребята из 1С скорпировали интересные идеи с разным ERP. Регистры хранятся не просто как таблицы, а еще хранится статическая таблица с срезом агрегированных остатков или оборотов за некий период. И отчеты строят уже с использованием этих таблиц, что значительно ускоряет скорость.

Нет. В аксапте такого бреда как промежуточные регистры итогов нет.

Хотя тема очень размыто сформулирована, сложно давать однозначные ответы.
Попробую раскрыть немного:

Таблица остатков не содержит некаких информаций о датах и актуальности остатков на некую точку

Недостатки начинаются в области постоянного конфликта и блокировок на таблице остатков и заканчиваются отсутствием ссылочной целостности и тупиком производительности на длинных транзакциях по всем связанным таблицам. Неборльшие компании (1-2 миллионов проводок в год) гораздо менее подвержены этим недостаткам

Извините за самоцитирование. Возможно Вы с автором топика не понимаете друг-друга. Нет никаких срезов. Нет никаких дат. Есть таблица (остатков) в которой регистрируются все движения (складские проводки) независимо от дат. "+" или "-".
Остаток на дату вычисляется рассчетным путем.
Никаких промежуточных итогов на дату закрытия и т.п. как в 1С.
Итого:
1. Отличия от архитектуры регистров в 1С - носят принципиальный характер
2. Гениальностью данный архитектуры.. Хм.. Соглашусь разве что под страхом смертной казни.
...
Рейтинг: 0 / 0
Кто как хранит в ИС "события хозяйственной деятельности"?
    #33767529
Фотография iscrafm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
RecoilmeИзвините за самоцитирование. Возможно Вы с автором топика не понимаете друг-друга. Нет никаких срезов. Нет никаких дат. Есть таблица (остатков) в которой регистрируются все движения (складские проводки) независимо от дат. "+" или "-".
Остаток на дату вычисляется рассчетным путем.
Никаких промежуточных итогов на дату закрытия и т.п. как в 1С.
Итого:
1. Отличия от архитектуры регистров в 1С - носят принципиальный характер
2. Гениальностью данный архитектуры.. Хм.. Соглашусь разве что под страхом смертной казни.
Да мы то понимаем, а вот Вас так и не понял
...
Рейтинг: 0 / 0
Кто как хранит в ИС "события хозяйственной деятельности"?
    #33767815
Recoilme
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
iscrafmДа мы то понимаем, а вот Вас так и не понял
Ну я честно пытался объяснить в чем отличия ) Извиняйте если не получилось..
...
Рейтинг: 0 / 0
Кто как хранит в ИС "события хозяйственной деятельности"?
    #33768267
Фотография iscrafm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Recoilme
Ну я честно пытался объяснить в чем отличия ) Извиняйте если не получилось..
Да, я например, не понял отличия между чем и кому, все таки, Вы объясняли :) Если между 1С и Аксаптой, но они и так известны. Если между приведенной мной схемой и устройством аксапты, то их нет. А про срезы на дату и регистры я вообще не говорил. Если автору, то зачем ко мне ссылались :) Да и вообще, в принципе, речь шла о событиях и способе их "хранения". Ну да ладно. Успехов.
...
Рейтинг: 0 / 0
21 сообщений из 21, страница 1 из 1
Форумы / Разработка информационных систем [игнор отключен] [закрыт для гостей] / Кто как хранит в ИС "события хозяйственной деятельности"?
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]