Печать макета MS Word в любом документе с помощью БСП

0. quazare 3211 23.02.21 13:30 Сейчас в теме
В данной статье рассмотрим типовой функционал вывода на печать макетов печатных форм MS Word (*.docx) для любого документа конфигурации, основанной на библиотеке стандартных подсистем. Вариант клиент-серверный.

Перейти к публикации

Отзывы
9. quazare 3211 17.04.22 15:36 Сейчас в теме
Все кто желает - разные примеры работы с БСП и другие ссылки на статье - находятся на моем телеграмм канале
user751607; user1379552; +2 Ответить
Остальные комментарии
В избранное Подписаться на ответы Сортировка: Древо развёрнутое
Свернуть все
1. lepth 25.02.21 12:17 Сейчас в теме
Спасибо за материал!
Беспокоит один вопрос - использование областей в макете обязательно? Бывали случаи, когда макет Word нужно сформировать строго под фиксированный бланк (например вкладыш в диплом). Указание "{v8 Область.Преамбула}" сильно затрудняет эту задачу.
2. quazare 3211 25.02.21 12:22 Сейчас в теме
(2) здравствуйте! в рамках системы БСП - да, предлагается использование областей. Но есть другие (я знаю еще 2 честных способа) вывода макета ворд и без областей и БСП. В статье сделан акцент на использование библиотеки.
3. user891149 09.09.21 19:40 Сейчас в теме
А можно ли и как при этом вставить в макет не текстовое поле, а картинку, например логотип организации? При этом для разных организаций он разумеется разный, то есть это тоже параметр.
10. MrWashington 12.07.22 11:34 Сейчас в теме
(3)Вот тоже пробывал, так и не разобрался как вывести картинку в макет WORD.
4. mariya.mary.00 14.12.21 17:28 Сейчас в теме
Добрый день!

А не подскажите, можно ли как-то сделать вывод печатных форм по условию - например, для одного документа необходимо выводить одновременно 2 макета, а для другого - один, в зависимости от условий.
5. quazare 3211 14.12.21 17:39 Сейчас в теме
(4) возможно, почему же нет
6. mariya.mary.00 14.12.21 21:30 Сейчас в теме
(5) я делаю ВПФ, подскажите, пожалуйста. Если в идентификаторе объявляю несколько макетов(например,3), то при печати 2 по условию, получаю ошибку, что для 3 - не сформирована печатная форма.
Вот код, который у меня в процедуре печати:
    Если  Тогда
            Если УправлениеПечатью.НужноПечататьМакет(КоллекцияПечатныхФорм, "ПФ_DOC_ПечатьДокументWordФК") Тогда
            ПечатнаяФорма = УправлениеПечатью.СведенияОПечатнойФорме(КоллекцияПечатныхФорм, "ПФ_DOC_ПечатьДокументWordФК"); //Идентификатор формы в команде
            Если ПечатнаяФорма <> Неопределено Тогда
                ОфисныеДокументы = НапечататьАктСписанияФК(МассивОбъектов);
                ПечатнаяФорма.ТабличныйДокумент = Новый ТабличныйДокумент;
                ПечатнаяФорма.СинонимМакета    = НСтр("ru = 'Печать документа Word'");
                ПечатнаяФорма.ОфисныеДокументы = ОфисныеДокументы;
            КонецЕсли;
            КонецЕсли;

        ИначеЕсли 
            Если УправлениеПечатью.НужноПечататьМакет(КоллекцияПечатныхФорм, "ПФ_DOC_ПечатьДокументWordОбычные") Тогда
            ПечатнаяФорма1 = УправлениеПечатью.СведенияОПечатнойФорме(КоллекцияПечатныхФорм, "ПФ_DOC_ПечатьДокументWordОбычные"); //Идентификатор формы в команде
            Если ПечатнаяФорма1 <> Неопределено Тогда
                ОфисныеДокументы1 = НапечататьАктСписанияОбычные(МассивОбъектов);
                ПечатнаяФорма1.ТабличныйДокумент = Новый ТабличныйДокумент;
                ПечатнаяФорма1.СинонимМакета    = НСтр("ru = 'Печать документа Word'");
                ПечатнаяФорма1.ОфисныеДокументы = ОфисныеДокументы1;
            КонецЕсли;
            КонецЕсли;

        КонецЕсли;
    КонецЦикла;
Показать
7. mariya.mary.00 25.01.22 17:10 Сейчас в теме
Добрый день!

Не подскажите, есть ли способ как программно пересохранить созданный файл word в pdf?
Т.е чтобы при нажатии кнопки печати вместо word открывался pdf файл?
8. fizs 21.02.22 18:00 Сейчас в теме
Скажите, а если не из документа, а из внешней обработки нужна печать макета Word, то как это сделать?
9. quazare 3211 17.04.22 15:36 Сейчас в теме
Все кто желает - разные примеры работы с БСП и другие ссылки на статье - находятся на моем телеграмм канале
user751607; user1379552; +2 Ответить
11. AbadaTouro 8 03.08.22 13:22 Сейчас в теме
Так и не понятно из статьи как вставить картинку програмно
12. AbadaTouro 8 03.08.22 13:41 Сейчас в теме
(10) (11) Хотя
посмотрел по коду оказывается для того что бы вывести картинку в такой шаблон WORD достаточно получить ссылку на двоичные данные файла

СтруктураКартинки = ПрисоединенныеФайлы.ПолучитьДанныеФайла(ФаксимилеПодписи);
Картинка = СтруктураКартинки.СсылкаНаДвоичныеДанныеФайла;

ДанныеПодвала1Лист.Вставить("ФаксимилеПодписи",Картинка);
Mouse85; MrWashington; +2 Ответить
13. MrWashington 03.08.22 17:19 Сейчас в теме
(12)Супер, проверил, работает ! Можно КП или прайс делать в WORD. @AbadaTouro, спасибо
16. WorkerPavel 27.09.22 17:41 Сейчас в теме
(12)
ДанныеПодвала1Лист

А тип области у вас какой?
20. Archi3670 36 17.02.23 13:42 Сейчас в теме
(12)
СтруктураКартинки = ПрисоединенныеФайлы.ПолучитьДанныеФайла(ФаксимилеПодписи);
Картинка = СтруктураКартинки.СсылкаНаДвоичныеДанныеФайла;

ДанныеПодвала1Лист.Вставить("ФаксимилеПодписи",Картинка);


На БСП 3.1.7.190 валится в ошибку

Ошибка разбора XML% -[2,52]
Ошибка:
Namespace prefix wp on inline is not defined

Может у кого есть решение поделитесь.
14. user1336105 07.09.22 18:06 Сейчас в теме
очень хелп!!!!!
В конечном документе параметры начинаются с табуляции. Как с этим бороться???
15. WorkerPavel 27.09.22 17:14 Сейчас в теме
Подложку с помощью механизмов БСП напечатать можно?
В макете она есть а на печать не выводится.
17. AbadaTouro 8 28.09.22 13:39 Сейчас в теме
(16) Как какой .
ДанныеПодвала1Лист = Новый Структура;
18. WorkerPavel 28.09.22 14:14 Сейчас в теме
(17)Я имел ввиду это:
УправлениеПечатью.ДобавитьОписаниеОбласти(ОписаниеОбластей, "Лого",					"Общая");

Т.е. я предполагал что может тип области для картинок есть специальный, но оказалось что и с "Общая" работает.
19. user788141 13.11.22 02:01 Сейчас в теме
(18) а есть варианты расположения картинки в шаблоне ворда, так что бы регулировать размер или положение на странице? размер печати в png вроде правильные а в ворде выводит больше размером, и положение поменять в обычной области не получится...
21. user1906668 23.03.23 11:35 Сейчас в теме
А как сделать так, чтобы колонтитулы отображались?
23. 7OH 68 28.04.23 16:36 Сейчас в теме
(21) Аналогичный вопрос.
Оно на них вообще забивает, что на размер, что на содержимое, хотя области в колонтитулах обозначены.
24. 7OH 68 28.04.23 17:18 Сейчас в теме
(21)
Поправить описание областей - добавить колонтитулы
Функция ОписаниеОбластейМакетаОфисногоДокумента()
	
	ОписаниеОбластей = Новый Структура;
	
	УправлениеПечатью.ДобавитьОписаниеОбласти(ОписаниеОбластей, "ОбластьШапка", "Общая");
	УправлениеПечатью.ДобавитьОписаниеОбласти(ОписаниеОбластей, "Реквизиты", "Общая");
	УправлениеПечатью.ДобавитьОписаниеОбласти(ОписаниеОбластей, "ВерхнийКолонтитул", "ВерхнийКолонтитул");
	УправлениеПечатью.ДобавитьОписаниеОбласти(ОписаниеОбластей, "НижнийКолонтитул", "НижнийКолонтитул");
	
	Возврат ОписаниеОбластей;
	
КонецФункции

Показать


Поправить вывод - добавить вручную вывод

Функция НапечататьСогласиеНаОбработкуПерсональныхДанныхСубъекта(ДокументСсылка, МакетИДанныеОбъекта, ИмяМакета)
		// начало функции

		//ВЫВОД ВЕРХНЕГО КОЛОНТИТУЛА
		Область = УправлениеПечатьюКлиент.ОбластьМакета(Макет, Области[ИмяМакета]["ВерхнийКолонтитул"]);
		УправлениеПечатьюКлиент.ПрисоединитьОбласть(ПечатнаяФорма, Область, Ложь);

		//Вывод областей листа
		Область = УправлениеПечатью.ОбластьМакета(Макет, Области[ИмяМакета]["НомерДата"]);
		УправлениеПечатью.ПрисоединитьОбластьИЗаполнитьПараметры(ПечатнаяФорма, Область, ДанныеОбъекта, Ложь);
		
		Область = УправлениеПечатью.ОбластьМакета(Макет, Области[ИмяМакета]["Преамбула"]);
		УправлениеПечатью.ПрисоединитьОбластьИЗаполнитьПараметры(ПечатнаяФорма, Область, ДанныеОбъекта, Ложь);
		
		//ВЫВОД НИЖНЕГО КОЛОНТИТУЛА
		Область = УправлениеПечатьюКлиент.ОбластьМакета(Макет, Области[ИмяМакета]["НижнийКолонтитул"]);
		УправлениеПечатьюКлиент.ПрисоединитьОбласть(ПечатнаяФорма, Область, Ложь);

		//Код остального вывода

КонецПроцедуры
Показать
22. user918764 20.04.23 08:48 Сейчас в теме
Добрый день!

Подскажите, пожалуйста, возможно ли вывести горизонтальный разделитель страниц после определенных областей при такой печати?
Оставьте свое сообщение
Вакансии
Системный архитектор 1С
Москва
зарплата от 250 000 руб.
Полный день

Функциональный архитектор
Москва
зарплата от 200 000 руб. до 300 000 руб.
Полный день

Программист 1С
Москва
зарплата от 250 000 руб. до 300 000 руб.
Полный день

Консультант 1С
Москва
зарплата от 80 000 руб. до 150 000 руб.
Полный день

Аналитик 1C
Москва
зарплата от 120 000 руб. до 250 000 руб.
Полный день