Первоначальный неправильный ответ:
Возможно ли сделать то же самое с помощью запроса AOT, не используя запрос объединения или добавляя два раза один и тот же источник данных
№
Правильный ответ, благодаря комментаторам:
Query q = new Query();
QueryBuildDataSource qbds1 = q.addDataSource(tableNum(EcoResproduct));
QueryBuildDataSource qbds2 = qbds1.addDataSource(tableNum(TableX));
qbds2.addrange(fieldNum(TableX, RecId)).value(strFmt('((%2.Product == %1.RecId) || (%2.DistinctProductVariant == %1.RecId))', qbds1.name(), qbds2.name()));
info(qbds1.toString());