Я делал доработку кстати, вспомнил

Этот класс же используется для вывода Итогов в печатную форму Доп. листа. И я ему не поверил тоже!
Заменил calcTotal() на calcTotalNew() ну и его вызов из printTotal():
X++:
private void calcTotalNew()
{
SalesBook_Print_Excel_RU salesBook_Print_Excel_RU;
SalesBookTable_RU salesBookTable_RU;
;
salesBook_Print_Excel_RU = new SalesBook_Print_Excel_RU();
salesBook_Print_Excel_RU.parmBookId(correctedBookId);
select firstOnly salesBookTable_RU
where salesBookTable_RU.BookId == correctedBookId;
salesBook_Print_Excel_RU.parmFromDate(salesBookTable_RU.LastUpdateDate);
salesBook_Print_Excel_RU.parmToDate(salesBookTable_RU.ClosingDate);
[sumTotalAmount,
salesAmountExclVAT20,
taxAmountVAT20,
salesAmountExclVAT20Tmp,
taxAmountVAT20Tmp,
salesAmountExclVAT10,
taxAmountVAT10,
sumSalesAmountVAT0,
sumAmountWithOutTaxes] = salesBook_Print_Excel_RU.calculateToAddList();
}
Ну и соответственно создал метод calculateToAddList() в классе SalesBook_Print_Excel_RU:
X++:
protected container calculateToAddList()
{
SalesBookTrans_RU salesBookTrans;
PurchBookTrans_RU purchBookTrans;
Query query;
;
isOldBook = false;
queryRun = new QueryRun(SalesBook_Print_RU::createDefaultQuery(bookId, null, fromDate, toDate)); //скопировал из initParmDefault()
this.initBookDateNumDelimiter();
this.changeQueryRun();
queryRun.reset();
while (queryRun.next())
{
salesBookTrans = queryRun.get(tablenum(SalesBookTrans_RU));
sumTotalAmount += salesBookTrans.AmountInclVAT;
purchBookTrans = SalesBook_Print_RU::salesBookTrans2PurchBookTrans(salesBookTrans, isOldBook);
if (salesBookTrans.TransType != SalesPurchBookTransType_RU::Prepayment &&
salesBookTrans.TransType != SalesPurchBookTransType_RU::PrepaymentStorno)
{
salesAmountExclVAT20 += SalesBook_Print_RU::isCreditNote(salesBookTrans, isOldBook) ?
#AmountLiableToVAT20_Purch(purchBookTrans,0) :
#AmountLiableToVAT20_Sales(salesBookTrans,0);
salesAmountExclVAT20Tmp += SalesBook_Print_RU::isCreditNote(salesBookTrans, isOldBook) ?
#AmountLiableToVAT20_Purch(purchBookTrans,1) :
#AmountLiableToVAT20_Sales(salesBookTrans,1);
salesAmountExclVAT10 += salesBookTrans.AmountLiableToVAT10;
}
taxAmountVAT20 += SalesBook_Print_RU::isCreditNote(salesBookTrans, isOldBook) ?
#TaxAmountVAT20_Purch(purchBookTrans,0) :
#TaxAmountVAT20_Sales(salesBookTrans,0);
taxAmountVAT20Tmp += SalesBook_Print_RU::isCreditNote(salesBookTrans, isOldBook) ?
#TaxAmountVAT20_Purch(purchBookTrans,1) :
#TaxAmountVAT20_Sales(salesBookTrans,1);
taxAmountVAT10 += salesBookTrans.TaxAmountVAT10;
sumSalesAmountVAT0 += salesBookTrans.AmountLiableToVAT0;
sumAmountWithOutTaxes += salesBookTrans.AmountNotLiableToVAT;
}
return [sumTotalAmount,
salesAmountExclVAT20,
taxAmountVAT20,
salesAmountExclVAT20Tmp,
taxAmountVAT20Tmp,
salesAmountExclVAT10,
taxAmountVAT10,
sumSalesAmountVAT0,
sumAmountWithOutTaxes];
}
По аналогии и в покупках.