Не виходить керувати видимістю елементів на сторінці редагування об'єкта.

Встановлюю для IsModelItemsEnabled значення false в методі сторінки onEntityInitialized, значення змінюється, але доступність елементів не блокується. Права обмежені, не суперадмін. Сторінка звичайна, не Freedom UI. Версія платформи 8.0.6. На сторінці схожого об'єкта все відпрацьовує, а тут ні. Пробував створювати нову сторінку з мінімумом коду - не працює.

Хтось може порадити як побороти проблему?

Нравится

1 комментарий

Доброго дня!

 

Схоже, подібне питання вже обговорювалося ан форумі: https://community.terrasoft.ua/questions/redaktiruemyy-reestr-zablokiro…

 

У цьому випадку проблема пов'язана з блокуванням колонок в редагованому реєстрі. Підхід, описаний у запиті, не блокує всі поля на сторінці, включаючи ті, що пов'язані з правилами.

 

Повідомте, якщо лишаться питання, будь ласка.

Показать все комментарии

Добрый день!
Выведена кнопка на карточку редактирования записи.
Она должна быть активна, если определенное поле в карточке редактирования равно определенному значению.

Метод, который определяет активность
isEnableButtonTest: function() {
debugger
var activeRow = this.get("ActiveRow");
if (activeRow)
{
var pc = this.get("GridData").get(activeRow).get("ServiceCategory");
//return (pc || pc !== "") ? true : false;
if (pc.value === UsrConsts.ServiceCategory.Test)
return true
else
return false;
//return (pc.value === UsrConsts.ServiceCategory.Test) ? true : false;
}
else
return false;
}

var pc = this.get("GridData").get(activeRow).get("ServiceCategory")
возвращает какое-то значение только, если колонка ServiceCategory выведена в реестр,
иначе значение undefined.
Почему? Скажите, пожалуйста, как это обойти?
И еще вопрос - при изменении поля ServiceCategory доступность кнопки меняется только, если обновить сам реестр. Как сделать автоматическое обновление кнопки?

Нравится

5 комментариев

Дарья, здравствуйте!

Уточните, пожалуйста, точную версию продукта.
А также если можно полный листинг кода.

Добрый день!
Версия 7.6 ITIL
Полный список кода в прикрепленном файле

Дарья, здравствуйте.

GridData не гарантирует получение результата. Для получения значения ServiceCategory, Вам необходимо сделать запрос в базу данных при помощи entityschemaquery. Значение Id (из таблицы Case) для выделенного обращения у Вас хранится в переменной activeRow.

Для изменения доступности кнопки без обновления реестра, Вам следует посмотреть в сторону sandbox.

Спасибо - про запрос с помошью entityschemaquery поняла ( просто в инструкции в sdk было написано GridData)

По поводу изменения доступности кнопки без обновления реестра - подскажите, пожалуйста, где можно посмотреть реализацию сообщений sandbox ?

Дарья, добрый день!

Примеров реализации сообщений в нашей системе довольно много. Самым ярким примером могут служить модули BasePageV2 и BaseSectionV2. В этих модулях при инициализации вызывается метод subscribeSandboxEvents, который выполняет подписку на сообщения sandbox.

Например, в модуле BaseSectionV2 выполняется подписка на сообщение CardChanged, и когда модуль получает это сообщение, он устанавливает изменённое значение соответствующему атрибуту. Само же сообщение отправляет (публикует) модуль BasePageV2 при вызове метода publishPropertyValueToSection. В свою очередь, метод publishPropertyValueToSection вызывается при изменении некоторых атрибутов модели карточки редактирования.

Вы можете поступить похожим образом. Например, в методе init Вашей карточки редактирования (CasePage) подписаться на изменение поля ServiceCategory:

init: function() {
	this.callParent(arguments);
	this.on("change:ServiceCategory", function(model, value) {
		this.publishPropertyValueToSection("CurrentServiceCategory", value);
	}, this);
}

Таким образом, при изменении поля ServiceCategory карточки новое значение будет записываться в атрибут CurrentServiceCategory раздела CaseSection.

После этого в разделе Вы сможете получить значение текущей категории, обратившись к атрибуту CurrentServiceCategory:

isEnableButtonColumbus: function() {
	var serviceCategory = this.get("CurrentServiceCategory");
	if (!serviceCategory) {
		// Ваш код
	} else {
		return (serviceCategory.value === UsrConsts.ServiceCategory.Dynamix);
	}
},
Показать все комментарии

Хотелось бы развеять миф, что в рамках презентации менеджеры Terrasoft не вникают в ИТ-инфраструктуру заказчика.
Вот последний перл от клиента, рожденный в ходе встречи :wink:
)

Схема прикреплена к стене в банковском отделе, подходите, разберайтесь с оригиналом, давайте комментарии по оптимизации схемы взаимодействия CRM c другими приложениями банка, буду благодарен :lol::lol::lol: (А.Попов не подсказывает! :wink:)

Нравится

Поделиться

5 комментариев

Юра, нужно добавить пользователей

Андрей, обрати внимание, вверху посередине есть пользователь))) или это клиент, я уже не помню :wink:

Чем-то напоминает план битвы из учебников по истории о древней Греции и Риме :)

Вы не поверите. Наталья Задесенец, Иван Малафеев и их грозная команда внедренцев все-таки реализовала все, что нарисовано в перовом посте!!!
Поздравляем!!

Продолжаем тему рисования интересных схем с клиентами и воплощением их в наших решениях. Эту схему как и предыдущую под свое крыло возьмет Иван Малафеев и его дримтим!
схема

Показать все комментарии