Как обновить роли и профили групп доступа у пользователя в 1С:Бухгалтерии 3.0

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

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

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

Почему роли из профилей не появляются у пользователя

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

  1. Не обновлены идентификаторы метаданных. Справочник ИдентификаторыОбъектовМетаданных хранит соответствия между объектами конфигурации и их представлением в режиме Предприятия. Если профиль был сформирован до фиксации новой роли в этом справочнике, ссылка на роль в табличной части профиля становится недействительной.
  2. Назначен профиль «Администратор». Если пользователю назначен предопределенный профиль Администратор (или роль ПолныеПрава), типовой алгоритм процедуры ОбновитьРолиПользователей намеренно очищает все произвольные роли и оставляет только базовый административный состав ролей.
  3. Кэширование параметров доступа. Таблицы прав и служебные структуры сохраняются в константах и кэше сеансов, из-за чего изменения вступают в силу только после принудительного обновления.

Способ 1. Программный вызов обновления метаданных и ролей

Самый надежный способ синхронизировать данные — выполнить обновление идентификаторов и запустить перерасчет ролей пользователей через внешнюю обработку или консоль кода.

Посмотрим на пример программного вызова процедур БСП:


// Шаг 1. Принудительное полное обновление идентификаторов объектов метаданных
Пользователи.ОбновитьИдентификаторыОбъектовМетаданных(Истина);

// Шаг 2. Принудительное обновление состава ролей пользователей информационной базы
УправлениеДоступом.ОбновитьРолиПользователей();

Параметр Истина в вызове процедуры ОбновитьИдентификаторыОбъектовМетаданных указывает системе выполнить полное сопоставление всех элементов метаданных, включая добавленные роли и реквизиты.

Способ 2. Запуск обновления информационной базы

Рассмотрим вариант запуска типового обновления данных платформенными средствами:

  1. Откроем Конфигуратор.
  2. Перейдем в меню Сервис → Параметры → вкладка Запуск 1С:Предприятия → раздел Основные.
  3. В поле Параметр запуска пропишем: ЗапуститьОбновлениеИнформационнойБазы.
  4. Запустим режим отладки или предприятие. Конфигурация выполнит все регламентные процедуры обновления вспомогательных таблиц и параметров доступа БСП.
  5. После завершения запуска вернемся в параметры и очистим строку запуска.

Способ 3. Корректная последовательность настройки прав в режиме Предприятия

Разберем правильную последовательность действий после внесения изменений в метаданные конфигуратора:

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

Соблюдение указанного порядка действий гарантирует корректную запись ролей в объект ПользовательИнформационнойБазы на уровне платформы.

← На главную