Для просмотра итогов по книге продаж, воспользовался одноименной кнопкой на форме "Книга продаж" ИТОГИ. В открывшейся форме сумма НДС превышает сумму НДС строк в самой книге продаж.
При разборе обнаружил непонятный мне код в классе BookAmountsEngine_RU,
метод initQueryRun.
Идет сравнение с #BookCorrectionDate (который равен 31.05.2006). Что это за дата?
Как результат страбатывает ветка else, в которой формируется непонятный мне qbds. В чем смысл этого кода?
X++:
#VATTransitionPeriod_RU
private QueryRun initQueryRun()
{
Query query = new Query();
QueryBuildDataSource qbds;
switch (module)
{
case SalesPurch::Sales :
if (SalesBookTable_RU::find(bookId).getToDate() < #BookCorrectionDate)
{
qbds = query.addDataSource(tablenum(SalesBookTrans_RU));
qbds.addRange(fieldnum(SalesBookTrans_RU, BookId)).value(bookId);
}
else
{
qbds = query.addDataSource(tablenum(SalesBookTrans_RU));
SalesBook_Print_RU::initDefaultQuery(bookId, qbds);
qbds = query.addDataSource(tablenum(PurchBookTrans_RU));
SalesBook_Print_RU::initDefaultQuery(bookId, qbds);
}
break;