Коллеги, добрый день! Искал информацию по скрытию детали на академии, использовал этот пост:
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 - то все корректно работает.