Печатаем дополнительный лист книги продаж, содержащий исправления предыдущего месяца. В столбец "В том числе продажи, облагаемые налогом по ставке 18 процентов (5) сумма НДС(5б)" выводится завышенная сумма.
Запрос "Итоги" на форме книги продаж отображает коректные значения. Также в этом запросе видно, что присутствует не нулевое значение поля "Восстановление НДС > НДС 18% > Стоимость без НДС"
При печати именно на эту величину не идёт указанное значение. Т.е. эта величина дважды учитывается при расчёте значении колонки 5б.
Анализ кода показал, что в SalesBook_AddList_PrintExcel_RU.calcTotal():
X++:
...
bookAmountsEngine.fetchTaxMap();
sumTotalAmount += bookAmountsEngine.getAmountInclVAT();
salesAmountExclVAT20 += bookAmountsEngine.getAmountVATStandard().amountLiableToVAT();
taxAmountVAT20 += bookAmountsEngine.getAmountVATStandard().taxAmountVAT();
salesAmountExclVAT20Tmp += bookAmountsEngine.getAmountVATStandard20().amountLiableToVAT();
taxAmountVAT20Tmp += bookAmountsEngine.getAmountVATStandard20().taxAmountVAT();
salesAmountExclVAT10 += bookAmountsEngine.getAmountVATReduced().amountLiableToVAT();
taxAmountVAT10 += bookAmountsEngine.getAmountVATReduced().taxAmountVAT();
...
метод bookAmountsEngine.getAmountVATStandard() выполняется дважды.
Внутри этого метода происходит приращение значений переменных:
X++:
public BookStructSmallVATAmounts_RU getAmountVATStandard()
{
amountVATStandardDomestic.addAmounts2(amountVATStandardExport);
amountVATStandardDomestic.addAmounts2(amountVATStandardRestored);
return amountVATStandardDomestic;
}
Естественно при повторном вызове значения увеличиваются ещё раз.
Что это? Корявая реализация механизма отложенных вычислений?
Подскажите у кого в приложении в каком состоянии присутствуют эти классы? Может в каком KB это уже пофикшено?