Цитата:
Сообщение от
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(".");
}
Обратите внимание на то, что имя таблицы, а точнее
имя источника данных, в данном запросе (в условии участвует поля из одной и той же таблицы) можно было не указывать, но в общем случае его указывать нужно.
Впрочем этот нюанс и многие другие описаны в статье по ссылке, которую я приводил выше