Шаблоны документов

Для управления шаблонами служит кнопка Шаблоны, расположенная в конструкторе на вкладке структуры объекта. Данная кнопка открывает форму со списком шаблонов для выбранного объекта. В меню формы можно создать или изменить шаблон, а через контекстное меню — переименовать или удалить. Конструктор формирует документы на основе шаблонов Microsoft Office Word/Excel/Outlook и OpenOffice/LibreOffice Writer/Calc.


Документы, сформированные в формате OpenDocument (ODF), имеющие расширения .odt (текстовые документы) и .ods (электронные таблицы), соответствуют национальному стандарту открытых офисных приложений в РФ http://minsvyaz.ru

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

Исключение составляет шаблон MS Outlook, так как в нём не предусмотрено программное управление и изменение структуры необходимо производить из файловой системы с сохранением как шаблон.

Использование версии MS Office Starter 2010, которая выпускается с ограничением по функциональности — невозможна, так как она не поддерживает VBA.

Шаблон с данными одной записи

При создании открывается форма, в которой указывается имя и тип формируемого шаблона. После подтверждения указанных данных, в него, в качестве образца, помещаются все поля объекта, которые будут экспортироваться при создании документа. Кроме полей самого объекта, экспортируются также поля тех объектов, на которые имеются ссылки. Формат экспортируемых полей: [Поле объекта], [Ссылка на объект.Поле объекта], [Ссылка на объект.Ссылка на объект.Поле объекта] и т.д.

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

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


Шаблон с данными одной записи и со списками записей дочерних объектов

Блок для дублирования данных по каждой записи дочернего объекта обозначается тэгами с его именем и троеточиями — аналогично списку основного объекта формы:

[ДочернийОбъект1...]
дублируемый блок с полями каждой записи дочернего объекта ДочернийОбъект1
[...ДочернийОбъект1]

[ДочернийОбъект2...]
дублируемый блок с полями каждой записи дочернего объекта ДочернийОбъект2
[...ДочернийОбъект2]

При создании нового шаблона на базе формы с дочерними объектами, в него автоматически добавляется пример заполнения записей дочернего объекта в виде таблицы.

Экспорт полей, добавленных в системный объект дочерней равнозначной связи осуществляется по имени данного системного объекта.

Кроме табличного представления записей возможно заполнение в виде списка (маркированного или нумерованного) или в виде строки. Варианты исполнения:

[ДочернийОбъект...]
[Поле1][Поле2][Поле3][Поле4]
[...ДочернийОбъект]

[ДочернийОбъект...]
    • [Поле];
[...ДочернийОбъект][Del(-3)].

[ДочернийОбъект...][Поле], [...ДочернийОбъект][Del(-2)].

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

Особенности шаблона для MS Outlook

При создании шаблона Microsoft Outlook, он также, как и остальные шаблоны, формируется в папке объекта/формы, но открывается как подготовленное сообщение. Поэтому его сохранение не приводит к изменению созданного шаблона. Для сохранения изменений в самом шаблоне, необходимо сохранить его как "Шаблон Outlook" в папку того-же самого объекта/формы.

Шаблон не поддерживает работу как с дочерними списками, включёнными в форму связи, так и со списком записей основного объекта, на базе которого создана форма связи. Т.е. формирование письма производится без учёта тэгов списков в форме связи, аналогично работе в объекте.


Шаблон со списком записей основного объекта

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

Признаком шаблона со списком записей служит наличие тэгов с именем формы:

[ИмяФормы...]
дублируемый блок с полями каждой записи основного объекта
[...ИмяФормы]

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

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

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

Поля фильтра для такого шаблона экспортируются как обычные поля. Для числового поля, у которого установлена фильтрация по двум дополнительным условиям, к имени поля фильтра через точку добавляется суффикс .1 или .2 (например: [Стоимость.1], [Стоимость.2]). У поля даты, для получения значения фильтра по дню, через точку добавляется суффикс .D, по месяцу — .M, для нижней границы фильтра — .1, для верхней границы фильтра — .2 (например: [Дата.D], [Дата.M], [Дата.1], [Дата.2]). Для экспорта итоговой суммы по числовому полю к нему добавляется префикс total. (например: [total.Сумма]).


Выполнение макроса runa при открытии документа

При необходимости выполнения некоторых действий после открытия документа и заполнения всех полей служит макрос с именем runa (работает для MS Word/Excel).

Для создания макроса в шаблоне открыть окно через меню "Вид"-"Макросы" окно макросов. В имени макроса указать "runa", а свойству "Макрос доступен для:" выбрать "Документов, основанных на ИмяШаблона.dot".

После создания и сохранения макроса, сохранить шаблон.