Цитата:
Сообщение от
mazzy
тогда остается только перебор записей в случае, если критерий на accountNum установлен?
А чем не подходит такой вариант?
X++:
boolean findSuperCust(Query _srcQuery, CustAccount _custAccount = "КлиентАБВ")
{
Query q = new Query(_srcQuery); // создаем копию
QueryBuildDataSource qbds = q.dataSourceTable(tablenum(custTable));
QueryBuildRange qbr;
QueryRun qr;
Range SuperCustRange = strfmt("(%1.%2 == %3)", qbds.name(), fieldStr(custTable, AccountNum));
// устанавливаем новый критерий или меняем существующий
qbr = SysQuery::findOrCreateRange(qbds ,fieldnum(custTable, DataAreaId));
if (qbr.value())
qbr.value(strfmt("(%1 && %2)", SuperCustRange, qbr.value()));
else
qbr.value(SuperCustRange);
// выполняем запрос
qr = new QueryRun(q);
return qr.next();
}
Я вижу один недостаток - ограничение на длину строки в Range.