Без fetchMode четвёрка в аналогичном query вообще игнорирует подчинённые датасорсы. А с QueryFetchMode::One2One запрос таки формируется, но криво:
X++:
q = new Query();
qbds = q.addDataSource(tablenum(Table5), 'Table5');
qbdsNE = qbds.addDataSource(tablenum(Table6), 'Table6');
qbdsNE.joinMode(JoinMode::NoExistsJoin);
qbdsNE.fetchMode(QueryFetchMode::One2One);
qbdsNE.addLink(fieldnum(Table5, Table6Id), fieldnum(Table6, Id));
qbdsNE = qbds.addDataSource(tablenum(Table7), 'Table7');
qbdsNE.joinMode(JoinMode::NoExistsJoin);
qbdsNE.fetchMode(QueryFetchMode::One2One);
qbdsNE.addRange(fieldnum(Table7, RecId)).value('(Table7.Id==Table5.Table7Id)');
qr = new QueryRun(q);
qr.next();
X++:
SELECT A.ID, A.TABLE6ID, A.TABLE7ID, A.RECVERSION, A.RECID
FROM TABLE5 A
WHERE (A.DATAAREAID = 'DAT')
AND NOT EXISTS
(SELECT 'x'
FROM TABLE6 B
WHERE ((B.DATAAREAID = 'DAT') AND (A.TABLE6ID = B.ID))
AND NOT EXISTS
(SELECT 'x'
FROM TABLE7 C
WHERE ((C.DATAAREAID = 'DAT') AND (A.TABLE7ID = C.ID))))
ORDER BY A.DATAAREAID, A.RECID