Позволить устанавливать в качестве отображаемого значения DisplayValue справочника
Понравилась ли вам эта идея?
Ну, или хотя бы создать базовый класс с уже таким действием
"Пащенко Александр Сергеевич" написал:На данный момент использую событие на onSaved
А можете привести пример кода на OnSaved?
Владимир, добрый день!
Если речь идёт об установлении отображаемого значения для детали, в которой нет своих подходящих текстовых полей, то это значение можно установить в блоке diff страницы детали.
Например, если стоит задача установить отображаемое значение для детали Продукты в карточке продажи, это можно сделать следующим образом: в коде схемы OpportunityProductDetailV2 находим блок diff и добавляем в него значение PrimaryDisplayColumnName, как в примере ниже.
[javascript]
diff: /**SCHEMA_DIFF*/[
{
"operation": "merge",
"name": "DataGrid",
"values": {
"type": "listed",
// установка отображаемого значения для детали
"primaryDisplayColumnName": "Product.Name",
//
"listedConfig": {
// конфигурация колонок списочного реестра
},
"tiledConfig": {
// конфигурация колонок плиточного реестра
}
}
}
]/**SCHEMA_DIFF*/
[/javascript]
Что касается примера Александра, думаю, имелось в виду следующее (если продолжать аналогию с продуктами в продажах):
1) добавляем в схему детали OpportunityProduct дополнительную текстовую колонку ProductName;
2) указываем эту колонку в качестве отображаемой для схемы OpportunityProduct;
3) в коде карточки редактирования детали (OpportunityProductPageV2) переопределяем обработчик onSaved;
4) добавляем в этот обработчик примерно такой код:
[javascript]
onSaved: function() {
var product = this.get("Product");
if (product && product.displayValue) {
this.set("ProductName", product.displayValue);
}
this.callParent(arguments);
}
[/javascript]