|
|
|
Нужно построить систему, которая будет показывать остатки товара в реальном времени...
|
|||
|---|---|---|---|
|
#18+
Какие будут советы и напутствия? Я ожидаю, что это довольно сложно сделать, т.к. не будет точных данных о состоянии этих остатков, т.к. происходит их непрерывное движение. Т.е. полученные данные становятся не актуальными через некоторое время. Или это не проблема? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.05.2005, 10:17 |
|
||
|
Нужно построить систему, которая будет показывать остатки товара в реальном времени...
|
|||
|---|---|---|---|
|
#18+
В большинстве учетных систем это совершенно не проблема, поскольку реализуется стандартной функциональностью. Вопрос, как я понимаю, в другом. Справится ли по быстродействию. Но для ответа на него нужно привести данные, сколько народа одновременно собирается вводить информацию, с какой частотой должны выполняться транзакции, размеры основных справочников (номенклатуры, например). Если вы собираетесь делать собственную систему, то необходимо также уточнить, о каких именно остатках идет речь. Если об остатках только на текущий момент времени, то эта задача решается элементарно - остатки ведутся только на текущий момент времени, и они пересчитываются после каждой транзакции (это может делать, например, триггер). Если нужно иметь остатки на любой момент времени, то нужно определиться, как часто это нужно и с какой скоростью эту информацию необходимо получать. Возможно, вполне достаточно будет остатков, получаемых расчетным путем по запросу. Если нужна высокая скорость получения остатков, можно задействовать OLAP-сервер. Правда, придется повозиться над тем, чтобы решалась еще и задача оперативного предоставления информации об остатках на любой момент времени сразу после выполнения транзакции, относящейся к прошедшим периодам. Но и эта задача вполне выполнима. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.05.2005, 10:27 |
|
||
|
Нужно построить систему, которая будет показывать остатки товара в реальном времени...
|
|||
|---|---|---|---|
|
#18+
А в каком объеме нужны остатки в реальном времени? Зачем, например, нужны остатки в реальном времени всех товаров на всех складах? Разве что для полной инвентаризации (и то по одному складу за раз). Но ведь во время инвентаризации на складе товародвижение прекращают? Значит, данные, полученные в начале, останутся актуальными вплоть до конца инвентаризации и возобновления операций по складу. А для работы OLTP вполне достаточно получать в реальном времени нужный остаток только по одной конкретной позиции на конкретном месте хранения (с нужной в конкретном случае подробностью: складское подразделение или, скажем, складское место). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.05.2005, 10:52 |
|
||
|
Нужно построить систему, которая будет показывать остатки товара в реальном времени...
|
|||
|---|---|---|---|
|
#18+
Например в NAVISION делается так: Есть таблица АБСОЛЮТНО ВСЕХ операций перемещения товара. Наличие на любой период получается путём суммирования от "самого начала". В дополнение к ней идёт таблица привязок между операциями (для ФИФО). В итоге вся информация про движение товара лежит в одной таблице (знатокам NAVISION просьба не придираться - я знаю, что таблиц немного больше :) ). Любая информация о товаре получается из этой таблицы. Кстати эта модель очень хороша и при правильной реализации работает быстро как при учёте документа так и при построении отчётности. При этом имеем полноценный партионный, мультискладской учёт и отчётность на любой момент времени. Учёт документов задним числом не создаёт никакой проблемы. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.05.2005, 10:58 |
|
||
|
Нужно построить систему, которая будет показывать остатки товара в реальном времени...
|
|||
|---|---|---|---|
|
#18+
LSVНапример в NAVISION делается так: Есть таблица АБСОЛЮТНО ВСЕХ операций перемещения товара. Наличие на любой период получается путём суммирования от "самого начала". В дополнение к ней идёт таблица привязок между операциями (для ФИФО). В итоге вся информация про движение товара лежит в одной таблице (знатокам NAVISION просьба не придираться - я знаю, что таблиц немного больше :) ). Любая информация о товаре получается из этой таблицы. Кстати эта модель очень хороша и при правильной реализации работает быстро как при учёте документа так и при построении отчётности. При этом имеем полноценный партионный, мультискладской учёт и отчётность на любой момент времени. Просто любопытно: действительно так? Я не верю, что такая система может быстро работать. На порядочном предприятии за год наберется как минимум 1 млн. записей в такую таблицу. И что, для построения отчета нужно сделать суммирование по всем записям? И ЭТО может быстро работать? LSVУчёт документов задним числом не создаёт никакой проблемы. Учет задним числом всегда создает проблемы. Вопрос только КАК они решаются :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.05.2005, 11:24 |
|
||
|
Нужно построить систему, которая будет показывать остатки товара в реальном времени...
|
|||
|---|---|---|---|
|
#18+
Не знаю точно как будет ( или есть ) в ERP системе. Но на обычном SQL сервере реализуется. Делаем справочник где хранятся остатки ( или обзовем их регистры - так в 1С ) и через триггер либо уменьшаем ( расход ) либо увеличиваем ( приход ). И все. Получается почти в реальном режиме времени. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.05.2005, 11:51 |
|
||
|
Нужно построить систему, которая будет показывать остатки товара в реальном времени...
|
|||
|---|---|---|---|
|
#18+
В ИНФИНе вся информация бьется на учетные периоды. Для каждого периода создается своя отдельная таблица. В таблицу помещаются вступительные остатки на начало периода и обороты (остатки отличаются от оборотов по специальному признаковому полю). Исходящие остатки на конец периода или на любую дату в периоде вычисляются "на лету", при этом они вычисляются по информации только одного периода. Поскольку данных в одном периоде относительно немного, остатки считаются довольно быстро. Если делаются проводки задним числом (в прошлые периоды), автоматически запускается расчет, который корректирует всупительные остатки последующих периодов. Таким образом, в ИНФИНе остатки получаются на любую интересующую дату весьма оперативно. Хранение содержимого учетных периодов в разных таблицах позволяет иметь различные настройки одного и того же счета в разных периодах (этого, например, не умеет 1С). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.05.2005, 13:13 |
|
||
|
Нужно построить систему, которая будет показывать остатки товара в реальном времени...
|
|||
|---|---|---|---|
|
#18+
LSVЕсть таблица АБСОЛЮТНО ВСЕХ операций перемещения товара. Наличие на любой период получается путём суммирования от "самого начала". Вам стоит почитать насчет SIFT в Навижин. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.05.2005, 17:10 |
|
||
|
Нужно построить систему, которая будет показывать остатки товара в реальном времени...
|
|||
|---|---|---|---|
|
#18+
mazzyВам стоит почитать насчет SIFT в Навижин. Надеюсь, это не мне адресовано :) авторПросто любопытно: действительно так? Я не верю, что такая система может быстро работать. Может. На этом Навижн весь построен. Всё "от начала". В самом навижн это работает действительно быстро, хотя там для этого есть специальный механизм (SumIndexField Technology - SIFT) который действительно работает очччень быстро. Тем не менее я экспериментировал с подобным решением (суммирование "от начала") на MSSQL. Таблица из 15 полей и 1.2млн записей считалась вполне приемлимо даже на простом десктопе. При этом можно придумать дополнительную таблицу для хранения сальдо-остатков на конец периода, например квартал. При этом суммировать надо не более чем за 3мес +сальдовая запись. В этом случае выигрыш времени у меня составил примерно 45%. Короче....сделать можно. Проверено ! Но делать надо непременно с умом, т.к. малейший огрех приведёт к заметному падению производительности. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.05.2005, 18:36 |
|
||
|
Нужно построить систему, которая будет показывать остатки товара в реальном времени...
|
|||
|---|---|---|---|
|
#18+
LSV mazzyВам стоит почитать насчет SIFT в Навижин. Надеюсь, это не мне адресовано :) Вам-вам. LSV, пожалуйста, перестаньте пороть чушь. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.05.2005, 20:24 |
|
||
|
Нужно построить систему, которая будет показывать остатки товара в реальном времени...
|
|||
|---|---|---|---|
|
#18+
Мы вот сделали такую систему, когда по каждой позиции имеется два значения количества: 1. Фактически на складе 2. Доступно для отгрузки Первое отвечает за физическое наличие товара Второе - с учетом "уже заказанного" ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.05.2005, 20:42 |
|
||
|
Нужно построить систему, которая будет показывать остатки товара в реальном времени...
|
|||
|---|---|---|---|
|
#18+
Все зависит от того, как вводятся данные о продажах(списании). Если приходится показать статические остатки в виде таблицы для выбора, то нужна таблица остатков и приходится мириться либо с верификацией этой таблицы, либо блокировками. Если выбор инициирует оператор указывая поисковую строку, то можно обойтись без таблицы остатков использую расчет остатка на лету по указанной позиции. ВСЕГДА остается возможность ошибки, если возможны обращения к одной записи нескольких пользователей. Отчеты из одной таблицы, как говорит LSV, проходят нормально, проблем нет. У меня в DOS версии был вариант с месячными таблицами оборотов и остатков, было плохо с оборотными ведомостями с периодами продолжительностью месяца. На Win версии одна таблица оборотов и одна верифицируемая таблица остатков. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.05.2005, 22:36 |
|
||
|
Нужно построить систему, которая будет показывать остатки товара в реальном времени...
|
|||
|---|---|---|---|
|
#18+
mazzyВам-вам. LSV, пожалуйста, перестаньте пороть чушь. Мне ? И где я напорол чушь, позвольте узнать ? Я умышленно не вдавался в технические подробности суммирования и учёта движения ТМЦ в NAVISION, т.к. большинство аудитории не знакомо с этим продуктом. Ограничился очень кратким упоминанием. Тем более топик не про NAVISION. Обсуждаем здесь не SIFT, а некоторые идеи построения систем. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.05.2005, 12:54 |
|
||
|
Нужно построить систему, которая будет показывать остатки товара в реальном времени...
|
|||
|---|---|---|---|
|
#18+
LSVЕсть таблица АБСОЛЮТНО ВСЕХ операций перемещения товара. Наличие на любой период получается путём суммирования от "самого начала". Это неправда. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.05.2005, 13:42 |
|
||
|
Нужно построить систему, которая будет показывать остатки товара в реальном времени...
|
|||
|---|---|---|---|
|
#18+
2mazzy LSVзнатокам NAVISION просьба не придираться - я знаю, что таблиц немного больше :) Надеюсь Вы это прочитали. Это адресовано Вам, как знатоку NAVISION. Конечно там всё сложнее. Кто ж спорит.... :) Задача была привести пример решения, а не углубляться в детали и подробности реализации конкретной системы. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.05.2005, 18:23 |
|
||
|
Нужно построить систему, которая будет показывать остатки товара в реальном времени...
|
|||
|---|---|---|---|
|
#18+
вот ни фига себе! "немного сложнее"... Они получаются НЕ "путём суммирования от "самого начала"". Хорошо, ушли в сторону. Извините. Вернемся к теме. "Нужно построить систему, которая будет показывать остатки товара в реальном времени... " ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.05.2005, 18:31 |
|
||
|
Нужно построить систему, которая будет показывать остатки товара в реальном времени...
|
|||
|---|---|---|---|
|
#18+
mazzy LSVЕсть таблица АБСОЛЮТНО ВСЕХ операций перемещения товара. Наличие на любой период получается путём суммирования от "самого начала". Это неправда. Почему же? Складской учет - это как бухгалтерский учет. Он может иметь только модификации, заточенные под конкретные нужды, но суть то всегда одна: 1. Есть позиции/ячейки/наличие/статьи на складе - аналог плана счетов в бухучете. 2. Все движение на складе ДОЛЖНО отражаться либо приходом либо расходом - аналог проводок. 3. Отличие: если "проводки" "наружу" ("во вне") ...а аналогия то четко прослеживается. Если НАЛИЧИЕ не получается суммированием АБСОЛЮТНО всех операций, то надо бить тревогу - происходит одно из: 1. Нарушаются базовые принципы бухучета 2. Кто-то что-то (например, остатки) вручную редактирует без проводок и т .п. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.05.2005, 19:16 |
|
||
|
Нужно построить систему, которая будет показывать остатки товара в реальном времени...
|
|||
|---|---|---|---|
|
#18+
mazzyвот ни фига себе! "немного сложнее"... Они получаются НЕ "путём суммирования от "самого начала"". Хорошо, ушли в сторону. Извините. Вернемся к теме. "Нужно построить систему, которая будет показывать остатки товара в реальном времени... " В управленческом учете разве состояние счета не получается "повторением проводок с момента формирования остатков на счетах"? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.05.2005, 19:17 |
|
||
|
Нужно построить систему, которая будет показывать остатки товара в реальном времени...
|
|||
|---|---|---|---|
|
#18+
BusyManЕсли НАЛИЧИЕ не получается суммированием АБСОЛЮТНО всех операций, то надо бить тревогу - происходит одно из: Вы не на то слово ударение ставите. lsv говорил про ПОЛУЧЕНИЕ . Про технические действия, которые нужно выполнить перед тем, как показать остатки пользователю в отчетах. Так вот, Навижин для того, чтобы показать остатки, не выполняет операцию суммирования всех операций. Такой запрос на сервер не посылается. Чтобы ответить на вопрос, а какой же посылается, придется рассказывать очень много. Давайте про Навижин в отдельной ветке? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.05.2005, 21:48 |
|
||
|
Нужно построить систему, которая будет показывать остатки товара в реальном времени...
|
|||
|---|---|---|---|
|
#18+
Garya...(этого, например, не умеет 1С). Типовая 1С, так скажем :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.09.2005, 07:41 |
|
||
|
Нужно построить систему, которая будет показывать остатки товара в реальном времени...
|
|||
|---|---|---|---|
|
#18+
2 AlexG Беспокоит одно - фраза "реальное время", почему то сразу QNX вспоминается... Насколько время должно быть реальным? Другими словами какова задержка м\д фактом движения товара и отражением этого в учетной системе? Возможно, вам не подходит учетная система, как система складского учета, тогда стоит обратиться к таким системам как солво. Она, умеет работать с радиометками. При дорогом кубометре товара, думаю, что это оптимальная технология по критерию цена-скорость. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.09.2005, 09:34 |
|
||
|
Нужно построить систему, которая будет показывать остатки товара в реальном времени...
|
|||
|---|---|---|---|
|
#18+
Смотря что понимать под остатками. 1) Остатки бывают простые. На дату-время. 2) Бывают в учетных ценах Причем цены могут расчитываться по любому методу списания, причем как по конкретному складу так и по фирме и в принципе и по холдингу. 3) Бывают по товару, задолженности, денежным средствам, любому другому виду регистров 4) Бывают в резерве, в брони К этому списку можно еще много чего приплести. Все сразу и в реальном времени сделать не проблема, но боюсь проблем с производительностью не избежать. Должен быть разумный компромисс и правильное понимание бизнес-требований. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.09.2005, 13:12 |
|
||
|
Нужно построить систему, которая будет показывать остатки товара в реальном времени...
|
|||
|---|---|---|---|
|
#18+
1) Остатки бывают простые. На дату-время. Легко считается в реале. 2) Бывают в учетных ценах Причем цены могут расчитываться по любому методу списания, причем как по конкретному складу так и по фирме и в принципе и по холдингу. В реале легко считается по методу средневзвешенных (скользящих) цен и при партионном методе. 3) Бывают по товару, задолженности, денежным средствам, любому другому виду регистров Перпендикулярно. 4) Бывают в резерве, в брони Так же. К этому списку можно еще много чего приплести. Все сразу и в реальном времени сделать не проблема, но боюсь проблем с производительностью не избежать. Должен быть разумный компромисс и правильное понимание бизнес-требований. Совершенно справедливо. В реале надо считать только то, что и требуется в реале. Прежде всего это натуральные остатки товара, заказы, резерв и бронь. -- Шумов В. http://www.acdplus.ru/ ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.09.2005, 13:50 |
|
||
|
Нужно построить систему, которая будет показывать остатки товара в реальном времени...
|
|||
|---|---|---|---|
|
#18+
VladSh 1) Остатки бывают простые. На дату-время. Легко считается в реале. 2) Бывают в учетных ценах Причем цены могут расчитываться по любому методу списания, причем как по конкретному складу так и по фирме и в принципе и по холдингу. В реале легко считается по методу средневзвешенных (скользящих) цен и при партионном методе. VladSh, обоснуйте ваше мнение. Пару слов, пожалуйста, КАК ИМЕННО легко считается в реале и ЧТО ИМЕННО легко считается в реале? При каких ограничениях? при каких условиях? Опишите хотя бы схематично... Оставьте надежду насчет вашей компетентности, пожалуйста. VladSh, я удалил ваши рекламные и сообщения без обоснований. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.09.2005, 15:55 |
|
||
|
Нужно построить систему, которая будет показывать остатки товара в реальном времени...
|
|||
|---|---|---|---|
|
#18+
VladSh, обоснуйте ваше мнение. Пару слов, пожалуйста, КАК ИМЕННО легко считается в реале и ЧТО ИМЕННО легко считается в реале? При каких ограничениях? при каких условиях? Опишите хотя бы схематично... Оставьте надежду насчет вашей компетентности, пожалуйста. Прошу прощения у народа, ниже специально для mazzy (он меня в натуре просто достал): имеем таблицу товара t1 (около 10 млн. строк) с полями: id - уникальный идентификатор товара part - зав. номер kod - оригинальный № name - наименование и еще пару десятков атрибутов в таблице part kod a01 a01 z001 a01 k777 a01 q444 a01 таблица t2 - движение товара (свыше 10 млн. строк) с полями: id - уникальный идентификатор товара dat - дата vid - ссылка на вид накладной (приход, расход, заказ и прочее) vidnum - знак (+1 - приход, -1 - расход, 0 - заказ) kol - количество ... Возможных вариантов запросов к ним множество, вот один из них (расширенный поиск): по заводскому № (z001) или только по начальным символам номера показать с учетом замен товар, а также: - остаток на текущий момент - заказов поставщикам - заказов от клиентов - в том числе зарезервировано. требование - время выполнения запроса не д.б. более 0,5 сек. (в реале запрос идет не к двум таблицам, а как минимум к пяти - для проверки доступа пользователя к группе товара, складу, фирме и группе фирм) требуемое быстродействие на Yaffil/FireBird достигается за счет использования хранимой процедуры. Очень схематично: 1) for select kod from t1 where part like 'z001%' into ... получили оригинальный №, которому соответствует заводской 2) for select id from t1 where kod = :kod into ... получили набор товара различных производителей 3) select sum(vidnum*kol) from t2 where id = :id and -- другие ограничения into... получили текущий остаток почти аналогично считаются заказанные количества и резерв. опять для mazzy : при использовании MS SQL подобную фенечку можно было бы написать в одном запросе, он обработал бы достаточно быстро (оптимизатор работает очень эффективно). На Yaffil/FireBird запрос в лоб зависает на десятки минут. При использовании хранимых процедур и правильного построения индексов требуемое время (0,5 сек) тем не менее достигается. К сожалению, быстродействие повысить можно только опытным путем (большинству известно, что оптимизатор в Yaffil/FireBird далек от совершенства). VladSh, я удалил ваши рекламные и сообщения без обоснований. Мне это по фигу. Извините пожалуйста, но других слов найти не смог. -- Шумов В. http://www.acdplus.ru/ ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.09.2005, 21:01 |
|
||
|
|

start [/forum/topic.php?fid=29&msg=33297363&tid=1528358]: |
0ms |
get settings: |
11ms |
get forum list: |
22ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
51ms |
get topic data: |
15ms |
get forum data: |
4ms |
get page messages: |
79ms |
get tp. blocked users: |
1ms |
| others: | 232ms |
| total: | 423ms |

| 0 / 0 |
