RDT1C/src/CommonModules/ирДополнительныеОтчетыИОбработкиБСП/Ext/Module.bsl
Администратор a1e5ded073 restructure
2021-09-17 08:52:43 +03:00

117 lines
8.9 KiB
Plaintext
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

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