07.03.2008, 09:32 | #1 |
Участник
|
Кредит-нота заказа на покупку в AX4
Здравствуйте все!
Накануне столкнулся со странной ошибкой при попытке создания Кредит-ноты закупки: "Для номенклатуры установлен режим автоматической генерации серийных номеров." (поймал это в AX 4.0, в Axapta 3.0 ошибка не воспроизвелась). Начал копать, обнаружил следующее: 1) Ошибка генерируется в методе updateInvoiceCreditCopy табицы InventTrans в случае существования более одной проводки(строчки) по обрабатываемому лоту. Смысл проверки мне не совсем понятен (но в версии AX3 она уже была). 2) Методом глубокого погружения в Debuger удалось определить следующее. Несколько строк в InventTrans образуютя в случае ЧАСТИЧНОГО резервирования сторнирующих проводок. т.е. когда в статус "Физ. зарезервировано" переходит не всё количество и часть соответственно остаётся в статусе "Заказано". 3) У меня эта ситуация возникла при сторнировании частично сопоставленной(закрытием склада) складской проводки, в этом случае резервироваться пытается только её открытая часть. Интересно что в случае отсутствия по этой номенклатуры доступного колическтва в наличии разервирование естественно не проходит, сторнирующая проводка не делится на "Физ. зарезервировано" и "Заказано", ошибка не выдаётся и кредит-нота создаётся! 4) Резервирование происходит в методе createEstimatedInventTrans класса InventUpd_Estimated. Сравнил с тройкой понял, что появилось оно только в версии AX4.0 в 3.0 такого механизма не было. Если закоментировать кусок кода, отвечающий за резервирование, то функция создания кредит-ноты работает. Но что-то мне подсказывает, что это не выход. Если кто-нибудь сталкивался с подобной проблемой, или более детально понимает механизм работы процедуры сторнирования, прошу помочь разобраться в сложившейся ситуации |
|