Подсистема универсальной печати с помощью MS Word (управляемые формы).

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

48
Встраиваемая в любую конфигурации подсистема, формирующая печатные формы в MS Word при помощи шаблонов и механизма слияния. Подсистема работает только для управляемых форм.

Для любого объекта метаданных ссылочного типа можно создать шаблон его печати в MS Word. Делается это в несколько шагов:

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

2. Нажимаем на кнопку "Редактировать шаблон", создается новый шаблон MS Word, либо открывается уже отредактированный ранее. Оформляем шаблон MS Word, заменямые поля необходимо добавить как поле слияния (MergeField). В 2010-м офисе это делается в меню Вставка/Экспресс-блоки/Поле. Необходимо, чтобы названия полей соответствовали правилам формирования идентификаторов, т.е. включали в себя только буквы, цифры и знак "_".

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

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

5. Если необходимо, чтобы в объекте (например, справочнике контрагентов), появилась кнопка печати, то этот объект надо включить в состав команды Печать справочника ШаблоныWord - это особенности реализации команд в 8.2. Можно также создавать свои кнопки печати, для этого достаточно прописать вызов одной процедуры из общего модуля с передачей ссылки на шаблон и массива печатаемых объектов.

6. Печатаем, если все настроено правильно, то получаем печатную форму.

Основные приемы для создания подобных шаблонов приведены в паре примеров в приложенном dt. Конфигурация не претендует на законченность, это скорее пример использования механизма слияния и универсальной настройки шаблона. Одна из ключевых особенностей слияния - скорость. Несколько тысяч печатных форм можно сформировать за буквально секунды.

 

48

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

Наименование Файл Версия Размер
Конфигурация с подсистемой и примерами
.dt 57,62Kb
22.08.11
332
.dt 57,62Kb 332 Скачать

См. также

Комментарии
Избранное Подписка Сортировка: Древо
1. MRAK 708 24.08.11 11:18 Сейчас в теме
А чем типовая не понравилась?

А, хотя вижу. Поля выцепать можно из запроса. Тогда плюс)
2. r0610201 213 24.08.11 11:31 Сейчас в теме
Честно говоря, слабо знаком с типовыми. А какая именно имеется в виду? В БСП, например, используется поиск и замена в документе, а не слияние.
3. Klaz 24.08.11 12:13 Сейчас в теме
Все понравилось вопрос тока если печатная форма на объект не одна печатает обе красивее чтобы можно было выбрать, но еще раз скажу и так хорошо.
Может кто подскажет давно ищу решение чтобы можно созданные печатные формы Word можно было бы прикреплять в автомате к объекту из которого печатался. Тоесть например из договора по шаблону распечатали договор подредактировали и он при закрытии дописался в файлы к договору.
4. sytkosa 26.08.11 15:54 Сейчас в теме
(0) А с таблицами подсистема работает... т.е. добавлять строки таблицы она может или нет... и если нет то как можно сделать чтоб добавляла
5. oaizatulin@yahoo.com 10.09.11 03:34 Сейчас в теме
6. SoulPower 4 21.09.11 22:06 Сейчас в теме
Спасибо, полезная публикация
7. Georgsius 04.10.11 22:10 Сейчас в теме
Спасибо, отличная публикация.
А не подскажете, для старых версий офиса будет работать? (2003, 2000) ?
8. Ильяххх 07.10.11 08:50 Сейчас в теме
9. Georgsius 07.10.11 10:29 Сейчас в теме
Я проверил — в 2003 работает, там есть поля слияния
10. alexsiswx 14.10.11 15:59 Сейчас в теме
Да, хорошая вещь. Дорабатывал как то типовую конфу. Но для ознакомления с кодом скачал. Спасибо.
11. dana82 04.05.12 13:41 Сейчас в теме
12. evilbit 11 15.01.15 10:29 Сейчас в теме
Запрос может быть пакетным? Вопрос снят. Попробовал, работает :).
Оставьте свое сообщение