Показать сообщение отдельно
Старый 07.06.2007, 10:13   #1  
Spiker is offline
Spiker
GMCS
Сотрудники компании GMCS
 
6 / 10 (1) +
Регистрация: 07.06.2007
Адрес: Пенза
! Вопрос по резервированию
Вопрос в следующем...
В аксапте ведется партионный учет товара. У одной номенклатуры на момент времени X в наличии 2 партии товара. Используется модель FIFO. т.е. по хорошему Аксапта должна полностью выбрать всю партию 1, а потом начать выбирать партию 2, т.к. партия 1 исторически возникла раньше партии 2. Но на деле не совсем так. Расход идет попеременно то из партии 1, то из партии 2. Анализ проводок привел к мысли о том, что из за частых корректировок даты на которые ориентируется система при резервировании обновляются.
Исследование кода позволило обнаружить причину...
в классе InventUpd_Reservation, в методе updateReserveMore()
создается query по запасам в наличии (InventSum), в запросе сортировка идет по полю InventSum.LastUpdDatePhysical ASC
Данное поле обновляется в InventSum\Methods\addInventTransOnSum

X++:
if ( ! inventTrans.isTransfer() )
        {
            if (inventTrans.DatePhysical)
                this.LastUpdDatePhysical = inventTrans.DatePhysical;
            else
            if (inventTrans.DateInvent)
                this.LastUpdDatePhysical = inventTrans.DateInvent;
            else
            if (inventTrans.DateExpected)
                this.LastUpdDateExpected = inventTrans.DateExpected;
        }
        else
        {
            inventDimIssue = this.inventDimTransferIssue(inventTrans);
            if (inventDimIssue && inventDimIssue.inventDimId != inventTrans.inventDimId)
            {
                inventSumIssue = inventSum::find(inventTrans.ItemId,inventDimIssue.inventDimId);
                if (inventSumIssue.RecId)
                {
                    this.LastUpdDateExpected = inventSumIssue.LastUpdDateExpected;
                    this.LastUpdDatePhysical = inventSumIssue.LastUpdDatePhysical;
                }
            }

        }
вопрос в том, если разрешить изменение только если дата пустая, т.е. в первый раз. что бы аксапта не трогала партию 2, не выбрав поностью партию 1.
На чем это может еще отразиться?