Показать сообщение отдельно
Старый 18.06.2009, 14:41   #1  
ena_ax is offline
ena_ax
Участник
 
254 / 46 (2) +++
Регистрация: 06.12.2006
Итоги по книге продаж
Для просмотра итогов по книге продаж, воспользовался одноименной кнопкой на форме "Книга продаж" ИТОГИ. В открывшейся форме сумма НДС превышает сумму НДС строк в самой книге продаж.

При разборе обнаружил непонятный мне код в классе 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;