Бывает в работе с 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 Тогда Если МассивПользователей.Найти(ПараметрыСеанса.ТекущийПользователь) = Неопределено Тогда Отказ = Истина; Сообщить("Недостаточно прав!") КонецЕсли; КонецЕсли; |
В коде выполняется проверка, назначен ли текущему пользователю новый, созданный мной профиль, «Управление пользователями».
Надеюсь статья была вам полезна, если остались вопросы, вы всегда можете обратиться ко мне.
Если вы хотите научиться самостоятельно справляться с задачами, с которыми обычно вы обращаетесь к Программистам 1С — приглашаю Вас на мой курс Аналитик 1С
А если вы хотите научиться без программирования решать задачи возникающие в 1С — подписывайтесь на мой Телеграм — канал. 👆 Там делюсь секретами работы в 1С, о которых вы никогда не узнаете от программистов. 🤫 |
Господи и почему эту информацию так сложно было найти, спасибо автору
Пожалуйста, рада что пригодилось)
Спасибо огромное! Очень изящное и краткое решение!