Авторы:
Елена Мордовина,
консультант-аналитик по «1С:ЗУП» Внедренческого центра «Раздолье»
Айрат Файзрахманов,
руководитель проектов Внедренческого центра «Раздолье»
При применении типового механизма разграничения прав доступа пользователей на уровне записей (RLS) при переводе сотрудника из одного подразделения в другое (группа доступа при этом также меняется) мы неизбежно столкнёмся с подобной проблемой: например, расчётчику того подразделения, из которого был переведён сотрудник, станут недоступны некоторые документы с начислениями.
Дело в том, что в программе заложен алгоритм: если в табличной части документа находится хотя бы один сотрудник, к которому нет доступа, то становится недоступен весь документ.
Для решения этой проблемы приходится создавать промежуточные группы доступа и администрировать их вручную (добавлять/удалять участников группы доступа).
Чтобы исправить эту ситуацию, мы разработали и внедрили механизм разграничения прав по подразделениям на уровне RLS, который позволяет, например, ограничить права расчётчиков с привязкой к определённому подразделению [при этом учитывается тот факт, что сотрудники могут перемещаться между подразделениями].
Цепочка из групп доступа по сотруднику (физическому лицу) формируется автоматически в момент проведения кадровых документов. В справочниках и отчётах сотрудники с действующей группой доступа выводятся для каждого определённого расчётчика.
Приведём пример запроса заказчика с численностью сотрудников более 8 000
Задача: разграничить доступ пользователей по подразделениям. Расчётчику в базе для работы необходимо видеть только сотрудников своих подразделений, при этом сотрудники могут перемещаться между подразделениями.
Справочник «Штатное расписание» доступен для просмотра без ограничений доступа, но без возможности вывода на форму списка колонок «Оклад тариф» и «ФОТ». Документы «Утверждение ШР», «Изменение ШР» доступны с учётом ограничения доступа по подразделениям.
Отчёты формируются по сотрудникам с учётом действующей группы доступа.
Реализация:
- Включаем механизм «Ограничение доступа на уровне записей»:
- Доступ с точностью до физических лиц,
- Доступ к штатному расписанию по подразделению.
- Описываем группы доступа физических лиц.
- Присваиваем группы доступа подразделениям/физическим лицам.
При приёме нового сотрудника группа доступа назначается вручную. Если в программе включен раздел «Подбор персонала», группа доступа будет назначаться автоматически в момент утверждения кандидата.
При перемещении сотрудника из одного подразделения в другое физическому лицу автоматически присваивается группа доступа действующего подразделения, и образуется цепочка групп доступа -двойная, -тройная и т.д., в зависимости от количества переводов между подразделениями.
Настройка прав доступа пользователям
- Права доступа для пользователей настраиваем в справочнике «Профили групп доступа». В профилях настраиваем роли пользователей (т.е какие действия они могут совершать в программе).
- Настраиваем группы доступа в справочнике «Группы доступа», где указываем: кто из пользователей с какими группами доступа имеет право работать и с какими ограничениями.
При перемещении сотрудника из одного подразделения в другое цепочки, созданные по группам доступа, автоматически добавляются в «Группу доступа» для подразделения до и после перевода.
Это позволяет пользователю подразделения до перевода «видеть» документы по сотруднику, введенные ранее, но при этом все документы с заполненной табличной частью (т.е те, в которых есть и другие работники), введенные в программу после перевода, будут ему не доступны, и наоборот – для пользователя подразделения после перевода.
При таких настройках (с учётом доработок) в программе удалось в полном объёме реализовать задачу по автоматизации функционала ограничения прав доступа пользователей в разрезе подразделений с учётом перемещений между подразделениями под требование.