В данной статье рассмотрим типовой функционал вывода на печать макетов печатных форм MS Word (*.docx) для любого документа конфигурации, основанной на библиотеке стандартных подсистем. Вариант клиент-серверный.
Спасибо за материал!
Беспокоит один вопрос - использование областей в макете обязательно? Бывали случаи, когда макет Word нужно сформировать строго под фиксированный бланк (например вкладыш в диплом). Указание "{v8 Область.Преамбула}" сильно затрудняет эту задачу.
(2) здравствуйте! в рамках системы БСП - да, предлагается использование областей. Но есть другие (я знаю еще 2 честных способа) вывода макета ворд и без областей и БСП. В статье сделан акцент на использование библиотеки.
А можно ли и как при этом вставить в макет не текстовое поле, а картинку, например логотип организации? При этом для разных организаций он разумеется разный, то есть это тоже параметр.
А не подскажите, можно ли как-то сделать вывод печатных форм по условию - например, для одного документа необходимо выводить одновременно 2 макета, а для другого - один, в зависимости от условий.
(5) я делаю ВПФ, подскажите, пожалуйста. Если в идентификаторе объявляю несколько макетов(например,3), то при печати 2 по условию, получаю ошибку, что для 3 - не сформирована печатная форма.
Вот код, который у меня в процедуре печати:
Если Тогда
Если УправлениеПечатью.НужноПечататьМакет(КоллекцияПечатныхФорм, "ПФ_DOC_ПечатьДокументWordФК") Тогда
ПечатнаяФорма = УправлениеПечатью.СведенияОПечатнойФорме(КоллекцияПечатныхФорм, "ПФ_DOC_ПечатьДокументWordФК"); //Идентификатор формы в команде
Если ПечатнаяФорма <> Неопределено Тогда
ОфисныеДокументы = НапечататьАктСписанияФК(МассивОбъектов);
ПечатнаяФорма.ТабличныйДокумент = Новый ТабличныйДокумент;
ПечатнаяФорма.СинонимМакета = НСтр("ru = 'Печать документа Word'");
ПечатнаяФорма.ОфисныеДокументы = ОфисныеДокументы;
КонецЕсли;
КонецЕсли;
ИначеЕсли
Если УправлениеПечатью.НужноПечататьМакет(КоллекцияПечатныхФорм, "ПФ_DOC_ПечатьДокументWordОбычные") Тогда
ПечатнаяФорма1 = УправлениеПечатью.СведенияОПечатнойФорме(КоллекцияПечатныхФорм, "ПФ_DOC_ПечатьДокументWordОбычные"); //Идентификатор формы в команде
Если ПечатнаяФорма1 <> Неопределено Тогда
ОфисныеДокументы1 = НапечататьАктСписанияОбычные(МассивОбъектов);
ПечатнаяФорма1.ТабличныйДокумент = Новый ТабличныйДокумент;
ПечатнаяФорма1.СинонимМакета = НСтр("ru = 'Печать документа Word'");
ПечатнаяФорма1.ОфисныеДокументы = ОфисныеДокументы1;
КонецЕсли;
КонецЕсли;
КонецЕсли;
КонецЦикла;
Не подскажите, есть ли способ как программно пересохранить созданный файл word в pdf?
Т.е чтобы при нажатии кнопки печати вместо word открывался pdf файл?
(18) а есть варианты расположения картинки в шаблоне ворда, так что бы регулировать размер или положение на странице? размер печати в png вроде правильные а в ворде выводит больше размером, и положение поменять в обычной области не получится...
Функция НапечататьСогласиеНаОбработкуПерсональныхДанныхСубъекта(ДокументСсылка, МакетИДанныеОбъекта, ИмяМакета)
// начало функции
//ВЫВОД ВЕРХНЕГО КОЛОНТИТУЛА
Область = УправлениеПечатьюКлиент.ОбластьМакета(Макет, Области[ИмяМакета]["ВерхнийКолонтитул"]);
УправлениеПечатьюКлиент.ПрисоединитьОбласть(ПечатнаяФорма, Область, Ложь);
//Вывод областей листа
Область = УправлениеПечатью.ОбластьМакета(Макет, Области[ИмяМакета]["НомерДата"]);
УправлениеПечатью.ПрисоединитьОбластьИЗаполнитьПараметры(ПечатнаяФорма, Область, ДанныеОбъекта, Ложь);
Область = УправлениеПечатью.ОбластьМакета(Макет, Области[ИмяМакета]["Преамбула"]);
УправлениеПечатью.ПрисоединитьОбластьИЗаполнитьПараметры(ПечатнаяФорма, Область, ДанныеОбъекта, Ложь);
//ВЫВОД НИЖНЕГО КОЛОНТИТУЛА
Область = УправлениеПечатьюКлиент.ОбластьМакета(Макет, Области[ИмяМакета]["НижнийКолонтитул"]);
УправлениеПечатьюКлиент.ПрисоединитьОбласть(ПечатнаяФорма, Область, Ложь);
//Код остального вывода
КонецПроцедуры