Забыл написать очевидный хотфикс - нужно переместить кусок кода из п. 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>
);