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