Доброго времени суток коллеги. Имею справочник "Тип документа", при выборе определенного значения в логическом поле "Резидент" нужно автоматический проставляться галочка.
Попробовал через 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, насколько помню, оно ещё не поддерживалось. Значит, нужно кодом, как выше предложили. Либо, если мгновенное изменение в уже открытой карточке не важно, поле можно заполнять в бизнес-процессе (отдельном или встроенном в объект).