ПолучитьМакетOOWriter (БСП)

Автор: 1С
ОбщийМодуль.УправлениеПечатьюOOWriterКлиент
БСП

Получить макет 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 (БСП)

ПолучитьМакетMSWord (БСП)

ПолучитьОбластьВерхнегоКолонтитула (БСП)

ПолучитьОбластьНижнегоКолонтитула (БСП)

TurboConf ИР адаптер 2.63