17.05.2012, 08:20 | #1 |
Участник
|
Переоценка ПЗ, содержащего перерасход спецификации
AX2009
В спецификации производственного заказа указываю плановую норму потребления входящей компоненты. По факту случается перерасход. В строке журнала отгрузочной накладной устанавливаю большее количество. Например: "Предложение" = 25,2 "Потребление" = 27,5 После разноски журнала система списывает со склада 27,5. Пока всё верно. Запускаю оценку ПЗ (Обновить/Оценка). Система досоздаёт приходную проводку с типом строка производства в статусе заказано на разницу в 2,3. Т.е. как бы ожидает, что перерасход компоненты будет покрыт возвратом из производства. Вопрос. Это штатное поведение системы или возможно это особенность нашего приложения? Если поведение штатное, то может ли оно быть как-то изменено настройками? Я понимаю что арифметически всё верно: есть норма, есть фактическое потребление, есть разница. Если что-то ещё недосписали логично видеть ожидающую расходную проводку, при помощи которой можно будет досписать. Но если пересписали... и возвращать пересписанное никто не собирается зачем нужно ожидать ничем не подкреплённый приход? Ведь следующее сводное планирование будет ошибочно расчитывать и на этот приход... Последний раз редактировалось S.Kuskov; 17.05.2012 в 08:23. |
|
17.05.2012, 10:57 | #2 |
Участник
|
Да, поведение штатное.
Если делается оценка после разноски отгрузочных накладных, то из оцененного количества вычитается значение поля "Запущено в производство" и это количество считается как остаток. Так как оценено 25,2 (спецификацию производственного заказа не меняли) и списано 27,5, то считается, что осталось -2,3 что пораждает плюсовую проводку. Настройками не решить, оценка идет безусловно в методе setItemConsumption класса ProdUpdCostEstimation (это в DAX4, в 2009 может что-то изменилось) |
|
|
За это сообщение автора поблагодарили: S.Kuskov (5). |
17.05.2012, 12:47 | #3 |
Участник
|
Во залипуха какая получилась:
в методе setItemConsumption класса ProdUpdCostEstimation сразу после определения этого самого остатка. X++: // -->> if (sign(_prodBOM.RemainBOMPhysical) != sign(_prodBOM.QtyBOMCalc)) { _prodBOM.RemainBOMPhysical = 0; _prodBOM.RemainInventPhysical = 0; } // <<-- |
|
18.05.2012, 10:13 | #4 |
Участник
|
Вчера посмотрел в DAX2009 и увидел, что уже есть подобный код (только определение того, что знаки разные сделано иначе):
X++: if (_prodBOM.RemainBOMPhysical * _prodBOM.RemainBOMFinancial < 0) _prodBOM.RemainBOMPhysical = 0; ... if (_prodBOM.RemainInventPhysical * _prodBOM.remainInventFinancial() < 0) _prodBOM.RemainInventPhysical = 0; |
|
|
За это сообщение автора поблагодарили: S.Kuskov (1). |
|
|