Показать сообщение отдельно
Старый 12.08.2014, 00:24   #1  
Logger is offline
Logger
Участник
Лучший по профессии 2015
Лучший по профессии 2014
 
3,972 / 3268 (116) ++++++++++
Регистрация: 12.10.2004
Адрес: Москва
Записей в блоге: 2
Закрытие склада. Разъехались InventSettlement и LedgerTrans
Привет всем.

Ковырял закрытие склада, обнаружил странное поведение :
Простановки отметки о разнесенности 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