При сопровождении распределенных информационных баз (РИБ) разработчики нередко сталкиваются с ситуацией: в конфигурацию добавляются новые объекты и роли, права назначаются пользователям, но после очередного сеанса обмена данными у всех пользователей, кроме администраторов, сбрасываются назначенные права. В результате при входе в программу пользователи получают ошибку отсутствия прав на запуск клиента или доступ к документам. Выясним причину такого поведения платформы и разберем по шагам правильный порядок настройки прав.
Проанализируем архитектуру подсистемы безопасности в современных типовых конфигурациях, таких как 1С:Бухгалтерия предприятия 3.0. В основе управления правами лежит Библиотека стандартных подсистем (БСП), а именно подсистемы Пользователи и УправлениеДоступом.
В типовых конфигурациях список ролей объекта ПользователиИнформационнойБазы является зависимым и формируется автоматически. При выполнении синхронизации данных по РИБ, авторизации пользователей или фоновом обновлении служебных данных вызываются процедуры общего модуля УправлениеДоступомСлужебный, которые полностью перезаписывают состав ролей пользователя на основании данных справочников ГруппыДоступа и ПрофилиГруппДоступа.
Если назначить роли пользователю напрямую в Конфигураторе через флажки в карточке пользователя, то при первой же автоматической актуализации доступа или после обмена РИБ подсистема БСП сотрет эти роли, посчитав их несанкционированными.
Разберем последовательность действий для корректного внедрения новых ролей в базу с настроенным РИБ.
/C ЗапуститьОбновлениеИнформационнойБазы
Это позволит подсистеме управления доступом увидеть добавленные роли в таблицах метаданных.ПрофилиГруппДоступа (или скопируем существующий типовой профиль). Важно: не следует добавлять новые роли в типовые предопределенные профили, так как при обновлении конфигурации их состав будет автоматически сброшен к эталонному.ГруппыДоступа, выберем созданный профиль и добавим в табличную часть нужных пользователей.Рассмотрим еще одну распространенную причину затирания прав — зацикливание или некорректная регистрация изменений в узлах плана обмена. Если в периферийной базе состав прав пользователя отличается, а номера сообщений обмена сбились, данные из ПБ могут постоянно перезаписывать настройки в ЦБ при каждом сеансе связи.
Проанализируем состояние очереди регистрации через обработку Регистрация изменений для обмена:
Пользователи, ГруппыДоступа, ПрофилиГруппДоступа и регистрам сведений, входящим в подсистему прав (например, ГруппыЗначенийДоступа, ТаблицыГруппДоступа).Обратим внимание на особенность работы с администраторами. Если пользователю назначен предопределенный профиль Администратор (содержащий полные права и право администрирования), БСП принудительно удерживает для него только эталонный административный набор ролей. Дополнительные нестандартные роли у таких пользователей могут очищаться платформой автоматически, поскольку наличие полных прав уже предоставляет доступ ко всем объектам системы по умолчанию.