Добрый день, уважаемые коллеги!
Есть следующий кейс: 1. На странице Контрагента указывается наше ответственное подразделение, выбирается из справочника.
2. В записях справочника Подразделений есть признак (булево) можно выбирать это подразделение для указания в Контрагентах или нет - UsrProhibitSelectionAccount
3. Нужно запретить выбор записи Подразделения, если признак UsrProhibitSelectionAccount = true
4. Настраиваю правило валидации, как описано https://academy.terrasoft.ru/documents/technic-sdk/7-16/dobavlenie-vali…
5. При выборе значения из справочника правило отрабатывает. Но если вводить запрещенное подразделение вручную, то оно спокойно остается в поле и позволяет сохранить значение.
Подскажите, пожалуйста, что нужно сделать в данном случае? Благодарю за помощь
Добавленные методы в карточку Контрагента
methods: {
// Метод-валидатор значения колонки [UsrDepartment] // semmrn
DepartmentValidator: function() {
// Переменная для хранения сообщения об ошибке валидации.
var invalidMessage = "";
// Проверка значения колонки [UsrDepartment]
var AccountDepartments = this.get("UsrDepartment");
if (AccountDepartments.UsrProhibitSelectionAccount) {
// Если значение колонки [UsrAccountDepartments.UsrProhibitSelectionAccount]
// запрещено к выбору = да, то
// в переменную invalidMessage помещается значение локализуемой строки с сообщением
// об ошибке валидации.
invalidMessage = this.get("Resources.Strings.DepartmentMustBeAllowed");
}
// Объект, свойство которого содержит сообщение об ошибке валидации.
// Если валидация прошла успешна, в объекте возвращается пустая строка.
return {
// Сообщение об ошибке валидации.
invalidMessage: invalidMessage
};
},
// Переопределение базового метода, инициализирующего пользовательские валидаторы.
setValidationConfig: function() {
// Вызывает инициализацию валидаторов родительской модели представления.
this.callParent(arguments);
// Для колонки [UsrDepartment] добавляется метод-валидатор DepartmentValidator().
this.addColumnValidator("UsrDepartment", this.DepartmentValidator);
}
},