Увы, но так работает стандарт, стек выглядит примерно так InventCostItemDim\updateReceiptAdjustment\updateReceiptAdjustmentTrans\updateSettlementReceipt - в нем хорошо видно, что в некоторых случаях система создает корректировки с уже существующим SettleTransId.
Перед основными коррекциями происходит следующее - алгоритм пробегает по всем частично сопоставленным проводкам прихода и проверяет сумму сопоставления текущего и рассчитанного по следующей формуле: себестоимость * кол-во сопоставленное / общее кол-во в проводке, и если суммы различны и она превышает порог указанный в параметрах закрытия, то система формирует коррекцию по данной проводке прихода и рассчитанную сумму размазывает на все проводки, которые связаны с указанной проводкой, при этом корректировки и формируются с новой датой закрытия и существующим SettleTransId и еще в этот момент система не смотрит открыта ли связанная проводка или нет, таким вот образом система может подкорректировать ранее закрытую проводку.
Это хорошо заметно становится, если использовать средневзвешенную модель в DAX 2009 и выше, если у вас виртуальный перенос который создает система используется в нескольких закрытиях(например приход был в одном периоде закрытия, а расходы в нескольких), то вероятность получить указанные коррекции увеличивается.
__________________
Sergey Nefedov
|