![]() |
![]() |
![]() |
|
Запрос пользователей, имеющих определенную роль | ☑ | ||
---|---|---|---|---|
0
aleksey_k
13.11.10
✎
15:51
|
Господа, день добрый.
Есть ли возможность получить запросом всех пользователей из справочника Пользователи, которым назначена определенная роль? |
|||
1
Irbis
13.11.10
✎
15:52
|
Можно обходом по ПользователиИнформационнойБазы
|
|||
2
IRLes
13.11.10
✎
15:53
|
Функция РольДоступна() используй, кстати можно попробовать в СКД ее использовать ;)
|
|||
3
Defender aka LINN
13.11.10
✎
15:57
|
(0) У пользователей из справочника ролей нет, если что.
|
|||
4
aleksey_k
13.11.10
✎
16:05
|
Спасибо, господа, все сделал.
|
|||
5
aleksey_k
13.11.10
✎
16:27
|
Нет, не сделал
(3) указал на мое большое упущение :) Скажите, можно ли программно по ПользовательИнформационнойБазы получить ссылку (или сам объект) на элемент справочника Пользователи? |
|||
6
IRLes
13.11.10
✎
17:11
|
ПользователиИнформационнойБазы.ПолучитьПользователей() ?
|
|||
7
aleksey_k
13.11.10
✎
17:21
|
(6) я сделал так:
МассивВсехПользователей = ПользователиИнформационнойБазы.ПолучитьПользователей(); МассивМенеджеровТМЦ = Новый Массив; Для Каждого ПользовательИзМассива Из МассивВсехПользователей Цикл Если ПользовательИзМассива.Роли.Содержит(Метаданные.Роли.МенеджерПоЗакупкеТМЦ) Тогда МассивМенеджеровТМЦ.Добавить(ПользовательИзМассива); ЭтаФорма.ЭлементыФормы.Сотрудник.СписокВыбора.Добавить(ПользовательИзМассива); //Если ПользовательИзМассива = Ответственный Тогда //ххх //КонецЕсли; КонецЕсли; КонецЦикла; Условие "Если ПользовательИзМассива = Ответственный Тогда" никогда не выполнится - первая переменная имеет тип ПользовательИнформационнойБазы, вторая СправочникСсылка.Пользователи. Как мне здесь первую переменную ПользовательИзМассива привести к типу СправочникСсылка.Пользователи? Что бы условие Если работало? |
|||
8
IRLes
13.11.10
✎
17:22
|
Такой вариант:
ТаблицаЗначений = Новый ТаблицаЗначений; ТаблицаЗначений.Колонки.Добавить("Пользователь"); ТаблицаЗначений.Колонки.Добавить("ЕстьРоль"); Роль = "ПолныеПрава"; Для Каждого Строчка Из ПользователиИнформационнойБазы.ПолучитьПользователей() Цикл СтрТЗ = ТаблицаЗначений.Добавить(); СтрТЗ.Пользователь = Справочники.Пользователи.НайтиПоНаименованию(Строчка.Имя); СтрТЗ.ЕстьРоль = Строчка.Роли.Содержит(Метаданные.Роли.ПолныеПрава); Если СтрТЗ.ЕстьРоль Тогда Сообщить("У пользователя: " + СтрТЗ.Пользователь + " есть эта роль!"); КонецЕсли; КонецЦикла; |
|||
9
IRLes
13.11.10
✎
17:23
|
Таблицу создал, чтоб была :Р Вдруг тебе она нужна :)
|
|||
10
IRLes
13.11.10
✎
17:23
|
А что собираешься делать с полученными ролями? Поделись секретом, любопытная тема :)
|
|||
11
IRLes
13.11.10
✎
17:25
|
(7) Справочники.Пользователи.НайтиПоНаименованию(ПользовательИзМассива.Имя)
|
|||
12
aleksey_k
13.11.10
✎
17:56
|
(11) - спасибо!
Все работает. А нужно мне сформировать список выбора у поля ввода - туда долны попать элементы справочника пользователи, имеющие определенную роль. |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |