Я имел в виду нечто такое. Если не взлетит, не пинайте - писал на коленке.
X++:
boolean prompt()
{
Args formArgs;
FormRun formRun;
FormDataSource formDataSource;
boolean ret = false;
formArgs = new Args();
formArgs.name(formStr(myForm));
formArgs.caller(this);
formRun = ClassFactory::formRunClassOnClient(formArgs);
formRun.init();
formDataSource = formRun.dataSource();
if (formDataSource.queryRun.prompt())
{
formDataSource.query(formDataSource.queryRun.query());
formRun.run();
formRun.wait();
ret = formRun.closedOk();
}
return ret;
}