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

Печать - Универсальные печатные формы

Универсальная печать в шаблон документа в формате 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) 473 28.01.13 20:09 Сейчас в теме
2. Александр Савошин (Ctrl P) 192 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) 192 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) 192 31.01.13 20:50 Сейчас в теме
(8) Один файл обработка, один для пимера как "создавать шаблон"...
10. Stas Bobkov (stas1kbob) 33 17.07.13 17:40 Сейчас в теме
примерчик выходного документа бы
11. search search (search) 77 29.07.13 23:57 Сейчас в теме
Идея отличная. Еще бы в колонтитулах замена работала - было бы совсем хорошо
Оставьте свое сообщение