Цитата:
Сообщение от
Wamr
если не в этом, то в чем?
посмотреть с кем сопоставлена проводка и сравнить их costValue по сопоставленному кол-ву... опять же возвращаемся к InventSettlement
Привет Вась.
Есть такая проблема.
Есть приложение сильное изменённое.
В нём хватает чужого кода в классах закрытия, пересчёта и корректирки.
По одной номенклатуре (возможно их больше) не получается скорректировать себестоимость через корректировку наличия.
Выкидывает сообщение
Отрицательная себестоимость не возможна.
(S) \Classes\InventTransAdjust\updateNow - line 72
Не могу понять в чём дело. Считается вроде всё правильно и интуиция подсказывает возможно входные данные не правильны. А именно поле корректировки.
Предположил что это поле на InventTrans проверяется таким образом.
Для ValueOpen = да
X++:
display Amount MRD_calcCostAmountAdjustment()
{
Amount costAmountAdjustment;
;
if(this.QtySettled)
costAmountAdjustment = this.Qty * this.CostAmountSettled / this.QtySettled - this.CostAmountPosted;
else
costAmountAdjustment = this.CostAmountSettled;
return costAmountAdjustment;
}
Сделал форму и вывожу эти поля.
1) Цифры в основном различаются на втором знаке после запятой.
На той проводке которая меня интересует на первой после запятой.
Как раз мне мальца и нехватает чтоб ошибку убрать.
2) Что меня ещё смущает?
Что есть прводки без сопоставления, но с корректировкой.
Не понятно тогда откуда эти суммы беруться, если нет сопоставления.
Визуально вижу что эти цифры иногда совпадают с проводками по той же номенклатуре но по которой были сопоставления. Связано это или нет не знаю точно.
Первый вопрос более интересен. Но если кто сможет объяснить второй (Почему так) тоже будет хорошо.