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