Андрей Смирнов
Время чтения: ~14 мин.
Просмотров: 225

УТ 10.3 RLS. Настройка доступа на уровне записей

Ранее мы рассматривали настройку ролей пользователей в системе 1С Предприятие 8, сегодня мы продолжим изучение механизма прав и углубимся далее — в механизм RLS (ограничение прав на уровне записей).

Ниже мы рассмотрим достоинства и недостатки данного метода и рассмотрим настройку RLS в 1С Предприятии 8.3 на примере.

1s-rls.png

1С RLS (Record Level Security) или ограничение прав на уровне записи — это настройка прав пользователей в системе 1С, которая позволяет разделить права для пользователей в разрезе динамически меняющихся данных.

Самый распространенный вид настройки 1C RLS — ограничение видимости пользователя в разрезе организаций или клиентов (пользователь видит лишь «свои» данные).

Преимущества ограничения прав на уровне записей  в 1С

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

Недостатки 1С 8 RLS

Среди недостатков можно отметить заметное падение производительности системы. Это вызвано тем, что платформа при построении запроса в базе данных осложняет любой запрос разработчика дополнительными условиями.

Также среди недостатков — сложность настройки этого функционала и сложность отладки. 1C выпустило очень мало материалов по настройке и работе этого функционала. Достаточно трудно найти специалиста, который грамотно настроил бы механизм.

Настройка ограничения прав на уровне записей 1С RLS

Ограничение прав на уровне записи (RLS) применяется для ограничения следующих типов прав:

  • Чтение
  • Добавление
  • Изменение
  • Удаление

Получите 267 видеоуроков по 1С бесплатно:

Пример настройки RLS:

Если Вы начинаете изучать 1С программирование, рекомендуем наш бесплатный курс (не забудьте подписаться на YouTube — регулярно выходят новые видео):

К сожалению, мы физически не можем проконсультировать бесплатно всех желающих, но наша команда будет рада оказать услуги по внедрению и обслуживанию 1С. Более подробно о наших услугах можно узнать на странице Услуги 1С или просто позвоните по телефону +7 (499) 350 29 00. Мы работаем в Москве и области.

Оцените статью, пожалуйста!

Классическая задача: открыть пользователю доступ к какому-либо объекту, <font>но не ко всем элементам / документам, а только к некоторым.</font>

Например, чтобы менеджер видел отчеты только по своим клиентам.

Или это может быть ограничение “все, кроме некоторых”. Или ограничение не на справочники/документы, а на данные регистров

Например, чтобы пользователи ни одним отчетом не могли вытащить данные по выплатам партнерам.

По сути – это тонкая и очень гибкая настройка “что можно видеть этому пользователю, а о чем ему и не нужно догадываться”.

Почему именно RLS?

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

Это либо требования конфиденциальности, либо чтобы не испортить данные, за которые пользователь не отвечает и, возможно, даже не разбирается в них (например, бухгалтерские данные для менеджера по продажам).

В конфигурациях за возможные права доступа к данным отвечают специальные объекты метаданных – роли. Каждому пользователю информационной базы назначается одна или несколько ролей. Они определяют, возможны ли операции с конкретными объектами метаданных (чтение, запись, проведение и т.д.).

Но это не все.

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

Только при помощи ролей решить такую задачу нельзя – для этого реализован механизм ограничения доступа на уровне записей (RLS).

Ограничения представляют собой условия, при выполнении которых действие над данными (чтение, запись и т.д.) будет разрешено. – так можно ограничить доступ не к объекту в целом, а только к части его данных.

Про RLS – более подробно: 8 видео и PDF

Поскольку это распространенная задача администрирования 1С – предлагаем посмотреть более детальные материалы:

PDF с вводной информацией.

21 страница, которые нужно прочесть сначала.

Видео 01:
Ограничение доступа к данным при помощи ролей
Видео 02:
Ограничение доступа на уровне записей (RLS)
Видео 03:
Реализация ограничения доступа на уровне записей для справочника Контрагенты
Видео 04:
Принцип работы ограничений доступа на уровне записей на низком уровне
Видео 05:
Совместное применение нескольких ограничений доступа на уровне записей
Видео 06:
Наложение ограничений методом ВСЕ
Видео 07:
Наложение ограничений методом РАЗРЕШЕННЫЕ
Видео 08:
Исправление ошибки, возникающей из-за наложения прав доступа на уровне записей

Не пропустите – все сразу и в полном объеме!

Этот курс позволит решать ВСЕ задачи по развертыванию и поддержке информационных систем на 1С.

Вот несколько тем из курса:

  • Установка и обновление платформы «1С:Предприятие 8» – ручная и автоматическая, под Windows и Linux
  • Автоматический запуск для выполнения регламентных операций
  • Обновление конфигураций из пользовательского режима
  • Обновление нетиповых конфигураций. Как избежать проблем при обновлении измененных типовых конфигураций
  • Создание собственных cfu-файлов поставки
  • Инструменты БСП: внешние формы, обработки заполнения документов и т.п.
  • Использование бесплатной СУБД PostgreSQL
  • Установка и запуск кластера серверов 1С:Предприятие 8
  • Утилита администрирования для настройки кластера и рабочих серверов
  • Настройка RLS на примере УПП 1.3 и ERP 2
  • Что делать, если данные в ИБ повреждены
  • Настройка обменов данными между конфигурациями
  • Организация групповой разработки
  • Настройка и использование аппаратных ключей защиты
  • Программные лицензии 1С: установка и привязка к внешнему оборудованию

Этот курс актуален для всех, кто внедряет или поддерживает 1С.

Вам в любом случае когда-то придется разворачивать 1С, настраивать резервирование, права доступа, различные режимы запуска, тестировать целостность баз, обеспечивать работу серверов и т.д.

И лучше это сразу делать правильно.

Чтобы потом не было <font>“…! Ну что за …! Твою же …!”</font> – и прочих выражений сожаления 🙂

Кроме того, у нас появился специализированный курс – Настройка и доработка прав доступа, профилей пользователей и RLS в типовых конфигурациях УТ 11.4 (11.3), КА 2.4 (2.2) и 1C:ERP 2.4 (2.2).

В этой статье я расскажу, как работает механизм настройки «ограничение доступа на уровне записей» в 1С:УПП 1,3. Информация для статьи была подобрана на май 2015 года. С тех пор УПП кардинально не обновляется, т.к флагманом 1С выбрала 1С:ERP. Все же УПП исправно трудится на многих предприятиях, поэтому я выкладываю результаты своих исследований по RLS в УПП в этой статье. Кому-то точно пригодится. 

Все сухо, сжато и без воды. Как я люблю ))).

Ссылка на Часть 1.

Настройки прав доступа.

Схема взаимодействия объектов.

УПП_Рис_1_Схема_Управление-доступом.jpg

В УПП 1.3 управление доступом осуществляется подсистемой «Управление доступом» из БСП версии 1.2.4.1.

Метаданные, используемые в системе управления доступом в УПП:

  1. Справочник «Профили полномочий пользователей»
  2. Регистр сведений «Значения дополнительных прав пользователей»
  3. План видов характеристик «Права пользователей»
  4. Справочник «Пользователи»
  5. Системный справочник «Пользователи ИБ»
  6. Справочник «Группы пользователей»
  7. Регистр сведений «Настройки пользователей»
  8. План видов характеристик «Настройки пользователей»
  9. Перечисление «Виды объектов доступа»
  10. Регистр сведений «Назначение видов ограничения доступа»
  11. Перечисление «Области данных объектов доступа»
  12. Регистр сведений «Настройки прав доступа пользователей»
  13. Параметр сеанса «Использовать ограничение по <ВидДоступа>».

Включение ограничений доступа на уровне записей.

УПП_Рис_3_Включение-РЛС.jpg

Доступ на уровне записей определен через виды объектов доступа. Список видов объектов доступа (в скобках указаны соответствующие справочники):

  • «Контрагенты» («Контрагенты»)
  • «Организации» («Организации»)
  • «Физические лица» («Физические лица»)
  • «Проекты» («Проекты»)
  • «Склады («Склады (места хранения)»)
  • «Кандидаты» («Кандидаты»)
  • «Заметки» («Типы записей заметок»)
  • «Подразделения» («Подразделения»)
  • «Подразделения организаций» («Подразделения организации»)
  • «Номенклатура (изменение)» («Номенклатура»)
  • «Спецификации» («Спецификации»)
  • «Цены номенклатуры» («Типы цен номенклатуры»)
  • «Внешние обработки» («Внешние обработки»)

*Перечень возможных видов доступа фиксирован и содержится в перечислении «Виды объектов доступа».

Справочник «Профили полномочий пользователей».

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

Профиль объединяет

  • совокупность ролей – права доступа к объектам
  • дополнительных прав пользователей – права к функциональным возможностям программы.

Сам профиль в табличной части «состав ролей» содержит все те роли, которые включены для него. При изменении состава ролей профиля происходит перезаполнение табличной части «Роли» всех пользователей информационной базы (не справочник «Пользователи»), которым присвоен этот профиль.

Связь справочника «Пользователи» и «Пользователи информационной базы» реализована через реквизит «ИдентификаторПользователяИБ» справочника «Пользователи», в котором хранится GUID пользователя ИБ.

Состав ролей пользователя также недоступен для редактирования, если пользователю присвоен определенный профиль.

Для пользователя существует возможность указать «Настройки пользователя». Это различные сервисные настройки типового автоматического поведения системы в определенных ситуациях.

Результат настроек записывается в регистр сведений «Настройки пользователей».

Справочник «Группы пользователей».

Используется для объединения пользователей в группы и в числе прочего для настройки ограничений доступа на уровне записей.

Один пользователь может быть включен в несколько групп.

В форме группы пользователей можно настроить перечень видов доступа.

УПП_Рис_4_Группа-пользователей.jpg

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

Если в конфигурации используются ограничения доступа на уровне записей, то каждого пользователя необходимо включить в одну из групп.

ВАЖНО! Пользователи, которые не включены в какую-либо группу, не смогут работать с теми объектами, доступ к которым определяется на уровне записей. Это относится ко всем объектам – независимо от того, используются ли соответствующие виды объектов доступа или нет.

Если пользователь входит в несколько групп, у которых разные настройки прав доступа на уровне записей, то доступность объекта для пользователя будет определяться объединением настроек от нескольких групп пользователей по «ИЛИ».

ВАЖНО! Включение пользователя в большое количество групп может приводить к падению быстродействия. Поэтому не стоит включать пользователя в большое количество групп.

После записи изменений группы пользователей будет заполнен Регистр сведений «Назначение видов ограничения доступа». В этом регистре хранятся записи о соответствии группе пользователей определенного вида доступа.

*Регистр используется в шаблонах ограничения доступа

Форма «Настройка доступа».

Форма настройки ограничений доступа на уровне записей вызывается командой «Настройка доступа» формы списка справочника «Группы пользователей».

В правой части формы закладками представлены таблицы с настройками по каждому виду доступа, отмеченному флажками в форме группы пользователей.

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

Сравнение видов доступа и возможных настроек:

Вид доступа

Настройки вида доступа

Чтение

Запись

Вид наследования прав доступа

Видимость в списке

Просмотр доп информации

Редактирование доп информации

Просмотр данных

Редакти рование данных

Цены компа  нии

Цены контр аген тов

Чтение

Запись

Чтение

Запись

Контрагенты    

+

+

+

+

+

+

       
Организации

+

+

+

                 
Физические лица    

+

+

   

+

+

       
Проекты

+

+

+

                 
Склады

+

+

+

                 
Кандидаты

+

+

+

                 
Заметки

+

+

+

                 
Подразделения

+

+

+

                 
Подразделения организаций

+

+

+

                 
Номенклатура  

+

+

                 
Спецификации

+

+

+

                 
Цены номенклатуры    

+

         

+

+

+

+

Внешние обработки

+

+

+

                 

Права доступа.

«Чтение» — пользователь будет видеть элемент справочника в списке и сможет открыть его на просмотр, также сможет выбрать его из списка при заполнении реквизитов других объектов.

«Запись» — пользователь сможет изменять:

  • элементы некоторых справочников — видов объектов доступа (не всех – есть исключения, см. ниже),
  • данные (документы, регистры, подчиненные справочники), связанные с этими элементами справочников

Исключение: доступ к элементам некоторых справочников – видов объектов доступа – не зависит от права «Запись». Это справочники Организации, Подразделения, Подразделения организаций, Склады, Проекты. Они относятся к объектам НСИ, поэтому менять их может только пользователь с ролью «Настройка НСИ…».

Для вида объекта доступа «Номенклатура (изменение)» право доступа на «запись» определено только на уровне групп справочника «Номенклатура», нет возможности задать право «запись» для отдельного элемента справочника.

Ограничение доступа на «чтение» справочника «Номенклатура» и связанной с ним информации не предусмотрено, потому что в общем случае неясно, какой доступ должен быть к документу, если список номенклатуры, который есть в документе, содержит и «разрешенные», и «запрещенные» позиции.

Ограничение доступа для справочников «Подразделения» и  «Подразделения организаций» не распространяется на информацию к кадровым данным, по персональным данным сотрудников и данным о начислении зарплаты.

Области данных.

Для следующих видов объектов доступа определены области данных:

  • Контрагенты
  • Физические лица
  • Цены номенклатуры

Для вида объекта доступа «Контрагенты» предусмотрены следующие области данных:

  • Контрагенты (список) — определяет видимость контрагентов в списке справочника «Контрагенты». Зависит от значения флажка в колонке «Видимость в списке».
  • Контрагенты (доп. информация) — определяет возможность «чтения»/«записи» элемента справочника «Контрагенты» и связанной с ним доп. информации (договоры, контактные лица и т.п.). Зависит от значения флажка в соответствующих колонках «Просмотр доп. информации»/«Редактировании доп. информации».
  • Контрагенты (данные) — определяет возможность «чтения»/«записи» данных (справочники, документы, регистры), связанных со справочником «Контрагенты». Зависит от значения флажка в колонке «Просмотр данных»/«Редактирование данных».

Для вида объекта доступа «Физические лица» предусмотрены следующие области данных:

  • Физические лица (список) — определяет видимость физического лица в списке справочника «Физические лица». Зависит от значения флажка в колонке «Видимость в списке».
  • Физические лица (данные) — определяет возможность «чтения»/«записи» данных (справочники, документы, регистры), связанных со справочником «Физические лица». Зависит от значения флажка в колонке «Просмотр данных»/«Редактирование данных».

Для вида объекта доступа «Цены номенклатуры» предусмотрены следующие области данных:

  • Цены компании — определяет возможность «чтения»/«записи» цен номенклатуры компании.
  • Цены контрагентов — определяет возможность «чтения»/«записи» цен номенклатуры контрагентов.

*Области данных – это закрытый список элементов, содержится в перечислении «Области данных объектов доступа»

Группы доступа.

Для следующих видов объектов доступа настройка прав выполняется только через группы доступа (в скобках указаны названия справочника):

  • «Контрагенты» («Группы доступа контрагентов»)
  • «Физические лица» («Группы доступа физических лиц»)
  • «Кандидаты» («Группы кандидатов»)
  • «Спецификации номенклатуры» («Назначения использования спецификаций»)

Группа доступа указывается для каждого элемента справочника (в специальном реквизите).

Настройки доступа из «группы доступа…» осуществляются в дополнительной форме настройки прав доступа, которая вызывается одной из двух команд:

  • «Доступ к текущему элементы»,
  • «Доступ к справочнику в целом»

в форме списка справочников «Групп доступа…»

УПП_Рис_5_Группа-доступа.jpg

В этой форме производится управление теми же настройками видов доступа, что и в основной форме.

Доступ к пустому значению.

В некоторых случаях следует для вида доступа предоставлять доступ к пустому значению: чтобы пользователю были доступны те объекты,  у которых не заполнены реквизиты, соответствующие видам объектов доступа.

Пример: Документ «Приходный ордер на товары» ограничен по видам объектов доступа «Контрагенты», «Организации», «Склады».

Если для вида доступа «Контрагенты» предоставить доступ к пустому значению, то пользователь увидит документы, в которых реквизит «Контрагент» не заполнен.

Доступ к элементу справочника или группе.

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

Согласно этому, в форме «Настройка прав доступа» в колонке «Вид наследования прав доступа иерархических справочников» устанавливаются следующие значения:

  • Только для текущего права – для элемента справочника, права действуют на указанный элемент
  • Распространить на подчиненных – для группы справочника, права действуют на все подчиненные элементы

После записи настроек ограничения доступа для групп пользователей в системе заполнится Регистр сведений «Настройки прав доступа пользователей».

*Регистр используется в шаблонах ограничения доступа.

Использование шаблонов.

Шаблоны в УПП 1.3 написаны для каждого вида доступа отдельно и для возможных комбинаций видов доступа, как правило, для каждой группы пользователей.

Например, в демо-версии УПП настроена группа пользователей «Закупки». Для этой группы включено использование видов доступа «Организации», «Контрагенты», «Склады». Соответственно в системе создан ряд шаблонов ограничения доступа:

  • «Организация»
  • «Организация_Запись»
  • «Контрагенты»
  • «Контрагенты_Запись»
  • «Склады»
  • «Склады_Запись»
  • «КонтрагентОрганизация»
  • «КонтрагентОрганизация_Запись»
  • «ОрганизацияСклад»
  • «ОрганизацияСклад_Запись»
  • «КонтрагентОрганизацияСклад_Запись»
  • «КонтрагентСклад»
  • «КонтрагентСклад_Запись»

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

В общем случае схема построения шаблона одинакова для всех видов доступа и выглядит так:

  1. Проверка включенности проверяемого вида доступа.
  2. К основной таблице присоединяется справочник «Группы пользователей» и проверяется, что пользователь включен хотя бы в одну группу.
  3. К регистру сведений «Назначение видов значений доступа» присоединяется таблица регистра «Настройки прав доступа пользователей» по условиям соединения— Объект доступа – это значение доступа, передаваемой в параметр шаблона.— Вид объекта доступа – зависит от контекста разработки шаблона— Область данных.— Пользователь.

По результату соединения определяется, разрешен доступ или нет.

Конец второй части.

Используемые источники:

  • https://programmist1s.ru/nastroyka-rls-ogranichenie-dostupa-na-urovne-zapisey-1s/
  • https://xn—-1-bedvffifm4g.xn--p1ai/news/rls-data-access-restrictions/
  • https://makushimo.ru/1c/1c-rls-2.html

Рейтинг автора
5
Подборку подготовил
Максим Уваров
Наш эксперт
Написано статей
171
Ссылка на основную публикацию
Похожие публикации