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

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

Обновить используемость составов групп пользователей. Обновление ресурс Используется при изменении реквизитов ПометкаУдаления, Недействителен.

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

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

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

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

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

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

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

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

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

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

TurboConf 6 - расширение Конфигуратора 1С