Изучайте
X++:
static void Job59(Args _args)
{
Query query = new Query(queryStr(InventTransPrb));
InventTrans inventTrans;
QueryRun qr1, qr2;
Counter cnt;
;
// query.dataSourceNo(1).addSortField(fieldNum(InventTrans, ItemId)); // Уже в АОТ
query.dataSourceNo(1).orderMode(OrderMode::GroupBy);
query.dataSourceNo(1).addSelectionField(fieldNum(InventTrans, Qty), SelectionField::Sum);
query.dataSourceNo(1).addSortField(fieldNum(InventTrans, Direction)); // Дабы увидеть это поле в выборке
// 1.
sysQuery::findOrCreateRange(query.dataSourceNo(1), fieldNum(InventTrans, Direction)).value(enum2str(InventDirection::Issue));
new DEV_QueryBrowser().run( query );
// Вместо QueryBrowser -->
cnt = 0;
qr1 = new QueryRun(query);
while(qr1.next())
{
inventTrans = qr1.get(tableNum(InventTrans));
info(strFmt('%1 %2', inventTrans.Qty, inventTrans.Direction));
cnt++;
if(cnt>10)break;
}
// Вместо QueryBrowser <--
query.dataSourceNo(1).clearRanges();
info('----------------------');
// 2.
sysQuery::findOrCreateRange(query.dataSourceNo(1), fieldNum(InventTrans, Direction)).value(enum2str(InventDirection::Receipt));
new DEV_QueryBrowser().run( query );
// Вместо QueryBrowser -->
cnt = 0;
qr2 = new QueryRun(query);
while(qr2.next())
{
inventTrans = qr2.get(tableNum(InventTrans));
info(strFmt('%1 %2', inventTrans.Qty, inventTrans.Direction));
cnt++;
if(cnt>10)break;
}
// Вместо QueryBrowser <--
query.dataSourceNo(1).clearRanges();
}