Почему при включенном RLS в ЗУП 3.1 не видны сотрудники и как это исправить

Системный администратор 1С v8.3 (Управляемые формы) 1С:Зарплата и Управление Персоналом IT и автоматизация бизнеса
← На главную

При разграничении прав доступа на уровне записей (RLS) в конфигурации 1С:Зарплата и Управление Персоналом 3.1 администраторы часто сталкиваются с нестандартным поведением системы. Типичная ситуация: кадровому специалисту назначается профиль с разрешением видеть все организации и группы физических лиц без исключений, однако при входе в программу список сотрудников оказывается полностью пустым.

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

Причины возникновения проблемы

Разберем внутренние механизмы 1С:ЗУП 3.1, влияющие на расчет прав доступа на уровне записей:

  1. Наличие в справочнике организаций без сотрудников. Когда в информационной базе присутствуют созданные или перенесенные из старых версий (например, из ЗУП 2.5) юрлица, в которых не числится ни один сотрудник, высокопроизводительный режим RLS Библиотеки Стандартных Подсистем (БСП) может формировать ошибочные разрешающие ключи при значении «Все разрешены, без исключений».
  2. Особенности работы производительного режима RLS. Права доступа в современных релизах 1С вычисляются не «на лету» в момент выполнения запроса, а предварительно записываются в служебные таблицы ключей доступа. Если матрица ключей сформировалась с ошибкой, платформа применяет к запросам заведомо ложные условия.
  3. Конфликт настроек в профиле и группе доступа. В профилях групп доступа задаются виды доступа (например, Организации и Группы физических лиц). Если логика профиля диктует требование явно задавать исключения в группах, а в самой группе доступа указано «Все разрешены, без исключений», алгоритм расчета может давать сбой.
  4. Заполнение разреза физических лиц. При проверке прав по двум разрезам одновременно (Организации и Физические лица) незаполненный реквизит Группа доступа у физлиц блокирует показ сотрудников в интерфейсе.

Способ 1. Очистка неиспользуемых организаций (быстрое решение)

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

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

  1. Откроем справочник Организации и проанализируем список юридических лиц.
  2. Найдем пустые или служебные организации (например, созданные для теста или перенесенные без кадровых данных).
  3. Пометим их на удаление и выполним окончательное удаление помеченных объектов.
  4. Проверим отображение справочника Сотрудники под пользователем с проблемой.

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

Способ 2. Отключение ненужных видов доступа в профиле кадровика

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

Проанализируем порядок действий:

  1. Перейдем в раздел Администрирование — Обслуживание — Настройка пользователей и прав — Профили групп доступа.
  2. Создадим копию типового профиля (например, Старший кадровик).
  3. На вкладке Ограничения доступа найдем строки с видами доступа Организации и Группы физических лиц.
  4. Полностью удалим эти строки из списка ограничений или укажем для них отсутствие проверок.
  5. Назначим полученный профиль пользователю через соответствующую группу доступа.

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

Способ 3. Пересчет ключей доступа и обновление служебных данных

Если структура организаций сложная и удалять объекты нельзя, вызовем процедуру принудительного обновления RLS. Регламентное задание Заполнение данных для ограничения доступа обрабатывает данные порциями, поэтому короткого запуска может быть недостаточно.

Для полного перерасчета выполним следующие операции:

  1. Зайдем в раздел Администрирование — Настройки пользователей и прав — Защита персональных данных (или Администрирование прав доступа).
  2. Временно снимем флаг Ограничивать доступ на уровне записей.
  3. Дождемся завершения фонового процесса отключения RLS.
  4. Включим флаг Ограничивать доступ на уровне записей повторно.
  5. Запустим полнотекстовый пересчет прав и дождемся его полного завершения (в крупных базах процедура может занять длительное время).

Способ 4. Проверка групп доступа физических лиц

Выясним причину, связанную со справочником физических лиц. Поле Группа доступа у физического лица напрямую влияет на видимость записи в справочнике Сотрудники.

Разберем процесс исправления:

  1. Откроем справочник Физические лица.
  2. Проверим наличие реквизита Группа доступа у записей. Если после переноса данных реквизит остался не заполнен, RLS блокирует к ним доступ.
  3. С помощью обработки Групповое изменение реквизитов выделим все физлица с пустым значением и присвоим им корректную рабочую группу доступа.
  4. Выполним обновление прав доступа через регламентное задание.
← На главную