Как выяснилось, ничего не мешает))
Решение оказалось простым:
PHP код:
Query q = new Query();
QueryBuildDataSource qbds;
QueryBuildDataSource sales;
QueryBuildDataSource purch;
;
qbds = q.addDataSource(tableNum(InventTable));
sales = qbds.addDataSource(tableNum(SalesLine));
sales.relations(true);
sales.joinMode(JoinMode::ExistsJoin);
sales.fetchMode(QueryFetchMode::One2One);
sales.addRange(fieldNum(SalesLine, SalesPrice)).value(SysQuery::value(10));
purch = qbds.addDataSource(tableNum(PurchLine));
purch.relations(true);
purch.joinMode(JoinMode::ExistsJoin);
purch.fetchMode(QueryFetchMode::One2One);
purch.addRange(fieldNum(PurchLine, PurchPrice)).value(SysQuery::value(20));
Забавно, что подобные вопросы всплывают с завидной периодичностью, и на них как правило отвечают что-то типа: "Насколько я помню, И между DataSource действительно не получится, если класть их на один уровень".
Поправьте меня, если это не так