gifts2017

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

Опубликовал Дмитрий (r0610201) в раздел Печать - Универсальные печатные формы

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

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

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

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

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

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

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

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

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

 

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

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

См. также

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

Комментарии

1. Роман Ершов (MRAK) 24.08.11 11:18
А чем типовая не понравилась?

А, хотя вижу. Поля выцепать можно из запроса. Тогда плюс)
2. Дмитрий (r0610201) 24.08.11 11:31
Честно говоря, слабо знаком с типовыми. А какая именно имеется в виду? В БСП, например, используется поиск и замена в документе, а не слияние.
3. Роман Васильев (Klaz) 24.08.11 12:13
Все понравилось вопрос тока если печатная форма на объект не одна печатает обе красивее чтобы можно было выбрать, но еще раз скажу и так хорошо.
Может кто подскажет давно ищу решение чтобы можно созданные печатные формы Word можно было бы прикреплять в автомате к объекту из которого печатался. Тоесть например из договора по шаблону распечатали договор подредактировали и он при закрытии дописался в файлы к договору.
4. Сергей Сытько (8SiriuS8) 26.08.11 15:54
(0) А с таблицами подсистема работает... т.е. добавлять строки таблицы она может или нет... и если нет то как можно сделать чтоб добавляла
5. Oleg Aizatulin (oaizatulin@yahoo.com) 10.09.11 03:34
6. Soul Power (SoulPower) 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. ddd ddd (alexsiswx) 14.10.11 15:59
Да, хорошая вещь. Дорабатывал как то типовую конфу. Но для ознакомления с кодом скачал. Спасибо.
11. Daniela Cebrucean (dana82) 04.05.12 13:41
12. Сергей (evilbit) 15.01.15 10:29
Запрос может быть пакетным? Вопрос снят. Попробовал, работает :).
Для написания сообщения необходимо авторизоваться
Прикрепить файл
Дополнительные параметры ответа