Имя: Пароль:
1C
1С v8
Как программно проверить наличие роли у конкретного пользователя?
0 VAVANSTR
 
10.10.13
11:57
Не могу проверить наличие конкретной роли у выбираемого в реквизит пользователя. Нужно если определенной роли нет, то не давать его выбирать...
1 Maxus43
 
10.10.13
11:57
РольДоступна
2 Господин ПЖ
 
10.10.13
11:57
> Нужно если определенной роли нет, то не давать его выбирать...

в УФ реализовано

и (1) +1
3 MSII
 
10.10.13
11:58
(1) Это для текущего пользователя.
4 MSII
 
10.10.13
11:59
(0) ПользовательИнформационнойБазы.Роли
5 Maxus43
 
10.10.13
12:00
тогда пользовательИБлюбой.Роли.Содержит()
6 VAVANSTR
 
10.10.13
12:02
оуу, вот кажется нашёл

//определим пользовтаеля ИБ
    ПользовательИБ = ПользователиИнформационнойБазы.НайтиПоУникальномуИдентификатору(Пользователь.ИдентификаторПользователяИБ);
    
    
        Если ПользовательИБ.Роли.Содержит(Метаданные.Роли["СозданиеНовыхДоговоров"]) Тогда
            Возврат Истина;
        Иначе
            ТекстОшибки = "У пользователя " + Пользователь + " нет прав на работу с Договорами";
            Возврат Ложь;
        КонецЕсли;
7 Maxus43
 
10.10.13
12:03
мне кажется или это кривая реализация кривой задачи?)
8 Господин ПЖ
 
10.10.13
12:05
а чем РольДоступна хуже ПользовательИБ.Роли.Содержит
9 Господин ПЖ
 
10.10.13
12:06
(7) тебе кажется
10 Starhan
 
10.10.13
12:07
(6) да... есть подозрение что в данном случае не правильно привязываться к ролям бд.
11 MSII
 
10.10.13
12:09
(8) Если проверяется текущий пользователь, то ничем.
12 Господин ПЖ
 
10.10.13
12:16
>конкретной роли у выбираемого в реквизит пользователя

хотя да - хз кто и что выбирает
13 VAVANSTR
 
10.10.13
12:19
проверять нужно не у текущего пользователя, а у того которого выбираю в реквизите
14 Starhan
 
10.10.13
12:44
(13)отнимешь у него право, а он пока из сеанса не вышел может договора на себя вешать.
15 Starhan
 
10.10.13
12:45
(14)хотя через Роли.содержит() не может уже.

но все равно не правлиьно :)
16 Defender aka LINN
 
10.10.13
13:37
(0) А смысл? Сейчас у него роль есть, через 5 минут - уже нет, еще через 15 - опять есть и еще 3 добавили.
А через неделю конфигурацию обновили, запилили новую роль, которая такая же, но другая и теперь уже любая из них нужна.