X++:
// ClassDeclaration
class MyClass extends RunBase
{
// Переменная, которая будет использована в диалоге с пользователем
QueryRun myQueryRun;
}
// Перекрыть метод класса RunBase, чтобы указать,
// какую именно переменную надо использовать в диалоге с пользователем
public QueryRun queryRun()
{
return myQueryRun;
}
// Перекрыть метод
void run()
{
Query query;
QueryBuildDataSource qbds;
QueryBuildRange qbr;
;
// Вот здесь в переменной myQueryRun теперь находится то,
// что пользователь указал в диалоге по кнопке "Выбрать"
// Именно здесь теперь можно дополнить критерии отбора, если необходимо
if ("Номер документа")
{
query = myQueryRun.query();
qbds = query.DataSource(tablenum(MyTable));
qbr = qbds.addRange(feldnum(MyTable, MyField));
qbr.value(sysQuery::value("Номер документа"));
}
// Если не создавать новый QueryRun, то изменения в Query сразу отразятся на нем
while (myQueryRun.next())
{
.....
}
}