gifts2017

Универсальная печать в MS Word

Опубликовал Александр Савошин (Ctrl P) в раздел Печать - Универсальные печатные формы

Универсальная печать в шаблон документа в формате MS Word

Понадобилось мне срочно создать несколько форм договоров для ЗУП, пошарил по интырнету ничего похожего не нашел - очень удивился, "наверно плохой из меня искатель", подумал я и решил быстро написать сам. Идея следующая:

Есть документ (договор, например) в формате MS Word

-выделяем в нем "переменные поля";

-берем консоль запроса пишем запрос по получению данных для заполнения документа;

-добавляем текстовый макет в обработку с именем "ТекстЗапроса+Идентификатор документа" из которого будет печататься форма, вставляем в него текст запроса;

-в файле формата MS Word заменяем переменные поля на "параметры" типа %НазваниеОрганизации% и т.д. 

-запускаем обработку указываем путь где лежит наш шаблон и "Печатаем"... 

 

Таким образом основная работа по созданию печатной формы сводится к двум действиям "написать запрос" и "создать шаблон".

 

Обработка подойдет для любой конфигурации, любого документа. Сейчас она была создана для ЗУП, документов Прием на работу и Кадровое перемещение, для использования в других документах, необходимо изменить тип реквизита "СсылкаНаОбъект";

 

В качестве примера с обработкой идет файл шаблон "Дополнительного соглашения" печатается из Кадрового перемещения, ну что бы понятно было, что к чему.

Скачать файлы

Наименование Файл Версия Размер Кол. Скачив.
Обработка
.epf 15,32Kb
28.01.13
150
.epf 15,32Kb 150 Скачать
Шаблон
.doc 35,50Kb
28.01.13
44
.doc 35,50Kb 44 Скачать

См. также

Подписаться Добавить вознаграждение

Комментарии

1. Михаил Зотов (ZOMI) 28.01.13 20:09
2. Александр Савошин (Ctrl P) 28.01.13 21:16
(1) ну будет еще одна, с заявкой на "универсальность" - пролистав первые 5 страниц, я так и не нашел ничего подобного. идея этой обработки - сродни идеи СКД - создать печатную форму не написав ни одной строчки кода...
3. Xolli Xolli (Xolli) 28.01.13 22:07
4. Доржи Балбаров (Angeros) 29.01.13 06:41
На универсальность в данном вопросе всегда кладется в угоду особенностей каждой задачи... В целом конечно все ок. А вот чего не хватает так это возможности вставить уникальный штрих код на каждой странице...
5. Илья Парамонов (Crush) 30.01.13 10:42
Вместо поиска и замены строк вида %параметр78% можно использовать переменные. Скорость не замерял, но интуиция подсказывает, что будет эффективнее.
Заполнять переменные вот так:
Для каждого кз Из Параметры Цикл
ОбъектВорд.Variables.Add(кз.Ключ).Value = кз.Значение;
КонецЦикла;
ОбъектВорд.Fields.Update();

И тут можно почитать: http://support.microsoft.com/kb/306281
6. Александр Савошин (Ctrl P) 30.01.13 13:13
(5)да я рассматривал этот вариант, мне не понравилось то, что один и тот же параметр в разных местах надо называть по разному, т.о. его придется дублировать при заполнении "СтруктурыДанных", т.е. если в договоре встречается 22споловиной раза имя работника, то нужно создать 22споловиной уникальных ключа - мне это показалось излишне геморно... и для создателя "шаблона" и для создателя "набора данных"...
7. Илья Парамонов (Crush) 30.01.13 14:46
(6) Ctrl P, видать о разных вещах говорим. Сейчас попробовал - вставлять можно сколько угодно.
Вставка - экспрес блок - поле - docVariable. Задаешь имя, например: НаименованиеОрганизации
Потом в еще в нескольких местах такое же проделываешь.
Далее выполняешь макрос:
Sub УстановитьПерем()
Dim fName As String
fName = "прироги и копыта"
ActiveDocument.Variables.Add Name:="НаименованиеОрганизации", Value:=fName
MsgBox ActiveDocument.Variables("ad").Value
End Sub

Если нужно изменить значение, то:
Sub Изменить()
ActiveDocument.Variables("НаименованиеОрганизации").Value = "Рюмашка"
Selection.WholeStory
Selection.Fields.Update
End Sub

Простите за мой VB
8. Petr (sevipa) 31.01.13 06:49
А зачем выкладывать двумя файлами?
9. Александр Савошин (Ctrl P) 31.01.13 20:50
(8) Один файл обработка, один для пимера как "создавать шаблон"...
10. Stas Bobkov (stas1kbob) 17.07.13 17:40
примерчик выходного документа бы
11. search search (search) 29.07.13 23:57
Идея отличная. Еще бы в колонтитулах замена работала - было бы совсем хорошо
Для написания сообщения необходимо авторизоваться
Прикрепить файл
Дополнительные параметры ответа