А зачем там много QueryBuildDataSource?
X++:
Query q = new Query();
QueryBuildDataSource qbds;
;
qbds = q.addDataSource(tableNum(InventTable));
qbds = qbds.addDataSource(tableNum(InventTableModule));
qbds.joinMode(JoinMode::INNERJOIN);
qbds.relations(true);
qbds.addRange(fieldnum(InventTableModule, ModuleType)).value(queryValue(ModuleInventPurchSales::Sales));
qbds.addDataSource(tablenum(BOM));
qbds.addLink(fieldnum(InventTable, itemId),fieldnum(BomTable, BomId));
qbds.joinMode(JoinMode::NOEXISTSJOIN);
info(qbds.toString());