Формирование печатной формы Word. вставка изображения

1. Briss 28.07.24 19:28 Сейчас в теме
Добрый день. Формирую печатную форму Word с помощью БСП. В целом всё отрабатывает, как надо.
Ниже код самого формирования:


Если МассивОбъектов.Количество() = 0 Тогда
		Возврат;
	КонецЕсли;
	
	СсылкаНаДоговор = МассивОбъектов[0];
    ТипМакета = "DOC";
	
	// Получаем структуру со сведениями о нашей печатной форме из коллекции печатных форм. В эту же структуру позже будет помещен сформированный нами документ Word.    
	ПечатнаяФорма = УправлениеПечатью.СведенияОПечатнойФорме(КоллекцияПечатныхФорм, "Договор");
	ПечатнаяФорма.ТабличныйДокумент = Новый ТабличныйДокумент;
	
	// Инициализируем макет документа Word на основании подготовленного заранее шаблона.
	ДвоичныеДанныеМакета = ПолучитьМакет("ПФ_DOC_Макет");
	СсылкаНаМакет = УправлениеПечатью.ИнициализироватьМакетОфисногоДокумента(ДвоичныеДанныеМакета, ТипМакета, "Договор");
	ИмяМакета = "ПФ_DOC_Макет";
	
	// Инициализируем печатную форму Word (docx), используя сформированный на прошлом этапе макет.
	ПечатнаяФормаWord = УправлениеПечатью.ИнициализироватьПечатнуюФорму(ТипМакета, СсылкаНаМакет.НастройкиСтраницыМакета, СсылкаНаМакет);
	
	// Подготовим параметры нашей печатной формы.
	СтруктураПараметров = ПолучитьПараметрыДоговора(СсылкаНаДоговор, Факсимиле);
	
	// Приступаем к заполнению нашего документа. Начинаем с объявления областей.
	СтруктураОбластей = Новый Структура;
	УправлениеПечатью.ДобавитьОписаниеОбласти(СтруктураОбластей, "ТелоДоговора", "Общая");
	УправлениеПечатью.ДобавитьОписаниеОбласти(СтруктураОбластей, "ВерхнийКолонтитул", "ВерхнийКолонтитул");
	УправлениеПечатью.ДобавитьОписаниеОбласти(СтруктураОбластей, "НижнийКолонтитул", "НижнийКолонтитул");
	
	// Получение областей, заполнение их параметров и вывод на документ Word. 
	
	// Вывод верхний колонтитул.
	ОбластьМакета = УправлениеПечатью.ОбластьМакета(СсылкаНаМакет, СтруктураОбластей.ВерхнийКолонтитул);
	УправлениеПечатью.ПрисоединитьОбласть(ПечатнаяФормаWord, ОбластьМакета);

	// Вывод тело договора.
	ОбластьМакета = УправлениеПечатью.ОбластьМакета(СсылкаНаМакет, СтруктураОбластей.ТелоДоговора);
	УправлениеПечатью.ПрисоединитьОбластьИЗаполнитьПараметры(ПечатнаяФормаWord, ОбластьМакета, СтруктураПараметров.ТелоДоговора);
	
	// Вывод нижний колонтитул..
	ОбластьМакета = УправлениеПечатью.ОбластьМакета(СсылкаНаМакет, СтруктураОбластей.НижнийКолонтитул);
	УправлениеПечатью.ПрисоединитьОбластьИЗаполнитьПараметры(ПечатнаяФормаWord, ОбластьМакета, СтруктураПараметров.НижнийКолонтитул);
				
	// Формируем итоговый документ Word и помещаем его во временное хранилище, которое позже передаем структуре "ПечатнаяФорма".
	АдресХранилищаОфисныйДокумент = УправлениеПечатью.СформироватьДокумент(ПечатнаяФормаWord);
	
	// Очищаем ссылки - это необходимо для удаления временных файлов, созданных за кадром на предыдущих этапах.  
	УправлениеПечатью.ОчиститьСсылки(ПечатнаяФормаWord, Ложь);
	УправлениеПечатью.ОчиститьСсылки(СсылкаНаМакет);
	
	ОфисныеДокументы = Новый Соответствие;
	ОфисныеДокументы.Вставить(АдресХранилищаОфисныйДокумент, НСтр("ru = 'Договор'"));
	ПечатнаяФорма.ОфисныеДокументы = ОфисныеДокументы;

Показать


Есть необходимость вывода факсимиле, т.е. по сути изображения, каким образом это осуществляется?
Код получения изображения:
Запрос = Новый Запрос;
	Запрос.Текст = 
		"ВЫБРАТЬ
		|	Организации.ПодписьРуководителя.Факсимиле КАК ПодписьРуководителяФаксимиле
		|ИЗ
		|	Справочник.Организации КАК Организации
		|ГДЕ
		|	Организации.Ссылка = &Организация";
	
	Запрос.УстановитьПараметр("Организация", Организация);
	РезультатЗапроса = Запрос.Выполнить();
	ВыборкаДетальныеЗаписи = РезультатЗапроса.Выбрать();
	
	Пока ВыборкаДетальныеЗаписи.Следующий() Цикл
		КартинкаФайл = ВыборкаДетальныеЗаписи.ПодписьРуководителяФаксимиле;
	КонецЦикла;
	
	ДвоичныеДанные = РаботаСФайлами.ДвоичныеДанныеФайла(КартинкаФайл);
	Картинка = Новый Картинка(ДвоичныеДанные);
	
	Возврат Картинка;
Показать


Сам параметр картинки сделал таким же образом, как и остальные:

Возможно, параметр следует по другому указывать или я отправляю некорректные данные при получении изображения?
Прикрепленные файлы:
По теме из базы знаний
Вознаграждение за ответ
Показать полностью
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. SlavaKron 28.07.24 21:27 Сейчас в теме
(1) Попробуйте двоичные данные помещать во временное хранилище, адрес во временном хранилище передавать в качестве параметра области печатной формы.
3. Briss 28.07.24 22:13 Сейчас в теме
(2) Вместо реквизита вставляет адрес временного хранилища - "e1cib/tempstorage/068062e3-bb60-402f-94e0-79a67180b6eb?seanceId=NmVlODM1MjctMzY4OS00MTNhLTk2MGUtMTQwMzEyYzg0NWQ10Sz­_elV8Y0iIrx9edopd9QAAAAA" в виде строки. Как будто нужно либо другой параметр использовать для изображений, либо еще что - то другое передавать.
4. SlavaKron 30.07.24 13:38 Сейчас в теме
(3) В хранилище, надеюсь двоичные данные, а не картинка?
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот