Как при выборе справочника менять значение логического поля
Доброго времени суток коллеги. Имею справочник "Тип документа", при выборе определенного значения в логическом поле "Резидент" нужно автоматический проставляться галочка.
Попробовал через this.set("UsrTypeDoc").value, не получается. Прощу направить на верный путь. Спасибо
Нравится
Если я вас правильно понял, вы хотите при изменении значения в поле "Тип документа" == "Биом паспорт" Установить в поле Резидент = true, в противном случае false Если так, то решение для вас будет такое: В атрибутах: UsrTypeDoc: { dataValueType: Terrasoft.DataValueType.LOOKUP, dependencies: [ { columns: ["UsrTypeDoc"], methodName: "onChangeUsrTypeDoc" } ] }, в методах: onChangeUsrTypeDoc: function() { var type = this.get("UsrTypeDoc"); if (type && type.value === "уникальнынй идентификатор из БД равный значению Биом паспорта") { this.set("Резидент(указать на англ)", true); } else { this.set("Резидент(указать на англ)", false); } } Если же вы хотите при установке в поле Резидент галочки, изменить поле "Тип документа". То решение будет аналогичным, но в обратном виде: Резидент(указать на англ): { dataValueType: Terrasoft.DataValueType.BOOLEAN, dependencies: [ { columns: ["Резидент(указать на англ)"], methodName: "onChangeResident" } ] }, в методах: onChangeResident: function() { var resident = this.get("Resident"); if (resident) { this.set("UsrTypeDoc", {value: "здесь ID из БД которое равно Биом паспорту", displayValue: "а здесь значение поля Name из БД"}); } else { //очистить или установить другое значение, смотря что нужно в данном случае } }
Если я вас правильно понял, вы хотите при изменении значения в поле "Тип документа" == "Биом паспорт" Установить в поле Резидент = true, в противном случае false Если так, то решение для вас будет такое: В атрибутах: UsrTypeDoc: { dataValueType: Terrasoft.DataValueType.LOOKUP, dependencies: [ { columns: ["UsrTypeDoc"], methodName: "onChangeUsrTypeDoc" } ] }, в методах: onChangeUsrTypeDoc: function() { var type = this.get("UsrTypeDoc"); if (type && type.value === "уникальнынй идентификатор из БД равный значению Биом паспорта") { this.set("Резидент(указать на англ)", true); } else { this.set("Резидент(указать на англ)", false); } } Если же вы хотите при установке в поле Резидент галочки, изменить поле "Тип документа". То решение будет аналогичным, но в обратном виде: Резидент(указать на англ): { dataValueType: Terrasoft.DataValueType.BOOLEAN, dependencies: [ { columns: ["Резидент(указать на англ)"], methodName: "onChangeResident" } ] }, в методах: onChangeResident: function() { var resident = this.get("Resident"); if (resident) { this.set("UsrTypeDoc", {value: "здесь ID из БД которое равно Биом паспорту", displayValue: "а здесь значение поля Name из БД"}); } else { //очистить или установить другое значение, смотря что нужно в данном случае } }
С точки зрения дальнейшей поддержки правильнее сделать в справочнике "тип документа" логическое поле "резидент". Затем создать БП (в 7.17 такое уже есть). Пример тут. У меня поля "Комплект" - логическое.
Трефилов Павел Сергеевич,Где можно посмотреть пример?
Ислам, пример настройки такого бизнес-правила есть тут. Но в 7.13, насколько помню, оно ещё не поддерживалось. Значит, нужно кодом, как выше предложили. Либо, если мгновенное изменение в уже открытой карточке не важно, поле можно заполнять в бизнес-процессе (отдельном или встроенном в объект).