Здравствуйте, коллеги.
Столкнулся с проблемой. Имеется форма, у которой в методе init датасорса по некоторому полю накладывается ограничение, что-то типа
X++:
public void init()
{
QueryBuildRange qr;
;
super();
qr = EmplTable_DS.query().dataSourceNo(1).addRange(fieldnum(EmplTable, EmplId));
qr.status(RangeStatus::Locked);
qr.value('12345');
}
Проблема заключается в том, что пользователь, несмотря на то, что range заблокирован (в форме расширенного фильтра редактирование ограничения недоступно), всё равно может изменить это ограничение через фильтр по полю / сетке / выделению. Не совсем понятно, баг это или "фича". В DAX 2009 статус range проверяется и фильтр наложить невозможно. Может быть выходил какой-то хотфикс на четвёрку по этому поводу? Или же есть способ более корректно накладывать range из кода, чтобы пользовательские фильтры не перетирали их значения? Насколько я понимаю, если по одному полю есть несколько range, при фильтрации по полю выбирается первый попавшийся а не создаётся новый.
Версия системы 4.0 SP2.