10.11.2020, 14:17 | #1 |
Участник
|
Закрытие склада во вторичной валюте
Коллеги, обнаружил что в методе класса \Classes\InventCostItemDim\updateMarking используется отбор проводок определённого типа:
X++: // load while select forupdate inventTrans index hint OpenItemIdx where inventTrans.ValueOpen == InventTransOpen::Yes && inventTrans.ItemId == _itemId && inventTrans.InventRefTransId != '' join inventDim where inventDim.InventDimId == inventTrans.InventDimId { ... Таким образом, при закрытии склада во вторичной валюте после закрытия в основной, мы не можем отобрать нужные проводки (потому что фильтрация по inventTrans.ValueOpen == InventTransOpen::Yes) и вообще не получаем сопоставлений, аналогичных тем, что были в основной валюте. То же самое видим в методе класса \Classes\InventCostItemDim\updateServiceItemTrans: X++: while select forupdate inventTrans index hint OpenItemIdx where inventTrans.ValueOpen == InventTransOpen::Yes && inventTrans.ItemId == _itemId && (inventTrans.StatusIssue == StatusIssue::Sold || inventTrans.StatusReceipt == StatusReceipt::Purchased) && inventTrans.DateStatus <= inventClosing.TransDate && inventTrans.InventRefTransId == '' //marked service item transactions will be settled according to marking principle { ... Заметили только что, потому что наша бизнес-логика активно использует эти сопоставления (коррекции себестоимости) в основной и во вторичной валюте. Думаю исправить сие вручную. Но, может, кому известны какие-нибудь подводные камни?
__________________
MS Dynamics AX 2009 Kernel 5.0.1600.4110 Application 5.0.1500.6491 |
|
|
|