То есть нижеприведенный job - это аналог написанного вами запроса с select
X++:
static void QueryFetchModeExample(Args _args)
{
/* while select inventJournalTable
join inventDim
where inventDim.inventDimId == inventJournalTable.InventDimID &&
inventdim.InventLocationId =='?'
join inventdim1
where inventdim1.inventDimId == inventJournalTable.ToInventDimID &&
inventdim1.InventLocationId =='?'
*/
QueryBuildDataSource qbds1, qbds2, qbds3;
Query query = new Query();
qbds1 = query.addDataSource(tableNum(InventJournalTable));
qbds2 = qbds1.addDataSource(tableNum(InventDim));
qbds2.addLink(fieldNum(InventJournalTable, InventDimId), fieldNum(InventDim, InventDimId));
qbds2.fetchMode(QueryFetchMode::One2One);
qbds2.addRange(fieldNum(InventDim, InventLocationId)).value(queryValue('?'));
qbds3 = qbds1.addDataSource(tableNum(InventDim));
qbds3.addLink(fieldNum(InventJournalTable, ToInventDimId), fieldNum(InventDim, InventDimId));
qbds3.fetchMode(QueryFetchMode::One2One);
qbds3.addRange(fieldNum(InventDim, InventLocationId)).value(queryValue('?'));
info(query.dataSourceNo(1).toString());
}
Если он у вас не работает, то значит вы где-то что-то упустили или сюда не выложили.