|  31.07.2015, 19:06 | #1 | 
| Талантливый разгвоздяй | AX 2012 R3: Ошибка разноски ошибок округления по журналу операций 
			
			AX 2012 R3 CU8 (на R2 баг отсутствует). В AX 2012 R3 при разноске журнала операций в модуле "Розница" (statement) при разноске ошибок округления при включенной корреспонденции возникает ошибка (точный текст не помню, но что-то вроде "Счет клиента не указан"): 
 Последний раз редактировалось Kabardian; 31.07.2015 в 19:08. | 
|  | 
|  02.08.2015, 13:16 | #2 | 
| Талантливый разгвоздяй | 
			
			Забыл написать очевидный хотфикс - нужно переместить кусок кода из п. 1 выше п. 2 (аналогично тому, как это было в R2): X++: // <GEERU> if (correspondenceEnabled) { offsetAccountNum = RetailStatementPaymentJournal::getNativeNonLedgerAccount(transTable.custAccount, LedgerJournalACType::Cust); } // </GEERU> if (lastInvoiceId != transTable.invoiceId) { postCreditLedgerJournalLine(); // Unblock the customer custUnblocker.unblockCustomer(transTable.custAccount); select sum(grossAmount), sum(paymentAmount) from transTable2 group by store, businessDate, custAccount, currency, exchRate, invoiceId where transTable2.statementId == statementTable.statementId && transTable2.invoiceId == transTable.invoiceId && transTable2.type != RetailTransactionType::Logoff && transTable2.type != RetailTransactionType::Logon && transTable2.type != RetailTransactionType::Payment && transTable.type != RetailTransactionType::CustomerOrder && !transTable2.incomeExpenseAmount && !transTable2.salesInvoiceAmount && !transTable2.salesOrderAmount; totalRoundAmountCur = this.postRoundingDifference(transTable2 // <GEERU> , LedgerJournalACType::Cust , offsetAccountNum // </GEERU> ); | 
|  | 
|  03.08.2015, 18:43 | #3 | 
| Талантливый разгвоздяй | 
			
			Хотфикс выше неправильный - при тестировании была обнаружена ошибка. Рабочий вариант исправления: X++: if (lastInvoiceId != transTable.invoiceId) { postCreditLedgerJournalLine(); // Unblock the customer custUnblocker.unblockCustomer(transTable.custAccount); select sum(grossAmount), sum(paymentAmount) from transTable2 group by store, businessDate, custAccount, currency, exchRate, invoiceId where transTable2.statementId == statementTable.statementId && transTable2.invoiceId == transTable.invoiceId && transTable2.type != RetailTransactionType::Logoff && transTable2.type != RetailTransactionType::Logon && transTable2.type != RetailTransactionType::Payment && transTable2.type != RetailTransactionType::CustomerOrder && transTable2.type != RetailTransactionType::PendingSalesOrder && !transTable2.incomeExpenseAmount && !transTable2.salesInvoiceAmount && !transTable2.salesOrderAmount; custTable = CustTable::find(transTable.custAccount); if (custTable.InvoiceAccount) { invoiceAccount = custTable.InvoiceAccount; } else { invoiceAccount = custTable.AccountNum; } // <GEERU> if (correspondenceEnabled) { offsetAccountNum = RetailStatementPaymentJournal::getNativeNonLedgerAccount(invoiceAccount, LedgerJournalACType::Cust); } // </GEERU> totalRoundAmountCur = this.postRoundingDifference(transTable2 // <GEERU> , LedgerJournalACType::Cust , offsetAccountNum // </GEERU> ); | 
|  | 
|  | 
| 
 |