Подсистема БСП «Управление доступом», основные объекты и регистры

30.09.19

Разработка - БСП (Библиотека стандартных подсистем)

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

Как известно, механизм настройки прав доступа в современных конфигурациях достаточно сложен. Всю настройку необходимо выполнять в пользовательском режиме 1С. Хорошо это или плохо – вопрос спорный. Конечно, появились новые возможности, но, как обычно, сложность возросла в прогрессии. Теперь, настроить права доступа «интуитивно» не получится. Необходимо, как минимум, познакомиться с основными объектами и понять основные принципы работы с ними. Я уже не говорю об внесении каких-либо изменений или дополнений. Я уже писал ранее статью про использование шаблонов в RLS. Она заключалась в описании основных шаблонов ограничения прав доступа на уровне записей. В данной же статье, я хочу привести более общее описание механизма настройки прав доступа (на уровне записей, в том числе). Описать основные объекты и регистры, и дать общие рекомендации по расширению механизма.

Оглавление

  1. Общие принципы настройки подсистемы прав доступа
  1. Ограничение доступа на уровне записей
  1. Регистры, используемые для хранения значений видов доступа
  1. Дополнительные регистры сведений, используемые для настройки прав
  2. Отчет «Права доступа»

 

Общие принципы настройки подсистемы прав доступа

Как я написал выше, теперь абсолютно все настройки необходимо выполнять в пользовательском режиме.

Для чего это было сделано?

Во-первых, количество ролей в современных конфигурациях сильно увеличено. По сути для каждого объекта или небольшой группы объектов теперь существует по две роли – на чтение и на запись. Также существует большое количество вспомогательных ролей, значения которых используются в различных механизмах системы. Например «Отклонение от условий продаж». Чтобы избежать необходимости назначать каждому отдельному пользователю или группе пользователей всего этого количества ролей, в системе существуют два дополнительных объекта – справочника, которые позволяют оптимизировать этот процесс. Ниже приведена общая схема назначения прав доступа:

Общая схема настройки прав

Рассмотрим эти справочники более подробно.

 

Профили групп доступа

Элементы данного справочника содержат наборы ролей конфигурации. Точнее, наборы ссылок на элементы справочников: «Идентификаторы объектов метаданных» и «Идентификаторы объектов расширений» описывающие роли заданные в конфигураторе.

Каждый профиль объединяет в себе все роли, необходимые для работы с определенной подсистемой. Например: «Менеджер по продажам», «Кладовщик».

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

 

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

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

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

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

В информационной базе присутствуют предопределенные профили, изменение которых запрещено. Для добавления дополнительных прав для пользователя, необходимо или создать новый профиль или сделать копию предопределенного и внести в него необходимые изменения.

На заметку. Создание и использование копии предопределенного профиля чревато проблемами после выполнения обновления системы. Требуется проанализировать изменения базового профиля и внести аналогичные изменения в собственный. Это достаточно трудоемкий процесс. Для его автоматизации можно воспользоваться расширением, позволяющим создавать собственные профили на основании базовых. В этом случае, после обновления базового профиля все изменения будут автоматически перенесены в производный.

 

Ограничение доступа на уровне записей

В предыдущем разделе я уже коснулся этой темы. Теперь, разберем ее более подробно.

Как было описано выше, настройки ограничения доступа на уровне записей выполняются либо непосредственно в профилях, в этом случае, они будут действовать для всех групп доступа, созданных для данного профиля, либо в группах доступа. Для упрощенного варианта интерфейса настройки прав, они выполняются непосредственно для каждого пользователя (неявно, для группы доступа привязанной к каждому пользователю).

Ограничение на уровне записей выполняется в разрезе видов доступа.

 

Виды доступа

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

  • Отдельные объекты: организации, склады, подразделения, кассы…
  • Группы объектов: группы контрагентов, группы номенклатуры, группы физических лиц.
  • Составные объекты (группы объектов и объекты) – пользователи, внешние пользователи.

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

Остальные виды доступа, доступные для системы, описываются непосредственно в каждой конфигурации, созданной на базе БСП, в процедуре общего модуля «УправлениеДоступомПереопределяемый >> ПриЗаполненииВидовДоступа». Собственно, в этот же модуль, можно добавить собственный код для расширения списка доступных видов доступа.

Синтаксис добавления нового вида доступа следующий:

ВидДоступа = ВидыДоступа.Добавить();
ВидДоступа.Имя              = 
ВидДоступа.Представление    = 
ВидДоступа.ТипЗначений      = 
ВидДоступа.ТипГруппЗначений = 
ВидДоступа.НесколькоГруппЗначений = 
УправлениеДоступом.ДобавитьДополнительныеТипыВидаДоступа(ВидДоступа,   
   Тип("[ДополнительныйТип]"),   
   Тип("[ДополнительныйТипГруппа]"));

Для простых видов доступа достаточно заполнить только первые три свойства. Если необходимо ограничивать данные не по отдельным элементам, а по группам элементов, необходимо указать свойство «ТипГруппЗначений». Это должен быть отдельный справочник, значения которого необходимо выбрать для каждого элемента основного справочника (по которому выполняется ограничение). Причем, если дополнительно установлен флаг «НесколькоГруппЗначений», то в основном справочнике необходимо создать табличную часть для возможности привязки его элементов сразу к нескольким группам.

Процедура «ДобавитьДополнительныеТипыВидаДоступа» позволяет добавить дополнительный тип объектов, которые могут входить в группы, если используется ограничение по группам значений.

Если необходимости, можно указать условие использования нового вида доступа в зависимости от настроек системы, нужно добавить соответствующий код в процедуру «УправлениеДоступомПереопределяемый >> ПриЗаполненииИспользованияВидаДоступа»:

Если ИмяВидаДоступа = "НовыйВидДоступа" Тогда        
   Использование = Константы.ИспользоватьНовыйВидДоступа.Получить();
КонецЕсли;

Дополнительно, требуется внести изменения в определяемые типы:

  • ЗначениеДоступа - добавить тип значения доступа и тип группы значений доступа (если используются группы).
  • ЗначениеДоступаСГруппамиЗначенийДоступаОбъект - добавить тип значения доступа, в случае, если для вида доступа указан тип группы значений доступа.

Внимание. После внесения вышеописанных изменений, для вступления настроек в силу, требуется выполнить обновление вспомогательных данных. Можно воспользоваться обработкой из состава конфигурации БСП «Обновление вспомогательных данных», раздел - «Управление доступом».

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

#ПоЗначениям( "Документ.РеализацияТоваровУслуг","Чтение","","НовыйВидДоступа","ИмяРеквизитаДокумента","","","","","","", "","", "","", "","", "","", "","", "","", "","", "","", "","", "","", "","", "","" )

   

Подробнее об использование стандартных шаблонов ограничения прав на уровне записей читайте в этой статье.

 

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

Для хранения значений видов доступа, в системе применяются специальные регистры сведений. По данным этих регистров происходит обор записей в типовых шаблонах ограничения прав на уровне записей. Рассмотрим эти регистры подробнее.

 

Значения групп доступа по умолчанию

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

Если значение ресурса «ВсеРазрешены = ложь», тогда разрешенные значения видов доступа настраиваются в регистре «Значения групп доступа». Если «ВсеРазрешены  = истина» , тогда запрещенные значения видов доступа настраиваются в регистре «Значения групп доступа».

Если реквизит «ВсеРазрешеныБезИсключений = истина», тогда все значения видов доступа разрешены без исключений. То-есть, записи регистра «Значения групп доступа» - не анализируются при проверке прав.  

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

 

Значения групп доступа

Данный регистр работает в паре вышеописанным. В регистре указываются разрешенные или запрещенные значения видов доступа для групп доступа, в зависимости от заданных значений регистра «Значения групп доступа по умолчанию».

 

Группы значений доступа

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

Дополнительно, регистр используется для других вспомогательных связей, используемых в основном для обновления данных этого регистра. В зависимости от значения реквизита «ГруппаДанных», связи могут быть следующие:

  • 0 - Стандартные значения доступа. Связь: значение доступа >> группа доступа.
  • 1 - Обычные/внешние пользователи. Связь: пользователь >> группа пользователей.
  • 2 - Обычные/внешние группы пользователей. Связь: группа пользователей >> пользователь.
  • 3 - Группы исполнителей. Связь: группа исполнителей задач >> группа пользователей или пользователь.
  • 4 - Объекты авторизации.   Связь: пользователь >> группа пользователя или пользователь.

 

Наборы значений доступа

Регистры содержит наборы значений видов доступа, используемые в шаблонах ограничения доступа: #ПоНаборамЗначений и #ПоЗначениямИНаборамРасширенный. Данные в регистре формируются автоматически при записи объектов системы, для которых применяются вышеуказанные шаблоны.

По своей сути, записи данного регистра определяют набор значений видов доступа, которые должны быть доступны в одной из групп доступа пользователя для доступности самого объекта. Значения видов доступа с одним и тем же номером набора объединяются по логическому «И». Наборы значений видов доступа с разным номером набора объединяются по логическому «ИЛИ».

 

Дополнительные регистры сведений, используемые для настройки прав

Права ролей – описание созданных в конфигурации ролей и их прав к объектам системы. Регистр используется для быстрого получения прав на таблицы для текущего пользователя, в отчете «Права доступа» и в некоторых других механизмах системы.

Таблицы групп доступа – наличие прав доступа у групп доступа к объектам системы. Ресурс «Изменение» говорит о наличие доступа не только на чтение. Используется в шаблонах ограничения доступа на уровне записей для проверки права доступа у группы доступа к объекту системы.

НастройкиПравОбъектов, НаследованиеНастроекПравОбъектов  - данные регистры используются для настройки прав к отдельным объектам системы, если это необходимо. Настройка аналогична настройки прав к папкам и файлам операционной системы. Необходимые разрешения должны быть указаны в процедуре общего модуля: «УправлениеДоступомПереопределяемый >> ПриЗаполненииВозможныхПравДляНастройкиПравОбъектов». Объекты, для которых необходимо использовать данную настройку прав, необходимо включить в определяемые типы: «ВладелецНастроекПрав», «ВладелецНастроекПравОбъект». Также, необходимо добавить их в тип общей команды «НастроитьПрава». 

 

Отчет «Права доступа»

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

Отчет вызывается из формы настроек прав доступа для каждого пользователя:

Отчет по правам доступа

Для корректной работы отчета необходимо корректное заполнение состава видов доступа, которые используются для ограничения прав на уровне записей, в процедуре «УправлениеДоступомПереопределяемый >> ПриЗаполненииВидовОграниченийПравОбъектовМетаданных».

Это следует иметь в виду при добавлении новых видов доступа! 

Данные можно дополнить вручную добавив строки следующего вида:

|Справочник.[Вид объектов ИБ].[Право].[Вид доступа]

Или воспользоваться обработкой из состава конфигурации БСП «УправлениеДоступом»:

Обработка БСП: Управление доступом

На этом все. Спасибо за внимание и до скорых встреч.

 

Другие мои статьи по различным механизмам БСП в типовых конфигурациях 1С:

  1. Использование типовых шаблонов RLS

  2. Добавление отчетов в типовые конфигурации 1С
  3. Использование подсистемы БСП Заполнение объектов

  4. Новый подход к обмену данными EnterpriseData (серия статей)

 

настройка прав доступа виды ограничение на уровне записей

См. также

SALE! 15%

Инструментарий разработчика Роли и права Запросы СКД Программист Платформа 1С v8.3 Управляемые формы Запросы Система компоновки данных Конфигурации 1cv8 Платные (руб)

Набор инструментов программиста и специалиста 1С для всех конфигураций на управляемых формах. В состав входят инструменты: Консоль запросов, Консоль СКД, Консоль кода, Редактор объекта, Анализ прав доступа, Метаданные, Поиск ссылок, Сравнение объектов, Все функции, Подписки на события и др. Редактор запросов и кода с раскраской и контекстной подсказкой. Доработанный конструктор запросов тонкого клиента. Продукт хорошо оптимизирован и обладает самым широким функционалом среди всех инструментов, представленных на рынке.

10000 руб.

02.09.2020    159668    875    399    

862

Инструменты администратора БД Роли и права Системный администратор Программист Пользователь 8.3.14 1С:Розница 2 1С:Управление нашей фирмой 1.6 1С:Документооборот 1С:Зарплата и кадры государственного учреждения 3 1С:Бухгалтерия 3.0 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х 1С:Зарплата и Управление Персоналом 3.x 1С:Управление нашей фирмой 3.0 1С:Розница 3.0 Платные (руб)

Роли… Вы тратите много времени и сил на подбор ролей среди около 2400 в ERP или 1500 в Рознице 2, пытаясь понять какими правами они обладают? Вы все время смотрите права в конфигураторе или отчетах чтоб создать нормальные профили доступа? Вы хотите наглядно видеть какие права дает профиль и редактировать все в простом виде? А может хотите просто указать подсистему и дать права на просмотр и добавление на объекты и не лезть в дебри прав и чтоб обработка сама подобрала нужные роли? Все это теперь стало возможно! Обновление от 18.09.2024, версия 1.2

16800 руб.

06.12.2023    8878    42    5    

74

SALE! 15%

Инструменты администратора БД Инструментарий разработчика Роли и права Программист Платформа 1С v8.3 Конфигурации 1cv8 Россия Платные (руб)

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

10000 8500 руб.

10.11.2023    10463    36    25    

61

SALE! 20%

Зарплата Роли и права Системный администратор Бухгалтер Платформа 1С v8.3 Бухгалтерский учет Управление правами 1С:ERP Управление предприятием 2 1С:Бухгалтерия 3.0 1С:Комплексная автоматизация 2.х Молдова Россия Казахстан Бухгалтерский учет Платные (руб)

Расширение позволяет максимально полно ограничить доступ пользователей к данным по заработной плате, а именно закрывает доступ к документам начисления и выплаты заработной платы, не позволяет просматривать бухгалтерские отчеты по счету учета зарплаты а также убирает зарплатные проводки из журнала проводок. Расширение запрещает просматривать платежные документы на выплату зарплаты, так же не доступны регламентные отчеты в ПФР и ИФНС. Расширение предлагает готовые настроенные профили "Бухгалтер без зарплаты", "Только просмотр без зарплаты".

5940 4752 руб.

27.05.2021    37609    264    95    

205

Роли и права Системный администратор Программист Платформа 1С v8.3 Конфигурации 1cv8 1С:Управление торговлей 11 Платные (руб)

Данная система разработана как альтернатива стандартной системе напоминаний. Но имеет ряд существенных преимуществ: отображение в базе или с отправкой по почте, свое расписание, возможность фильтрации по ролям и пользователям, формирование своих запросов и макетов, шаблоны писем, работа в фоне. А также может блокировать работу пользователей при заданных условиях. Может работать в составе любой конфигурации. Имеется справка с описанием возможностей. (Обновление от 20.02.2024, версия 2.2, расширение)

19200 руб.

29.11.2019    25661    17    8    

37

Логистика, склад и ТМЦ Роли и права Программист Бухгалтер Пользователь Платформа 1С v8.3 Бухгалтерский учет Управление правами 1С:Бухгалтерия 3.0 Россия Бухгалтерский учет Управленческий учет Платные (руб)

Расширение для 1С:Бухгалтерия 3.0, которое позволяет использовать отдельные роли для доступа к складским документам, для доступа к документам раздела "Производство" и для доступа к документам раздела "Покупки".

4560 руб.

21.05.2019    1694784    570    194    

137

Ценообразование, анализ цен Роли и права Системный администратор Платформа 1С v8.3 Управление правами 1С:Управление нашей фирмой 1.6 1С:Управление нашей фирмой 3.0 Россия Платные (руб)

Расширение возможностей программы 1С УНФ. Функционал расширения - разграничение всевозможных прав пользователей и контроль при совершении различных действий.

3000 руб.

23.02.2018    58479    160    261    

152
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. kraynev-navi 681 23.05.19 16:58 Сейчас в теме
Вызывает сожаление непрозрачность и неинтуитивность применения в разработке всей этой подсистемы в целях расширения возможностей и дополнения функционала.
Схожие наименования сущностей не позволяют быстро разобраться в происходящем: Значения групп доступа, Группы значений доступа с Видами доступа и Наборами групп доступа.
Неужели нельзя было придумать по другому...
anatoliy.kichuk; Yakud3a; Bob_Dobr; +3 Ответить
2. ids79 8538 24.05.19 08:21 Сейчас в теме
(1)
Схожие наименования сущностей не позволяют быстро разобраться в происходящем

Согласен с Вами.
anatoliy.kichuk; Bob_Dobr; +2 Ответить
3. Bassgood 1449 27.05.19 11:18 Сейчас в теме
(1) Рекомендую, вот здесь более подробно расписано каким образом можно дорабатывать данную подсистему: https://infostart.ru/public/313468/
5. ids79 8538 28.05.19 14:28 Сейчас в теме
(3)Да, согласен, у Вас более подробно описан механизм добавления новых видов доступа..
У меня более общее описание подсистемы "В целом"
4. Bassgood 1449 27.05.19 11:22 Сейчас в теме
Для анализа прав доступа рекомендую пользоваться вот этим отчетом, а не типовым (в типовом не имеется гибких настроек): https://infostart.ru/public/418437/
6. Slusarenko_I 24.06.19 09:44 Сейчас в теме
Какие должны быть настройки у групп и профилей доступа, чтобы использовать вид доступа Объект Шаблона ПоЗначениямИНаборамРасширенный ?
Я вот пробую - https://forum.infostart.ru/forum29/topic219948/ , не получается.
7. ids79 8538 24.06.19 12:07 Сейчас в теме
(6)Чтобы использовать вид доступа Объект в шаблоне "ПоЗначениямИНаборамРасширенный", нужно дополнительно настраивать заполнение регистра сведений "НаборыЗначенийДоступа". Посмотрите тут про использование шаблонов.
А зачем Вам вообще использовать вид доступа "Объект"? Используйте шаблон "ПоЗначениям" или "ПоЗначениямРасширенный". И группа доступа Вам одна нужна, а не две.
8. Slusarenko_I 24.06.19 13:05 Сейчас в теме
(7) Действительно, можно использовать шаблон "ПоЗначениям" с видом доступа ПравоЧтения. Спасибо!
Один профиль и одна группа, ок.
Сделал так:
Роль "ДоступКОрганизациям"
с шаблоном:
#ПоЗначениям( "Справочник.Организации", "Чтение", "",
"Организации", "Ссылка", "","", "","", "","", "","", "","", "","", "","", "","", "","", "","", "","", "","", "","", "","", "","")

и роль "ЧтениеИПросмотрСписанийТоваров" с шаблоном

#ПоЗначениям( "Документ._ДемоСписаниеТоваров", "Чтение", "",
"ПравоЧтения", "Т.Организация", "","", "","", "","", "","", "","", "","", "","", "","", "","", "","", "","", "","", "","", "","", "","")

Роли включены в один профиль с видом доступа "Организация" - все запрещены кроме ЗАО "Перспектива".

При открытии списка документов Списание товаров. Отображаются все документы.

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

Отчет о правах пользователя выглядит вот так:
9. ITSun 23.07.20 21:23 Сейчас в теме
Понятная подача материала. +
RedAllert; ids79; +2 Ответить
Оставьте свое сообщение