Добрый день, уважаемые коллеги!
Есть задача в мобильном приложении (уже давно функционирующем) изменить на карточке Контрагента логику поля Подразделение . В справочнике Подразделений добавлено булево поле UsrProhibitSelectionAccount, если true, то запрещать подразделение к выбору.
Рассматриваю применение 2-х вариантов:
Бизнес-правило 1: Фильтр записей Подразделений по признаку UsrProhibitSelectionAccount (см. ниже 1-й метод). Метод отрабатывает и при выборе отображает только то, что можно
Бизнес-правило 2: Выдавать сообщение пользователю, если выбранная ранее запись некорректна (см. ниже 2-й метод). И вот тут почему-то в консоли видно, что не считывается корректно значение поля UsrProhibitSelectionAccount. Оно всегда false. Правда не во всех записях оно заполнено (см. скрин).
Помогите, пожалуйста, определить в чем некорректность 2-го метода. Благодарю за помощь
// Правило 1
/*Terrasoft.sdk.Model.addBusinessRule("Account", {
ruleType: Terrasoft.RuleTypes.Filtration,
position: 1,
triggeredByColumns: ["UsrDepartment"],
events: [Terrasoft.BusinessRuleEvents.ValueChanged,Terrasoft.BusinessRuleEvents.Load],
message: Terrasoft.LocalizableStrings.DepartmentMustBeAllowed,
filters: Ext.create("Terrasoft.Filter", {
modelName: "UsrAccountDepartments",
property: "UsrProhibitSelectionAccount",
value: false
})
});*/
// Правило 2
Terrasoft.sdk.Model.addBusinessRule("Account", {
name: "AccountDepartmentMustBeAllowedRule",
ruleType: Terrasoft.RuleTypes.Custom,
triggeredByColumns: ["UsrDepartment"],
events: [Terrasoft.BusinessRuleEvents.Load,
Terrasoft.BusinessRuleEvents.ValueChanged, Terrasoft.BusinessRuleEvents.Save],
executeFn: function(record, rule, column, customData, callbackConfig) {
var AccountDepartment = record.get("UsrDepartment");
var isValid = AccountDepartment.get("UsrProhibitSelectionAccount");
record.changeProperty("UsrDepartment", {
isValid: {
value: isValid,
message: Terrasoft.LocalizableStrings.DepartmentMustBeAllowed
}
});
Ext.callback(callbackConfig.success, callbackConfig.scope, [isValid]);
}
});