Перейти к основному содержимому

Шаблон печатной формы документа в формате платформы

Общее

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

Свойства формы:

СвойствоТипОписание
NamestringИмя формы
EntityNamestringДля какого сущности данных эта форма
ModelExpressionObjectExpressionВычисляемое выражение, возвращающее объект произвольной структуры, содержащий все необходимые данные для формирования печатной формы документа
FileNameStringExpressionАлгоритм, по которому создаётся имя файла (результата работы печатной формы)
FontSettingsFontSettingsШрифт формы по умолчанию
SpaceBeforeSectionExpressionDoubleExpressionВертикальный отступ перед секцией печатной формы в сантиметрах
DefaultLineSpacingExpressionDoubleExpressionМежстрочный интервал текста внутри секции печатной формы в линиях
FontFamilyExpressionStringExpressionВыражение, возвращающее имя семейства шрифтов секции печатной формы
FontSizeExpressionDoubleExpressionВыражение, возвращающее размер шрифта формы
MarginsPageMarginsОтступы печатной формы от краев страницы
SectionsPrintFormSection[]Секции формы
HeaderPrintFormSection[]Секции, являющиеся «шапкой» (PrintFormSection)
FirstHeaderPrintFormSection[]Секции, являющиеся «шапкой» для первой секции (PrintFormSection)
FooterPrintFormSection[]Секции, являющиеся «подвалом» (PrintFormSection)
FirstFooterPrintFormSection[]Секции, являющиеся «подвалом» для первой секции (PrintFormSection)

Наследники сущности PrintFormSection (виды секций):

СущностьОписание
CityAndDateSectionСекция, выводящая город составления и дату документа.
GridSectionСекция, позволяющая организовать (сверстать) содержимое документа в виде статической таблицы. Является контейнером для других секций.
GridTableSectionСекция, позволяющая организовать (сверстать) содержимое документа в виде таблицы со статическим заголовком и динамическим телом таблицы. Является контейнером для других секций.
HeadingSectionСекция, выводящая заголовок и подзаголовок документа.
NumberAndDateSectionСекция, выводящая дату и номер документа.
PageBlockSectionСекция, вставляющая в документ новый блок страниц с независимой настройкой ориентации, полей и колонтитулов.
PageBreakSectionСекция, вставляющая принудительный разрыв страницы, но не начинающая новый блок страниц документа.
RepeatSectionСекция, получающая в качестве параметра массив произвольных объектов и добавляющая в документ для каждого такого объекта копию вложенных в нее секций.
StartDateEndDateSectionСекция, выводящая блок с датой начала и датой окончания периода.
TableSectionСекция, выводящая таблицу со статическим заголовком и динамическим телом таблицы.
TextSectionСекция, выводящая произвольный форматированный текст.
TitleValueHintSectionСекция, выводящая в документ текст, визуально оформленный как машинописное заполнение формы, предназначенной для заполнения вручную, с возможностью добавления подстрочных подсказок.

Свойства сущности PageMargins:

СвойствоТипОписание
InsideDoubleExpressionВнутреннее поле
TopDoubleExpressionВерхнее поле
OutsideDoubleExpressionВешнее поле
BottomDoubleExpressionВнутреннее поле

Свойства сущности FontSettings:

СвойствоТипОписание
FontFamilystringНазвание шрифта
FontSizedoubleРазмер шрифта

Пример описания печатной формы:

<!-- обязательный заголовок файла, в котором описывается форма -->
<?xml version="1.0" encoding="utf-8"?>
<!-- имя формы, для какого сущности данных эта форма -->
<PrintForm Name="LayoutOfAxesActForm2018" EntityName="LayoutOfAxesAct">
<!-- алгоритм формирования имени файла -->
<FileName>'АРООКС' + (model.Properties.DocumentNumber ? ' №' + model.Properties.DocumentNumber : '') + (model.Properties.DocumentDate ? ' от ' + formatDate(model.Properties.DocumentDate) : '')</FileName>
<!-- шрифт -->
<FontSettings FontFamily="Arial" FontSize="9" />
<FontFamilyExpression>Common.getProjectFontFamily()</FontFamilyExpression>
<FontSizeExpression>Common.getProjectFontSize()</FontSizeExpression>
<!-- поля -->
<Margins>
<Inside>Common.getProjectPageMargins().marginInside</Inside>
<Top>Common.getProjectPageMargins().marginTop</Top>
<Outside>Common.getProjectPageMargins().marginOutside</Outside>
<Bottom>Common.getProjectPageMargins().marginBottom</Bottom>
</Margins>
<!-- секции -->
<Sections>
<!-- секция TitleValueHint -->
<TitleValueHint AllowInlineTitle="!!Project.Properties.AllowInlineTitles" TitleOnly="false" Visible="true" BoldTitle="Common.boldTitles()" BoldValue="Common.boldContent()">
<Title>'Объект строительства'</Title>
<Value>Project.Properties.FullName</Value>
<Hint>'(Наименование объекта строительства)'</Hint>
<TitlePostfix>null</TitlePostfix>
</TitleValueHint>

<!-- секция Heading -->
<Heading Bold="Common.boldTitles()">
<Heading>'АКТ'</Heading>
<Subheading>'разбивки осей объекта капитального строительства на местности'</Subheading>
</Heading>

<!-- секция NumberAndDate -->
<NumberAndDate>
<Number>model.Properties.DocumentNumber</Number>
<Date>model.Properties.DocumentDate</Date>
<DateHint>'(дата составления акта)'</DateHint>
</NumberAndDate>

<!-- секция Repeat -->
<Repeat>
<ArrayExpression Array="model.Properties.ResponsiblePersonGroups">
<TitleValueHint AllowInlineTitle="false" TitleOnly="false" Visible="true" BoldTitle="Common.boldTitles()" BoldValue="Common.boldContent()">
<Title>$item.Properties.RoleTitle</Title>
<Value>PrintForms.responsiblePersonsTextExpression($item)</Value>
<Hint>PrintForms.responsiblePersonsHintExpression($item)</Hint>
<TitlePostfix>null</TitlePostfix>
</TitleValueHint>
</ArrayExpression>
</Repeat>

<!-- секция TitleValueHint -->
<TitleValueHint AllowInlineTitle="true" TitleOnly="false" Visible="true" BoldTitle="Common.boldTitles()" BoldValue="Common.boldContent()">
<Title>'составили настоящий акт о том, что произведена разбивка в натуре осей'</Title>
<Value>model.Properties.Axes</Value>
<Hint>''</Hint>
<TitlePostfix>null</TitlePostfix>
</TitleValueHint>

<!-- секция Text -->
<Text Visible="Common.boldTitles()">
<Chunk Bold="true">'Акт составлен в '</Chunk>
<Chunk Bold="false" Underline="true">model.Properties.NumberOfCopies ? formatInteger(model.Properties.NumberOfCopies) : '____'</Chunk>
<Chunk Bold="true">' экземплярах'</Chunk>
</Text>

<!-- секция TitleValueHint -->
<TitleValueHint AllowInlineTitle="true" TitleOnly="false" Visible="true" BoldTitle="Common.boldTitles()" BoldValue="Common.boldContent()">
<Title>'Приложения'</Title>
<Value>model.Properties.Attachments</Value>
<Hint>'(схема закрепления осей)'</Hint>
<TitlePostfix>null</TitlePostfix>
</TitleValueHint>

<!-- секция Repeat -->
<Repeat>
<ArrayExpression Array="model.Properties.ResponsiblePersonGroups">
<TitleValueHint AllowInlineTitle="false" TitleOnly="false" Visible="true" BoldTitle="Common.boldTitles()" BoldValue="Common.boldContent()">
<Title>$item.Properties.RoleTitle</Title>
<Value>PrintForms.responsiblePersonSignaturesExpression2018($item)</Value>
<Hint>'(фамилия, инициалы, подпись)'</Hint>
<TitlePostfix>null</TitlePostfix>
</TitleValueHint>
</ArrayExpression>
</Repeat>

</Sections>
</PrintForm>