Показать сообщение отдельно
Старый 05.02.2010, 11:00   #1  
Andrux is offline
Andrux
Участник
Axapta Retail User
 
263 / 17 (1) ++
Регистрация: 29.05.2007
Ссылка на накладную (InvoiceId) в InventTrans
Добрый день. Столкнулся с таким интересным эффектом. В Axapta 2009 появилось дополнение при разноске накладной/счет-фактуры поля корректирующий документ. Проставляешь номера и даты документов и все разносится с этими значениями. Но в InventTrans проставляются значения сгенерированные системой из номерной серии.
Для меня до сих пор не понятно, зачем в InventTrans есть InvoiceId и некоторые отчеты работают на основе этой связи, а также значение маржи в строках накладных клиентов расчитывается тоже по этому полю (а не по voucher).. Переписал несколько методов:
X++:
SalesFormLetter_Invoice/updateInventory
inventUpd_Financial = InventUpd_Financial::newSalesInvoice(_inventMovement,
                                                                   ledgerVoucher,
                                                                   number, 
                                                                   localSalesParmLine,
                                                                   salesParmSubLine,
                                                                   salesParmUpdate.ReduceOnHand);
X++:
inventUpd_Financial = InventUpd_Financial::newSalesInvoice(_inventMovement,
                                                                   ledgerVoucher,
                                                                   salesParmTable.CorrectedInvoiceId_RU ? salesParmTable.CorrectedInvoiceId_RU : number, 
                                                                   localSalesParmLine,
                                                                   salesParmSubLine,
                                                                   salesParmUpdate.ReduceOnHand);
X++:
SalesFormLetter/initLrdgerVoucher
ledgerVoucherObject.parmDocument(
            salesParmTable.DocumentDate ? salesParmTable.DocumentDate : salesParmTable.Transdate,
            number);
X++:
ledgerVoucherObject.parmDocument(
            salesParmTable.DocumentDate ? salesParmTable.DocumentDate : salesParmTable.Transdate,
            salesParmTable.CorrectedInvoiceId_RU ?  salesParmTable.CorrectedInvoiceId_RU : number);

Ничего я не подпорчу?... просто до конца не пойму смысл поля InventId в проводке по нооменклатуре...