Как проверить роль у администратора системы? (или полные права)

1. Avartia 24.02.21 14:33 Сейчас в теме
Здравствуйте! Как можно сделать так, чтобы при проверке доступных ролей у администратора через РолиДоступны не выдавалась истина (потому что админ), а ложь/истина, если роль есть.
По теме из базы знаний
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
7. Nubsdale 24.02.21 16:11 Сейчас в теме
(1) может быть на примере скажете для чего это нужно
2. soft_wind 24.02.21 14:45 Сейчас в теме
Если РольДоступна("ПолныеПрава") Тогда
//есть ПолныеПрава
КоенцЕсли;
3. soft_wind 24.02.21 14:46 Сейчас в теме
в смысле запросите роль которой нет, получите - Ложь
4. Alvis44 24.02.21 14:47 Сейчас в теме
Функция РольДоступна показывает наличие роли у пользователя, не важно админ ты или нет. Если у тебя есть роль "Админ", но нет роли "Кладовщик", то РольДоступна("Кладовщик") будет "Ложь".
5. klom 24.02.21 15:27 Сейчас в теме
https://its.1c.ru/db/v8std/content/2149184386/hdoc
Для проверки прав доступа в коде следует использовать метод ПравоДоступа.
Например, неправильно:
Если РольДоступна("ДобавлениеИзменениеСтранМира") Тогда ...
Если РольДоступна("ПросмотрОтчетаПопулярныеСтраны") Тогда ...

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

Такой подход позволяет повысить устойчивость кода к пересмотру состава ролей в конфигурации.
4. В тех случаях, где роль не дает никаких прав на объекты метаданных, а служит только для определения того или иного дополнительного права, следует использовать метод РольДоступна. При использовании в конфигурации Библиотеки стандартных подсистем (БСП) следует использовать функцию РолиДоступны общего модуля Пользователи:
Например, без использования БСП:
Если РольДоступна(...) Или <ЭтоПолноправныйПользователь> Или ПривилегированныйРежим() Тогда ...
Либо аналогичная проверка с использованием БСП:
Если Пользователи.РолиДоступны(...) Тогда ...
Jokstr; v3n7; +2 Ответить
6. v3n7 24.02.21 15:27 Сейчас в теме
Без изменения самой функции - никак. В БСП очень странно сделано при вызове функции "РолиДоступны" пользователь проверяется ещё и на полноправность. Это есть в описании функции. Вам нужно будет использовать глобальную функцию "РольДоступна", которая показывает наличие конкретной роль у текущего пользователя безотносительно наличия у него полных прав.
8. Anchoret 65 24.02.21 17:59 Сейчас в теме
На базе БСП есть общий модуль "Пользователи"
Если у пользователи есть роли "Кладовщик" или роль "ПолныеПрава", тогда будет ИСТИНА
ЕстьПраво = Пользователи.РолиДоступны("Кладовщик");

ИСТИНА будет, только если есть роль "Кладовщик", если "ПолныеПрава" и нет роли "Кладовщик", тогда будет ЛОЖЬ
ЕстьПраво = РольДоступна("Кладовщик");


Или я что-то не так понимаю?
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот