Показать сообщение отдельно
Старый 03.02.2010, 12:44   #3  
Владимир Максимов is offline
Владимир Максимов
Участник
КОРУС Консалтинг
 
1,709 / 1201 (44) ++++++++
Регистрация: 13.01.2004
Записей в блоге: 3
По банальной причине. Это бессмысленно. Не имеет "физического" смысл

"Физ.наличие" - это то, сколько товара физически вообще есть на складе.
"Физ.доступно" - это то, сколько товара из того, что физически есть, можно использовать при создании новых заказов. Сколько товара "свободно". Никем не зарезервировано под свои нужды.

Как рассчитать эти параметры на заданную дату?

Очевидно, что для "Физ.наличия" все просто. Достаточно просто сложить количества складских проводок, вне зависимости от того, какой статус прихода/расхода они имеют в настоящее время. История изменения статусов роли не играет. Досточно знать их статус на текущий момент и когда произошел физический приход/расход товара. Дата прихода/расхода зафиксирована в полях DatePhysical/DateFinancial/DateInvent

А вот для "Физ.доступно" просто сложить проводки - невозможно! Ведь надо знать не просто статус проводки, который она имеет сейчас, а тот статус проводки, который у нее был на интересующую дату! И даже дату установить не возможно, ведь установка/снятие с резерва не порождает новых проводок.

Ну, например, если 1 штука была зарезервирована вчера, а сегодня уже снята с резерва, то, очевидно, чтобы определить тот факт, что вчера "Физ.доступно" было 0, а сегодня - 1 надо хранить историю. Недостаточно знать, что есть сейчас. Необходимо знать, что было вчера

А для расчета "Физ.наличие" история не нужна. Что вчера товар был на складе, что сегодня он есть. Ну и что, что в другом статусе. Но ведь есть же! Есть физическое наличие товара.

Вот и получается, что "Физ.доступно" на дату рассчитать просто невозможно. Нет необходимой информации (истории изменения статусов проводок). Так зачем вычислять бесполезную информацию?

Последний раз редактировалось Владимир Максимов; 03.02.2010 в 12:53.
За это сообщение автора поблагодарили: Evgeniy2020 (1).