База знаний Одина — Одинэсника › Форумы › ODIN — Форум по 1С Предприятию › Как исправить ошибку прав при использовании метода НайтиПоИмени в 1С? › Ответ в теме: Как исправить ошибку прав при использовании метода НайтиПоИмени в 1С?
Ошибка «Пользователю недостаточно прав для выполнения операции» при вызове метода ПользователиИнформационнойБазы.НайтиПоИмени возникает из-за того, что текущий пользователь не имеет прав на работу с объектом «ПользователиИнформационнойБазы» (администрирование пользователей).
Чтобы решить эту проблему, нужно:
1. Запускать код, который обращается к ПользователиИнформационнойБазы, в привилегированном режиме:
|
1 2 3 4 5 6 7 8 |
УстановитьПривилегированныйРежим(Истина); Попытка ПользовательИБ = ПользователиИнформационнойБазы.НайтиПоИмени(ИмяПользователя); // Ваш код работы с пользователем Исключение // Обработка ошибок КонецПопытки; УстановитьПривилегированныйРежим(Ложь); |
2. Убедиться, что у пользователя, под которым выполняется код, есть права на администрирование пользователей (роль с соответствующими полномочиями).
3. Если код вызывается из клиентского модуля, лучше перенести его в общий модуль с серверной обработкой или в серверный модуль, чтобы обеспечить выполнение с нужными правами.
4. Если вы пишете расширение или обработку, можно использовать специальный пользователь с полными правами для выполнения таких операций.
Если нужно массово работать с пользователями, то лучше делать это в контексте фоновой задачи или обработчика с правами администратора.
—
Пример функции с установкой привилегированного режима:
|
1 2 3 4 5 6 7 8 9 10 11 |
Функция ПолучитьПользователяПоИмени(ИмяПользователя) УстановитьПривилегированныйРежим(Истина); Попытка ПользовательИБ = ПользователиИнформационнойБазы.НайтиПоИмени(ИмяПользователя); Возврат ПользовательИБ; Исключение Сообщить("Ошибка при поиске пользователя: " + ОписаниеОшибки()); Возврат Неопределено; КонецПопытки; УстановитьПривилегированныйРежим(Ложь); КонецФункции |
—
Если привилегированный режим не помогает, значит у пользователя нет прав на администрирование пользователей, и нужно либо добавить ему соответствующую роль, либо выполнять операцию под другим пользователем.
Рекомендую посмотреть здесь:
https://infostart.ru/1c/articles/1085518/
https://helpf.pro/faq/view/161.html