Инициализировать печатную форму writer. Инициализация печатной формы: создается COM - объект,
// Инициализация печатной формы: создается COM - объект,
// ему устанавливаются свойства.
Функция ИнициализироватьПечатнуюФорму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).'")
+ Символы.ПС + ПодробноеПредставлениеОшибки(ИнформацияОбОшибке()),,Истина);
НеУдалосьСформироватьПечатнуюФорму(ИнформацияОбОшибке());
КонецПопытки;
Параметры = ПолучитьComSafeArray();
#Если Не ВебКлиент Тогда
Параметры.SetValue(0, СвойствоЗначение(ServiceManager, "Hidden", Истина));
#КонецЕсли
Document = Desktop.LoadComponentFromURL("private:factory/swriter", "_blank", 0, Параметры);
#Если ВебКлиент Тогда
Document.getCurrentController().getFrame().getContainerWindow().setVisible(Ложь);
#КонецЕсли
Если Шаблон <> Неопределено Тогда
TemplateStyleName = Шаблон.Document.CurrentController.getViewCursor().PageStyleName;
TemplateStyle = Шаблон.Document.StyleFamilies.getByName("PageStyles").getByName(TemplateStyleName);
StyleName = Document.CurrentController.getViewCursor().PageStyleName;
Style = Document.StyleFamilies.getByName("PageStyles").getByName(StyleName);
Style.TopMargin = TemplateStyle.TopMargin;
Style.LeftMargin = TemplateStyle.LeftMargin;
Style.RightMargin = TemplateStyle.RightMargin;
Style.BottomMargin = TemplateStyle.BottomMargin;
КонецЕсли;
Handler.ServiceManager = ServiceManager;
Handler.Desktop = Desktop;
Handler.Document = Document;
#КонецЕсли
Возврат Handler;
КонецФункции
///////////////////////////////////////////////////////////////////////////////////////////////////////
// Copyright (c) 2019, ООО 1С-Софт
// Все права защищены. Эта программа и сопроводительные материалы предоставляются
// в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0)
// Текст лицензии доступен по ссылке:
// https://creativecommons.org/licenses/by/4.0/legalcode
///////////////////////////////////////////////////////////////////////////////////////////////////////
Канал FastCode 1C в Телеграм! Шаблоны кода, статьи, полезные советы, курсы по 1С (8К участников)