Т.е. загвоздка в том чтобы в одном условии использовать поля из разных таблиц?
Возможно проблема возникает из-за того что вы пытаетесь подсунуть нужное условие в первую таблицу. Попробуйте тоже самое условие переместить в подчинённый датасорс. Так будет работает?
X++:
QueryBuildRange qbr;
;
qbr = this.query().dataSourceName(stTable2_ds.name()).findRange(fieldnum(stTable2, RecId));
if (!qbr)
{
qbr = this.query().dataSourceName(stTable2_ds.name()).addRange(fieldnum(stTable2, RecId));
}
qbr.value(strfmt('( %1.ItemId like "%2" )',
this.name(),
strlen(StringEdit.text()) ? strfmt('*%1*', StringEdit.text()) : "*"
));
super();
info(this.query().dataSourceName(this.name()).toString());