1с отчет по правам доступа
Проверка прав доступа
Область применения: управляемое приложение, обычное приложение.
1. В случае большого количества ролей в конфигурации (от нескольких десятков) не рекомендуется использовать ролевую настройку видимости в элементах форм (просмотр и редактирование реквизитов по ролям, пользовательскую видимость полей формы по ролям, использование команд по ролям). Вместо этого следует придерживаться следующих подходов:
- при сильных различиях внешнего вида и функциональности формы в зависимости от наличия тех или иных ролей у пользователя – разрабатывать отдельные формы, специализированные под конкретный набор прав пользователя;
- при незначительных отличиях – выполнять проверку прав в коде. При этом следует иметь в виду, что программное управление видимостью может снизить скорость открытия формы, что нужно учитывать при выборе между предлагаемыми подходами.
Эти меры позволяют:
- существенно упростить работу из кода с элементами управления, которые пропадают из коллекции Элементы (код Элементы.ИмяЭлемента.ИмяСвойства становится нерабочим);
- повысить устойчивость кода к пересмотру состава ролей в конфигурации;
- организовать контроль использования ролей в конфигурации (в противном случае, выполнять анализ прав доступа по флажкам, назначенных для ролей в различных элементах произвольных форм конфигурации, крайне затруднительно).
2. Не рекомендуется использовать ролевую настройку видимости в командном интерфейсе конфигурации, командном интерфейсе основного раздела, а также рабочей области начальной страницы. Вместо этого следует использовать настройку прав на разделы командного интерфейса, общие формы и объекты, включенные в командный интерфейс или в рабочую область. Это позволяет повысить предсказуемость поведения управляемого интерфейса для пользователя, а также упростить расследование ошибок.
3. Для проверки прав доступа в коде следует использовать метод ПравоДоступа .
Например, неправильно:
Если РольДоступна("ДобавлениеИзменениеСтранМира") Тогда .
Если РольДоступна("ПросмотрОтчетаПопулярныеСтраны") Тогда .
Если ПравоДоступа("Редактирование", Метаданные.Справочники.СтраныМира) Тогда .
Если ПравоДоступа("Просмотр", Метаданные.Отчеты.ПопулярныеСтраны) Тогда .
Такой подход позволяет повысить устойчивость кода к пересмотру состава ролей в конфигурации.
4. В тех случаях, где роль не дает никаких прав на объекты метаданных, а служит только для определения того или иного дополнительного права, следует использовать метод РольДоступна . При использовании в конфигурации Библиотеки стандартных подсистем (БСП) следует использовать функцию РолиДоступны общего модуля Пользователи :
Например, без использования БСП:
Если РольДоступна(. ) Или <ЭтоПолноправныйПользователь> Или ПривилегированныйРежим() Тогда .
В поле "Имя субъекта доступа" выбирается субъект доступа (роль или пользователь), для которого нужно вывести права. Если отметить чекбокс "Выводить только установленные права" (рекомендуется), то в итоговый отчёт будет выведены только те объекты метаданных, к которым у роли/пользователя есть хоть какой-то доступ.
Выводит права к объектам (ТОЛЬКО!) следующих видов: Константы, Справочники, Документы, ЖурналыДокументов, Отчеты, Обработки, ПланыВидовХарактеристик, ПланыСчетов, ПланыВидовРасчета, РегистрыСведений, РегистрыНакопления, РегистрыБухгалтерии, РегистрыРасчета, БизнесПроцессы, Задачи.
В новой версии добавлена вкладка для поиска ролей, которые предоставляют доступ к объектам конфигурации.
В новой версии добавлена вкладка изменение прав, которая позволяет менять роли выбранным пользователям.
В новой версии появилась возможность групповой работы с профилями групп доступа пользователей, можно добавлять или удалять роли в них .
Update: Во вкладке "Поиск полей предоставляющих доступ" , в таблице "Доступ предоставляется через" добавил роли через которые этот доступ возможно предоставить.
Update 2: Добавил возможность копирования профилей групп доступа с одного на другие, с полной перезаписью ролей или с дополнением существующих в профиле.
Update 3: Добавил возможность сравнения прав на объекты по всем ролям между конфигурациями, при обновлении платформы разработчики "нечаянно", могут снести права на каком нибудь регистре для какой нибудь роли, теперь это можно отследить.
ВНИМАНИЕ!
1) При изменении уровня доступа отчет умеет менять все профили доступа (включая предопределенные) .
2) При удалении роли пользователя она удаляется из профиля доступа который использован при создании группы доступа пользователя, если пользователь входит в несколько групп доступа эта роль будет удалена из всех профилей доступа которые использовались при создании этих групп.
3) При добавлении роли пользователю она добавляется в первый найденный профиль доступа в первой найденной группе пользователя.
В поле "Имя" выбирается субъект доступа (роль или пользователь), для которого нужно вывести права. Если отметить чекбокс "Выводить только установленные права" (рекомендуется), то в итоговый отчёт будет выведены только те объекты метаданных, к которым у роли/пользователя есть хоть какой-то доступ.
Выводит права к объектам (ТОЛЬКО!) следующих видов: Константы, Справочники, Документы, ЖурналыДокументов, Отчеты, Обработки, ПланыВидовХарактеристик, ПланыСчетов, ПланыВидовРасчета, РегистрыСведений, РегистрыНакопления, РегистрыБухгалтерии, РегистрыРасчета, БизнесПроцессы, Задачи.
История:
Совместно с maikl maikl выпустили очередной релиз отчёта. Добавлена возможность выбора типов объектов, по которым строится отчёт, а также добавлен макет от maikl maikl с раскраской прав доступа. По сути данный релиз есть немного переработанный вариант форка, сделанных maikl maikl.
Добавил вывод прав пользователя. Новая обработка называется ПраваРолиИлиПользователя.erf. Старую обработку (ПраваРоли2.erf) тоже пока оставил.
Столкнулся со следующей задачей: "нужно в УПП создать роль МенеджерОтделаСбыта с правами как у штатных ролей МенеджерПоПродажам + МенеджерПоЗаказам за вычетом некоторых прав роли МенеджерПоЗаказам, касающихся заказов поставщику и заказов на производство". Скопировал роль МенеджерПоПродажам, назвал её МенеджерОтделаСбыта. А дальше глубоко призадумался. Нужно получить список прав роли МенеджерПоЗаказам (а заодно ещё желательно как-то получить список различий её прав и прав роли МенеджерПоПродажам - чтобы те права, которые совпадают дальше не анализировать). Штатная портянка, которая выдается из формы прав роли через Действия->Вывести список, для анализа имхо слабо пригодна. Поискал соответствующий отчёт тут. Может конечно плохо искал, но почему-то ничего найти не смог. В результате родился этот отчётец.
Права двух ролей сравнивал так: сохранил отчёты по правам ролей МенеджерПоПродажам и МенеджерПоЗаказам в экселёвые файлы и сравнил эти экселёвые файлы с помощью WinMerge.
Режим позволяет проанализировать права одной роли и ответить на вопросы:
- Кому назначена определенная роль?
- Какие права доступа назначены для роли? Какие ограничения по RLS действуют для роли?
- В какие профили включена роль?
- К каким объектам конфигурации 1С роль предоставляет доступ?
- Получить описание роли 1С.
При анализе ролей можно просмотреть дополнительную информацию:
Для пользователя настроили ограничение по Организации, функционал типовой и особо ограничение никто проверять не стал.
Оказалось пользователь может видеть все документы без ограничения и полностью видеть их содержимое, но при записи выходит ошибка по правам доступа. Причина оказалась простой - для роли на добавление и изменение документа в праве на "Чтение" не установлены ограничения по RLS.
Перед тем как предоставить доступ через добавление роли в профиль можно было проверить какие права предоставлены роли - это ювелирная работа, но позволила в будущем назначать права более предсказуемо.
Анализ прав доступа к объекту конфигурации
Режим позволяет проанализировать права доступа к одному объекту конфигурации и ответить на вопросы:
- Кто имеет доступ к объекту?
- Какие роли дают права доступа к объекту 1C?
- Какие Профили / Группы доступа - нужно назначить, чтобы получить доступ к объекту?
При анализе прав к объекту можно просмотреть дополнительную информацию:
- В какие подсистемы включен объект;
- Получить список функциональных опций в состав которых включен объект:
- Основные роли (При анализе Конфигурации).
В типовой версии ЗУП некоторые элементы выведены через общие команды, например справочник "Тарифные группы". Если пользователю назначить доступ только к объекту он не сможет открыть сам справочник из интерфейса, ему так же нужно настроить доступ к общей команде "Тарифные группы". Сразу увидеть что включено в командный интерфейс, а что нужно разрешить пользователю поможет отчет.
Проанализировать за счет каких Групп доступа пользователь получил именно такую комбинацию прав, гораздо проще с отчетом.
При настройке прав доступа важно учитывать и настройки ограничения, за счет одних ролей пользователю может быть снято ограничение по RLS на чтение при этом ограничение остается на Изменение и Добавление. Однажды риходилось разбираться почему пользователю доступны все организации но при внесении изменении для некоторых Организаций выходила ошибка.
Причина оказалась в том, что через неудачно добавленную роль для пользователя были отключены ограничения по RLS для чтения справочника.
Анализ прав доступа профиля
Режим позволяет проанализировать профиль доступа в различных разрезах и ответить на вопросы:
- Какие объекты доступны для профиля доступа? Какие разрешения доступа предоставляет профиль?
- Какие роли включены в профиль доступа?
- Каким пользователям назначен профиль доступа?
- Какие Группы доступа есть на основании профиля?
Доступные варианты отчета в режиме анализа прав доступа профиля:
Вариант отчета проанализировать права доступа профиля в виде списка.
Вариант отчета проанализировать права доступа профиля в табличном виде.
Анализ прав пользователя
Режим позволяет проанализировать роли и права доступа пользователя и ответить на вопросы:
- К каким объектам C пользователь имеет доступ?
- Как сложилась комбинация прав доступа для пользователя из отдельных ролей?
- Через какие роли пользователь получил доступ к объектам? Какие Профили и Группы доступа назначены пользователю?
Доступные варианты отчета в режиме анализа прав доступа пользователя:
Вариант отчета позволяет проанализировать права доступа пользователя в виде списка.
Вариант отчета позволяет получить список прав доступа к объектам для Пользователя в табличном виде.
Анализ прав пользователя, без анализа ролей
Режим позволяет проанализировать права доступа указанного пользователя и найти ответы на вопросы:
- К каким объектам конфигурации пользователь 1С имеет доступ?
- Какие ограничения по RLS действуют для пользователя?
В отличии от режима "Анализ прав пользователя":
- Нельзя получить данные по: Ролям, Профилям. При этом доступные роли пользователя можно проанализировать в дополнительном окне;
- Работает быстрее.
Доступные варианты отчета в режиме анализа прав доступа пользователя (Без анализа ролей):
Вариант отчета позволяет проанализировать права доступа пользователя в виде списка.
Вариант отчета позволяет проанализировать права доступа пользователя в табличном виде.
Произвольный режим настройки
Режим позволяет проанализировать права доступа пользователей к объектам конфигурации 1С в различных разрезах.
В данном режиме можно получить максимально полную информацию о настройке прав доступа по Ролям, Группам доступа, Объектам и Пользователям.
Можно сравнить Роли/Пользователей/Профили/"Группы доступа" между собой.
Можно получить данные по правам доступа на несколько Объектов/Пользователей/Профилей и т.д.
Доступные варианты отчета в режиме анализа прав доступа в произвольном режиме:
Вариант отчета позволяет гибко проанализировать права доступа по нескольким объектам.
Вариант отчета сравнить несколько ролей пользователей, и выбрать нужную роль для настройки прав пользователей.
Произвольный режим настройки, без анализа ролей
Режим позволяет проанализировать права доступа пользователей к объектам.
- Какие объекты доступны пользователям? Какие ограничения прав доступа действуют для пользователей?
- Кто из пользователей обладает большими правами?
- Какие права имеют пользователи? Как отличаются права разных пользователей? Возможность сравнить права доступа пользователей 1С.
В данном режиме нельзя получить данные по Ролям, Профилям и Группам доступа. Работает быстрее относительно произвольного режима.
Доступные варианты отчета в режиме анализа прав доступа в произвольном режиме (Без анализа ролей):
Вариант отчета: Произвольный, без анализа ролей (Матрица)Вариант отчета позволяет проанализировать права пользователей к объектам.
Вариант отчета: Произвольный, без анализа ролей (Пользователи)Вариант отчета по произвольному набору объектов, удобно использовать при большом количестве пользователей.
Метаданные без ролей
Инструмент поиска потенциальных вопросов пользователей. В данном режиме можно получить список метаданных по которым не настроены роли.
Перед формированием можно указать исключаемые из проверки роли (по умолчанию это роль "Полные права").
Демонстрация работы отчета
Вопрос : В БСП есть “Отчет по правам доступа” чем Ваш отчет лучше?
- Гибкая настройка отчета - которая позволяет выводить права доступа в удобном виде;
- Отчет позволяет провести анализ прав пользователей по более широкому перечню объектов;
- Анализ всех прав доступа объектов платформы 8.3.14 (на более старых версиях не доступные права будут скрыты);
- Получение данных в различных разрезах: Роль, Пользователь, Объект и т.д. (в отчете "Отчет по правам доступа"- только по пользователям).
Вопрос : На какие вопросы можно найти ответы при помощи отчета?
- Какие права назначены Пользователю / Пользователям; Какие права пользователей 1С;
- Какие права доступа 1С; Какие права пользователей 1С;
- Что может делать пользователь в системе;
- Через какие Роли, Профили и “Группы доступа” пользователи получили права;
- Кто может получить доступ к объекту;
- Увидеть почему возникает нарушение прав доступа;
- Как настроить права доступа; Как настроить разграничение прав доступа 1С;
- Какие группы доступа назначить чтобы пользователь получил необходимые права;
- Получить имена Функциональных опций которые могут скрывать объект;
- В какой подсистеме выведен объект;
- Отчет по системе прав доступа;
- Как разграничить права доступа пользователей;
- Какие права доступа назначены профилю
- Провести Анализ ролей 1С 8.3 и 8.2.
Вопрос : На каких конфигурациях работает отчет?
На всех конфигурациях написанных на основе БСП 2.0 и выше с внедренной подсистемой “ Управление доступом ”.
Например: “Бухгалтерия предприятия 3.0”, “Зарплата и управление персоналом 3”, “Управление торговлей 11”, "Комплексная автоматизация 2", "Управление небольшой фирмой", "Управление нашей фирмой", "ERP Управление предприятием", "Розница 2" и т.д.
Версию БСП можно посмотреть в регистре сведений “Версии подсистем” по имени подсистемы “СтандартныеПодсистемы”.
Вопрос : Если роль назначена через конфигуратор будет ли она выведена в отчет?
Анализ прав проводиться по данным подсистемы “Управление доступом” БСП и назначенная через конфигуратор роли не будет связаны с правами пользователя. Но увидеть, что пользователю доступны дополнительные права можно в режиме отчета “Пользователь, без анализа ролей”.
Вопрос : Как создавался отчет?
Отчет подключается стандартными средствами Дополнительных отчетов и обработок: Администрирование -> Печатные формы, отчеты и обработки -> Дополнительные отчеты и обработки -> Загрузить из файла.
Читайте также: