Всем доброго дня.
Вопрос - есть FilterGroup для поиска записей по объекту.
Можно ли на странице какой-либо записи этого объекта (т.е. в схеме страницы) проверить, соответствует ли данная запись фильтру? Понятно, что можно сделать обычный запрос, в фильтр добавить имеющийся FilterGroup + Id записи, и если вернётся 1 запись в фильтре - то всё ок.
Интересует именно проверка внутри схемы страницы, т.к. колонки могут быть изменены, а изменения - не сохранены при этом.
Нравится
Возможно подойдет валидация записей? Там необязательно привязывать всю логику к отображению уведомления пользователю на странице. Отрабатывает до сохранения записи, принадлежит к Terrasoft.configuration, так что по идее может использоваться почти везде. В методах страницы для "MyLookup" добавляется вот так:
setValidationConfig: function() {
this.callParent(arguments);
this.addColumnValidator("MyLookup", this.checkMyLookup);
},
Сомневаюсь, что стандартно можно. Движок клиентской ESQ отправляет HTTP-запрос к DataService на сервере, а тот преобразует в SQL-запрос к базе. И если записи там ещё нет, в результате выборки её не будет.
Разве что чисто программно проверять под конкретный фильтр вручную или написать свой парсер поля SearchData, где хранится фильтр для динамической группы, разбирать условия и как-то их обрабатывать, то есть, по сути, написать интерпретатор языка фильтров.
Ну, или втихую сохранить запись, проверить, попадает под фильтр и вернуть всё как было.
Возможно подойдет валидация записей? Там необязательно привязывать всю логику к отображению уведомления пользователю на странице. Отрабатывает до сохранения записи, принадлежит к Terrasoft.configuration, так что по идее может использоваться почти везде. В методах страницы для "MyLookup" добавляется вот так:
setValidationConfig: function() {
this.callParent(arguments);
this.addColumnValidator("MyLookup", this.checkMyLookup);
},