СкопироватьГруппыПользователя (БСП)

Автор: 1С
ОбщийМодуль.ПользователиСлужебный
1С БСП

Скопировать группы пользователя. Включает пользователя приемника в группы пользователей пользователя источника.

// Включает пользователя приемника в группы пользователей пользователя источника.
// Вызывается из обработчика формы ПриЗаписиНаСервере.
//
Процедура СкопироватьГруппыПользователя(Источник, Приемник) Экспорт
	
	ВнешнийПользователь = (ТипЗнч(Источник) = Тип("СправочникСсылка.ВнешниеПользователи"));
	
	Запрос = Новый Запрос;
	Блокировка = Новый БлокировкаДанных;
	
	Если ВнешнийПользователь Тогда
		ЭлементБлокировки = Блокировка.Добавить("Справочник.ГруппыВнешнихПользователей");
		Запрос.Текст = 
			"ВЫБРАТЬ
			|	ГруппыПользователейСостав.Ссылка КАК ГруппаПользователей
			|ИЗ
			|	Справочник.ГруппыВнешнихПользователей.Состав КАК ГруппыПользователейСостав
			|ГДЕ
			|	ГруппыПользователейСостав.ВнешнийПользователь = &Пользователь";
	Иначе
		ЭлементБлокировки = Блокировка.Добавить("Справочник.ГруппыПользователей");
		Запрос.Текст = 
			"ВЫБРАТЬ
			|	ГруппыПользователейСостав.Ссылка КАК ГруппаПользователей
			|ИЗ
			|	Справочник.ГруппыПользователей.Состав КАК ГруппыПользователейСостав
			|ГДЕ
			|	ГруппыПользователейСостав.Пользователь = &Пользователь";
	КонецЕсли;
	Запрос.УстановитьПараметр("Пользователь", Источник);
	РезультатЗапроса = Запрос.Выполнить();
	Выборка = РезультатЗапроса.Выбрать();
	
	ЭлементБлокировки.ИсточникДанных = РезультатЗапроса;
	
	НачатьТранзакцию();
	Попытка
		Блокировка.Заблокировать();
		
		Пока Выборка.Следующий() Цикл
			ГруппаПользователейОбъект = Выборка.ГруппаПользователей.ПолучитьОбъект();
			Строка = ГруппаПользователейОбъект.Состав.Добавить();
			Если ВнешнийПользователь Тогда
				Строка.ВнешнийПользователь = Приемник;
			Иначе
				Строка.Пользователь = Приемник;
			КонецЕсли;
			
			ГруппаПользователейОбъект.Записать();
		КонецЦикла;
		ЗафиксироватьТранзакцию();
	Исключение
		ОтменитьТранзакцию();
		ВызватьИсключение;
	КонецПопытки;
	
КонецПроцедуры

///////////////////////////////////////////////////////////////////////////////////////////////////////
// Copyright (c) 2019, ООО 1С-Софт
// Все права защищены. Эта программа и сопроводительные материалы предоставляются 
// в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0)
// Текст лицензии доступен по ссылке:
// https://creativecommons.org/licenses/by/4.0/legalcode
///////////////////////////////////////////////////////////////////////////////////////////////////////

Рекомендации

Похожие публикации

ДобавитьПользователяВГруппу (БСП)

УдалитьПользователяИзГруппы (БСП)

ОбновитьСоставыГруппПользователей (БСП)

СкопироватьНастройкиПользователя (БСП)

ЗаполнитьНомераКартинокПользователей (БСП)

ПоказатьПодробнуюИнформацию (БСП)

ПеремещениеПользователяВНовуюГруппу (БСП)

ВключитьПользователяВГруппуДоступа (БСП)

ОбновитьПользователейГруппИсполнителей (БСП)

Обновлятор-1С: групповое (пакетное) обновление и обслуживание всех баз за один раз