Привет всем.
Ковырял закрытие склада, обнаружил странное поведение :
Простановки отметки о разнесенности InventSettlement
\Classes\InventAdjustPostClosing\updatePosted
ставится для любых записей с ненулевой коррекцией :
X++:
update_recordset inventSettlement
setting posted = NoYes::Yes
where inventSettlement.TransDate == transDate
&& inventSettlement.Voucher == voucher
&& inventSettlement.CostAmountAdjustment != 0
// <GEEU>
&& inventSettlement.InventTransCurrency_RU == this.inventTransCurrency_RU()
// </GEEU>
&& inventSettlement.Posted == NoYes::No
&& inventSettlement.Cancelled == _canceled;
А разноска в ГК
(см. \Classes\InventAdjustPostClosing\updateItem и далее по коду)
идет только для непустых
InventSettlement.BalanceSheetAccount
InventSettlement.BalanceSheetPosting
OperationsAccount.OperationsAccount
OperationsAccount.OperationsPosting
Что очень странно.
У нас это привело к тому что суммы коррекций в InventSettlement разошлись на сотни рублей с суммами разнесенными в LedgerTrans.
Проблема проявилась для переносов.
Как посоветуете лечить ?
1. Заполнять принудительно BalanceSheet* и Operations* поля ?
2. Поправить постирование InventSettlement ?
2-й способ кажется более надежным. Но похоже изначально в архитектуру закрытия склада и проведения коррекций была заложена возможность оставлять счета пустыми. Не хочется ломать систему об колено...
P.S.
Dax 2009 SP5