|
![]() |
#1 |
Moderator
|
Цитата:
Сообщение от miklenew
![]() Выкидывает сообщение
Отрицательная себестоимость не возможна. (S) \Classes\InventTransAdjust\updateNow - line 72 Не могу понять в чём дело. Считается вроде всё правильно и интуиция подсказывает возможно входные данные не правильны. А именно поле корректировки. Предположил что это поле на InventTrans проверяется таким образом. Для ValueOpen = да Возможно, я не прав и топикстартер уже разобрался в том что происходит в этих классах. В таком случае, просьба написать почему возникло подозрение что неверно значение именно в inventTrans.costAmountAdjustment. |
|
![]() |
#2 |
Участник
|
К чему в результате дошёл
1) \Classes\InventSumOpenTransact\add Закидываем в буфер costAmountPosted 2) (S) \Classes\InventSumOpenTransact\setTransAdjustNow - line 4 Инициализируем суммы корректировки нулями 3)(S) \Classes\InventSumOpenTransact\setAdjustment - line 49 Может получиться что расчитанная сумма корректировки нам не подходит, тогда корректировка = this.transValue(x)+this.transAdjustNow(x) Фактически это this.transValue(x) т.к. transAdjustNow(x) = 0 4) (S) \Classes\InventTransAdjust\updateNow - line 35 inventTrans.updateSplit(inventTrans.financialOpenQty()); Делим на две проводки (старая+новая) И все суммы и количества пропорционально распределяем, кроме суммы по корректировке. Корректировку оставляем на изначальной проводке. Т.к. в InventSettlement связь не только по лоту но и по recId. После этой процедуры место старого inventTrans в памяти уже другой. Вот это я исправил, так как это не правильно. Поставил в верху метода X++: RefRecId origRecId; X++: if (inventTrans.financialOpenQty() != inventTrans.qty)
inventTrans.updateSplit(inventTrans.financialOpenQty()); X++: if (inventTrans.financialOpenQty() != inventTrans.qty) { origRecId = inventTrans.RecId; inventTrans.updateSplit(inventTrans.financialOpenQty()); if(inventTrans.RecId != origRecId) inventTrans = InventTrans::findRecId(origRecId, true); }
__________________
Энергия молодых и неравнодушных способна изменить мир к лучшему. |
|
![]() |
#3 |
Участник
|
Есть подозрения, что сделал не правильно.
Завтра ещё буду юзать. Но неужели не у кого нет мыслей зачем там updatesplit(). Буду благодарен за любые догадки, даже неправильные.
__________________
Энергия молодых и неравнодушных способна изменить мир к лучшему. |
|
Теги |
логистика, переоценка |
|
Опции темы | Поиск в этой теме |
Опции просмотра | |
|