Поведение функции РольДоступна() #787636


#0 by ildary
Уважаемые специалисты, подскажите пожалуйста, как обойти эту проблему: в конфигурацию добавил новую роль "_ИзменениеДопДанных" и для проверки этой роли применяю оператор РольДоступна( "_ИзменениеДопДанных" ), но вижу, что возвращается ложь, как у пользователя с полными правами, так и у урезанного, но эта роль привязана не к нему, а к его группе. То есть есть некий профиль _Пользователь, который привязан к группе доступа _Пользователь, в которую входит группа пользователей _Опт, а в этой группе _Опт есть пользователь Иванов, и вот у Иванова РольДоступна( "_ИзменениеДопДанных" ) возвращает Ложь.
#1 by DrZombi
обнови роль для всей группы :)
#2 by Лефмихалыч
открой пользователя в конфигураторе и посмотри, есть ли реально у него эта роль. Наверняка нету.
#3 by DrZombi
>>>  и вот у Иванова РольДоступна( "_ИзменениеДопДанных" ) возвращает Ложь Это означает, что пользователю "Иванову", не назначена роль. В конфигураторе :)
#4 by Лефмихалыч
роли могут не назначаться у пользователей с полными правами, если это все на БСП
#5 by Stepa86
+ Поэтому правильнее юзать ПравоДоступа( . А еще правильнее проверять не через строку РольДоступна( "_ИзменениеДопДанных" ) а через метаданные РольДоступна( Метаданные.Роли._ИзменениеДопДанных )
#6 by ildary
Прошу прощения, что не сказал, что речь идет о БСП (УТ11). В конфигураторе ничего не назначал, обновление вспомогательных данных (ИнструментыРазработчикаОбновлениеВспомогательныхДанных) делал. а ПравоДоступа будет работать для сложной схемы Роль-Профиль-ГруппаДоступа-ГруппаПользователей-Пользователь?
#7 by Лефмихалыч
адова каша. Группа пользователей не дает ни каких прав. Смотря, что и зачем ты там проверяешь - так сразу не ответить на твой вопрос
#8 by ildary
Если зайти в справочник пользователей, с включенной опцией использовать группы, то всех пользователей можно раскидать по группам. При этом присваивать группы доступа можно не пользователям поименно, а их группам (открыть группу пользователя, перейти на закладку "права доступа". А проверяю я права в совсем другом месте - некая обработка при открытии в зависимости от ролей пользователя показывает или скрывает кнопки на своей форме. Я начал делать проверку прав с помощью РольДоступна и увидел, что она работает не так, как ожидалось.
#9 by VladZ
РольДоступна не проверяет наличие роли у группы. Проверяется доступность роли для текущего пользователя (без учета группы).
#10 by VladZ
Вот такие дикие схемы " Роль-Профиль-ГруппаДоступа-ГруппаПользователей-Пользователь" - нужно проверять самому (дописывать код)
#11 by ildary
автор дикой схемы - фирма 1С. Я в ней ничего не менял, я ей только пользуюсь. Я нашел - в модуле УправлениеДоступом есть функция ЕстьРоль и она делает то, что мне нужно. Учебники по новым конфигурациям (УТ11, БП3, ERP) - должны содержать на заглавной странице - "Забудьте все, что вы учили ранее".
#12 by VladZ
Учебники по новым конфигурациям (УТ11, БП3, ERP) должны сжигаться вместе с новыми конфигурациями...
#13 by ildary
читаю и плАчу. Но справедливости ради - побившись башкой об конфигуратор - найти решение все-таки можно.
#14 by ildary
Резюме - функция РольДоступна в новых конфигурациях годится только как РольДоступна( "ПолныеПрава" ) - для проверки на админа
#15 by Лодырь
Вместе с авторами?
#16 by Лефмихалыч
язычник-старовер
#17 by VladZ
Ну, была такая мысль, не скрою.  НО озвучивать не стал  ибо статья.
Тэги: 1С 8
Ответить:
Комментарии доступны только авторизированным пользователям

В этой группе 1С