Позволить устанавливать в качестве отображаемого значения DisplayValue справочника

Предлагаю позволить устанавливать в качестве отображаемого значения DisplayValue справочника.На данный момент использую событие на onSaved и дополнительную колонку DisplayColumn, в которую записываю значения из справочника. Крайне неудобно каждый раз, если в объекте отсутствует строка создавать дополнительный обработчик события для создания отображаемого значения.
4 комментария

Ну, или хотя бы создать базовый класс с уже таким действием

Здравствуйте, Александр!

Спасибо, что помогаете нам развивать и улучшать наши продукты. Ваша идея принята для анализа аналитиками проектного офиса и будет рассмотрена возможность ее реализации в одной из последующих версий программного продукта.

Приятного дня!

"Пащенко Александр Сергеевич" написал:На данный момент использую событие на 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);
}
Показать все комментарии