Еще для себя напишу, чтобы не забыть
На моем примере на картинке в начале этой темы я показал форму, которая построена на Query, использующую таблицу InventBatch. Это необычная таблица, привязанная сразу к двум таблицам в запросе: к таблице InventDim по полю InventBatchId и к таблице InventTable по полю ItemId.
Чтобы запрос с этой таблицей работал корректно, я источник данных для нее сделал дочерним к InventDim через дизайнер Query в АОТ, а в методе initQuery() моего класса программно добавил связку с источником данных InventTable
X++:
void initQuery()
{
Query query = new Query(queryStr(zInventAdvanceProdDateReport));
QueryBuildDatasource qbds;
QueryBuildRange qbr;
;
qbds = query.dataSourceTable(tableNum(InventBatch));
qbr = sysQuery::findOrCreateRange(qbds, fieldNum(InventBatch, ItemId));
qbr.value("((ItemId == InventTable_1.ItemId))");
qbr.status(RangeStatus::Hidden);
queryRun = new QueryRun(query);
}