Ограничения доступа к данным в 1с

 Задача:

Необходимо ограничить доступ к данным для требуемых пользователей, по определенным полям.

Бухгалтер, не имеет доступа:

    • к корзине
    • к приказам от секретаря.
    • редактировать и удалять в группе Приняты
    • в справочнике разделы видеть только себя.

Секретарь:

    • к корзине
    • в группе На рассмотрение видит только свои.
    • в группе Приняты видит всех
    • в справочнике разделы видеть только себя и пункт Все.

 

Пользователи и роли

Для начало создам 3-х пользователь и три роли: Бухгалтер, Администратор и Секретарь. Каждому пользователю соответствует одноименная роль.

Создаем Справочники

1

2

3

Создадим два справочника, первый Разделы.
Описание:
Наименование — Разделы;

Вкладка Прочее — кнопка Предопределенные. Создадим 3-и предопределенных элемента, изображены на картинке 1.

Список предопределенных элементов:

  • Бухгалтер — 000000002 — Бухгалтер
  • Всем — 000000003 — Всем
  • Секретарь — 000000001 — Секретарь
Теперь создадим второй (на самом деле его лучше создавать первым), это  Приказы.

Описание:Наименование: Приказы

Справочник будет иерархический, вид иерархии: по группам и элементам.

Данные(реквизиты):

Содержание — строка — длина 0

Раздел — ссылка на справочник Разделы

Вкладка Прочее — кнопка Предопределенные. Создадим 3-и предопределенные группы, изображены на картинке 3.

Список предопределенных групп:

  • Корзина — 000000003 — Корзина
  • НаРассмотрении — 000000001 — На рассмотрении
  • Приняты — 000000002 — Приняты

 Запускаем и заполняем

Все создается в справочникеке Приказы.

Настраиваем роли

 Откроем вкладку Роли.Выберем Бухгалтер:Находим справочник Приказы, выбираем  в списке Права: Чтение и в низу есть поле Ограничение доступа к данным, нажимаем добавить или Insert , и вписываем туда:

Приказы ГДЕ Приказы.Код = ""000000002""
ИЛИ Приказы.Код = ""000000001""
ИЛИ (Приказы.Родитель.Код = ""000000002"" И Приказы.Раздел.Код <> ""000000001"")
ИЛИ (Приказы.Родитель.Код = ""000000001"" И Приказы.Раздел.Код <> ""000000001"")

В данном поле мы вписали запрос с разрешенными данными, т.е. группа Приняты, НаРасмотрение, Приказы из Принятых но не от секретаря и то же в группе На  рассмотрение.

Также поступаем с правами на Изменение и Удаление, в обоих случаях ограничения одни:

Приказы ГДЕ ((Приказы.Родитель.Код <> ""000000002""
 И Приказы.Раздел.Код <> ""000000003""
 И Приказы.Раздел.Код <> ""000000002"")
 ИЛИ (Приказы.Родитель.Код <> ""000000001""
 И Приказы.Раздел.Код <> ""000000003""))

И для справочника Разделы, на Чтение укажем:

Разделы ГДЕ Разделы.Код = "000000002"

 

Теперь аналогично роли Бухгалтер, указываем ограничения для роли секретарь:

Справочник Приказы, права на Чтение

Приказы ГДЕ Приказы.Код = ""000000002""
 ИЛИ Приказы.Код = ""000000001""
 ИЛИ (Приказы.Родитель.Код = ""000000002"")
 ИЛИ (Приказы.Родитель.Код = ""000000001"" И Приказы.Раздел.Код = ""000000001"")

Справочник Разделы, права на чтение

Разделы ГДЕ Разделы.Код = ""000000001""
 ИЛИ Разделы.Код = ""000000003""
1

2

Заключение

У меня все работает, конечно пример рассмотрен не на самой лучшей структуре ИБ.

Скачать выгрузку ИБ можно здесь (основа для демонстрации). [Администратор с паролем «1»]



comments powered by Disqus

Популярное