1С: Получить список пользователей роли
Как оказалось, в 1С нет штатного механизма (простого) для посмотреть список пользователей, которые имеют назначенную роль (конкретную). Потому изобрел следующую обработку, кототорая:
- выводит на экран список ролей
- перебирает всех пользователей и если у пользователя назначена выбранная роль, то выводит её в консоль
Код:
&НаСервере
Функция ПолучитьСпискоПользователейНаСервере()
УстановитьПривилегированныйРежим(истина);
КоллекцияРолейКонфигурации = Метаданные.Роли;
СписокИменВсехРолей = Новый Массив;
Для Каждого ТекущаяРоль Из КоллекцияРолейКонфигурации Цикл
СписокИменВсехРолей.Добавить(Новый Структура("Имя,Синоним",ТекущаяРоль.Имя,ТекущаяРоль.Синоним));
КонецЦикла;
возврат СписокИменВсехРолей;
УстановитьПривилегированныйРежим(ложь);
КонецФункции
&НаСервере
Функция ПроверитьИНаказать()
УстановитьПривилегированныйРежим(истина);
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
| Пользователи.Ссылка КАК Ссылка,
| Пользователи.ИдентификаторПользователяИБ КАК ИдентификаторПользователяИБ
|ИЗ
| Справочник.Пользователи КАК Пользователи
|ГДЕ
| Пользователи.ПометкаУдаления = ЛОЖЬ";
РезультатЗапроса = Запрос.Выполнить();
ВыборкаДетальныеЗаписи = РезультатЗапроса.Выбрать();
Пока ВыборкаДетальныеЗаписи.Следующий() Цикл
ИскомыйПользователь = ПользователиИнформационнойБазы.НайтиПоУникальномуИдентификатору(ВыборкаДетальныеЗаписи.ИдентификаторПользователяИБ);
Если ИскомыйПользователь<>Неопределено Тогда
РолиПользователя = ИскомыйПользователь.Роли;
Для Каждого Роль Из РолиПользователя Цикл
Если Роль.Имя = ВсеРоли Тогда
Сообщить(ВыборкаДетальныеЗаписи.Ссылка);
КонецЕсли;
КонецЦикла;
конецесли;
КонецЦикла;
УстановитьПривилегированныйРежим(ложь);
КонецФункции
&НаКлиенте
Процедура ПолучитьСпискоПользователей(Команда)
ПроверитьИНаказать();
КонецПроцедуры
&НаКлиенте
Процедура ПриОткрытии(Отказ)
СписокРолей=ПолучитьСпискоПользователейНаСервере();
Элементы.ВсеРоли.СписокВыбора.Очистить();
для каждого стр из СписокРолей цикл
Элементы.ВсеРоли.СписокВыбора.Добавить(стр.Имя,стр.Синоним);
конеццикла;
КонецПроцедуры
Обработку, можно скачать тут: