Цитата:
Сообщение от
Alucardkds
Да, эти таблицы связаны. В обеих таблицах есть поле DepartmentId и при создании записи в Table1 могут быть созданы только те, по которым есть записи в Table2.
И моя идея реализации работает по 1-ому варианту, да.
Но если есть что-то более оптимальное - с радостью выслушаю совет..
X++:
void initQuery()
{
query query1 = new query();
QueryBuildDataSource qbds1, qbds2;
;
qbds1= query1.addDataSource(tableNum(Table1));
qbds2= qbds1.addDataSource(tablenum(Table2));
// Если есть явно прописанные Relation на таблицах или в EDT
//qbds2.relation(true);
// Если нет, то указать объединение явно
qbds2.addLink(fieldnum(Table1, DepartmentId), fieldnum(Table2, DepartmentId))
// Явное указание полей, которые будут отображены в форме диалога
qbds1.addRange(fieldnum(Table1, Field1));
qbds2.addRange(fieldnum(Table2, Field1));
queryrun1 = new queryRun(query1);
}
X++:
void printSheet1()
{
...
EDT edt1, edt2;
Table1 table1;
Table2 table2;
...
;
while (queryrun1.next())
{
table1 = queryrun1.get(tablenum(Table1));
table2 = queryrun1.get(tableNum(Table2));
edt1 = Table1.Field1;
edt2 = Table2.Field2;
(...)
}
}