Имя: Пароль:
1C
1С v8
проясните по добавлению роли, 8.3.5, УТ 11.1.
0 alexey-simf
 
27.03.15
15:22
8.3.5, УТ 11.1
В конфигураторе добавил новую роль, назвал её "ИзменениеПринятыхПеремещений" (через подписку на событие хочу реализовать запрет редактирования перемещений со статусом "Принято", всем, у кого нет этой роли, в том числе, администраторам).
Создал подписку и код для её обработки.
Захожу (тонкий клиент) в Администрирование, нахожу там себя, добавляю себе группу прав с профилем "ИзменениеПринятыхПеремещений", в котором включена роль "ИзменениеПринятыхПеремещений".
(запускаю со спец. ключём для обновления каких-то идентификаторов)
Перезапускаю клиента, проверяю работу - не разрешает.
Лезу в отладчик, узнаю что РольДоступна(Метеданные.ИзменениеПринятыхПеремещений) = Ложь.
Один знакомый подсказал в конфигураторе открыть список пользователей и там для себя, на закладке "Прочие", поставить галку напротив упомянутой роли. Я это сделал и всё заработало как надо.

Внимание, вопрос: в чём разница способов включения ролей пользователям (в конфигураторе и в клиенте) и как всё же правильно добавлять свою роль в базу?
1 Худой
 
28.03.15
06:46
Я так понимаю, что при запуске приложения заполняется массив доступных ролей пользователя, который проставлен в конфигураторе. А если права администратора, то программно никаких ограничений не проверяется. Типа, все можно и так и смотреть массив считанных ролей незачем. Но когда ты сам решил этим делом заняться, вот и наткнулся на то, что у тебя в массиве роли этой нет. И, естественно, РольДоступна(Метеданные.ИзменениеПринятыхПеремещений) =  Ложь.
Теперь думай как тебе это дело обходить. Советую не работать под ролью Администратор. Например, заведи АдминРабочий и там уже проставляй в конфигураторе на общем основании все права и проч.