Цитата:
Сообщение от
Raven Melancholic
У вас немного другая проблема

А в локализованной верисии DAX4 появился механизм указания накладной, которую корректируем. Но дальше, чем использовать этот выбор в печати накладных, локализаторы не пошли.
Насколько я понял это имеется в виду функционал Ax4 SP2, верно? Но сам функционал сторнирования (через кредит-ноту) не изменился в SP2, то есть сначала все равно создается кредит-нота, а потом уже при разноске накладной можно указать корректируемую накладную. И проводки на момент разноски накладной уже существуют "неверно подхваченные" и при физической разноске они же и берутся (класс InventUpd_Physical, методы updatePhysicalReturnedIssue и updatePhysicalReturnedReceipt). А "подхватываются" именно при создании строки заказа в классе PurchCopying_CreditNote (SalesCopying_CreditNote).
Цитата:
Сообщение от
Nuta
У нас такая же проблема (Ax 4.0 Sp2).
При сторнировании подхватывается первая по порядку проводка.
Этот случай был решен через добавление метода transVoucher в класс InventMov_Purch:
X++:
Voucher transVoucher()
{
;
if (purchLine.RefReturnInvoiceTrans_W)
{
// возвращаем Voucher сторнируемой накладной
return VendInvoiceTrans::findRecId(purchLine.RefReturnInvoiceTrans_W).vendInvoiceJour().LedgerVoucher;
}
return '';
}
и добавление параметра при вызове InventTrans::updateMarking в InventUpd_Estimated.createEstimatedInventTrans:
X++:
// вместо markNow = InventTrans::updateMarking(movement.inventRefTransId(), movement.transId(), -qty, '', SortOrder::Descending);
markNow = InventTrans::updateMarking(movement.inventRefTransId(), movement.transId(), -qty, movement.transVoucher(), SortOrder::Descending);
Таким образом, подхватывается не первая попавшаяся проводка, а та, которая соответствует сторнируемой накладной (по Voucher). Ссылка на лот заполняется корректно и закрытие склада тоже нормально отрабатывает.
Еще побочный эффект этого исправления - заметно ускорилась разноска сторнирующей накладной