Вот код - работает.
X++:
Query q = new Query();
QueryBuildDataSource qbds = q.addDataSource(tableNum(PurchTable));
QueryBuildDataSource qbds2 = qbds.addDataSource(tableNum(PurchLine));
QueryRun qr;
;
qbds2.relations(true);
qr = new QueryRun(q);
info(strFmt("%1", SysQuery::countLoops(qr)));
Судя по приведенной вами информации - связь между вашими таблицами - Active или Delayed
А что это значит?
Что запроса у вас на самом деле 2 а не один. А соответственно все верно отработало - просто неверно считаете.