Показать сообщение отдельно
Старый 23.05.2011, 08:51   #23  
S.Kuskov is offline
S.Kuskov
Участник
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
 
3,443 / 1781 (66) ++++++++
Регистрация: 28.04.2007
Адрес: Калуга
Цитата:
Сообщение от timaluhs Посмотреть сообщение
это же запрос который идёт на SQL сервер
Неа. Это запрос, который ещё будет постобработан аксаптой.

Вот такой код у меня выполняется без ошибок:
X++:
static void JobTestExpressionsInQueryRanges(Args _args)
{
    InventTrans InventTrans;
    fromDate fromDate   = 03\05\2011;
    toDate  toDate      = 04\05\2011;

    Query q;
    QueryBuildDataSource qbdsInventTrans;
    QueryRun qr;
    ;
    q = new Query();
    qbdsInventTrans = q.addDataSource(tableNum(InventTrans));
    qbdsInventTrans.addRange(fieldNum(InventTrans, RecId)).value(
        strfmt("(((%1.%2 >= %4) && (%1.%2 <= %5)) || ((%1.%3 >= %4) && (%1.%3 <= %5)))" ,
            qbdsInventTrans.name(),
            fieldStr(InventTrans, DatePhysical),
            fieldStr(InventTrans, DateFinancial),
            Date2StrXpp(fromDate),
            Date2StrXpp(toDate)
        ));

    info(qbdsInventTrans.toString());

    qr = new QueryRun(q);
    while (qr.next())
    {
        InventTrans = qr.get(tableNum(InventTrans));
        info(InventTrans.ItemId);
        break;
    }

    info(".");
}
Обратите внимание на то, что имя таблицы, а точнее имя источника данных, в данном запросе (в условии участвует поля из одной и той же таблицы) можно было не указывать, но в общем случае его указывать нужно.
Впрочем этот нюанс и многие другие описаны в статье по ссылке, которую я приводил выше

Последний раз редактировалось S.Kuskov; 23.05.2011 в 09:43.