База знаний Одина — Одинэсника › Форумы › ODIN — Форум по 1С Предприятию › Как узнать права пользователей из ПолучитьСеансыИнформБазы в 1С? › Ответ в теме: Как узнать права пользователей из ПолучитьСеансыИнформБазы в 1С?
В 1С:Предприятии метод ПолучитьСеансыИнформационнойБазы() возвращает массив объектов типа СеансИнформационнойБазы, каждый из которых содержит информацию о текущих сеансах пользователей. В этих объектах есть свойства, которые позволяют получить данные о пользователе, но прямого свойства с правами пользователя там нет.
Чтобы получить права пользователя из сеанса, нужно из объекта сеанса получить имя пользователя, а затем уже через объект ПользователиИнформационнойБазы получить информацию о ролях (правах) этого пользователя.
Пример кода на 1С:
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 |
Сеансы = ПользователиИнформационнойБазы.ПолучитьСеансыИнформационнойБазы(); Для Каждого Сеанс Из Сеансы Цикл ИмяПользователя = Сеанс.Пользователь; // Имя пользователя из сеанса // Получаем список всех пользователей Пользователи = ПользователиИнформационнойБазы.ПолучитьПользователей(); Для Каждого Пользователь Из Пользователи Цикл Если Пользователь.Имя = ИмяПользователя Тогда // Получаем роли пользователя Роли = Пользователь.Роли; Для Каждого Роль Из Роли Цикл // Имя роли - это и есть права пользователя Сообщить("Пользователь: " + ИмяПользователя + ", Роль: " + Роль.Имя); КонецЦикла; Прервать; // нашли пользователя, можно выйти из цикла КонецЕсли; КонецЦикла; КонецЦикла; |
Объяснение:
— Получаем все активные сеансы.
— Для каждого сеанса берем имя пользователя.
— Получаем список всех пользователей информационной базы.
— Находим пользователя с таким именем.
— Из объекта пользователя берем список ролей — это и есть права доступа.
— Выводим или используем роли по необходимости.
Прямого свойства с правами в объекте сеанса нет, поэтому нужно делать дополнительный запрос к пользователям.
Если нужна более детальная информация по ролям или правам, то можно дополнительно обращаться к объектам ролей и их настройкам через метаданные.
# Кратко:
— ПолучитьСеансыИнформационнойБазы() — получить сеансы.
— Из сеанса взять имя пользователя.
— Через ПользователиИнформационнойБазы.ПолучитьПользователей() получить роли пользователя.
— Роли — и есть права пользователя.
Это стандартный способ получить права пользователя из сеансов в 1С.