Перевірка прав доступу на рівні ролей 1с, особистий сайт

Налаштування доступу на рівні ролей не завжди врятує від помилок програмістів.
Налаштування ролей користувачів були по максимому урізані на рівні ролей. Тільки у ролі бухгалтер був доступ до довідника підрозділу компанії і тільки на програмне зміна. Однак один користувач все-таки примудрився переместестіть в ієрархії підрозділ. У довіднику підрозділу компанії в списку на обробник ПроверкаПеретасківанія був код:

СтандартнаяОбработка = Брехня;
ПараметриПеретасківанія. Дія = ДействіеПеретасківанія. переміщення;

Тобто вбудована перевірка доступу і обробки відключається, а виконується код з обробника Переміщення. Природно, вся перевірка, яка була написана обмежувалася доступом на редагування довідника в правах (дозволено редагувати чи ні). Відмінності між ручним редагуванням і програмних тут не враховувалися.

Виправляємо це недорозуменій.
Необхідно в загальний обробник для довідників додати наступне:

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

Коротка довідка функції ПравоДоступа
синтаксис:

ПравоДоступа ( <Право>, <Объект метаданных>, <Пользователь / Роль> )

параметри:
<Право> (Обов'язковий)
Тип: Рядок. Назва права доступу.
<Объект метаданных> (Обов'язковий) - Об'єкт метаданих.
<Пользователь/Роль> (Необов'язковий)
Тип: ПользовательІнформаціоннойБази, Метаданние.Ролі.Роль
Значення, що повертається:
Тип: Булево. Істина - право доступу до об'єкта встановлено; Брехня - в іншому випадку.
опис:
Показує установку права доступу до об'єкта метаданих для поточного користувача.
Виклик методу завжди вимагає адміністративних прав, якщо явно вказано третій параметр - Користувач / Роль, права якого перевіряються. Якщо користувач не вказано, то перевіряються права поточного користувача, і для цього наявність адміністративних прав не вимагається.
Примітка:
Права доступу до об'єктів метаданих встановлюються при конфігуруванні ролей.

Схожі статті