При подключении внешней обработки. Вызывается при подключении внешней обработки.
// Вызывается при подключении внешней обработки.
//
// Параметры:
// Ссылка - СправочникСсылка.ДополнительныеОтчетыИОбработки,
// СтандартнаяОбработка - Булево, флаг необходимости выполнения стандартной обработки подключения
// внешней обработки,
// Результат - Строка - имя подключенного внешнего отчета или обработки (в том случае, если в обработчике
// для параметра СтандартнаяОбработка было установлено значение Ложь).
//
Процедура ПриПодключенииВнешнейОбработки(Знач Ссылка, СтандартнаяОбработка, Результат) Экспорт
Если Не ОбщегоНазначения.РазделениеВключено() Тогда
Возврат;
КонецЕсли;
УстановитьПривилегированныйРежим(Истина);
Если ТипЗнч(Ссылка) <> Тип("СправочникСсылка.ДополнительныеОтчетыИОбработки") Или Ссылка = Справочники.ДополнительныеОтчетыИОбработки.ПустаяСсылка() Тогда
ВызватьИсключение НСтр("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
///////////////////////////////////////////////////////////////////////////////////////////////////////
Подключение внешней обработки/отчета, пример оформления модуля объекта
ПриПодключенииВнешнегоМодуля (БСП)
РежимПодключенияВнешнегоМодуля (БСП)
Канал FastCode 1C в Телеграм! Шаблоны кода, статьи, полезные советы, курсы по 1С (8К участников)