Нередко перед разработчиком или администратором базы данных возникает задача: предоставить конкретному пользователю доступ только к нескольким объектам (например, к документам реализации товаров и счетам-фактурам), ограничив все остальные функции. При этом ключевое требование заказчика или бухгалтерии — не снимать типовую конфигурацию с поддержки, чтобы не нарушить процесс автоматического обновления. Разберем технические нюансы решения этой задачи, выясним ограничения платформы 1С:Предприятие 8.2 и рассмотрим по шагам правильный алгоритм настройки прав.
Проанализируем архитектурную особенность платформы: роль является объектом метаданных. Любые манипуляции со списком ролей (создание, удаление, редактирование прав на уровне объектов) в версиях платформы 8.2 физически невозможно выполнить из пользовательского режима или с помощью внешних обработок. Механизм расширений конфигурации появился только в версии 8.3.6 и стал полноценно поддерживать добавление ролей еще позже. Таким образом, добавить новую роль в конфигурацию без перевода ее в режим редактирования технически нельзя.
Рассмотрим, как изменение режима поддержки влияет на типовое автоматическое обновление в конфигурации «Бухгалтерия предприятия 2.0»:
.cfu или файлом конфигурации .cf).Если для заказчика сохранение штатного автоматического обновления критично, рассмотрим обходные пути решения задачи на типовом функционале:
РеализацияТоваровУслуг и СчетФактураВыданный. Вся оперативная работа ведется через нее.Если принято решение включить возможность редактирования конфигурации, разберем по шагам корректный порядок действий по созданию новой роли:
Бухгалтер), переименовать ее (например, в ОграниченныйДоступРеализация) и отключить лишние права.Для корректной работы с документами реализации товаров и счетами-фактурами роль обязательно должна содержать право «Чтение» и «Просмотр» на сопутствующие нормативно-справочные объекты и регистры:
Контрагенты, ДоговорыКонтрагентов, Номенклатура, Склады, Организации, Валюты, КлассификаторЕдиницИзмерения, СтавкиНДС.КурсыВалют, ЦеныНоменклатуры, СчетаУчетаНоменклатуры.Хозрасчетный).Пользователь. Она отвечает за чтение констант, параметров сеанса и инициализацию рабочего стола при старте 1С:Предприятия.Разберем частую проблему, с которой сталкиваются разработчики в конфигурациях на базе Библиотеки стандартных подсистем (БСП) или конфигурациях с управляемыми формами (например, УНФ, БП 3.0, УТ 11). Ситуация: роль создана, права запуска клиента в ней отмечены, но при назначении роли пользователю через справочник ПрофилиГруппДоступа система выдает отказ в авторизации.
Выясним главные причины такого поведения подсистемы управления доступом:
ТонкийКлиент или ТолстыйКлиент в самописной роли недостаточно. В состав профиля пользователя обязательно должна входить предопределенная системная роль (в БСП это роль БазовыеПраваБСП или БазовыеПраваПользователя). Без нее система не может заполнить параметры сеанса при входе.ИдентификаторыОбъектовМетаданных, а также запустить процедуру обновления вспомогательных данных (например, запуском системы с параметром командной строки /ЗапуститьОбновлениеИнформационнойБазы).Пользователи. В файловых базах регламентные задания могут не выполняться в фоне, из-за чего список ролей пользователя ИБ не синхронизируется с профилями групп доступа. В таком случае необходимо открыть карточку пользователя и пересохранить ее вручную.УправлениеДоступомПереопределяемый. В некоторых версиях библиотек список доступных для интерактивного назначения ролей жестко переопределяется в процедурах общего модуля. Если новая роль не зарегистрирована разработчиком в теле соответствующей процедуры, алгоритмы подсистемы могут сбрасывать ее при автоматическом пересчете прав.Таким образом, если необходимо строго разграничить права без вмешательства в конфигуратор, используем организационные методы или внешние интерфейсные обработки. Если же создается отдельная роль в конфигураторе, всегда назначаем ее в связке с базовыми системными ролями и учитываем все сопутствующие метаданные, к которым обращается логика проведения документов.