1. В разделе дизайнера системы "Права доступа на операции" создать системную операцию. Например, с кодом CanChangeContractFields
2. В код страницы, на которой мы будем использовать нашу операцию добавляем зависимость страницы от модуля RightUtilities. Пример:
define("ContractPageV2", ["RightUtilities","ProcessModuleUtilities"], function(RightUtilities,ProcessModuleUtilities)
3. В блоке methods{} найти и дополнить функцию init:, а если ее нет - вызвать.
При инициализации странички система будет проверять, имеет ли текущий пользователь доступ к указанной системной операции/операциям.
Ответ "да" или "нет" система передаст в указанный нами атрибут.
init: function() {
const operationNames = [
"CanChangeContactFields" //Здесь через запятую нужно перечислить все системные операции, которые нужно проверить
];
RightUtilities.checkCanExecuteOperations(operationNames, function(result) {
this.set("FieldsRights", result.CanChangeContactFields); // "FieldsRights" - название атрибута, в который мы передаем результат проверки
}, this); // CanChangeContactFields - проверку по какой операции мы передаем в атрибут
this.callParent(arguments);
}4. Использовать ответ. Например, на поле или кнопке
4.1 ДОСТУП К РЕДАКТИРОВАНИЮ ПОЛЯ
Для этого находим наше поле в блоке diff[] и изменяем значение параметра "enabled"
{
"operation": "insert",
"name": "STRING2b088f15-40f9-4bbb-a4bc-dd846be945b2",
"values": {
"layout": {
"colSpan": 12,
"rowSpan": 1,
"column": 0,
"row": 3,
"layoutName": "Header"
},
"bindTo": "UsrField1", //Название нашего поля
"enabled": {
"bindTo": "FieldsRights" //возможность редактирования поля зависит от результата проверки, который хранит указанный ранее атрибут
}
},
"parentName": "Header",
"propertyName": "items",
"index": 6
}4.2 ДОСТУП К НАЖАТИЮ КНОПКИ
По аналогии используем параметр "enabled". Например, кнопка в меню "Действия":
actionMenuItems.addItem(this.getActionsMenuItem({
"Caption": "Тестовая кнопка",
"Tag": "runProcess",
"Enabled": {"bindTo": "FieldsRights"}//активность кнопки зависит от результата проверки, который хранит указанный ранее атрибут
}));