Имя: Пароль:
1C
1С v8
РольДоступна() Проблемы при установке ролей.
0 DjMah
 
21.09.15
14:48
Приветствую всех.

Есть проблема:
Были созданы новые роли для пользователей. При установке ролей из режима предприятия Функция возвращает всегда ложь по новым ролям.
Если установить роль из режима конфигуратора, то функция отрабатывает правильно и возвращает верное значение.
Куда копать, подскажите плизззз...

Конфа на основе БСП, платформа 8.3.6.2014
1 Mankubus
 
21.09.15
14:56
у пользователя которому назначаешь роль есть полные права?
2 zhig75
 
21.09.15
14:58
Обнови информационную базу.
3 DjMah
 
21.09.15
14:59
(1) Нет. У пользователя свой набор прав (как раз из новых).
(2) Без обновления базы, я бы не смог создать профиль и назначить его пользователям.
4 Fragster
 
гуру
21.09.15
15:04
выполнил обновление данных в режиме предприятия?
5 DjMah
 
21.09.15
15:08
(4) Выполнил в режиме предприятия обновление базы. Ибо без обновления создать профиль с набором ролей невозможно, в режиме предприятия будет ошибка при записи.
6 Dionis Sergeevich
 
21.09.15
15:08
Выполнил, иначе не смог бы использовать роль в профиле группы доступа
7 Mankubus
 
21.09.15
15:10
обработку ИнструментыРазработчикаОбновлениеВспомогательныхДанных  использовал?
8 DjMah
 
21.09.15
15:10
В режиме конфигуратора, у пользователя галки установленных ролей отображаются. Но функция возвращает ложь.
Может есть другой механизьм????
9 DjMah
 
21.09.15
15:11
(7) Запустил еще раз. Ждем-с.
10 Dionis Sergeevich
 
21.09.15
15:13
Пеоезайдите в 1с этим пользователем
11 DjMah
 
21.09.15
15:20
(7) Обновил с использованием ИнструментыРазработчикаОбновлениеВспомогательныхДанных.
Та же петрушка.
(10) Перезаходил. Сейчас еще раз проверю.
12 DjMah
 
21.09.15
15:23
(10) Перезашел пользователем. Нет говорит роли.
В конфигураторе, галка на роли стоит =(((
13 Dionis Sergeevich
 
21.09.15
15:25
Странно. Ещё раз проверь есть ли у пользователя группа с профилем, в который добавлена роль?
14 Dionis Sergeevich
 
21.09.15
15:26
И 2299 платформу поставь. Одинесники что то с правами в какой то из недавних платформ учудили
15 DjMah
 
21.09.15
15:26
(13) Это очень странно. Ибо сейчас из конфигуратора снял и заново поставил галку и "трах-тибтдох-тибидох" роль стала доступна..
Фантастика, как так?! Кэш почистить???
16 Dionis Sergeevich
 
21.09.15
15:29
Не надо вообще в конфмгураторе трогать роли. В предприятии только. Может в этом проблема. Создай пользователя и не трогай в конфмгураторе и должно все получиться
17 Stim
 
21.09.15
15:30
ох уж эти грабли..
18 DjMah
 
21.09.15
15:33
(16) Мучас грасиас!!! Но в чем прикол? Почему нельзя трогать из конигулятора-то?? Что в этом плохого?
(17) Не грабли, а велосипеды. Ибо конфа самописка =)))
19 Stim
 
21.09.15
15:36
ТС, запомни - если у пользователя роль Полные права(Администрирование), то никакие доп роли ему не добавляются(при редактировании из Предприятия). Разработчиками было задумано, что раз у него полные права, то и доп расширяющих прав ему не нужно.

Вариант - делать свою проверку ролей, например, я делал так:


Функция ЬЬРольДОступна(Роль,Пользователь="")   Экспорт
РольМД = Справочники.ИдентификаторыОбъектовМетаданных.НайтиПоРеквизиту("Имя",Роль);
Если РольМД.Пустая() Тогда
    Возврат ЛОЖЬ;
Конецесли;

Если Пользователь = "" Тогда
    ПользовательОтбор = ПараметрыСеанса.ТекущийПользователь;
Иначе
    ПользовательОтбор = ПОльзователь;
КОнецЕсли;


запрос = новый запрос;
запрос.Текст = "ВЫБРАТЬ
               |    ГруппыДоступаПользователи.Ссылка
               |ИЗ
               |    Справочник.ГруппыДоступа.Пользователи КАК ГруппыДоступаПользователи
               |ГДЕ
               |    ГруппыДоступаПользователи.Пользователь = &Пользователь
               |    И ГруппыДоступаПользователи.Ссылка.Профиль В
               |            (ВЫБРАТЬ
               |                ПрофилиГруппДоступаРоли.Ссылка
               |            ИЗ
               |                Справочник.ПрофилиГруппДоступа.Роли КАК ПрофилиГруппДоступаРоли
               |            ГДЕ
               |                ПрофилиГруппДоступаРоли.Роль = &Роль)
               |    И НЕ ГруппыДоступаПользователи.Ссылка.ПометкаУдаления";
Запрос.УстановитьПараметр("роль",РольМД);              
Запрос.УстановитьПараметр("Пользователь",ПользовательОтбор);
Выборка = Запрос.Выполнить().Выбрать();
результат = Выборка.Следующий();

ВОзврат результат;    
    
КонецФункции
20 DjMah
 
21.09.15
15:37
(19) Пасиба за код. Учту на будущее.
Полных прав нет, про то что они не добавляются, я знаю.
21 Stim
 
21.09.15
15:42
(20) а то, что они не добавляются - виновата константа ПараметрыРаботыПользователей
по крайней мере в типовых, не знаю, как там в БСП.
Обнови параметры константы: Константы.ПараметрыРаботыПользователей.СоздатьМенеджерЗначения().ОбновитьОбщиеПараметры();

и можешь почитать http://catalog.mista.ru/public/300363/ только не пинай за корявое оформление
22 DjMah
 
21.09.15
16:49
(21) Спасибо. Лови плюс =)))