Создание пользователя и добавление в группу доступа (БСП)
Теги: 1С,Группы доступа,Пользователи,БСП 3

Демонстрация процесса создания пользователя, добавления его в группу доступа и назначения основных прав в системе, в конфигурации с БСП

# Код реализации

```1c
&НаСервере
Процедура СоздатьПользователя(ИмяПользователя, ПолноеИмя, Пароль, ГруппаДоступа)

	ОписаниеПользователяИБ 								= Пользователи.НовоеОписаниеПользователяИБ();
	ОписаниеПользователяИБ.Имя 							= ИмяПользователя;
	ОписаниеПользователяИБ.ПолноеИмя					= ПолноеИмя;
	ОписаниеПользователяИБ.Пароль						= Пароль;
	ОписаниеПользователяИБ.ПарольУстановлен				= Истина;
	ОписаниеПользователяИБ.ПоказыватьВСпискеВыбора		= Истина;
	ОписаниеПользователяИБ.АутентификацияСтандартная	= Истина;
	ОписаниеПользователяИБ.АутентификацияОС				= Ложь;

	СоздаватьПользователяИБ = Истина;

	НачатьТранзакцию();

	Попытка

		// Создадим пользователя ИБ с заданными настройками
		Пользователи.УстановитьСвойстваПользователяИБ(
                                    ИмяПользователя, ОписаниеПользователяИБ, СоздаватьПользователяИБ);

		// Создадим пользователя в справочнике "Пользователи"
		ПользовательОбъект = Справочники.Пользователи.СоздатьЭлемент();

		ПользовательОбъект.Наименование = ОписаниеПользователяИБ.ПолноеИмя;

		// Установим связь пользователя ИБ и пользователя из справочника "Пользователи"
		СвойстваПользователяИБ = Новый Структура;
		СвойстваПользователяИБ.Вставить("Действие", "Записать");
		СвойстваПользователяИБ.Вставить("УникальныйИдентификатор", ОписаниеПользователяИБ.УникальныйИдентификатор);

		ПользовательОбъект.ДополнительныеСвойства.Вставить("ОписаниеПользователяИБ", СвойстваПользователяИБ);

		ПользовательОбъект.Записать();


		// Добавим пользователя в группу доступа;
		ГруппаДоступа  = ГруппаДоступа.ПолучитьОбъект();

		ПользователиВГруппе = ГруппаДоступа.Пользователи.Добавить();
		ПользователиВГруппе.Пользователь = ПользовательОбъект.Ссылка;

		ГруппаДоступа.Записать();

		// Пример добавления дополнительных ролей пользователю,
		// в случае если не все необходимые роли есть в группах доступа

		// Сначала получим свойства созданного пользователя с ролями,
		// которые были назначены из заданных групп доступа
		СвойстваСозданногоПользователяИБ =
                             Пользователи.СвойстваПользователяИБ(ОписаниеПользователяИБ.УникальныйИдентификатор);

		// в массиве указываются названия ролей из конфигурации
		СвойстваСозданногоПользователяИБ.Роли.Добавить("ЗапускВебКлиента");
		СвойстваСозданногоПользователяИБ.Роли.Добавить("БазовыеПраваБСП");
		СвойстваСозданногоПользователяИБ.Роли.Добавить("ПолныеПрава");

		// Отключаем флаг создания нового, так как пользователь уже создан

		СоздаватьПользователяИБ = Ложь;

		Пользователи.УстановитьСвойстваПользователяИБ(
                              ИмяПользователя, СвойстваСозданногоПользователяИБ, СоздаватьПользователяИБ);

		ЗафиксироватьТранзакцию();

	Исключение

		Если ТранзакцияАктивна() Тогда
			ОтменитьТранзакцию();
		КонецЕсли;

		ИмяСобытия = "Создание пользователя";

		ЗаписьЖурналаРегистрации(ИмяСобытия, УровеньЖурналаРегистрации.Ошибка,, ИмяПользователя, ОписаниеОшибки());

		Сообщить(ОписаниеОшибки());

	КонецПопытки;

КонецПроцедуры
```