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

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

Обновить составы групп пользователей. Обновляет составы пользователей у групп пользователей с учетом иерархии

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

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

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

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

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

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

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

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

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

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

1С Менеджер конфигураций