HelpF.pro

Функция создания или изменения пользователя, его прав доступа, настроек

Код 1C v 8.х
 
Функция СоздатьПользователя(Имя, Пароль)

Если (Метаданные.Роли.Найти("ПолныеПрава") = Неопределено) или (Метаданные.Роли.Найти("Админ") = Неопределено) Тогда
Сообщить("Нет возможности создать пользователя """ + Имя + """. В конфигурации отсутствует роль с Админскими правами!");
Возврат Ложь;
КонецЕсли;

Попытка
ПользовательНайден = Ложь;
ПользовательИБ = ПользователиИнформационнойБазы.НайтиПоИмени(Имя);
Если ПользовательИБ = Неопределено Тогда
ПользовательИБ = ПользователиИнформационнойБазы.СоздатьПользователя();
Иначе
ПользовательНайден = Истина;
КонецЕсли;
ПользовательИБ.АутентификацияОС = Ложь;
ПользовательИБ.АутентификацияСтандартная = Истина;
ПользовательИБ.Имя = Имя;
ПользовательИБ.ПолноеИмя = Имя;
ПользовательИБ.Пароль = Пароль;
ПользовательИБ.ЗапрещеноИзменятьПароль = Истина;
ПользовательИБ.Роли.Очистить();
ПользовательИБ.Роли.Добавить(Метаданные.Роли.ПолныеПрава);
ПользовательИБ.ПоказыватьВСпискеВыбора = Ложь;
ПользовательИБ.ОсновнойИнтерфейс = Метаданные.Интерфейсы.Общий;
ПользовательИБ.Записать();

//Проверка на существование пользователя в справочнике Пользователи
ТекущийПользователь = Справочники.Пользователи.НайтиПоКоду(Имя);
Если ТекущийПользователь.Пустая() Тогда
ТекущийПользователь = Справочники.Пользователи.СоздатьЭлемент();
ТекущийПользователь.Код = Имя;
ТекущийПользователь.Наименование = Имя;
ТекущийПользователь.Записать();
КонецЕсли;

// Установим настройки пользователя
Попытка
// отключаем вывод панели функций при запуске программы
Движение = РегистрыСведений.НастройкиПользователей.СоздатьМенеджерЗаписи();
Движение.Пользователь = Пользователь.Ссылка;
Движение.Настройка = ПланыВидовХарактеристик.НастройкиПользователей.ОткрыватьПриЗапускеПанельФункций;
Движение.Значение = Ложь;
Движение.Записать();
Исключение
КонецПопытки;

Попытка
// включаем учет по всем организациям
Движение = РегистрыСведений.НастройкиПользователей.СоздатьМенеджерЗаписи();
Движение.Пользователь = Пользователь.Ссылка;
Движение.Настройка = ПланыВидовХарактеристик.НастройкиПользователей.УчетПоВсемОрганизациям;
Движение.Значение = Истина;
Движение.Записать();
Исключение
КонецПопытки;
// Все, пользователь создан или изменен
Возврат Истина;
Исключение
Сообщить("Не удалось создать или изменить пользователя " + Имя + " для выгрузки информационной базы. " + ОписаниеОшибки());
Возврат Ложь;
КонецПопытки;
КонецФункции

Опубликовано на сайте: https://HelpF.pro
Прямая ссылка: https://HelpF.pro/faq/view/161.html