Заполнение полей карточки значениями из полей объекта выбранного в справочном поле
Задача: Например, на карточке контрагента, при выборе в справочном поле Контрагент.Документ, необходимо заполнить поля Контрагент.Объект, Контрагент.Ответственный по Договору значениями полей Документ.Объект, Документ.Ответственный.
Решение:
1. На карточке контрагента добавить в список атрибутов поле Документ (Document)
2. Дописать ему в lookupListConfig в свойство columns набор колонок, которые должны выбираться, кроме стандартных Name, Id. В массив columns указываются пути к колонкам, которые необходимо так же выбирать. Сюда же можно написать колонку вида [ResourcesReservation:Document:Id].IsActual, соответственно обращаться к ней надо будет примерно следующим образом: document["[ResourcesReservation:Document:Id].IsActual"] поскольку алиас задать здесь нельзя.
"Document": {
lookupListConfig: {
columns: ["Facility", "Owner"]
}
}
},
3. Далее необходимо дописать зависимость полей Контрагент.Объект, Контрагент.Ответственный по договору от поля Контрагент.Документ. Дополним атрибуты.
attributes: {
"Document": {
lookupListConfig: {
columns: ["Facility", "Owner"]
}
},
"Facility": {
dependencies: [
{
columns: ["Document"],
methodName: "setDocumentValues"
}
]
}
"DocumentOwner": {
dependencies: [
{
columns: ["Document"],
methodName: "setDocumentValues"
}
]
}
}
4. Опишем метод setDocumentValues (комментарии в нем)
setDocumentValues: function() {
var document = this.get("Document"); //получаем документ, выбранный в справочном поле (на этом этапе в нем уже есть две дополнительных колонки Owner и Facility
[javascript]
if (document) {
if (document.Facility) { //проверяем наличие значения в колонке
this.set("Facility", document.Facility);
}
if (document.Owner) {
this.set("DocumentOwner", document.Owner);
}
}
}
}
Планируется ли реализовывать такую возможность для настройки аналитиком через мастер страницы?