Видимость/скрытие детали в зависимости от поля
Коллеги, добрый день! Искал информацию по скрытию детали на академии, использовал этот пост:
https://community.terrasoft.ru/articles/izmenenie-vidimosti-detali-v-zavisimosti-ot-znacenia-pola
Но ничего не получилось.
Подскажите, где допускаю ошибку? При проверке ошибок нет, но и результата тоже нет.
define("AccountPageV2", ["BaseFiltersGenerateModule", "ConfigurationEnums", "ConfigurationConstants",
"AccountPageV2Resources", "CommunicationSynchronizerMixin", "AccountPageMixin", "CommunicationOptionsMixin"],
function(BaseFiltersGenerateModule, Enums, ConfigurationConstants) {
return {
modules: /**SCHEMA_MODULES*/{}/**SCHEMA_MODULES*/,
details: /**SCHEMA_DETAILS*/{}/**SCHEMA_DETAILS*/,
businessRules: /**SCHEMA_BUSINESS_RULES*/{}/**SCHEMA_BUSINESS_RULES*/,
methods: {
onEntityInitialized: function() {
this.callParent(arguments);
this.communicationsVisibility();
},
communicationsVisibility: function(){
var type = this.get("Type");
return !!type && type.displayValue === "Наша компания";
},
},
dataModels: /**SCHEMA_DATA_MODELS*/{}/**SCHEMA_DATA_MODELS*/,
diff: /**SCHEMA_DIFF*/[
{
"operation": "merge",
"name": "Communications",
"values": {
"visible" : {
"bindTo": "communicationsVisibility"
}
}
}
]/**SCHEMA_DIFF*/
};
});
Нравится
SavelyevOll,
Да, но если деталь добавлена в схеме этого же пакета, merge делать не нужно. Можете найти в блоке diff insert вашей детали и прям в него записать атрибут видимости.
Добрый день! Вставил ваш код на пустой стенд (единственное выпилил из кода метод onEntityInitialized, т.к. он не нужен). Все работает, изменяя тип в контрагенте деталь Средства связи меняет отображаение
Дмитрий А.,
Работает, но на деталях системных.
А как применить это к деталям, созданным вручную?
SavelyevOll,
Точно так же. Там где объявляется деталь в блоке diff пропишите ей аттрибут
"visible" : {
"bindTo": "yourDetailVisible" //название метода, который возвращает true/false по вашим условиям
}Можете показать конкретный пример где это не работает)
Дмитрий А.,
Получается тоже самое, только "name":"communications" в diff меняю на "name":"(название детали)"?
SavelyevOll,
Да, но если деталь добавлена в схеме этого же пакета, merge делать не нужно. Можете найти в блоке diff insert вашей детали и прям в него записать атрибут видимости.
Добрый день, коллеги! При использовании этого способа к отображению кнопки появляется проблема в том, что при формировании страницы сначала формируются кнопки а потом уже поля и их значения, соответственно до отрисовки кнопок невозможно считать, например, "Тип" записи. Подскажите, есть ли варианты решения?
Здравствуйте!
В данной статье показан пример добавления кнопки, где есть признак "enabled" на метод "isAccountPrimaryContactSet". Если его заменить на visible - то все корректно работает.