|
Как программно проверить флаг "Административные функции" | ☑ | ||
---|---|---|---|---|
0
napagokc
24.01.13
✎
08:22
|
Народ, подскажите, плз, как программно проверить установлен ли у роли флаг "Административные функции"?
|
|||
1
Aleksey
24.01.13
✎
08:26
|
ПользовательИнформационнойБазы (InfoBaseUser)
Роли (Roles) Использование: Только чтение. Описание: Тип: РолиПользователя. Содержит коллекцию ролей пользователя информационной базы. Примечание: Доступно только пользователю с административными правами. |
|||
2
napagokc
24.01.13
✎
08:29
|
(1) Видимо, не поняли вопроса. Список пользователей и список ролей я получить могу. Мне нужно из списка ролей отфильтровать только те роли, которые имеют Административные функции. Как это сделать?
|
|||
3
Aleksey
24.01.13
✎
08:30
|
типа
РольАдминистратор = Метаданные.Роли.Администратор; //или как она там в конфигураторе у тебя задано Пользователи = ПользователиИнформационнойБазы.ПолучитьПользователей(); Для каждого Пользователь Из Пользователи Цикл Если Пользователь.Роли.Содержит(РольАдминистратор) Тогда .... |
|||
4
napagokc
24.01.13
✎
08:36
|
(3) Не понимаешь ты меня...
У меня есть список ролей и я знаю, какие из них имеют административные функции. В коде я действительно могу сделать фильтр по всем этим ролям, прописав их. Но я хочу сделать более универсально - чтобы не приходилось каждый раз править код, когда добавляется новая роль. То есть, хочу сделать проверку по всем ролям на наличие административных функций без привязок к пользователям или именам ролей. Твой код смотрит конкретную роль, а потом проверяет есть ли она у пользователя. Это не то, что мне нужно |
|||
5
napagokc
24.01.13
✎
08:38
|
(4) Мне нужно не наличие роли у пользователя проверить, а наличие Административных функций у роли
|
|||
6
Fish
24.01.13
✎
08:41
|
(5) может это поможет?
ПравоДоступа(<Право>, <ОбъектМетаданных>, <Пользователь/Роль>, <СтандартныйРеквизитСтандартнаяТабличнаяЧасть>) |
|||
7
Aleksey
24.01.13
✎
08:41
|
(5) А как тебя понять, если " Административных функций " - было в 7-ке а в 8-ке НЕТ такой функции, поэтому априори не может быть ниодной роли с функцией "Административных функций"
|
|||
8
Fish
24.01.13
✎
08:42
|
+ (6) <Право> (обязательный)
Тип: Строка. Название права доступа. Могут быть использованы следующие значения: Администрирование (Administration) - администрирование информационной базы; требуется наличия права "Администрирование данных"; АдминистрированиеДанных (DataAdministration) - право на административные действия над данными; |
|||
9
napagokc
24.01.13
✎
08:42
|
Вот вижу в СП такую шнягу, как "ПравоДоступа", есть даже пример:
Справочник = Метаданные.Справочники.Конкуренты; Если Не ПравоДоступа("Чтение", Справочник) Тогда Текст = "ru = ""Доступ к данному справочнику закрыт!"";" + " en = ""Access denied!"""; Предупреждение(НСтр(Текст)); КонецЕсли; Но не вижу в правах Административных функций |
|||
10
Aleksey
24.01.13
✎
08:43
|
(8) и где здесь "Административных функций "?
|
|||
11
napagokc
24.01.13
✎
08:43
|
Пока писал, мне уже накидали ответ ))
|
|||
12
Aleksey
24.01.13
✎
08:43
|
(9) Еше раз проснись, сходи умойся и заново скажи ты про 7-ку или 8-ку
|
|||
13
Fish
24.01.13
✎
08:44
|
(10) Возможно, имелось в виду право "Администрирование".
|
|||
14
napagokc
24.01.13
✎
08:44
|
(12) 1С8.2. Административные функции есть
|
|||
15
Aleksey
24.01.13
✎
08:45
|
(14) скриншот в студию
|
|||
16
Aleksey
24.01.13
✎
08:45
|
Пока что совсе непонятно чем речь
|
|||
17
napagokc
24.01.13
✎
08:47
|
||||
18
Aleksey
24.01.13
✎
08:52
|
Это какой то 8.0 наверное
что говорит о программе и главное режим совместимости |
|||
19
Fish
24.01.13
✎
08:52
|
(17) Платформа какая? Сейчас специально посмотрел: 8.1 - называется "Административные функции", как у тебя, в 8.2 - уже "Администрирование"
|
|||
20
Aleksey
24.01.13
✎
08:54
|
в 8.2 в конфигураторе есть объект "Внешние источники данных" плюс в правах есть галка на "все функции". У тебя этого нет. Вывод. Явно не 8.2
|
|||
21
napagokc
24.01.13
✎
08:54
|
у меня 1С8.2.13.219
|
|||
22
Aleksey
24.01.13
✎
08:55
|
(21) Обнови до последней платформы и проблема будет решена
|
|||
23
napagokc
24.01.13
✎
08:57
|
(22) Конфигурация собственной разработки, все писалось с нуля. Обновлять версию 1С нельзя, т.к. крупный международный холдинг и нужно, чтобы тогда все филиалы разом обновились, а это, по разным причинам, нельзя сделать единовременно. Нужно работать с тем, что есть
|
|||
24
napagokc
24.01.13
✎
09:12
|
ПравоДоступа("Администрирование", Метаданные) - находит ВСЕ роли. Попробовал написать ПравоДоступа("АдминистративныеФункции", Метаданные), но выдалась ошибка - таких прав нет. :(
|
|||
25
napagokc
24.01.13
✎
10:13
|
Друзья, это победа!
После долгих мучений, бесполезного гугления (странно, но гугл не нашел ответа на мои вопросы, как бы я их не задавал), вчитывания в СП и экспериментов, я все-таки добился своего!!! Для каждого Роль Из Метаданные.Роли Цикл Если ПравоДоступа("Администрирование", Метаданные, Роль) Тогда Сообщить("'" + Роль + "' Успех!"); КонецЕсли; КонецЦикла; |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |