Получить макет writer. Возвращает структуру с макетом печатной формы.
// Возвращает структуру с макетом печатной формы.
//
// Параметры:
// ДвоичныеДанныеМакета - ДвоичныеДанные - двоичные данные макета.
// Возвращаемое значение:
// структура - ссылка макет.
//
Функция ПолучитьМакетOOWriter(Знач ДвоичныеДанныеШаблона, ИмяВременногоФайла) Экспорт
Handler = Новый Структура("ServiceManager,Desktop,Document,ИмяФайла");
#Если Не МобильныйКлиент Тогда
Попытка
ServiceManager = Новый COMОбъект("com.sun.star.ServiceManager");
Исключение
ЖурналРегистрацииКлиент.ДобавитьСообщениеДляЖурналаРегистрации(СобытиеЖурналаРегистрации(), "Ошибка",
НСтр("ru = 'Ошибка при связи с сервис менеджером (com.sun.star.ServiceManager).'")
+ Символы.ПС + ПодробноеПредставлениеОшибки(ИнформацияОбОшибке()),,Истина);
НеУдалосьСформироватьПечатнуюФорму(ИнформацияОбОшибке());
КонецПопытки;
Попытка
Desktop = ServiceManager.CreateInstance("com.sun.star.frame.Desktop");
Исключение
ЖурналРегистрацииКлиент.ДобавитьСообщениеДляЖурналаРегистрации(СобытиеЖурналаРегистрации(), "Ошибка",
НСтр("ru = 'Ошибка при запуске сервиса Desktop (com.sun.star.frame.Desktop).'")
+ Символы.ПС + ПодробноеПредставлениеОшибки(ИнформацияОбОшибке()),,Истина);
НеУдалосьСформироватьПечатнуюФорму(ИнформацияОбОшибке());
КонецПопытки;
#Если ВебКлиент Тогда
ОписанияФайлов = Новый Массив;
ОписанияФайлов.Добавить(Новый ОписаниеПередаваемогоФайла(ИмяВременногоФайла, ПоместитьВоВременноеХранилище(ДвоичныеДанныеШаблона)));
ВременныйКаталог = УправлениеПечатьюСлужебныйКлиент.СоздатьВременныйКаталог("OOWriter");
Если НЕ ПолучитьФайлы(ОписанияФайлов, , ВременныйКаталог, Ложь) Тогда
Возврат Неопределено;
КонецЕсли;
ИмяВременногоФайла = ОбщегоНазначенияКлиентСервер.ДобавитьКонечныйРазделительПути(ВременныйКаталог) + ИмяВременногоФайла;
#Иначе
ИмяВременногоФайла = ПолучитьИмяВременногоФайла("ODT");
ДвоичныеДанныеШаблона.Записать(ИмяВременногоФайла);
#КонецЕсли
ПараметрыДокумента = ПолучитьComSafeArray();
#Если Не ВебКлиент Тогда
ПараметрыДокумента.SetValue(0, СвойствоЗначение(ServiceManager, "Hidden", Истина));
#КонецЕсли
// Параметры открытия: отключение исполнения макросов.
РежимЗапуска = СвойствоЗначение(ServiceManager,
"MacroExecutionMode",
0); // const short NEVER_EXECUTE = 0
ПараметрыДокумента.SetValue(0, РежимЗапуска);
Document = Desktop.LoadComponentFromURL("file:///" + СтрЗаменить(ИмяВременногоФайла, "\", "/"), "_blank", 0, ПараметрыДокумента);
#Если ВебКлиент Тогда
Document.getCurrentController().getFrame().getContainerWindow().setVisible(Ложь);
#КонецЕсли
Handler.ServiceManager = ServiceManager;
Handler.Desktop = Desktop;
Handler.Document = Document;
Handler.ИмяФайла = ИмяВременногоФайла;
#КонецЕсли
Возврат Handler;
КонецФункции
///////////////////////////////////////////////////////////////////////////////////////////////////////
// Copyright (c) 2019, ООО 1С-Софт
// Все права защищены. Эта программа и сопроводительные материалы предоставляются
// в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0)
// Текст лицензии доступен по ссылке:
// https://creativecommons.org/licenses/by/4.0/legalcode
///////////////////////////////////////////////////////////////////////////////////////////////////////
ПолучитьОбластьМакетаMSWord (БСП)
ПолучитьОбщиеМакетыИнформационныхСсылок (БСП)
ПоказатьДокументOOWriter (БСП)
Канал FastCode 1C в Телеграм! Шаблоны кода, статьи, полезные советы, курсы по 1С (8К участников)