МенеджерПримененияРазрешений (БСП)

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

Менеджер применения разрешений. Создает и инициализирует менеджер применения запросов на использование внешних ресурсов.

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

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

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

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

МенеджерПримененияПакета (БСП)

ПроверитьПрименениеРазрешенийНаИспользованиеВнешнихРесурсов (БСП)

ПослеЗавершенияЗапросаРазрешенийНаИспользованиеВнешнихРесурсов (БСП)

ПослеНастройкиРазрешенийНаИспользованиеВнешнихРесурсов (БСП)

ПроверкаПримененияРазрешенийПослеЗакрытияФормыВладельца (БСП)

ЗапланироватьОбновлениеДоступаПриИзмененииРазрешенныхЗначений (БСП)

ОтменаПримененияЗапросовНаИспользованиеВнешнихРесурсов (БСП)

ДобавитьРазрешение (БСП)

УдалитьРазрешение (БСП)

TurboConf ИР адаптер 2.63