Показать сообщение отдельно
Старый 13.11.2012, 14:07   #1  
S.Kuskov is offline
S.Kuskov
Участник
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
 
3,443 / 1781 (66) ++++++++
Регистрация: 28.04.2007
Адрес: Калуга
Расчёт сумм при печати доп. листа книги продаж/покупок
Печатаем дополнительный лист книги продаж, содержащий исправления предыдущего месяца. В столбец "В том числе продажи, облагаемые налогом по ставке 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 это уже пофикшено?
За это сообщение автора поблагодарили: Pustik (2), iCloud (2).