Перейти к содержанию

Использование метода "РольДоступна()"

Для проверки прав доступа в коде следует использовать метод ПравоДоступа.

Например, неправильно:

Если РольДоступна("ДобавлениеИзменениеСтранМира") Тогда ...
Если РольДоступна("ПросмотрОтчетаПопулярныеСтраны") Тогда ...

правильно

Если ПравоДоступа("Редактирование", Метаданные.Справочники.СтраныМира) Тогда ...
Если
    ПравоДоступа("Просмотр", Метаданные.Отчеты.ПопулярныеСтраны) Тогда ...

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

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

Например, без использования БСП:

Если РольДоступна(...) Или <ЭтоПолноправныйПользователь> Или ПривилегированныйРежим() Тогда ...

Либо аналогичная проверка с использованием БСП:

   Если Пользователи.РолиДоступны(...) Тогда ...

См. также

Экранирование кода

// sonar:DeprecatedMethodIsInRole:off
// sonar:DeprecatedMethodIsInRole:on