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

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

Удалить разрешение. Удаляет разрешение из регистра.

// Удаляет разрешение из регистра.
//
// Параметры:
//  ТипПрограммногоМодуля - СправочникСсылка.ИдентификаторыОбъектовМетаданных,
//  ИдентификаторПрограммногоМодуля - УникальныйИдентификатор,
//  ТипВладельца - СправочникСсылка.ИдентификаторыОбъектовМетаданных,
//  ИдентификаторВладельца - УникальныйИдентификатор,
//  КлючРазрешения - Строка - ключ разрешения,
//  Разрешение - ОбъектXDTO - XDTO-представление разрешения.
//
Процедура УдалитьРазрешение(Знач ТипПрограммногоМодуля, Знач ИдентификаторПрограммногоМодуля, Знач ТипВладельца, Знач ИдентификаторВладельца, Знач КлючРазрешения, Знач Разрешение) Экспорт
	
	Если ОбщегоНазначения.РазделениеВключено() Тогда
		Регистр = РегистрыСведений.РазрешенияНаИспользованиеВнешнихРесурсовОбластейДанных;
	Иначе
		Регистр = РегистрыСведений.РазрешенияНаИспользованиеВнешнихРесурсовВМоделиСервиса;
	КонецЕсли;
	
	Менеджер = Регистр.СоздатьМенеджерЗаписи();
	Менеджер.ТипПрограммногоМодуля = ТипПрограммногоМодуля;
	Менеджер.ИдентификаторПрограммногоМодуля = ИдентификаторПрограммногоМодуля;
	Менеджер.ТипВладельца = ТипВладельца;
	Менеджер.ИдентификаторВладельца = ИдентификаторВладельца;
	Менеджер.КлючРазрешения = КлючРазрешения;
	
	Менеджер.Прочитать();
	
	Если Менеджер.Выбран() Тогда
		
		Если Менеджер.ТелоРазрешения <> ОбщегоНазначения.ОбъектXDTOВСтрокуXML(Разрешение) Тогда
			
			ВызватьИсключение СтрШаблон(
				НСтр("ru = 'Коллизия разрешений по ключам:
	                  |- ТипПрограммногоМодуля: %1
	                  |- ИдентификаторПрограммногоМодуля: %2
	                  |- ТипВладельца: %3
	                  |- ИдентификаторВладельца: %4
	                  |- КлючРазрешения: %5.'"),
				Строка(ТипПрограммногоМодуля),
				Строка(ИдентификаторПрограммногоМодуля),
				Строка(ТипВладельца),
				Строка(ИдентификаторВладельца),
				КлючРазрешения);
				
		КонецЕсли;
		
		Менеджер.Удалить();
		
	Иначе
		
		ВызватьИсключение СтрШаблон(
			НСтр("ru = 'Попытка удаления несуществующего разрешения:
                  |- ТипПрограммногоМодуля: %1
                  |- ИдентификаторПрограммногоМодуля: %2
                  |- ТипВладельца: %3
                  |- ИдентификаторВладельца: %4
                  |- КлючРазрешения: %5.'"),
			Строка(ТипПрограммногоМодуля),
			Строка(ИдентификаторПрограммногоМодуля),
			Строка(ТипВладельца),
			Строка(ИдентификаторВладельца),
			КлючРазрешения);
		
	КонецЕсли;
	
КонецПроцедуры

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

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

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

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

Удалить элемент массива

Разрешения (БСП)

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