Печать в word по любому шаблону скачать

Формирование и заполнение документов Microsoft Word ЛЮБОГО шаблона на основании документов и справочников системы. Любые документы и справочники 1С. Заполнение по реквизитам шапки и табличной части.





  • Основное




  • Совместимость




  • Прочее
Артикул 358
Обновлено 21.12.2022
Исходный код Открыт
Изменение конфигурации Не требуется
Покупок 55
  • BAS ERP (UA)
  • BAS Комплексное управление предприятием 2 (UA)
  • BAS Управление торговлей 3 (UA)
  • Бухгалтерия предприятия 3.0
  • Зарплата и управление персоналом 3.1
  • Комплексная автоматизация 2.4 (BY)
  • Комплексная автоматизация 2.4 (KZ)
  • Комплексная автоматизация 2.4 и 2.5
  • Управление нашей фирмой 1.6
  • Управление нашей фирмой 3.0
  • Управление предприятием ERP 2.4 и 2.5
  • Управление торговлей 11.4 и 11.5
  • Управление торговлей 3 (BY)
  • Управление торговлей 3 (KZ)

Очень полезная внешняя обработка для всех типовых конфигураций 1С:Предприятие 8.3, позволяет формировать файл Word по выбранному шаблону из справочников и документов системы. С ее помощью вы можете распечатывать из 1С различные спецификации, трудовые договоры и договоры с контрагентами, гарантийные талоны и прочее прочее. Имея под рукой Word нужной структуры и чуть доработав его, вы получите возможность формировать его прямо из 1с с заполнением всех нужных параметров.

Принцип работы обработки следующий:

  • выбираем Word нужной структуры,
  • в тех местах файла, где необходимо вставить информацию из 1С, делаем закладки (bookmarks),
  • после подготовки шаблона добавляем его в 1С (справочник Файлы),
  • настраиваем заполнение шаблона печати в 1С,
  • печатаем нужные документы/справочники, выбрав созданный шаблон.

Подготовка шаблона Word

Для демонстрации работы обработки настроим печать спецификации к договору из документа Заказ клиента. Допустим, у нас есть такой Word:

файл Word

Из него будем формировать полноценную спецификацию. Необходимо из этого файла сделать универсальный макет, который бы каждый раз брал данные для заполнения из исходного заказа. Для этого выделяем нужные блоки в документе и для них делаем закладки:

добавление закладок в файл Word

Каждой закладке даем имя.

создание закладки в файле Word

Имена закладок должны быть уникальными и не повторяться. В имени закладки нельзя использовать пробелы.

При печати также будем заполнять таблицу товаров. Чтобы она сформировалась красиво, оставим шапку и одну пустую строку:

удаление строк в файле Word

Сохраняем Word, закрываем.

Настройка заполнения шаблона

Теперь в программе открываем журнал заказов клиента, заходим в меню печати и жмем кнопку для настройки печати по шаблону Word:

открыть настройки печати по шаблону

Настройка шаблонов доступна только пользователям с полными правами.

Окно настроек выглядит следующим образом:

окно настроек печати по шаблону

В верхней части расположена таблица сохраненных шаблонов печати (которые относятся именно к заказу клиента). Добавляем новую строку таблицы, создаем новый шаблон. В строке указываем наименование шаблона (по которому впоследствии будет заполняться наименование файла). В этом наименовании можно использовать не только произвольные символы, но и заменяемые параметры (в квадратных скобках). Далее выбираем собственно файл Word (предварительно его надо добавить в справочник Файлы).

выбрать файл шаблона

Если нужно сразу сохранить файл в присоединенные файлы заказа клиента, устанавливаем галку. В результате получится подобная картина:

заполнение настроек таблицы шаблонов

При выборе файла автоматически заполняется расположенная ниже таблица закладок. Наша следующая задача — настроить источники значений для этих закладок.

выбор источника значения

Можно использовать как реквизиты исходного объекта печати (в данном случае заказа клиента), так и реквизиты реквизитов.

Для более быстрого заполнения поддерживается ввод названий с клавиатуры.

В случае работы с датой можно выбрать формат вывода.

выбор формата даты

В отдельной колонке сразу можно увидеть значение, которое будет подставлено в закладку макета Word.

отображение значения заполнения

Полный перечень доступных реквизитов выглядит внушительно:

список доступных реквизитов

Для объектов можно использовать не только значения собственных, но и дополнительных (созданных пользователями вручную) реквизитов. Для организаций и контрагентов можно использовать адреса, почту, телефоны и банковские реквизиты. Для физических лиц можно использовать паспортные данные.

В отдельной колонке таблицы закладок можно задавать падеж (для правильного склонения полученного значения), а также необходимость склонения ФИО.

На выходе получается такая таблица:

таблица закладок Word

В шаблоне присутствует таблица товаров — для настройки ее заполнения переходим на вкладку Таблицы.

Выбираем из какой табличной части брать данные:

выбор табличной части

После этого через запятую перечисляем названия реквизитов табличной части, значениями которых необходимо заполнить таблицу нашего шаблона. Их количество должно совпадать с количеством колонок шаблона. Для справки в последней колонке приведены все возможные значения.

настройка заполнения таблицы

Для некоторых колонок можно просто прописать постоянное значение (на скрине выше это ШТ).

На этом настройка шаблона завершена, не забываем сохранить настройки.

Настройка шаблонов — задача одноразовая, один раз настроили и потом печатаете любые заказы сколько угодно раз.

Если нужно сохранить еще один шаблон, то проделываем повторно такую же работу.

Для редактирования шаблона выделяем его в верхней таблице (при этом таблица закладок заполняется автоматически из сохраненных настроек), вносим правки и сохраняем.

Для удаления шаблона выделяем его в списке и нажимаем Del, затем сохраняем настройки.

Для печати вызываем команду По шаблону Word (печать), в результате на экране появляется форма прикрепленного файла (т.к. мы включили сохранение файла).

присоединенный файл

Обратите внимание, что в названии файла заменяемые параметры исчезли — вместо них подставились значения документа.

Итоговый файл Word выглядит так (название файла тоже заполнилось согласно настройке):

печатная форма Word

Если для объекта создать несколько шаблонов печати, при нажатии на кнопку печати будет появляться окно с выбором нужной печатной формы.

выбор печатной формы Word

Документы можно печатать как по отдельности, так и списком.

Чтобы оставить комментарий, зарегистрируйтесь и авторизуйтесь на сайте.

10.12.2019

Научитесь печать из 1С по шаблонам (Например: трудовые договоры, договоры с контрагентами, акты, накладные и и многие другие).

Внешняя обработка предназначена для формирования печатных форм на основе шаблонов в формате Word из любой конфигурации 1С.

С помощью данного инструмента можно самостоятельно заполнить шаблон реквизитами справочника или документа 1С и сформировать печатные формы на основании ссылки на объект.

Основные особенности:

  • Для любых конфигураций 1С;

  • Для любых документов и справочников 1C;

  • Не требуется изменять конфигурацию;

  • Заполнение шаблона Word посредством “Drag and Drop” (мышкой из окна 1С в окно внешнего редактора MS Word);

  • Не требуется установленный Word на сервере.

Обработка “Универсальная печать по шаблонам Word” является инструментом для формирования печатных форм в формате Word (docx) на основе шаблонов (docx). 

Пользователь сможет самостоятельно создавать шаблоны и наполнять их параметрами из данных объекта. Программист будет необходим только в исключительных случаях, когда информацию для печатной формы требуется получить специфическим способом. Программист прямо из данной обработки посредством языка запросов сможет создать файл с настройками. Вам нужно будет указать путь к каталогу файлов с настройками, и они расширят реквизитный состав объектов (об этом подробнее читайте в инструкции). В дальнейшем мы планируем выпустить предопределенные файлы с настройками для типовых конфигураций.

Целевая аудитория:

  • Кадры
    • Различные варианты печатных форм по трудовым договорам
  • Юр. Служба
    • Печатные формы по договорам контрагентов с применением логотипов и картинок
  • Продажи и закупки
    • Печатные формы по документам с выводом таблиц (например: список номенклатуры)

Обработку можно применять для печати по шаблонам в разных целях, но опираясь на собственный опыт, для представленной аудитории данная разработка будет востребована больше всех.

Основные функциональные возможности:

Со всеми функциональными возможностями решения можно ознакомиться в инструкции.

Требования:

  • Управляемые формы;

  • Платформа версии 8.3.7 и выше (8.3.13 и выше при работе в веб-интерфейсе);

  • БСП версии 2.3.1 и выше для использования типового функционала дополнительных реквизитов / сведений и контактной информации объектов;

  • Файлы шаблонов с расширением “.docx”.

Тестирование проводилось на платформе 1С:Предприятие 8.3 (8.3.14.1854) в конфигурациях:

  • Комплексная автоматизация: 2.4.9.98;
  • ERP Управление предприятием: 2.4.9.98;
  • Бухгалтерия предприятия: 3.0.73 ПРОФ, 3.0.73 КОРП; 
  • Зарплата и управление персоналом: 3.1.10 ПРОФ; 3.1.10 КОРП; 
  • Документооборот 2.1.14 ПРОФ, 2.1.14 КОРП; 
  • Управление торговлей 11.4
  • Управление нашей фирмой 1.6

1.0.0 Добавлена пилотная версия.

1.0.1
05.11.2023 Исправлены некоторые интерфейсные проблемы. Добавлена возможность сохранять место хранения шаблонов в настройках пользователя. Дополнение параметра «Формат текста» было расширено типовой функцией вывода номера на печать («00УТ-00120» -> «УТ-120»).

1.0.2 
30.11.2023 Исправлены ошибки. Обработаны проблемы использования не предопределенных дополнительных реквизитов (созданных пользователем). Теперь в запросе помимо параметра «&Ссылка», появилась возможность использовать «&ТекущаяДата», в которую подставляется значение типовой функции «ТекущаяДата()».

1.0.3
09.12.2023 Добавлена обработка с видом печатная форма. При ее подключении добавляется команда печати во все справочники и документы. При вызове команды печати автоматически подставляется ссылка на объект. Функционал обработок идентичен, различается только способ их открытия.

Достоинства

  • Универсально
    • Для любых конфигураций;
    • Для любых документов и справочников.
  • Удобно
    • Грамотно продуманный пользовательский интерфейс;
    • Помощь в заполнении шаблона параметрами;
    • Все настройки хранятся в шаблоне, а значит шаблон можно использовать в нескольких базах со схожей структурой;
    • Поддерживается работа через веб клиент.
  • Функционально
    • Использование дополнительных реквизитов / сведений и контактной информации объектов (для типовых);
    • Расширение реквизитного состава объектов посредством языка запросов.
  • Просто
    • Не требуется изменять конфигурацию;
    • Не требуется установленный Word на сервере (и драйвера OLE не нужны).

Гарантия возврата денег

ООО «Инфостарт» гарантирует Вам 100% возврат оплаты, если программа не соответствует заявленному функционалу из описания. Деньги можно вернуть в полном объеме, если вы заявите об этом в течение 14-ти дней со дня поступления денег на наш счет.

Программа настолько проверена в работе, что мы с полной уверенностью можем дать такую гарантию. Мы хотим, чтобы все наши покупатели оставались довольны покупкой.

Для возврата оплаты просто свяжитесь с нами.

Выберите вариант загрузки:

  • скачать с сервера SoftPortal (Версия программы для Microsoft Word 97/2000/XP/2003)
  • скачать с сервера SoftPortal (Версия программы для Microsoft Word 2007/2010. Устанавливается в шаблон Normal.dot. Работает в любых версиях Word)

Верстка Текста Книжкой — пакет макросов для Microsoft Word, позволяющий сверстать ваш документ в формате книжки для последующей его печати — то есть выполнить то, что обычно называется «создание брошюры», «печать брошюры» или «спуск полос» (полное описание…)

Рекомендуем популярное

скачать Doc ReaderDoc Reader 2.0

Doc Reader — простая в использовании программа, которая позволяет открывать, просматривать и…

скачать Печать книгойПечать книгой 3.4

Печать книгой — надстройка для Word 97-2010 позволяющая печатать любые документы в форме…

скачать SSC Service UtilitySSC Service Utility 4.30

SSC Service Utility — Программа предназначена для всех владельцев струйных принтеров производства…

скачать FinePrintFinePrint 11.34

FinePrint — отличный инструмент для редактирования различных типов документов и вывода их на…

скачать Expert PDF ReaderExpert PDF Reader 9.0.180

Expert PDF Reader — бесплатный и легкий в эксплуатации инструмент для просмотра, редактирования и…

Довольно распространенная задача, но так как пока не реализованная в типовых, поэтому и пишу.

Итак, к примеру, необходимо формировать некоторый типовой текст на основе имеющегося в организации шаблона в формате docx — MS Word. Обычно это договора (с контрагентами, сотрудниками), а также всевозможные приказы и т.д. Формат Word позволяет подготовить красиво оформленный документ, однако некоторые данные необходимо подставить из базы (ФИО и проч).

Данную задачу в данной статье буду реализовывать через расширение на примере печати договора с контрагентом. Конфигурация 1С:Бухгалтерия — типовая на поддержке 3.0.121.31, релиз платформы — 8.3.22.1704).
Для реализации задачи будем использовать подсистему БСП «Работа с печатью», с помощью которой можем быстро добавлять на формы списков и элементов команды Печати и формировать документы из шаблона Word.

Забегая вперед, добавлю, что при формировании документа MS Word использована серверная процедура формирования документа без создания COM-объекта. Однако, для формирования PDF документа — пришлось создавать COM-объект Word.Application, соответственно, это действие рекомендуется делать исключительно на клиенте, поэтому я задействовал клиентскую процедуру.

Сами шаблоны договоров оказания услуг — мои рабочие — можете брать и использовать или для образца (Скачать с Инфостарта https://infostart.ru/public/1753205/). Все переменные типа ФИО, должностей, ИНН и т.д. — беру из данных базы.
В общем, если нужно быстро сделать печать из шаблона MS Word — это вам подойдет как пример. Можно использовать и как готовый вариант текста договора оказания услуг по 1С, но это на ваше усмотрение.

Итак

  1. Создаем новое расширение, снимаем галку безопасный режим

2. Создаем файл-шаблон MS Word. Формат файла MS Word должен соответствовать формату БСП.

  • Файл должен состоять из набора именованных областей. Каждая область начинается тэгом {v8 Область.ИмяОбласти1} {/v8 Область.ИмяОбласти1}.
  • Внутри области могут использоваться параметры, в которые мы впоследствии передадим нужные нам значения (типа ФИО). Параметры маркируются как {v8 Параметр1}.
  • Можно создавать даже таблицы для вывода табличных частей (например спецификация по договору), но в данном примере мы это не используем. Вот подробная статья про формат шаблона infostart.ru/1c/articles/1052233/.
  • Даже проще понять на примере, см скрины ниже

3. Далее Переходим к нужному объекту метаданных, в нашем случае — к справочнику Договоры. Далее макеты, добавить-двоичные данные-выбираем нужный файл Ворд

4. Добавим команды печати в справочник «Договоры контрагентов». Для этого в модуле менеджера объекта (справочника Договоры) находим процедуру «ДобавитьКомандыПечати» и добавляем ее в наше расширение с директивой &После. И добавляем команды

&После("ДобавитьКомандыПечати")
Процедура пп_ДобавитьКомандыПечати(КомандыПечати)
    КомандаПечати = КомандыПечати.Добавить();
    КомандаПечати.Идентификатор = "ДоговорОказанияУслуг";
    КомандаПечати.Представление = "Договор оказания услуг (PDF)";
    КомандаПечати.Обработчик = "пп_ПечатьКлиент.ПечатьДоговораОказанияУслуг";
    КомандаПечати.Картинка = БиблиотекаКартинок.ФорматPDF;

    КомандаПечати = КомандыПечати.Добавить();
    КомандаПечати.Идентификатор = "ДоговорОказанияУслугWord";
    КомандаПечати.Представление = "Договор оказания услуг (Word)";
    КомандаПечати.Картинка = БиблиотекаКартинок.ФорматWord;
КонецПроцедуры

Обратите внимание, что для выполнения команды печати PDF используется обработчик с процедурой пп_ПечатьКлиент.ПечатьДоговораОказанияУслуг. Модуль пп_ПечатьКлиент — сделаем клиентский, для работы с Com-объектом на клиенте (так рекомендуется стандартами 1С). Почему так — распишу поподробнее ниже.

Далее в модуле менеджера добавляем предопределенную процедуру «Печать». Если таковая уже есть в основной конфигурации — тогда размещаем ее с другим именем и директивой &После(«Печать»). В нашем примере этого не нужно. Если не указана другая процедура-обработчик — по умолчанию вызывается именно серверная процедура «Печать». Задействуем ее для формирования документа в Word.

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

Тут используется типовая технология формирования офисных документов. Основная функция тут СформироватьДокументWord(Ссылка, ИмяМакета), которая использует несколько функций БСП.

  • УправлениеПечатью.ИнициализироватьМакетОфисногоДокумента(МакетДоговора, Неопределено) — инициализация структуры с нужными параметрами
  • УправлениеПечатью.ДобавитьОписаниеОбласти(ОписаниеОбластей, «Основная», «Общая») — формирует структуру с описанием, необходимым далее при формировании макета
  • УправлениеПечатью.ИнициализироватьПечатнуюФорму(Неопределено, Неопределено, Макет) — инициализирует макет
  • УправлениеПечатью.ОбластьМакета(Макет, ОписаниеОбластей[«Основная»]) — формирование макета с параметрами
  • УправлениеПечатью.ПрисоединитьОбластьИЗаполнитьПараметры(ПечатнаяФорма, Область, ПолучитьДанныеДоговора(Ссылка)) — окончательно формирует макет документа с переданными параметрами
  • Адрес = УправлениеПечатью.СформироватьДокумент(ПечатнаяФорма) — кладет готовый макет в Хранилище значений и отдает ссылку с адресом
Функция СформироватьДокументыWord(МассивОбъектов, ИмяМакета, НаименованиеДокумента)
Шаблон = НаименованиеДокумента + " %1 от %2";
ОфисныеДокументы = Новый Соответствие;

Для каждого Ссылка Из МассивОбъектов Цикл

    Адрес = СформироватьДокументWord(Ссылка, ИмяМакета);
    ИмяДокумента = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(Шаблон, Ссылка.Номер, Формат(Ссылка.Дата,"ДФ=dd.MM.yyyy"));
    ОфисныеДокументы.Вставить(Адрес, ИмяДокумента);

КонецЦикла;

Возврат ОфисныеДокументы;
КонецФункции

Функция СформироватьДокументWord(Ссылка, ИмяМакета)
	УстановитьПривилегированныйРежим(Истина);
	МакетДоговора = УправлениеПечатью.МакетПечатнойФормы("Справочник.ДоговорыКонтрагентов." + ИмяМакета);
    Макет = УправлениеПечатью.ИнициализироватьМакетОфисногоДокумента(МакетДоговора, Неопределено);
	
	ОписаниеОбластей = Новый Структура;
	УправлениеПечатью.ДобавитьОписаниеОбласти(ОписаниеОбластей, "Основная", "Общая");
	ПечатнаяФорма = УправлениеПечатью.ИнициализироватьПечатнуюФорму(Неопределено, Неопределено, Макет);
	
	Область = УправлениеПечатью.ОбластьМакета(Макет, ОписаниеОбластей["Основная"]);
	
	УправлениеПечатью.ПрисоединитьОбластьИЗаполнитьПараметры(ПечатнаяФорма, Область, ПолучитьДанныеДоговора(Ссылка));
	
	Адрес = УправлениеПечатью.СформироватьДокумент(ПечатнаяФорма);
	
	УстановитьПривилегированныйРежим(Ложь);
	
	Возврат Адрес; 
	
КонецФункции

ПолучитьДанныеДоговора(Ссылка) — структура со значениями переменных, самая рутинная, но самая смысловая в части данных. Только ее вам и нужно написать свою для своего объекта

Функция ПолучитьДанныеДоговора(ДоговорСсылка)
УстановитьПривилегированныйРежим(Истина);

Текст = "ВЫБРАТЬ
        |   ДоговорыКонтрагентов.Ссылка КАК Договор,
        |   ДоговорыКонтрагентов.Номер КАК НомерДоговора,
        |   ДоговорыКонтрагентов.Дата КАК ДатаДоговора,
        |   ДоговорыКонтрагентов.СрокДействия КАК ДатаОкончанияДействия,
        |   ДоговорыКонтрагентов.Владелец КАК Контрагент,
        |   ДоговорыКонтрагентов.Владелец.НаименованиеПолное КАК КонтрагентПолноеНаименование,
        |   ДоговорыКонтрагентов.Организация КАК Организация,
        |   ДоговорыКонтрагентов.Организация.НаименованиеПолное КАК ОрганизацияПолноеНаименование,
        |   ДоговорыКонтрагентов.Организация.ИНН КАК ОрганизацияИНН,
        |   ДоговорыКонтрагентов.Организация.КПП КАК ОрганизацияКПП,
        |   ДЕНЬ(ДоговорыКонтрагентов.Дата) КАК ДатаЧисло,
        |   МЕСЯЦ(ДоговорыКонтрагентов.Дата) КАК ДатаМесяц,
        |   ГОД(ДоговорыКонтрагентов.Дата) КАК ДатаГод,
        |   ДоговорыКонтрагентов.Организация.ОсновнойБанковскийСчет КАК БанковскийСчет,
        |   ДоговорыКонтрагентов.Владелец.ОсновнойБанковскийСчет КАК БанковскийСчетКонтрагента
        |ИЗ
        |   Справочник.ДоговорыКонтрагентов КАК ДоговорыКонтрагентов
        |ГДЕ
        |   ДоговорыКонтрагентов.Ссылка = &ДоговорСсылка";
Запрос = Новый Запрос(Текст); 

Запрос.УстановитьПараметр("ДоговорСсылка", ДоговорСсылка); 
РезЗапроса = Запрос.Выполнить();
Если РезЗапроса.Пустой() Тогда

    Возврат Неопределено;   

КонецЕсли; 

ДанныеЗапроса = РезЗапроса.Выгрузить()[0];

ДанныеШапки = Новый Структура("СтавкаСДополнением, НомерДоговора, КонтрагентПолноеНаименование");

ЗаполнитьЗначенияСвойств(ДанныеШапки, ДанныеЗапроса);
ДанныеШапки.Вставить("ДатаДоговора", Формат(ДанныеЗапроса.ДатаДоговора, "ДФ='d MMMM yyyy ''г.'''"));
ДанныеШапки.Вставить("ДоговорПредставление", ДанныеЗапроса.НомерДоговора + " от " 
    + Формат(ДанныеЗапроса.ДатаДоговора, "ДФ=dd.MM.yyyy"));

КонтрагентПодписант = ДанныеЗапроса.Контрагент.ОсновноеКонтактноеЛицо;
КонтрагентПодписантФИО = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку("%1 %2 %3", 
    КонтрагентПодписант.Фамилия, КонтрагентПодписант.Имя, КонтрагентПодписант.Отчество);
ПодписантДолжность = ДанныеЗапроса.Контрагент.ОсновноеКонтактноеЛицо.Должность;

СтавкаВЧас = УправлениеСвойствами.ЗначениеСвойства(ДоговорСсылка, "ДоговорСтавкаВЧас"); 
Если СтавкаВЧас <> Неопределено Тогда

    ДанныеШапки.Вставить("СтавкаСДополнением", РаботаСКурсамиВалют.СформироватьСуммуПрописью(СтавкаВЧас, 
        Константы.ВалютаРегламентированногоУчета.Получить(), Истина) +"(НДС не облагается)");

КонецЕсли;

КонтрагентПодписант_Инициалы = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку("%1 %2.%3.", 
    КонтрагентПодписант.Фамилия, Сред(КонтрагентПодписант.Имя, 1, 1), Сред(КонтрагентПодписант.Отчество, 1, 1));
ДанныеШапки.Вставить("КонтрагентПодписант_Инициалы", КонтрагентПодписант_Инициалы);
ДанныеШапки.Вставить("КонтрагентПодписантРП", СклонениеПредставленийОбъектов.ПросклонятьФИО(КонтрагентПодписантФИО, 2,,1));
ДанныеШапки.Вставить("КонтрагентПодписантДолжностьРП", СклонениеПредставленийОбъектов.ПросклонятьПредставление(Строка(ПодписантДолжность), 2, КонтрагентПодписант));
ДанныеШапки.Вставить("КонтрагентПодписантДолжность", ПодписантДолжность);

ДанныеШапки.Вставить("КонтрагентНаОсновании", "Устава");

ОтветственныеЛица = ОтветственныеЛицаБППереопределяемый.ОтветственныеЛица(ДанныеЗапроса.Организация,ТекущаяДатаСеанса(),);  

ДанныеОрганизации = БухгалтерскийУчетПереопределяемый.СведенияОЮрФизЛице(
    ДанныеЗапроса.Организация, ДанныеЗапроса.ДатаДоговора,ДанныеЗапроса.БанковскийСчет,,);
ПредставлениеОрганизации = ОбщегоНазначенияБПВызовСервера.ОписаниеОрганизации(ДанныеОрганизации, 
    "НаименованиеДляПечатныхФорм,ИНН,ЮридическийАдрес,Телефоны,НомерСчета,Банк,БИК,КоррСчет");
ОрганизацияДоп = РегламентированнаяОтчетностьВызовСервера.ПолучитьСведенияОбОрганизации(
    ДанныеЗапроса.Организация, ТекущаяДатаСеанса(), "ОргСубъект");

СведенияОКонтрагенте = БухгалтерскийУчетПереопределяемый.СведенияОЮрФизЛице(
    ДанныеЗапроса.Контрагент,ДанныеЗапроса.ДатаДоговора,,,);
ПредставлениеКонтрагента= ОбщегоНазначенияБПВызовСервера.ОписаниеОрганизации(СведенияОКонтрагенте,
    "НаименованиеДляПечатныхФорм,ИНН,ЮридическийАдрес,Телефоны,НомерСчета,Банк,БИК,КоррСчет");

РуководительДолжностьПредставление = ОтветственныеЛица.РуководительДолжностьПредставление; 
ОрганизацияПодписантДолжностьРП = СклонениеПредставленийОбъектов.ПросклонятьПредставление(
    РуководительДолжностьПредставление, 2,); 
ОрганизацияПодписант = ОтветственныеЛица.Руководитель;
ОрганизацияПодписантРП = СклонениеПредставленийОбъектов.ПросклонятьФИО(ОрганизацияПодписант.ФИО, 
    2, ОрганизацияПодписант, 1);
ДанныеШапки.Вставить("ОрганизацияПодписантРП", ОрганизацияПодписантРП);
ДанныеШапки.Вставить("ОрганизацияПодписантДолжностьРП", ОрганизацияПодписантДолжностьРП);

ШаблонВЛицеНаОсновании = "%1%2%3, действующ%4 на основании %5, именуем%6";
ШаблонОГРН = "свидетельства о регистрации ОГРНИП №";
Если Справочники.Организации.КодыСтатистики(ДанныеЗапроса.Организация).КодОКОПФ = "50102" Тогда

    ОрганизацияВЛицеНаОсновании = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(ШаблонВЛицеНаОсновании, 
        "","","","ий", 
        ШаблонОГРН + ДанныеОрганизации.ОГРН,
        "ый");
    ЕстьКПП = Ложь;
Иначе   

    ОрганизацияВЛицеНаОсновании = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(ШаблонВЛицеНаОсновании, 
        " в лице ", ОрганизацияПодписантДолжностьРП + " ", ОрганизацияПодписантРП,"его", 
        "Устава", 
        "ое");
    ЕстьКПП = Истина;

КонецЕсли;          
ДанныеШапки.Вставить("ОрганизацияВЛицеНаОсновании", ОрганизацияВЛицеНаОсновании);

Если СведенияОКонтрагенте.ЮридическоеФизическоеЛицо = Перечисления.ЮридическоеФизическоеЛицо.ФизическоеЛицо Тогда

    КонтрагентВЛицеНаОсновании = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(ШаблонВЛицеНаОсновании, 
        "", "", "", "ий", 
        ШаблонОГРН + СведенияОКонтрагенте.ОГРН, 
        "ый");
    ЕстьКППКонтрагента  = Ложь;
Иначе   

    КонтрагентВЛицеНаОсновании = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(ШаблонВЛицеНаОсновании, 
        " в лице ", ДанныеШапки.КонтрагентПодписантДолжностьРП + " ", ДанныеШапки.КонтрагентПодписантРП, "его", 
        "Устава", 
        "ое");
    ЕстьКППКонтрагента  = Истина;

КонецЕсли;          
ДанныеШапки.Вставить("КонтрагентВЛицеНаОсновании", КонтрагентВЛицеНаОсновании);

ИНН_КПП_Строкой = "ИНН" + "%1" + " " + ДанныеОрганизации.ИНН + "%2";

ИНН_КПП_Строкой = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(ИНН_КПП_Строкой, 
    ?(ЕстьКПП, "/КПП", ""), ?(ЕстьКПП, "/" + ДанныеОрганизации.КПП, ""));

ДанныеШапки.Вставить("Город", ОрганизацияДоп.ОргСубъект);

ДанныеШапки.Вставить("ОрганизацияПодписантДолжность", РуководительДолжностьПредставление);

ДанныеШапки.Вставить("ОрганизацияПодписантДолжностьРП", СклонениеПредставленийОбъектов.ПросклонятьПредставление(РуководительДолжностьПредставление, 2, ОрганизацияПодписант));

ДанныеШапки.Вставить("ОрганизацияПодписант_Инициалы", ОтветственныеЛица.РуководительПредставление);

ДанныеШапки.Вставить("ОрганизацияПолноеНаименование", ДанныеОрганизации.ПолноеНаименование);

ДатаОкончанияДействия = ?(ЗначениеЗаполнено(ДанныеЗапроса.ДатаОкончанияДействия), ДанныеЗапроса.ДатаОкончанияДействия, 
    КонецГода(ТекущаяДатаСеанса()));
СрокОкончанияДоговора = Формат(ДатаОкончанияДействия, "ДФ='d MMMM yyyy ''г.'''");

ДанныеШапки.Вставить("СрокОкончанияДоговора", СрокОкончанияДоговора); 
РеквизитыСтрокой = "%1: %2
                    |%3
                    |ОГРН %4
                    |Банковские реквизиты:
                    |р/с  %5
                    |В банке %6
                    |БИК %7
                    |e-mail: %8";

ДанныеБанкСчета = Справочники.БанковскиеСчета.РеквизитыСчета(ДанныеЗапроса.БанковскийСчет);

ОрганизацияРеквизитыСтрокой = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(РеквизитыСтрокой, 
    ДанныеОрганизации.НаименованиеДляПечатныхФорм,
    ДанныеОрганизации.ЮридическийАдрес,
    ИНН_КПП_Строкой,
    ДанныеОрганизации.ОГРН,
    ДанныеБанкСчета.НомерСчета,
    ДанныеБанкСчета.НаименованиеБанка,
    ДанныеБанкСчета.БИКБанка, 
    ДанныеОрганизации.Email);

АдрЮР = УправлениеКонтактнойИнформацией.КонтактнаяИнформацияОбъекта(ДанныеЗапроса.Контрагент, 
    Справочники.ВидыКонтактнойИнформации.ЮрАдресКонтрагента, ТекущаяДатаСеанса(), Истина);

ДанныеБанкСчетаКонтрагента = Справочники.БанковскиеСчета.РеквизитыСчета(ДанныеЗапроса.БанковскийСчетКонтрагента);

EmailКонтрагента = УправлениеКонтактнойИнформацией.КонтактнаяИнформацияОбъекта(ДанныеЗапроса.Контрагент, 
    Справочники.ВидыКонтактнойИнформации.EmailКонтрагенты, ТекущаяДатаСеанса(), Истина);

Если ДанныеБанкСчетаКонтрагента = Неопределено Тогда

    ДанныеБанкСчетаКонтрагента = Новый Структура("НомерСчета, НаименованиеБанка, БИКБанка");    

КонецЕсли;  

ИНН_КПП_Строкой = "ИНН" + "%1" + " " + СведенияОКонтрагенте.ИНН + "%2";

ИНН_КПП_Строкой = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(ИНН_КПП_Строкой, 
    ?(ЕстьКППКонтрагента, "/КПП", ""), ?(ЕстьКППКонтрагента, "/" + СведенияОКонтрагенте.КПП, ""));

КонтрагентРеквизитыСтрокой = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(РеквизитыСтрокой, 
    СведенияОКонтрагенте.НаименованиеДляПечатныхФорм,
    АдрЮР,
    ИНН_КПП_Строкой,
    ОбщегоНазначения.ЗначениеРеквизитаОбъекта(ДанныеЗапроса.Контрагент, "РегистрационныйНомер"),
    ДанныеБанкСчетаКонтрагента.НомерСчета,
    ДанныеБанкСчетаКонтрагента.НаименованиеБанка,
    ДанныеБанкСчетаКонтрагента.БИКБанка,
    EmailКонтрагента);


ДанныеШапки.Вставить("ОрганизацияРеквизитыСтрокой", ОрганизацияРеквизитыСтрокой); 
ДанныеШапки.Вставить("КонтрагентРеквизитыСтрокой", КонтрагентРеквизитыСтрокой);  
ДанныеШапки.Вставить("ОрганизацияРеквизитыСтрокойВАкте", ПредставлениеОрганизации); 
ДанныеШапки.Вставить("КонтрагентРеквизитыСтрокойВАкте", ПредставлениеКонтрагента);  


УстановитьПривилегированныйРежим(Ложь);

Возврат ДанныеШапки; 
КонецФункции

С серверной частью все. Переходим к клиентской. Во первых почему нужен клиентский вызов. Потому что MS Word умеет сохранять документы в PDF, вот такой процедурой: WordDocument.SaveAs(FilePDF, 17). Причем умеет только из приложения, то есть нужно создавать COM-объект Word.Application. А вот COM-объект на сервере — это не только регистрация ком-объекта, но и проблемы с зависанием сессий и затем полная остановка данной функции. Поэтому 1С и сообщество не рекомендует, нужно делать на клиенте.

В клиентском модуле добавляем две процедуры. Собственно наш обработчик ПечатьДоговораОказанияУслуг и собственно процедуру открытия СформироватьWordИОткрытьPDF.

Функция ПечатьДоговораОказанияУслуг(Парам) Экспорт
МассивОбъектов = Парам.ОбъектыПечати;
ИмяМакета = Парам.Идентификатор;    
МакетИДанныеОбъекта = УправлениеПечатьюВызовСервера.МакетыИДанныеОбъектовДляПечати(Парам.МенеджерПечати, ИмяМакета, МассивОбъектов);
СформироватьWordИОткрытьPDF(МассивОбъектов, МакетИДанныеОбъекта, ИмяМакета);
Возврат Истина;

КонецФункции

Процедура СформироватьWordИОткрытьPDF(МассивОбъектов, МакетИДанныеОбъекта, ИмяМакета)

ТипМакета               = МакетИДанныеОбъекта.Макеты.ТипыМакетов[ИмяМакета];
ДвоичныеДанныеМакетов   = МакетИДанныеОбъекта.Макеты.ДвоичныеДанныеМакетов;
Области                 = МакетИДанныеОбъекта.Макеты.ОписаниеОбластей;

Макет = УправлениеПечатьюКлиент.ИнициализироватьМакетОфисногоДокумента(ДвоичныеДанныеМакетов[ИмяМакета], ТипМакета, ИмяМакета);
Если Макет = Неопределено Тогда
    Возврат;
КонецЕсли;

ЗакрытьОкноПечатнойФормы = Ложь;
Попытка
    ПечатнаяФорма = УправлениеПечатьюКлиент.ИнициализироватьПечатнуюФорму(ТипМакета, Макет.НастройкиСтраницыМакета, Макет);
    Если ПечатнаяФорма = Неопределено Тогда
        УправлениеПечатьюКлиент.ОчиститьСсылки(Макет);
        Возврат;
    КонецЕсли;

    Для каждого ДокументСсылка Из МассивОбъектов Цикл

        ДанныеОбъекта = МакетИДанныеОбъекта.Данные[ДокументСсылка][ИмяМакета];
        Область = УправлениеПечатьюКлиент.ОбластьМакета(Макет, Области[ИмяМакета]["Основная"]);
        УправлениеПечатьюКлиент.ПрисоединитьОбластьИЗаполнитьПараметры(ПечатнаяФорма, Область, ДанныеОбъекта, Ложь);

    КонецЦикла;         

Исключение
    ОбщегоНазначенияКлиентСервер.СообщитьПользователю(КраткоеПредставлениеОшибки(ИнформацияОбОшибке()));
    ЗакрытьОкноПечатнойФормы = Истина;
    Возврат;
КонецПопытки;

FilePDF = ПолучитьИмяВременногоФайла("pdf"); 
FileDOC = ПолучитьИмяВременногоФайла("docx"); 

MSWordApp = ПечатнаяФорма.COMСоединение;
MSWordApp.Application.Selection.Collapse();

// Восстановить вид просмотра документа.
Если ПечатнаяФорма.Свойство("ViewType") Тогда
    MSWordApp.Application.ActiveWindow.View.Type = ПечатнаяФорма.ViewType;
КонецЕсли;

MSWordApp.Application.Visible = Истина;
MSWordApp.Activate();

WordDocument = MSWordApp.Application.Documents(1);
WordDocument.SaveAs(FilePDF, 17);
WordDocument.Close(0);

MSWordApp.Application.Quit(); 

УдалитьФайлы(FileDOC);
УправлениеПечатьюКлиент.ОчиститьСсылки(ПечатнаяФорма, ЗакрытьОкноПечатнойФормы);
УправлениеПечатьюКлиент.ОчиститьСсылки(Макет);

ОписаниеОповещения = Новый ОписаниеОповещения();    

НачатьЗапускПриложения(ОписаниеОповещения, FilePDF,);   
КонецПроцедуры

Ну и вуаля — все готово.

Вообще весь код в статье, он мой рабочий, шаблон ворда — изготовите сами на 5 мин, ну а если нужно готовое — качайте готовое с Инфостарта https://infostart.ru/public/1753205/ (если есть стартмани конечно)

Печать по любому шаблону Word Обработка 1С

15:48
20.79 MB
6.3K

Печать в Word из 1С БСП

22:05
29.06 MB
15K

Обзор решения Универсальная печать по шаблонам Word из 1С

01:48
2.37 MB
641

APPLIX RU Печать документов 1С по шаблону WORD Создаем шаблон договора

10:36
13.95 MB
12K

Печатная форма шаблон Microsoft Word для 1С Предприятие 8 3 1 я часть

07:05
9.32 MB
28.3K

Печать договоров по шаблонам MS Word из 1С

04:32
5.97 MB
1.9K

APPLIX RU Мастер печати документов 1С по шаблону WORD

08:20
10.97 MB
477

Как обрабатывать и печатать документы из 1С по шаблонам WORD Скрипт в 1С ЭВОДОК Автоматизатор

03:11
4.19 MB
319

1С Предприятие 8 Работа с Word

08:48
11.58 MB
1.9K

Как в 1С сформировать документ Word

06:19
8.31 MB
343

1С Документооборот Настройка заполнения шаблона файла MS Word

13:24
17.64 MB
1.4K

APPLIX RU Печать документов 1С по шаблону WORD Как запустить и использовать

05:55
7.79 MB
1.1K

APPLIX RU Мастер печати документов 1С по шаблону WORD Общий обзор

04:09
5.46 MB
753

Печатная форма договора контрагента по шаблону выгрузкой в MS Word для 1С УТ 10 3

05:58
7.85 MB
77

Печать договоров в Word из 1С

01:51
2.43 MB
112

Печать в Word из 1с

03:33
4.67 MB
350

Вставка изображений в Word из 1С с Шаблоны Doc

06:49
8.97 MB
2K

Как печатать документы в СRM 1С

54
1.18 MB
49

Универсальная печатная форма договора в формате Word для 1С Розница 2 2

14:37
19.24 MB
198

1С Мастер печати документов в WORD примеры написания скриптов

03:48
5.00 MB
134

Печать договоров в 1С пишем скрипт для обработки

08:57
11.78 MB
401

Печать из 1С в WORD Функционал версии 4 0

11:23
14.98 MB
627

Заготовка для создания обработок печати из 1С в WORD

01:13
1.60 MB
570

Универсальная печатная форма договора в формате Word для 1С УТ 11 3

09:12
12.11 MB
453

Установка Шаблоны Doc для 1С Предприятие

01:59
2.61 MB
194

Как создать печатную форму в 1С без программиста Эводок мастер печати документов Автоматизатор

01:01
1.34 MB
3.4K

Как создать шаблон договора Заполнение шаблона Word Программа Комбинатор Про

16:35
21.82 MB
895

Печать договоров с контрагентами по произвольному шаблону в 1С Предприятие 8

18:10
23.91 MB
6K

1С БСП Подсистема Печать

14:04
18.51 MB
593

1С Мастер печати договоров Запись вебинара

16:50
22.15 MB
21.2K

Формирование документов Word из 1С

06:29
8.53 MB
1.4K

Заполнение 1C таблицы в макете MS Word

01:22
1.80 MB
6K

Создание договора в 1c из шаблона Word или OpenOffice

02:23
3.14 MB
3.8K

Шаблоны Doc для 1С Предприятие из 1С в Word

02:16
2.98 MB
2.5K

Универсальная печатная форма договора в формате Word для 1С УНФ 1 6

08:37
11.34 MB
474

Универсальная печатная форма договора в формате Word для 1С УТ 11 1

10:34
13.91 MB
47

Универсальная форма договора в формате Word для 1С Бухгалтерия Предприятия 3 0

09:13
12.13 MB
177

Вебинар Настройка печатных форм и шаблонов модуль Печатные формы Спец шаблоны Текстовые шаблоны

39:26
51.90 MB
1.7K

Помощники ввода данных печать в Word в Процессах 3 0 16

13:00
17.11 MB
115

Как создать договор в 1С без ошибок за 5 сек Печать договора из 1С ЭВОДОК Автоматизатор

15:06
19.87 MB
4.1K

1С Мастер печати документов WORD Вывести БИК Банка

01:30
1.97 MB
228

1С Обработки Групповая печать документов версия 1 0 0

04:05
5.37 MB
338

BPMonline печатные формы Word

08:10
10.75 MB
38

Универсальная печатная форма договора в формате Word с выводом доп реквизитов для 1С Розница 2 2

14:00
18.42 MB
49

Универсальная печатная форма договора в формате Word с выводом доп реквизитов для 1С УТ 11 1

14:44
19.39 MB
44

3 этап Формирование документа Word из документа или справочника

03:25
4.50 MB
156

Разработка внешних печатных форм 1С

51:52
68.26 MB
6.8K

20 Выгрузка выборки сохранение данных в Word и Excel

01:23
1.82 MB
23

Универсальная форма договора в формате Word для 1С Управление торговлей 10 3

07:18
9.61 MB
401

Инструкция о использовании набора для создания документов Word из 1С 7 7

06:05
8.01 MB
83

Понравилась статья? Поделить с друзьями:
  • Печать в word как распечатать
  • Печать в word границ документа
  • Печать в word python
  • Печать в excel через страницу
  • Печать в excel с подстановкой новых значений