Имя: Пароль:
1C
 
Роль созданная в расширении не отображается у пользователя
0 lirt82
 
10.08.23
08:15
В расширении создал свою роль, в режиме предприятия добавил ее в новый созданный профиль и назначил этот профиль конкретному пользователю, но в карточке этого пользователя в разрешенных ролях нет моей роли из расширения, соответственно отладчик в расширении проверку РольДоступна() дает ложь пришлось в конфигураторе назначить роль из расширения пользователю, тогда код выполняется но все равно в режиме предприятия в карточке пользователя в списке профилей есть новый созданный профиль но на закладке "Разрешенные действия (роли)" в списке ролей нет этой роли из расширения, Как быть? т.е. нужно чтобы назначенная роль из расширения отобразилась у пользователя, чтобы не устанавливать ее вручную в конфигураторе
1 Обработка
 
10.08.23
08:21
(0) С такими вопросами сразу озвучивай релиз платформы и конфа на поддержке с какого релиза...
2 lirt82
 
10.08.23
08:46
(1) 8.3.16, ЕРП, на полной поддержке релиз актуальный
3 CepeLLlka
 
10.08.23
08:55
(0)У этого пользователя есть роль - "Полные права"?
4 lirt82
 
10.08.23
08:56
(3) Да
5 CepeLLlka
 
10.08.23
08:59
(4)Значит это нормальное поведение системы. Конфа при записи пользователя анализирует его роли, и если есть роль - "Полные права", то система как бы понимает что и так уже полные права, нафига ещё другие роли добавлять и не добавляет их.

Для пользователей с полными правами добавляйте роль "Полные права" в расширение и там уже указывайте что этой роли доступные ваши объекты.
6 lirt82
 
10.08.23
09:33
(5) как вариант в расширении дописать код при входе в базу, чтобы была проверка на профиль пользователя, если профиль у пользователя есть то назначаем ему эту роль программно
7 CepeLLlka
 
10.08.23
09:37
(6)Да зачем?

Ещё раз.

Добавьте роль "Полные права" в расширение.

Зайдите в роль, и поставьте нужные галочки на объекты созданные в расширении.
Другими словами - Дайте роли "Полные права" доступ на объекты которые вы добавили в расширении.
8 CepeLLlka
 
10.08.23
09:48
(6)Если же вам всё это нужно для того, чтобы использовать метод РольДоступна(), то тогда наверное роль "ПолныеПрава" тут как-то некорректно добавлена. Уж либо полные, либо нет.

Но я согласен что это не очень удобно.
9 lirt82
 
10.08.23
10:24
Суть задачи в том чтобы была роль на проведение документа Операция рег учет, если у пользователя нет этой роли то провести он не может даже при наличии полных прав
10 vicof
 
10.08.23
11:00
"если у пользователя нет этой роли то провести он не может даже при наличии полных прав"
Полные они на то и полные, чтобы могли делать все в базе.
И выдавать их не нужно всем подряд.
11 lirt82
 
10.08.23
11:00
вопрос а где делать добавление роли?
12 vicof
 
10.08.23
11:15
В конфигураторе)
13 lirt82
 
10.08.23
11:18
(12) пример, в каком модуле?
14 lirt82
 
10.08.23
11:24
15 lirt82
 
15.08.23
08:54
апну...., сделал расширение все работает как надо, за исключением одной особенности, если пользователю установлю роль и перезайду то проверка на РольДоступна() говорит что роль не назначена, но если еще раз (второй) перезайти то РольДоступна() Истина, т.е. после второго раза входа в базу роль назначается, проверил расширение на файловой и на SQL базе, в обоих случаях после второго входа в базу роль назначается и если убираем роль из профиля то со второго раза входа в базу роль отменяется. Кто в курсе почему так? по логике после изменении и нового входа (нового сеанса пользователя) должно же сработать.

&Перед("ПередНачаломРаботыСистемы")
Процедура Расш1_ПередНачаломРаботыСистемы()
    
    esc_ОбщийМодульДляНазначенияРоли.ДобавитьРоль();
    
КонецПроцедуры

///////////////////////////////////////////////////////////

Процедура ДобавитьРоль() Экспорт
    
    Пользователь = ПользователиИнформационнойБазы.ТекущийПользователь();
    
    Если Пользователь.Роли.Содержит(Метаданные.Роли.esc_ПроведениеОперации) Тогда
        Возврат;
    КонецЕсли;
    
    Пользователь.Роли.Добавить(Метаданные.Роли.esc_ПроведениеОперации);
    Пользователь.Записать();
    
КонецПроцедуры
Выдавать глобальные идеи — это удовольствие; искать сволочные маленькие ошибки — вот настоящая работа. Фредерик Брукс-младший