Почему в УТ 11 не назначаются новые роли и как это исправить

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

В современных конфигурациях 1С, построенных на базе Библиотеки стандартных подсистем (БСП), таких как Управление торговлей 11, ERP Управление предприятием 2 или Комплексная автоматизация 2, процесс назначения прав доступа значительно усложнился. Часто программисты сталкиваются с ситуацией: новая роль создана, добавлена в профиль групп доступа, назначена пользователю, но в режиме Предприятия права не работают, а отладчик показывает, что РольДоступна() возвращает Ложь. Рассмотрим подробно, почему это происходит и как решить проблему по шагам.

Поймем причину: программная прослойка БСП

В старых конфигурациях достаточно было добавить роль в Конфигураторе и назначить её пользователю. В УТ 11 механизм управления доступом работает через справочники Профили групп доступа и Группы доступа. Система хранит в специальных кэшированных таблицах и константах текущий «слепок» прав пользователя. Если вы добавили роль в Конфигураторе, но не «сообщили» об этом подсистеме управления доступом, программный интерфейс 1С просто не увидит изменений.

Разберем основные этапы, которые необходимо выполнить, чтобы новые права вступили в силу.

Шаг 1. Обновление справочника идентификаторов объектов метаданных

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

Для принудительного обновления выполните следующие действия:

  1. Запустите программу с параметром командной строки /С ЗапуститьОбновлениеИнформационнойБазы.
  2. Или воспользуйтесь консолью кода (или внешней обработкой) и выполните метод:

Справочники.ИдентификаторыОбъектовМетаданных.ОбновитьДанныеСправочника();

Шаг 2. Синхронизация ролей в профилях доступа

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

Попробуйте «передернуть» права:

  1. Зайдите в НСИ и администрирование — Настройка пользователей и прав — Профили групп доступа.
  2. Снимите флажок с вашей роли, запишите профиль.
  3. Снова установите флажок и запишите профиль.
  4. Проверьте в Конфигураторе в карточке пользователя, появилась ли роль в списке. Если нет — проблема глубже, в кэше параметров работы пользователей.

Шаг 3. Принудительное обновление параметров работы пользователей

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

Для решения проблемы используем метод БСП ОбновитьПараметрыРаботыПользователей. Рассмотрим пример кода, который можно запустить в обработке для исправления ситуации:


// Вызов стандартного метода обновления параметров БСП
ПользователиСлужебный.ОбновитьПараметрыРаботыПользователей();

// В некоторых случаях требуется обновить конкретную константу
// через вызов параметров работы клиента
ПараметрыКлиента = ПользователиСлужебный.ПараметрыРаботыКлиентаПриЗапуске();

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

Шаг 4. Управление доступом на уровне записей (RLS)

Если в вашей базе включен RLS (Ограничение прав на уровне записей), то простого назначения роли может быть недостаточно. Система должна сформировать ключи доступа в регистрах:

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

Шаг 5. Особенности копирования ролей

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

  1. Общие журналы документов.
  2. Регистры накопления (например, Денежные средства безналичные).
  3. Критерии отбора.

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

Итоговый чек-лист для исправления прав:

Использование данных методов позволяет избежать «магических» ошибок, когда настройки в интерфейсе не соответствуют реальному поведению системы, и гарантирует корректную работу подсистемы безопасности 1С.

← На главную