0
Джайрикон
23.07.09
✎
19:01
|
Платформа: 1С:Предприятие 8.1.11.67
Конфигурация: "Эргодром" (своя, в разработке)
Цель: узнать для текущего пользователя, имеет ли он право "Администрирование" (и эквивалентные "ОбновлениеКонфигурацииБазыДанных", "МонопольныйРежим", "АктивныеПользователи", "ЖурналРегистрации", "ВнешнееСоединение", "Automation", "ИнтерактивноеОткрытиеВнешнихОбработок", "ИнтерактивноеОткрытиеВнешнихОтчетов", "Вывод" — т. е. из серии Метаданные.Роли.{ИмяРоли}.Права)
Согласно справки:
Метаданные.Роли.{ИмяРоли}.Права преманентно возвращает :неопределено: и что следует пользоваться ПравоДоступа() и ПараметрыДоступа().
Эксперимент №1:
ПравоДоступа("Администрирование",Метаданные.Роли.{ИмяРоли}) всегда возвращает :истина:
Эксперимент №2:
ПравоДоступа("Администрирование",Метаданные.Справочники.{ИмяСправочника}) возвращает похоже значение флажка-права "Чтение".
Работающее решение (только для "Администрирование"):
попытка
Ъ=ПравоДоступа("Чтение",Метаданные.Справочники.{ИмяСправочника},ПользователиИнформационнойБазы.ТекущийПользователь())
исключение
возврат ложь
конецпопытки;
возврат истина
Спасибо.
|
|
3
Джайрикон
23.07.09
✎
19:32
|
Проверил согласно совету "73"-го. Вышло: Если некий юзер на множестве доступных ем ролей имеет хотя бы одну птичку-право "Администрирование", тогда ПравоДоступа(*,Метаданные) перманентно возвращает :истина: по всему спектру "ОбновлениеКонфигурацииБазыДанных", "МонопольныйРежим", "АктивныеПользователи", "ЖурналРегистрации", "ВнешнееСоединение", "Automation", "ИнтерактивноеОткрытиеВнешнихОбработок", "ИнтерактивноеОткрытиеВнешнихОтчетов", "Вывод". Иначе — для всего спектра возвращает перманентно :ложь: Задача не решена.
|
|