|
![]() |
#1 |
Участник
|
Цитата:
Сообщение от Владимир Максимов
Вообще-то, даже чисто логически, вывод будет прямо противополжным. Одна групповая команда по всякому быстрее работает чем куча одиночных команд в цикле.
2. Вы забываете об аналитике. Аналитика у каждой номенклатуры - разная. Вообще говоря, мало кто хочет получить остатки на произвольную дату. Запрос UNRW является неправильным, поскольку не учитывает параметры в группе аналитики. Но я это дело пропустил, поскольку посчитал неважным. ОДНАКО: если вы говорите о групповой обработке, то расскажите как вы обработаете аналитике корректно в групповой обработке? Еще раз: уважаемые, подумайте. |
|
![]() |
#2 |
Участник
|
Цитата:
Сообщение от mazzy
1. Вы почему то обсуждаете конкретную реализацию, а не принцип. Принцип - считаем проводки от конца, а не от начала времен.
Если структура базы корректна, то, должно быть все-равно идем с начала в конец или с конца в начало. Результат должен быть одинаковый. По крайней мере в штуках. Если же рассматривается вопрос, что "с начала времен" просто физически больше записей и, как следствие, уйдет больше времени на их обработку, то опять все зависит от конкретных условий. В общем случае, от текущей даты будет быстрее. А в конкретном, надо смотреть на месте. Цитата:
Сообщение от mazzy
2. Вы забываете об аналитике. Аналитика у каждой номенклатуры - разная. Вообще говоря, мало кто хочет получить остатки на произвольную дату.
... ОДНАКО: если вы говорите о групповой обработке, то расскажите как вы обработаете аналитике корректно в групповой обработке? Или что Вы понимаете под термином "аналитика номенклатуры" применительно к расчету остатков? |
|
![]() |
#3 |
Участник
|
Цитата:
Сообщение от Владимир Максимов
Т.е. "вообще все остатки вот по этому складу". Просто соответствующий фильтр на InventDim.
Или что Вы понимаете под термином "аналитика номенклатуры" применительно к расчету остатков? Конурация, Цвет, Размер, Склад, Ячейка, Партия, ... ГТД(!) Я не верю, что для всех аналитик пользователи будут хотеть "получить остатки не в разрезе складской аналитики, а по конкретному реквизиту аналитики" ![]() Конечно, если у вас используется ТОЛЬКО склад... Причем НЕ БЫВАЕТ аналитики с выключенным складом (обычно это услуги)... Если ваши пользователи НЕ ХОТЯТ видеть отчет в разрезе всех (или нескольких выбранны) аналитик... ![]() |
|
![]() |
#4 |
Участник
|
Цитата:
Сообщение от mazzy
Я не верю, что для всех аналитик пользователи будут хотеть "получить остатки не в разрезе складской аналитики, а по конкретному реквизиту аналитики"
![]() ... Если ваши пользователи НЕ ХОТЯТ видеть отчет в разрезе всех (или нескольких выбранны) аналитик... ![]() Хорошо. Если говорить "в общем случае". Почему при расчете остатка на дату от текущей даты назад в разрезе складских аналитик недостаточно будет добавить группировку по соответствующим полям InventDim? Т.е. логика та же, что и в классе: берем текущий остаток по InventSum, из него вычитаем сумму InventTrans до нужной даты. Это 2 последовательных запроса. Каждый запрос имеет группировку по нужным полям InventDim. Какие здесь проблемы? Чем это принципиально отличается от работы классов InventSumDate? |
|
![]() |
#5 |
Участник
|
Цитата:
Сообщение от Владимир Максимов
Т.е. логика та же, что и в классе: берем текущий остаток по InventSum, из него вычитаем сумму InventTrans до нужной даты. Это 2 последовательных запроса.
Каждый запрос имеет группировку по нужным полям InventDim. Какие здесь проблемы? Чем это принципиально отличается от работы классов InventSumDate? Пример из жизни: 1. Исходные данные Есть одна проводка по номенклатуре 01.01.06 +10 шт Остаток = 10 шт Сегодня 31.01.06 2. Начинаем формировать отчет на 15.01.06. Делаем запрос к Sum, получаем 10 шт 3. Кто-то в это время формирует проводку +15 шт 4. Делаем запрос к InventTrans, получаем 15 шт 5. Рассчитываем остатки на 15.01.06: 10шт-15шт = -5 шт Так что при активной работе с базой этот подход не работает. А одним запросом при развесистой аналитике - сделать не получится. |
|
![]() |
#6 |
Участник
|
Цитата:
Сообщение от chel
При этом подходе основной проблемой будет то, что между запросом к InventSum и запросом к InventTrans (если они будут делаться не по одной номенклатуре, то они будут не очень быстрые), кто-то успеет наделать складских проводок.
Там по одному артикулу выполняется несколько последовательных запросов. Все с участием InventTrans. Т.е. Ваше возражение в той же степени применимо и к стандартному классу. Хотя, конечно, вероятность ниже. Цитата:
Сообщение от chel
Так что при активной работе с базой этот подход не работает.
Кроме того, поскольку речь идет о статистических отчетах, то даже если точность в пределах 5%, то считаем, что расчет выполнен точно. Цитата:
Сообщение от chel
А одним запросом при развесистой аналитике - сделать не получится.
То же самое делает и стандарный класс InventSumDate. Но по каждому артикулу в отдельности. |
|
![]() |
#7 |
Шаман форума
|
Цитата:
Сообщение от Владимир Максимов
ЭТА проблема решается чисто организационными средствами. Например, выполнение отчетов на вчерашней копии базы данных.
Если отчеты выполнять копиях базы, то кроме возникновения необходимости содержать вторую инсталляцию с доступом к ней определенных пользователей (запрещено лицензией!!) также возникнет и вопрос - а зачем тогда вообще использовать промышленные СУБД (на многочисленных копиях базы собирались отчеты с древних версиях 1С и систем на FoxPro лет 10 назад!)
__________________
All information in this post is strictly confidential. If you have read it in error, please forget it immediately. |
|
![]() |
#8 |
Участник
|
Цитата:
Сообщение от Владимир Максимов
ЭТА проблема решается чисто организационными средствами. Например, выполнение отчетов на вчерашней копии базы данных.
|
|
![]() |
#9 |
Участник
|
Цитата:
Сообщение от chel
2. Начинаем формировать отчет на 15.01.06. Делаем запрос к Sum, получаем 10 шт
3. Кто-то в это время формирует проводку +15 шт 4. Делаем запрос к InventTrans, получаем 15 шт ![]() |
|
![]() |
#10 |
Участник
|
Цитата:
Сообщение от ALES
Транзакцию ведь можно и корректно написать
![]() |
|
Теги |
остатки, ax3.0 |
|
![]() |
||||
Тема | Ответов | |||
Остатки на дату InventSumDatePhysical | 6 | |||
Остатки товара на определенную дату | 7 | |||
Скачут остатки | 3 | |||
Цена на дату создания заказа/закупки | 2 | |||
Остатки | 6 |
|