Почему слетают права пользователей в 1С:УПП 1.3 и как правильно настроить доступ?

Программист 1С v8.3 (Обычные формы) IT и автоматизация бизнеса
← На главную

Проблема внезапного исчезновения или «слетания» ролей у пользователей в конфигурации 1С:Управление производственным предприятием (УПП) редакции 1.3 является классической для систем, находящихся на стыке старых механизмов платформы и новых подсистем из БСП (Библиотеки стандартных подсистем). Многие администраторы и программисты по привычке назначают роли в Конфигураторе, но спустя время обнаруживают, что настройки сбросились к какому-то «эталонному» состоянию. Разберем подробно, почему это происходит и как выстроить работу правильно.

Причина 1: Конфликт механизмов управления доступом

В современных релизах 1С:УПП 1.3 реализована подсистема управления доступом, которая берет на себя функции контроля состава ролей. Основная логика заключается в следующем: система считает приоритетными данные, указанные в режиме 1С:Предприятие в специальных справочниках. Проанализируем цепочку зависимости: Пользователь — Группа доступа — Профиль полномочий.

Когда пользователь авторизуется в системе или происходят регламентные обновления, срабатывает программный код (обычно это общий модуль УправлениеПользователями), который сравнивает список ролей, назначенных объекту ПользовательИнформационнойБазы в Конфигураторе, со списком ролей, которые прописаны в его Профиле полномочий. Если в Конфигураторе назначена роль, которой нет в профиле, система автоматически ее удаляет. Это не ошибка платформы, а штатная работа механизма синхронизации прав.

Причина 2: Обновление информационной базы и кэширование

Выясним, в какие моменты чаще всего происходит сброс. Как правило, это случается при выполнении обработки ОбновлениеИнформационнойБазы после установки очередного релиза или при первом входе пользователя после изменения его членства в группах доступа. Рассмотрим также влияние локального кэша: иногда права фактически на месте, но из-за некорректного кэша метаданных на компьютере пользователя 1С выдает ошибки доступа. Однако в случае с УПП 1.3 чаще всего речь идет именно о физическом удалении ролей из списка в Конфигураторе.

Как решить проблему: переход на профили полномочий

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

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

Программная проверка и восстановление ролей

Если специфика вашей базы требует программного вмешательства (например, вы используете нестандартную систему прав), проанализируем ситуацию с точки зрения кода. Вместо того чтобы «костылить» проверку при каждом входе, лучше встроиться в типовой механизм. Основная процедура, отвечающая за обновление состава ролей, обычно находится в общем модуле УправлениеПользователями и называется ОбновитьРолиПользователя.

Если же вы все-таки решили добавить свою проверку при начале работы системы, посмотрим на пример кода, который можно разместить в модуле обычного приложения в процедуре ПриНачалеРаботыСистемы:


Процедура ПриНачалеРаботыСистемы()
    // Проверим наличие критически важной роли программно
    Если Не РольДоступна("НужнаяСпецифическаяРоль") Тогда
        // Здесь можно вызвать лог или попытаться восстановить роль через 
        // ПользователиИнформационнойБазы, но помните о приоритете Профилей!
        ЗаписатьВЖурналРегистрации("Доступ", УровеньЖурналаРегистрации.Предупреждение, , , "У пользователя отсутствуют необходимые роли!");
    КонецЕсли;
КонецПроцедуры

Особенности работы в распределенных информационных базах (РИБ)

Проанализируем ситуацию, когда права слетают в периферийных узлах РИБ. В УПП 1.3 справочники пользователей и групп доступа мигрируют между узлами. Если в главном узле профиль пользователя настроен одним образом, а в подчиненном вы вручную изменили роли в Конфигураторе, то после первой же синхронизации и выполнения процедур обновления прав настройки из главного узла «затрут» ваши локальные правки. Решение: любые изменения прав в РИБ должны производиться только в главном узле через справочники Группы доступа.

Использование ограничений на уровне записей (RLS)

Иногда за «слетевшие» права принимают работу механизма RLS (Record Level Security). Если в профиле настроены ограничения (например, по организациям или складам), пользователь может перестать видеть документы, хотя роль в Конфигураторе у него есть. Выясним причину: проверьте вкладку «Ограничение доступа» в группе доступа пользователя. Если там установлены пустые значения или неверные виды доступа, система просто отфильтрует все данные, создавая иллюзию отсутствия прав.

Резюмируем: в 1С:УПП 1.3 управление правами — это прерогатива режима «Предприятие». Забудьте про ручные манипуляции в Конфигураторе. Используйте Профили полномочий и Группы доступа, и тогда состав ролей ваших пользователей будет всегда стабильным и предсказуемым.

← На главную