как и говорил Иван, вот такой джобик через некоторое время валится с ошибкой SQL (слишком длинный запрос)
X++:
static void JobRangeLength(Args _args)
{
InventTable inventTable, inventTableQr;
int i;
Query q = new Query();
QueryRun qr;
QueryBuildDataSource qbDS;
QueryBuildRange qRange;
;
qbDS = q.addDataSource(tableNum(InventTable));
qbDS.fields().clearFieldList();
qbDS.addSelectionField(fieldNum(InventTable, ItemId));
qbDS.addSortField(fieldNum(InventTable, ItemId), SortOrder::Descending);
qRange = qbDS.addRange(fieldNum(InventTable, ItemId));
qRange.value("null");
qr = new QueryRun(q);
while select ItemId from inventTable
order by ItemId ASC
{
i++;
qRange.value(qRange.value() + ',' + inventTable.ItemId);
qr.query(q);
qr.reset();
qr.next();
inventTableQr = qr.getNo(1);
if(inventTable.ItemId != inventTableQr.ItemId)
{
info(strFmt("%1 %2 %3", i, inventTable.ItemId, strLen(qRange.value())));
warning(qRange.value());
break;
}
}
}