похоже вот такой способ будет работать всегда.
но если на код клиента уже был установлен критерий, то этот способ будет работать медленно.
X++:
boolean findSuperCust(Query _srcQuery, CustAccount _custAccount = "КлиентАБВ")
{
Query q = new Query(_srcQuery); // создаем копию
QueryBuildRange qbr;
QueryRun qr;
CustTable custTable;
// устанавливаем новый критерий только если раньше он был не установлен.
qbr = SysQuery::findOrCreateRange(q.dataSourceTable(tablenum(custTable)),fieldnum(custTable, AccountNum));
if( !qbr.value() )
qbr.value(queryValue(_custAccount));
// выполняем запрос
qr = new QueryRun(q);
while( qr.next() )
{
custTable = qr.get(tablenum(CustTable));
if( custTable.accountNum == _custAccount )
return true;
}
return false;
}