Вот в одном классе:
(на подобии в другом)
X++:
public void initParmDefault()
{
QueryBuildDataSource qbdsTrans, qbdsPosting;
QueryBuildRange qbr;
;
super();
query = new Query();
qbdsTrans = query.addDataSource(tableNum(InventTrans));
qbdsTrans.addRange(fieldNum(InventTrans,DateFinancial));
qbr = qbdsTrans.addRange(fieldNum(InventTRans, TransType));
qbr.value(queryValue(InventTransType::Sales));
qbr.status(RangeStatus::Locked);
qbdsTrans.addGroupByField(fieldNum(InventTRans,TransRefId));
//qbdsTrans.addGroupByField(fieldNum(InventTRans,DatePhysical));
qbdsTrans.addGroupByField(fieldNum(InventTRans,DateFinancial));
qbdsTrans.addGroupByField(fieldNum(InventTRans,InvoiceId));
qbdsTrans.addSelectionField(fieldNum(InventTRans,Qty), SelectionField::Sum);
qbdsTrans.addSelectionField(fieldNum(InventTRans,TaxAmountPhysical), SelectionField::Sum);
qbdsPosting = qbdsTrans.addDataSource(tableNum(InventTransPosting));
//qbdsPosting.addRange(fieldNum(InventTransPosting, InventTransPostingType)).value(queryValue(InventTransPostingType::Physical));
qbdsPosting.addRange(fieldNum(InventTransPosting, InventTransPostingType)).value(queryValue(InventTransPostingType::Financial));
//qbdsPosting.addLink(fieldNum(InventTRans,DatePhysical), fieldNum(InventTransPosting, TransDate));
qbdsPosting.addLink(fieldNum(InventTRans,DateFinancial), fieldNum(InventTransPosting, TransDate));
qbdsPosting.addLink(fieldNum(InventTRans,Voucher), fieldNum(InventTransPosting, Voucher));
qbdsPosting.addLink(fieldNum(InventTRans,InventTransId), fieldNum(InventTransPosting, InventTransId));
qbdsPosting.addSelectionField(fieldId2ext(fieldNum(InventTransPosting, Dimension),1), SelectionField::Max);
qbdsPosting.addSelectionField(fieldId2ext(fieldNum(InventTransPosting, Dimension),2), SelectionField::Max);
qbdsPosting.addSelectionField(fieldId2ext(fieldNum(InventTransPosting, Dimension),8), SelectionField::Max);
queryRun = new SysQueryRun(query);
}