Бывает в работе с 1С возникает такая ситуация, вы создали в конфигураторе новые Роли, прописали их права, создали новый Профиль групп доступа, отметили ему необходимые Роли, назначили Профиль пользователю. После чего понимаете что нужных прав у пользователя не появилось. Заходите в конфигуратор, а галочки напротив новых ролей не стоят.
Очень неприятно, много работы впустую. В чем же может быть дело? Мне известно 2 причины, рассмотрим их в данной статье.
1. Нужно запустить обработку Обновление вспомогательных данных
Данная обработка может быть либо встроена в конфигурацию, либо ее можно найти на диске ИТС. Эту обработку нужно запускать после добавления новых ролей. Она обновит данные в справочнике «Идентификаторы объектов метаданных». Причем порядок ваших действий должен быть такой:
- Снять галочки в правах пользователей с вашего нерабочего профиля
- Удалить нерабочий профиль
- Запустить обработку
- Создать новый профиль с вашей новой ролью
- Назначить профиль пользователям
Если у вас планируется обновление конфигурации можете вместо запуска обработки выполнить его, т.к. во время обновления все эти функции тоже запускаются.
2. Назначение новой роли пользователю с правами Администратора
Если вы проделали все предыдущие пункты, но ваш профиль групп доступа все равно не назначает роли и права, обратите внимание на такой момент — в типовых конфигурациях 1С последних версий, если у пользователя есть роль Администратор или Полные права то вы не сможете присвоить ему какую-либо другую роль. Это прописано в коде программы и при назначении ролей идет проверка «Если роль Администратор или Полные права тогда» назначение ролей пропускается.
Видимо разработчики пользовались такой логикой, что раз у пользователя итак полные права, дополнительные роли ему не понадобятся. Но мы конечно понимаем, что это не так и ситуации и запросы у пользователей к разработчику могут быть разными.
Покажу вам, один пример как я поступила в данной ситуации, может это конечно не лучший вариант, но со свой задачей он справляется.
Задача была запретить пользователю с полными правами открывать справочник пользователей, причем чтоб раздавать этот запрет мог руководитель при помощи профилей групп доступа.
Что было сделано:
- Создан новый профиль групп доступа без ролей
- Назначен нужному пользователю (При этом данные о назначении автоматически записываются в справочник «Группы доступа»)
- При создании на сервере форм элемента и списка прописан следующий код:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 | Запрос = Новый Запрос; Запрос.Текст = "ВЫБРАТЬ | ГруппыДоступаПользователи.Пользователь КАК Пользователь |ИЗ | Справочник.ГруппыДоступа.Пользователи КАК ГруппыДоступаПользователи |ГДЕ | ГруппыДоступаПользователи.Ссылка.Наименование = ""Управление пользователями"""; РезультатЗапроса = Запрос.Выполнить().Выгрузить(); МассивПользователей = Новый Массив; МассивПользователей = РезультатЗапроса.ВыгрузитьКолонку("Пользователь"); Если МассивПользователей.Количество()>0 Тогда Если МассивПользователей.Найти(ПараметрыСеанса.ТекущийПользователь) = Неопределено Тогда Отказ = Истина; Сообщить("Недостаточно прав!") КонецЕсли; КонецЕсли; |
В коде выполняется проверка, назначен ли текущему пользователю новый, созданный мной профиль, «Управление пользователями».
Надеюсь статья была вам полезна, если остались вопросы, вы всегда можете обратиться ко мне.
Господи и почему эту информацию так сложно было найти, спасибо автору
Пожалуйста, рада что пригодилось)
Спасибо огромное! Очень изящное и краткое решение!