В процессе тестирования выяснилось, что не работает с полями из Datasource-ов с linkType == InnerJoin, поэтому теперь тестируем такой вариант:
Код:
if (_p1 == #taskShortCutMenuFilter) {
formControl = this.selectedControl();
if (formControl && classidget(formControl) == classnum(formStringControl)) {
formStringControl = formControl;
if (formStringControl.dataField()) {
for (f = 1; f <= this.dataSourceCount(); f++) {
formDataSource = this.dataSource(f);
if (formDataSource.id() == formStringControl.dataSource()) {
formDataSource.filter(formStringControl.dataField(), queryvalue(formStringControl.valueStr()));
joinSourceId = formDataSource.joinSource();
if (joinSourceId && formDataSource.linkType() == FormLinkType::InnerJoin) {
for (i = 1; i <= this.dataSourceCount(); i++) {
formDataSource = this.dataSource(i);
if (formDataSource.id() == joinSourceId) {
formDataSource.research();
break;
}
}
}
return 1;
}
}
}
}
}