ПриПодключенииВнешнейОбработки (БСП)

Автор: 1С
ОбщийМодуль.ДополнительныеОтчетыИОбработкиВМоделиСервиса
БСП

При подключении внешней обработки. Вызывается при подключении внешней обработки.

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

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

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

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

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

Подключение внешней обработки/отчета, пример оформления модуля объекта

ПриПодключенииВнешнегоМодуля (БСП)

РежимПодключенияВнешнегоМодуля (БСП)

ПараметрыПодключенияИспользуемойОбработки (БСП)

Сведения о внешней обработке

Отладить внешнюю обработку

ПриПолученииНастроекПодключенияВнешнейСистемы (БСП)

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