Как сделать все элементы детали Адреса на странице Контрагента недоступными для редактирования?
14 июня 2018 02:25
Вопрос
Как сделать все элементы детали Адреса на странице Контрагента недоступными для редактирования? Версия 7.2.0.
Ответ
Пример реализации функционала для схемы AddressDetail:
1) можно добавить новый метод enableDetailControls:
this.methods.enableDetailControls = function(viewConfig, enabled) {
if (!viewConfig.items) {
return;
}
viewConfig.items.forEach(function(item) {
item.enabled = enabled;
}, this);
};2) далее вызвать этот метод внутри метода getCustomItemView после полного формирования конфигурации представления, добавив необходимые условия. Например, перед строкой return viewConfig:
this.methods.getCustomItemView = function(viewModel, itemKey, action, types, itemViewModel) {
var viewConfig = {};
...
var enableControls = (action === "edit") && (/*любые другие условия*/);
this.enableDetailControls(viewConfig, enableControls);
return viewConfig;
};Очень желательно до этого момента уже получить значения необходимых условий, так как после выполнения getCustomItemView управление передаётся в модуль базовой детали (DetailModule), в котором уже выполняется привязка модели к представлению и рендеринг детали.
Показать все комментарии
Войдите или зарегистрируйтесь, что бы комментировать