Вопрос в следующем...
В аксапте ведется партионный учет товара. У одной номенклатуры на момент времени 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.
На чем это может еще отразиться?