# Разработка Эл. документа - Редактор печатной формы



# Создание печатной формы

После того как шаблон готов и настроен, необходимо создать для него печатную форму. Следует нажать либо на кнопку «Создать», либо на кнопку «Редактировать». Так как у новых шаблонов пока нет печатных форм, то автоматически будет создана новая ПФ.

В процессе создания ПФ отобразиться окно с параметрами (рисунок 1).

<div id="bkmrk-%D0%A0%D0%B8%D1%81%D1%83%D0%BD%D0%BE%D0%BA-1---%D0%A1%D0%BE%D0%B7%D0%B4%D0%B0%D0%BD%D0%B8%D0%B5" style="text-align: center;">[![изображение.png](https://docs.medicine-it.ru/uploads/images/gallery/2026-03/scaled-1680-/Xcuizobrazenie.png)](https://docs.medicine-it.ru/uploads/images/gallery/2026-03/Xcuizobrazenie.png)Рисунок 1 - Создание бланка печатной формы  
  
</div>- "Наименование" - по умолчанию задается цифрами, согласно очередности создания, но при необходимости, можно указать свой вариант.
- "Филиал" - поле отвечающее за отображение выбранной формы в рамках какого-либо филиала, если врач оформляющий документ не относиться к выбранному филиалу, то распечатать данный бланк не получиться.
- "Индекс сортировки" - поле заполняется автоматически и не допустимо к редактированию. Если печатных форм несколько, поле отвечает приоритет очередность отображение формы среди других печатных форм.
- "Выбор формата печати" - настройка отвечает за возможность при печати конечным пользователем, выбирать формат страницы, вместо заданного по умолчанию значения. Настройки такой печати будут подтягиваться в зависимости от настроек имеющегося принтера конечного пользователя.

Если шаблон имеет уже одну печатную форму, то для их редактирования необходимо нажимать на кнопку «Редактировать».

Помимо основной формы, можно создавать любое количество дополнительных форм, используя кнопку «Создать». При этом по умолчанию имена форм будет продолжать существующую нумерацию, но при необходимости, можно и задать собственное название форм.

<span>Если требуется изменить параметры ПФ например название, очередность отображение, выбор формата печати изменить или изменить порядок, но при этом оставить её содержимое без изменений, то на кнопке «Редактировать» есть дополнительный функционал «Редактировать данные печатных форм» (рисунок 2).</span>

<div id="bkmrk-%D0%A0%D0%B8%D1%81%D1%83%D0%BD%D0%BE%D0%BA-1-%E2%80%93-%D0%A0%D0%B5%D0%B4%D0%B0%D0%BA%D1%82%D0%B8%D1%80" style="text-align: center;">[![Clip2net_260508153731.png](https://docs.medicine-it.ru/uploads/images/gallery/2026-05/clip2net-260508153731.png)](https://docs.medicine-it.ru/uploads/images/gallery/2024-04/ZAIimage.png)Рисунок 2 – Редактирование имени печатной формы  
  
</div>В процессе создания/редактирования ПФ могут возникнуть следующие ошибки:

- <span> </span>Ошибка несоответствия типов переменных. Сама по себе ошибка не критичная, её можно проигнорировать (рисунок 3).

<div id="bkmrk-%D0%A0%D0%B8%D1%81%D1%83%D0%BD%D0%BE%D0%BA-2---%D0%9E%D1%88%D0%B8%D0%B1%D0%BA%D0%B0-%D0%BD" style="text-align: center;">[![image.png](https://docs.medicine-it.ru/uploads/images/gallery/2024-04/scaled-1680-/6VXimage.png)](https://docs.medicine-it.ru/uploads/images/gallery/2024-04/6VXimage.png)Рисунок 3 - Ошибка несоответствия типов переменных  
  
</div>- <span>Ошибка о наличии неизвестной переменной в ПФ. Данная ошибка указывает на то, что в ПФ указана переменная с именем, которую система не может сопоставить в редакторе шаблона. Данная ошибка возникает при опечатках или при переименовании элементов в редакторе шаблона, а также при их удалении. Для её устранения необходимо зайти в ПФ, найти переменную и либо исправить её имя на имя как в переименованном элементе, либо удалить (рисунок 4). </span>

<div id="bkmrk-%D0%A0%D0%B8%D1%81%D1%83%D0%BD%D0%BE%D0%BA-3---%D0%9E%D1%88%D0%B8%D0%B1%D0%BA%D0%B0-%D0%BE" style="text-align: center;">[![image.png](https://docs.medicine-it.ru/uploads/images/gallery/2024-04/scaled-1680-/NUsimage.png)](https://docs.medicine-it.ru/uploads/images/gallery/2024-04/NUsimage.png)Рисунок 4 - Ошибка о наличии неизвестной переменной в ПФ  
  
</div>После того как ПФ создана, она будет выглядеть примерно следующим образом (рисунок 5):

<div id="bkmrk-%D0%A0%D0%B8%D1%81%D1%83%D0%BD%D0%BE%D0%BA-4-%E2%80%93-%D0%9F%D1%80%D0%B8%D0%BC%D0%B5%D1%80-%D1%81" style="text-align: center;">[![image.png](https://docs.medicine-it.ru/uploads/images/gallery/2024-04/scaled-1680-/yV4image.png)](https://docs.medicine-it.ru/uploads/images/gallery/2024-04/yV4image.png)Рисунок 5 – Пример созданной ПФ  
  
</div>Если в шаблоне имеется элемент "Таблица", то автоматически будут созданы данные для её отображения с названиями "Table\_1\_element\_4" и "Table\_2\_element\_4" (рисунок 6).

<table border="1" id="bkmrk-%D0%97%D0%B0%D0%BF%D1%80%D0%B5%D1%89%D0%B5%D0%BD%D0%BE-%D1%83%D0%B4%D0%B0%D0%BB%D1%8F%D1%82%D1%8C%21-%D0%AD" style="border-collapse: collapse; width: 100%; border-width: 1px; background-color: #fff200;"><colgroup><col style="width: 99.8818%;"></col></colgroup><tbody><tr><td>**<span>Запрещено удалять! </span>**<span>Э</span><span>лементы "Table\_1\_element\_4" и "Table\_2\_element\_4"</span><span>, иначе будет ошибка и ПФ не будет распечатана (рисунок 7).</span>

</td></tr></tbody></table>

<div id="bkmrk-%D0%A0%D0%B8%D1%81%D1%83%D0%BD%D0%BE%D0%BA-5-%E2%80%93-%D0%9F%D1%80%D0%B8%D0%BC%D0%B5%D1%80-%D1%81" style="text-align: center;">[![image.png](https://docs.medicine-it.ru/uploads/images/gallery/2024-04/scaled-1680-/Sojimage.png)](https://docs.medicine-it.ru/uploads/images/gallery/2024-04/Sojimage.png)Рисунок 6 – Пример созданной ПФ с таблицей  
  
</div><div id="bkmrk-%D0%A0%D0%B8%D1%81%D1%83%D0%BD%D0%BE%D0%BA-6-%E2%80%93-%D0%9E%D1%88%D0%B8%D0%B1%D0%BA%D0%B0-%D0%BF" style="text-align: center;">[![image.png](https://docs.medicine-it.ru/uploads/images/gallery/2024-04/scaled-1680-/e2qimage.png)](https://docs.medicine-it.ru/uploads/images/gallery/2024-04/e2qimage.png)Рисунок 7 – Ошибка печати при удалении элементов "Table_1_element_4" и "Table_2_element_4"  
  
</div>Все элементы редактора как правило описываются в элементе <span>RichReport</span>\_1. Сам элемент всегда находится в подобие группы <span>MasterDate</span><span> </span>с именем <span>Dannie</span>\_1. Если в ПФ не будет хотя бы одного из этих элементов с точно такими же именами, то ПФ может работать не корректно.

<table border="1" id="bkmrk-%D0%97%D0%B0%D0%BF%D1%80%D0%B5%D1%89%D0%B5%D0%BD%D0%BE-%D1%83%D0%B4%D0%B0%D0%BB%D1%8F%D1%82%D1%8C%21-%D0%A1" style="border-collapse: collapse; width: 100%; border-width: 1px; background-color: #fff200;"><colgroup><col style="width: 99.8818%;"></col></colgroup><tbody><tr><td>**<span>Запрещено удалять! </span>**<span>Служебные элементы </span><span>RichReport</span><span>\_1 и группу </span><span>Dannie</span><span>\_1, иначе печатная форма не будет работать.</span>

</td></tr></tbody></table>

# Основные элементы печатной формы

Все элементы для ПФ находятся в левой группе напротив дерева объектов. Основными из них являются:

[![image.png](https://docs.medicine-it.ru/uploads/images/gallery/2024-04/scaled-1680-/GMTimage.png)](https://docs.medicine-it.ru/uploads/images/gallery/2024-04/GMTimage.png)<span> – группы </span><span>элементов (Данные 1 уровня), применять «Данные» других уровней для ПФ шаблонов не желательно, так как они используются для более сложной отчетности (рисунок 1).</span>

<div id="bkmrk-%D0%A0%D0%B8%D1%81%D1%83%D0%BD%D0%BE%D0%BA-1-%E2%80%93-%D0%93%D1%80%D1%83%D0%BF%D0%BF%D1%8B-%D1%8D" style="text-align: center;"><span></span>[![G5nimage.png](https://docs.medicine-it.ru/uploads/images/gallery/2024-04/scaled-1680-/g5nimage.png)](https://docs.medicine-it.ru/uploads/images/gallery/2024-04/g5nimage.png)Рисунок 1 – Группы элементов ПФ</div>В данных группах располагаются описанные ниже элементы, но для того, чтобы эти элементы отображались, саму группу необходимо настроить. Для этого нужно нажать на неё два раза левой клавишей мыши, в результате откроется окно настроек данных (рисунок 2):

<div id="bkmrk-%D0%A0%D0%B8%D1%81%D1%83%D0%BD%D0%BE%D0%BA-2-%E2%80%93-%D0%9E%D0%BA%D0%BD%D0%BE-%D0%B4%D0%B0%D0%BD" style="text-align: center;">[![image.png](https://docs.medicine-it.ru/uploads/images/gallery/2024-04/scaled-1680-/BzTimage.png)](https://docs.medicine-it.ru/uploads/images/gallery/2024-04/BzTimage.png)Рисунок 2 – Окно данных для <span>MasterDate</span></div>Если для группы используются данные из запроса, то в списке источников данных нужно выбрать требуемый запрос.

Если нужны просто данные из редактора шаблона, то необходимо изменить параметр «Количество записей» с «0» на «1». Можно указать и другое значение, но в этом случае на печать будет выведено столько копий данных, сколько было указано в поле.

Если в редакторе шаблона был добавлен элемент «Таблица» то, в ПФ программа создаст специализированный набор элементов для отображения данной таблицы (рисунок 3).

<div id="bkmrk-%D0%A0%D0%B8%D1%81%D1%83%D0%BD%D0%BE%D0%BA-3-%E2%80%93-%D0%9C%D0%B0%D0%BA%D0%B5%D1%82-%D0%BF%D0%B5" style="text-align: center;">[![image.png](https://docs.medicine-it.ru/uploads/images/gallery/2024-04/scaled-1680-/dW6image.png)](https://docs.medicine-it.ru/uploads/images/gallery/2024-04/dW6image.png)Рисунок 3 – Макет печатной формы с выводом таблицы</div>Не зависимо от того как ранее были выровнены колонки в редакторе шаблона для таблицы в ПФ так же необходимо настроить поля, но в отличии от редактора шаблона, тут нет ограничений по символам, а используя дополнительные элементы можно привести печатную форму к регламентному виду. Автоматически созданные служебные колонки можно удалить (рисунок 4).

<div id="bkmrk-%D0%A0%D0%B8%D1%81%D1%83%D0%BD%D0%BE%D0%BA-4-%E2%80%93-%D0%A1%D0%BB%D1%83%D0%B6%D0%B5%D0%B1%D0%BD%D1%8B" style="text-align: center;">[![oS4image.png](https://docs.medicine-it.ru/uploads/images/gallery/2024-04/scaled-1680-/os4image.png)](https://docs.medicine-it.ru/uploads/images/gallery/2024-04/os4image.png)Рисунок 4 – Служебные колонки</div>В ПФ сформированных для вывода таблицы последняя <span>MasterData</span> с её содержимым в виду особенностей кода, всегда будет иметь иной размер и шрифт, поэтому для приведения их к единому стилю, так же необходима редакция.

Если в шаблоне использовался элемент «Результаты анализов», то при формировании печатной формы будет создан специализированный макет (рисунок 5).

<div id="bkmrk-%D0%A0%D0%B8%D1%81%D1%83%D0%BD%D0%BE%D0%BA-5-%E2%80%93-%D0%9C%D0%B0%D0%BA%D0%B5%D1%82-%D0%9F%D0%A4" style="text-align: center;">[![image.png](https://docs.medicine-it.ru/uploads/images/gallery/2024-04/scaled-1680-/zU6image.png)](https://docs.medicine-it.ru/uploads/images/gallery/2024-04/zU6image.png)Рисунок 5 – Макет ПФ для отображения результатов анализов</div>Элемент «AnalisisOrientir1» также запрещено удалять и переименовывать. Если шаблон не большой, данный элемент отрабатывает без ошибок. Если данный элемент используется в громоздком регламентном документе, то рекомендуется переделать структуру вывода результатов исследований под специализированный формат (будет описан ниже).

Элементы, используемые в ПФ:

[![image.png](https://docs.medicine-it.ru/uploads/images/gallery/2024-04/scaled-1680-/gN5image.png)](https://docs.medicine-it.ru/uploads/images/gallery/2024-04/gN5image.png)<span> – элемент «Rich1». В данном элементе задаются переменные, которые будут отображены. По умолчанию новый элемент называется «Rich», но для того, чтобы он работал корректно, его имя необходимо заменять на «</span><span>RichReport</span><span>\_№» с указанием цифры.</span>

<table border="1" id="bkmrk-%D0%92%D0%BD%D0%B8%D0%BC%D0%B0%D0%BD%D0%B8%D0%B5%21-%D0%95%D1%81%D0%BB%D0%B8-%D1%86%D0%B8%D1%84%D1%80%D1%8B" style="border-collapse: collapse; width: 100%; border-width: 1px; background-color: #fff200;"><colgroup><col style="width: 99.8818%;"></col></colgroup><tbody><tr><td>**<span>Внимание!</span>**<span> Если цифры не будут располагаться по порядку, то выбивающийся элемент будет работать как «Rich» или «</span><span>Memo</span><span>». Например, если в ПФ есть элементы с именами: ‘</span><span>RichReport</span><span>\_1’, ‘</span><span>RichReport</span><span>\_2’ и ‘</span><span>RichReport</span><span>\_4’, то данные из элемента ‘</span><span>RichReport</span><span>\_4’ могут отобразиться не корректно, так как пропущен элемент с именем ‘</span><span>RichReport</span><span>\_3’.</span>

</td></tr></tbody></table>

##### **Редактирование переменных в элементах**

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

<div id="bkmrk-%D0%A0%D0%B8%D1%81%D1%83%D0%BD%D0%BE%D0%BA-6-%E2%80%93-%D0%A0%D0%B5%D0%B4%D0%B0%D0%BA%D1%82%D0%BE%D1%80" style="text-align: center;">[![image.png](https://docs.medicine-it.ru/uploads/images/gallery/2024-04/scaled-1680-/Xk0image.png)](https://docs.medicine-it.ru/uploads/images/gallery/2024-04/Xk0image.png)Рисунок 6 – Редактор элемент Rich</div>Все переменные по умолчанию заключены в служебные скобки \[&lt;&gt;\]. В программе допускается использование переменные без треуголных скобок &lt;&gt;, но в этом случаи выводимый документ будет очищать форматирование. Например если врач в выводимом поле сделает часть текста жирным, но в печатной форме элемент заключен только в квадратные скобки, то на печати документ выйдет в виде обычного текста.

Если необходимо отобразить надпись элемента из редактора шаблона, то переменную следует ввести в следующем виде: \[&lt;Надпись\_&gt;\] и после нижнего подчеркивания указать имя элемента из редактора шаблона. По умолчанию элементы редактора шаблона при создании ПФ уже будут прописаны в автоматически созданных элементах. Если в редакторе добавляется новый элемент, то его так же нужно добавить и в ПФ.

Порядок отображения полей в редакторе шаблона и на ПФ могут отличаться.

В программе заложены служебные переменные, например:

- \[&lt;<span>DOC</span>\_<span>INFO</span>&gt;\] - отображает информацию Ф.И.О. пациента и номер карты.
- \[&lt;<span>DATEDOC</span>&gt;\] - отображает дату и время документа.
- \[&lt;<span>DOC</span>\_<span>NAME</span>&gt;\] - отображает название документа.

Для того чтобы вызвать служебные переменные, вшапке окна редактора, необходимо нажать на кнопку «Вставить выражение» [![изображение.png](https://docs.medicine-it.ru/uploads/images/gallery/2024-04/scaled-1680-/6Hxizobrazenie.png)](https://docs.medicine-it.ru/uploads/images/gallery/2024-04/6Hxizobrazenie.png) В открывшемся окне, необходимо перейти на вкладке «Переменные» (рисунок 7).

<div id="bkmrk-%D0%A0%D0%B8%D1%81%D1%83%D0%BD%D0%BE%D0%BA-7---%D0%A1%D0%BF%D0%B8%D1%81%D0%BE%D0%BA-%D1%81" style="text-align: center;">[![изображение.png](https://docs.medicine-it.ru/uploads/images/gallery/2024-04/scaled-1680-/4Jcizobrazenie.png)](https://docs.medicine-it.ru/uploads/images/gallery/2024-04/4Jcizobrazenie.png)Рисунок 7 - Список служебных переменных в окне редактора выражений.</div>Для удобства работы переменные разделены на категории:

- Пациент - Служеные переменные отображающие наиболее исспользуемую информацию о пациенте (Ф.И.О., пол, возраст, адреса проживания и т.д.) использование переменных данной группы позволяет выводить нужную информацию при печати документа, без добавления аналогичного поля в осмотр.
- Карта - Служебные имена отображающие данные по карте пациента (Номер карты пациента, ФИО врача и т.д.).
- Электронный документ - Служебные имена отображающие данные по текущему осмотру (Дата документа, название документа и т.д).
- Макет - Служебные имена отображающие данные полей из которых состоит осмотр. Тут отображаются все элементы добавленные в осмотр на этапе разработки макета.
- Общие - Служебные имена отображающие данные об ЛПУ (Наименование, Адреса, ОГРН, ИНН ЛПУ и т.д. )
- Системные - Служебные имена отображающие узкоспицефические данные, например для автоматической нумерации страниц.

Помимо вкладки «Переменные», в редакторе выражений есть ещё три вкладки:

- «Поля БД» - На данной вкладке отображаются данные которые были получены в результате написания для шаблона SQL-запроса. Запросы отображаются не в виде данного им наименования, а в виде кода frxdsShabRep в конце которого ставиться порядковый номер запроса (рисунок 8). Имена полей, которые при этом выведет запрос остаются такими же как и в самом SQL-запросе.  
    <div style="text-align: center;">[![изображение.png](https://docs.medicine-it.ru/uploads/images/gallery/2024-04/scaled-1680-/0wyizobrazenie.png)](https://docs.medicine-it.ru/uploads/images/gallery/2024-04/0wyizobrazenie.png)Рисунок 8 - Переменные полученные из SQL-запроса прописанного в осмотре</div>

<table border="1" cellpadding="0" cellspacing="0" class="MsoTableGrid" id="bkmrk-%D0%92%D0%B0%D0%B6%D0%BD%D0%BE%21-%D0%94%D0%BB%D1%8F-%D0%B8%D1%81%D1%81%D0%BF%D0%BE%D0%BB%D1%8C%D0%B7%D0%BE" style="width: 100.0%; border-collapse: collapse; border: none; mso-border-alt: dash-small-gap red 1.5pt; mso-yfti-tbllook: 1184; mso-padding-alt: 0cm 5.4pt 0cm 5.4pt; mso-border-insideh: 1.5pt dash-small-gap red; mso-border-insidev: 1.5pt dash-small-gap red;" width="100%"><tbody><tr style="mso-yfti-irow: 0; mso-yfti-firstrow: yes; mso-yfti-lastrow: yes;"><td style="width: 100.0%; border: none; background: yellow; padding: 0cm 5.4pt 0cm 5.4pt;" valign="top" width="100%">**Важно!** Для исспользования данных воозможностей программы, необходимы знания языка запросов <span>SQL</span>, понимание что та или иная переменная выведет, а также знание структуры базы данных. При отсутствии данных знаний пользоваться данным функционалом не рекомендуется. По любым вопросам связанным с исспользование данной вкладки, следует обращаться в ТП Медицина-ИТ.

</td></tr></tbody></table>

- «Функции» - На данной вкладке отображаентся набор команд, которые производят обработку над имеющимися данными и возвращают полученный после произведенных манипуляций результат. Для удобства исспользования, функции так же разделены на соответствующие группы (рисунок 9).

<div id="bkmrk-%D0%A0%D0%B8%D1%81%D1%83%D0%BD%D0%BE%D0%BA-9---%D0%9F%D1%80%D0%B8%D0%BC%D0%B5%D1%80-%D0%B8" style="text-align: center;">[![изображение.png](https://docs.medicine-it.ru/uploads/images/gallery/2024-04/scaled-1680-/4W2izobrazenie.png)](https://docs.medicine-it.ru/uploads/images/gallery/2024-04/4W2izobrazenie.png)Рисунок 9 - Пример исспользования функции в редакторе выражений  
  
</div>При исспользовании функции, под большинством из них дано описание и требуемый синтаксис. Для примера приведена функция Lenght() высчитывающая длину заданной в ней переменной. В качестве переменной была исспользована служебная переменная &lt;PAT\_TITLE&gt; которая выводит Ф.И.О. пациента. Результатом исспользования данной функции будет число укзаывающее из скольки символов состоит Ф.И.О. пациента.

<table border="1" cellpadding="0" cellspacing="0" class="MsoTableGrid" id="bkmrk-%D0%92%D0%B0%D0%B6%D0%BD%D0%BE%21-%D0%A4%D1%83%D0%BD%D0%BA%D1%86%D0%B8%D0%B8-%D0%BA%D0%B0%D0%BA-%D0%BF" style="width: 100.0%; border-collapse: collapse; border: none; mso-border-alt: dash-small-gap red 1.5pt; mso-yfti-tbllook: 1184; mso-padding-alt: 0cm 5.4pt 0cm 5.4pt; mso-border-insideh: 1.5pt dash-small-gap red; mso-border-insidev: 1.5pt dash-small-gap red;" width="100%"><tbody><tr style="mso-yfti-irow: 0; mso-yfti-firstrow: yes; mso-yfti-lastrow: yes;"><td style="width: 100.0%; border: none; background: yellow; padding: 0cm 5.4pt 0cm 5.4pt;" valign="top" width="100%">**Важно!** Функции как правило исспользуются для более сложных документов требующих различные расчеты и вычисления. Исспользование данного функционала без должного опыта не рекомендуется и может привести к критическим ошибкам. По любым вопросам связанным с исспользование данной вкладки, следует обращаться в ТП Медицина-ИТ.

</td></tr></tbody></table>

- «Классы» - На данной вкладке расположена информация описывающая различные объекты, свойства и возможжности исспользуемые в программе. В обычно практике иссползование данной вкладки не целесообразно.

<table border="1" cellpadding="0" cellspacing="0" class="MsoTableGrid" id="bkmrk-%D0%92%D0%BD%D0%B8%D0%BC%D0%B0%D0%BD%D0%B8%D0%B5%21-%D0%92%D0%BE-%D0%B8%D0%B7%D0%B1%D0%B5%D0%B6%D0%B0%D0%BD" style="width: 104.22%; border-collapse: collapse; border: medium; height: 23px;" width="100%"><tbody><tr style="mso-yfti-irow: 0; mso-yfti-firstrow: yes; mso-yfti-lastrow: yes;"><td style="width: 100.0%; border: none; background: yellow; padding: 0cm 5.4pt 0cm 5.4pt;" valign="top" width="100%">**Внимание!** Во избежании критических ошибок исспользование функционала данной вкладке - запрещяется!

</td></tr></tbody></table>

Кроме того, в шапке окна редактирования переменных располагается набор функциональных кнопок для выравнивания текста, изменения размера и шрифта отображаемых данных.

Для элемента «<span>RichReport</span>» используется дополнительный функционал. Если поле в электронном документе пользователем не заполнено, то элемент «<span>RichReport</span>» пропустит данное поле и подтянет на его место данные из следующего заполненного. Так же для данного элемента работают все настройки, введённые в редактор шаблона для того или иного поля («Печать точки зависит от», «Печать запятой зависит от», формулы, форматирования и т.д.).

[![image.png](https://docs.medicine-it.ru/uploads/images/gallery/2024-04/scaled-1680-/I1cimage.png)](https://docs.medicine-it.ru/uploads/images/gallery/2024-04/I1cimage.png) – э<span>лемент «</span><span>Memo</span><span>». Данный элемент используется для отображения статичных данных. На него не действуют формулы, форматирование, заложенное для переменных в редакторе шаблона. Например, если в данном элементе прописать надпись элемента, то она всегда будет отображаться на печати, даже если пользователь не заполнит данное поле.</span>

[![image.png](https://docs.medicine-it.ru/uploads/images/gallery/2024-04/scaled-1680-/1xMimage.png)](https://docs.medicine-it.ru/uploads/images/gallery/2024-04/1xMimage.png) – элемент «Вложенный отчет». Данный элемент используется для создания отдельной дополнительной страницы (отчета), внутри документа. Таким образом, вначале выполняется часть, описанная внутри «Вложенного отчета», а потом результат выводится в заранее отведенное для него место.

##### **Структура оформления для работы «Результаты исследования»:**

Для корректного отображения результатов анализов в заданном месте, необходимо:

1\) Создать Данные 1-го уровня и установить количество записей равное «1»;

2\) Добавить в Данные 1-го уровня элемент «Вложенный отчет».

3\) Переместить <span>MasterData</span> на то место, где необходимо выводить результаты анализа (например, выводить данные перед таблицей) (рисунок 10).

<div id="bkmrk-%D0%A0%D0%B8%D1%81%D1%83%D0%BD%D0%BE%D0%BA-10-%E2%80%93-%D0%94%D0%BE%D0%B1%D0%B0%D0%B2%D0%BB%D0%B5" style="text-align: center;">[![image.png](https://docs.medicine-it.ru/uploads/images/gallery/2024-04/scaled-1680-/10nimage.png)](https://docs.medicine-it.ru/uploads/images/gallery/2024-04/10nimage.png)Рисунок 10 – Добавление в макет ПФ структуры для вывода результатов анализов</div>4\) При добавлении «Вложенного отчета», автоматически будет создана страница «<span>Subreport</span>№». Необходимо перейти на эту страницу и создать новую <span>MasterData</span> с параметром «Количество записей» равное «1» (рисунок 11).

<div id="bkmrk-%D0%A0%D0%B8%D1%81%D1%83%D0%BD%D0%BE%D0%BA-11-%E2%80%93-%D0%94%D0%BE%D0%B1%D0%B0%D0%B2%D0%BB%D0%B5" style="text-align: center;">[![image.png](https://docs.medicine-it.ru/uploads/images/gallery/2024-04/scaled-1680-/9Climage.png)](https://docs.medicine-it.ru/uploads/images/gallery/2024-04/9Climage.png)Рисунок 11 – Добавление и редактирование страницы <span>Subreport</span></div>5\) Вырезать в дереве объектов элемент «AnalisisOrientir1» и вставить его в новую <span>MasterData</span> на странице <span>Subreport</span> (рисунок 12).

<div id="bkmrk-%D0%A0%D0%B8%D1%81%D1%83%D0%BD%D0%BE%D0%BA-12-%E2%80%93-%D0%98%D1%82%D0%BE%D0%B3%D0%BE%D0%B2%D1%8B" style="text-align: center;">[![image.png](https://docs.medicine-it.ru/uploads/images/gallery/2024-04/scaled-1680-/dz5image.png)](https://docs.medicine-it.ru/uploads/images/gallery/2024-04/dz5image.png)Рисунок 12 – Итоговый вид страницы <span>Subreport</span></div>6\) Выровнять все элементы, чтобы на печати данные выводились аккуратно и без излишних пропусков. В нашем примере:

Для <span>MasterData</span>1 и <span>MasterData</span>2 ставим признак **<span>Stretched</span>=<span>true</span>**.

У<span> </span>элемента<span> AnalisisOrientir1 </span>меняем<span> </span>параметры<span> **Align=baClient**.</span>

Для<span> </span>элемента<span> Subreport1 </span>меняем<span> **Align=baClient**.</span>

Таким образом, если на пациента будут готовы результаты анализов, они корректно отобразятся в заданном месте (перед таблицей) и самостоятельно растянут требуемые элементы, в которых они находятся до нужной высоты и ширины. Если же таких результатов не будет, то так как у элементов все размеры и настройки равны «0», то и на печати не будет пробелов.

##### **Создание новой страницы в ПФ**

Если документ состоит из нескольких отдельных листов, то и в ПФ можно разграничить их, создав новые страницы. Для этого вверху на панели страниц документа, необходимо нажать правой кнопкой мыши и выбрать из списка пункт «Новая страница» (рисунок 13).

<div id="bkmrk-%D0%A0%D0%B8%D1%81%D1%83%D0%BD%D0%BE%D0%BA-13-%E2%80%93-%D0%A1%D0%BE%D0%B7%D0%B4%D0%B0%D0%BD%D0%B8" style="text-align: center;">[![image.png](https://docs.medicine-it.ru/uploads/images/gallery/2024-04/scaled-1680-/5Mkimage.png)](https://docs.medicine-it.ru/uploads/images/gallery/2024-04/5Mkimage.png) Рисунок 13 – Создание новой страницы</div>Если необходимо изменить формат, размер, ориентацию страниц, то так же на панели страниц, следует вызвать меню, но выбирать пункт «Настройки страницы». В открывшемся окне можно задать все требуемые данные (рисунок 14).

<div id="bkmrk-%D0%A0%D0%B8%D1%81%D1%83%D0%BD%D0%BE%D0%BA-14-%E2%80%93-%D0%9F%D0%B0%D1%80%D0%B0%D0%BC%D0%B5%D1%82" style="text-align: center;">[![image.png](https://docs.medicine-it.ru/uploads/images/gallery/2024-04/scaled-1680-/RBeimage.png)](https://docs.medicine-it.ru/uploads/images/gallery/2024-04/RBeimage.png)Рисунок 14 – Параметры страницы</div>После всех манипуляций, необходимо отдельно сохранить ПФ и пересохранить сам шаблон в редакторе шаблона. Макет ПФ новой страницы, оформляется также, как и макет основного листа ПФ.

# Основные параметры элементов и групп печатной формы

**<span>Align</span>** – выравнивание элементов относительно других элементов.

**<span>AllowHTMLTags</span>** – параметр для <span>Memo</span> элементов, позволяет использовать внутри элемента <span>html</span> тэги.

**<span>AllowSplit</span><span> </span>**– параметр для <span>MasterData</span>, параметр разрешает разрывать содержимое «Данных уровня».

**AutoWidth** – параметр для <span>Memo</span>. Растягивает элемент по ширине в зависимости от его наполнения.

**<span>FlowTo</span>** – если данные не помещаются для отображения в элементе, то в данном параметре указывается другой такой же элемент, где они продолжат выводиться.

**<span>Height</span>** – высота элемента.

**HideZeros** – если в элементе находится переменная равная "0", то при включенном параметре она будет скрыта.

**<span>Left</span>** – отступ элемента по левому краю от границы.

**<span>LineSpacing</span>** – задает промежуток между строками элемента.

**<span>Name</span>** – имя элемента.

**<span>ParagrahGap</span>** – позволяет задать «красную строку» в <span>Memo</span>.

**Stretched (StrechMode)** – растяжение элемента.

**<span>Top</span>** – отступ элемента от верхнего края границы.

**<span>Underlines</span>** – параметр для <span>Memo</span> элементов, рисует строки внутри <span>Memo</span>.

**<span>Visible</span>** – параметр отвечающий за отображение элемента.

**<span>Width</span>** – ширина элемента.

# Основные функции и настройки печатных форм

**Электронный документ**

- **<span>getEDSInfoFromDoc</span>**<span>(ADocId, AField: String; AEDSNumber: Integer) - выводит информацию о ЭЦП</span>

<span>ADocId - ID </span>документа<span></span>

<span>AField - </span>выбрается поля для отображения<span> (<span data-mce-annotation="tinycomments" data-mce-annotation-uid="mce-conversation_20716671131747306712255">CN</span>, <span data-mce-annotation="tinycomments" data-mce-annotation-uid="mce-conversation_38544716621747320527193">SN</span>, <span data-mce-annotation="tinycomments" data-mce-annotation-uid="mce-conversation_84346750021747320670649">SURNAME,</span> GIVEN\_NAME, DATE\_FROM, DATE\_TO, DOLGNOST)</span>

> SIGNATURE - сигнатура ЭЦП
> 
> DATE\_UNLOAD - дата подписи
> 
> CN - владелец сертификата
> 
> SN - номер сертификата
> 
> <span>SURNAME - Фамилия владельца сертификата  
> </span>
> 
> <span>GIVEN\_NAME - Имя и Отчество владельца сертификата</span><span></span>
> 
> DATE\_FROM - действует сертификата "С"
> 
> DATE\_TO - действует сертификата "ПО"
> 
> SHORTTITLE - ФИО и инициалы подписанта
> 
> DOLGNOST - должность владельца

AEDSNumber = порядковый номер подписи

Пример: getEDSInfoFromDoc('ID', 'SURNAME'; 1);

- **<span>ReturnRegNameFromID </span>**<span>(RegName, ID: String; history: boolean; nadpis: boolean = false) - выводит значения заполненного поля, по прописанному в нем регистровому имени</span>

<span>RegName</span> – имя регистра

<span>ID</span> – Идентификатор документа

<span>History</span> – поиск по всей карте

<span>Nadpis</span> – используется в элементе <span>RichText</span>

Пример: ReturnRegNameFromID<span> </span><span>('SEMD\_DS', &lt;AQ."ID"&gt; ; true; false)</span>

- **<span>ReturnValueFromID </span>**<span>(ID, Field, Replace: String) - возвращает заполненное значение поля из других документов</span>

<span>ID</span> - Идентификатор документа

<span>Field</span> - значение поля, которое нужно получить

<span>Replace</span> - формат значения поля, заполняется если в поле <span>Field</span> находится идентификатор

> <span>В таблице DOC</span>\_<span>RECEPTION (карта пациента), имеется поле 'OPLATA\_TYPE' (тип оплаты), которое представлено в виде идентификатора соответствующей таблицы типов оплат. если мы не хотим получить на печати этот идентификатор, а нам нужно конвертировать его в читаемое значение, например 'TITLE' (наименование), то применяется данный параметр</span>

<span>Пример: </span><span>ReturnValueFromID('Идентификатор карты', 'OPLATA\_TYPE', 'TITLE')</span>

**Пациент**

- **<span>PAT\_TITLE </span>**<span>(PATIENT\_ID:String) - выводит данные о ФИО пациента, аналогичным образом работают и другие функции (кроме функций возраста) данной категории.</span>

<span>PATIENT\_ID - </span>Идентификатор пациента

- **<span>PAT\_AGE </span>**<span>(PATIENT\_ID:String; DATEDOC: TDateTime) - выводит данные о возрасте пациента, аналогичным образом работает функция PAT\_AGETEXT.</span>

<span>PATIENT\_ID - </span>Идентификатор пациента<span></span>

<span>DATEDOC</span>: <span>TDateTime</span> - Текущее время, от которого идет счет возраста

**Конвертирование**

- **<span>DateTimeToStr </span>**<span>(e</span>:<span> Extended) - преобразует дату и время в символ  
    </span>

<span>e</span>:<span> Extended</span><span> -</span> Дата и время

Пример:<span> </span>12.12.2001 23:00:00 = ’12.12.2001 23:00:00’

- **<span>StrToDateTime </span>**<span>(s: String) - преобразует символ в дату и время</span>

<span>s: String - строка/символ</span>

Пример:<span> ‘</span>12.12.2001 23:00:00<span>’</span> = 12.12.2001 23:00:00

- **<span>DateToStr</span>**<span> (e</span>:<span> Extended) - преобразует дату в символ  
    </span>

<span>e</span>:<span> Extended</span><span> -</span> Дата

Пример:<span> </span>12.12.2001 = ’12.12.2001’

- **<span>StrToDate </span>**<span>(s: String) - преобразует символ в дату</span>

<span>s: String - строка/символ</span>

Пример:<span> ‘</span>12.12.2001<span>’</span> = 12.12.2001

- **<span>FloatToStr</span>**<span> (e</span>:<span> Extended) - преобразует дробное число в символ  
    </span>

<span>e</span>:<span> Extended</span><span> -</span> Дробное число

Пример:<span> </span>12,5 = <span>’12,5’</span>

- **<span>StrToFloat </span>**<span>(s: String) - преобразует символ в дробное число</span>

<span>s: String - строка/символ</span>

Пример: <span>‘</span>12,5<span>’</span> = <span>12,5</span>

- **<span>IntToStr</span>**<span> (i</span>:<span> Integer) - преобразует целое число в символ  
    </span>

<span>i</span>:<span> Integer -</span> Целое число

Пример:<span> </span>12 = <span>‘12’</span>

- **<span>StrToInt</span>**<span> (s: String) - преобразует символ в целое число  
    </span>

<span>s: String - строка/символ</span>

Пример: <span>‘</span>12<span>’</span> = <span>12</span>

- **<span>TimeToStr</span>**<span> (e</span>:<span> Extended) - преобразует время в символ</span>

<span>e</span>:<span> Extended</span><span> -</span> время

Пример: 23:00 = <span>‘</span>23:00<span>’</span>

- **<span>StrToTime</span>**<span> (s: String) - преобразует символ в время</span>

<span>s: String - строка/символ</span>

Пример: <span>‘</span>23:00<span>’</span> = 23:00<span></span>

**Строки**

- **<span>Copy </span>**<span>(s: String; from, count: Integer) - </span>Возвращает текст из выбранного поля, с выбранного места и выбранной длиной

Пример: Copy(\[Дата рождения\],3,2)

- **<span>Pos </span>**<span>(substr, s: String) - О</span>существляет поиск некоторого фрагмента в строке. Если заданный фрагмент в строке присутствует, то функция возвращает номер позиции. Если фрагмент не найден, то функция возвращает ноль. Корректно использовать в элементах где множество значений (список со свойством формульная карта, элемент галочка, переключатели и т.п.)

Пример: Pos('Женский',&lt;пол&gt;)

- **<span>Lowercase</span>**<span> (s: String) - </span>Конвертирует все символы строки в нижний регистр

Пример: «СТРОКА» = «строка»

- **<span>Uppercase </span>**<span>(s: String) - Конвертирует все символы строки в верхний регистр</span>

Пример: «строка» = «СТРОКА»

**Медицина ИТ**

- **MakePadeg** (Str, NumPage: Variant) - Склоняет выбранный текст по падежам

NumPage - номер падежа

Пример: И.п - "вопрос", Р.п - "вопроса"

- **ReturnAppointmentPadeg** (Dep: <span>String; NumPage: Integer</span>) - склоняет выбранную должность по падежам

Dep - Должность

Пример: И.п.: "Генерал"; Р.п.: "Генерала"

- **ReturnFIOFromReport** (FIO: Variant) - приводит текст с указанием ФИО к формату в виду "Фамилия И.О."

Пример: 'Иванов Иван Иванович' = 'Иванов И.И'

- **ReturnIO\_FAM\_PAGE** (FAM, IM, OT: String; NumPage: Integer) - склоняет выбранную ФИО по падежам и выводит в формате "И.О. Фамилия (в выбранном падеже)"

Пример: И.п.: "И. И. Иванович"; Р.п.: "И. И. Ивановича"

- **ReturnFameIO\_NotPointFromReport** (FIO: Variant)- приводит текст с указанием ФИО к формату в виду "Фамилия И О"

Пример: 'Иванов Иван Иванович' = 'Иванов И И'

# Настройка визуализации ЭЦП

Для начала необходимо [настроить документ на подписание ЭЦП](https://docs.medicine-it.ru/books/administrirovanie-emk/page/svoistva-elementov-rol-podpisanta). Для отображение визуализации электронной цифровой подписи, документ необходимо привязать к локальному СЭМДу 100006 "Осмотр врача" (рисунок 1). Так же желательно сделать привязку и к други подходящим для выгрузки СЭМДам.

<div id="bkmrk-%D0%A0%D0%B8%D1%81%D1%83%D0%BD%D0%BE%D0%BA-1---%D0%9F%D1%80%D0%B8%D0%B2%D1%8F%D0%B7%D0%BA%D0%B0" style="text-align: center;">[![изображение.png](https://docs.medicine-it.ru/uploads/images/gallery/2024-06/scaled-1680-/rfBizobrazenie.png)](https://docs.medicine-it.ru/uploads/images/gallery/2024-06/rfBizobrazenie.png)Рисунок 1 - Привязка документа к СЭМД  
  
</div>Чтобы подпись визуализировалась, в ПФ рекомендуется использовать готовый код. В зависимости от числа подписантов можно настроить визуализацию ЭЦП Врача (код 1) или Врача и Зав. отделения (код 2). Код необходимо скопировать и вставить в печатную форму, а после отредактировать под данные шаблона. Результат копирования показан на соответствующих рисунках (рисунок 2) и (рисунок 3).

```
#FR3 clipboard#
<TfrxMasterData Name="EDS1" FillType="ftBrush" FillGap.Top="0" FillGap.Left="0" FillGap.Bottom="0" FillGap.Right="0" Frame.Typ="0" Height="60,47248" Left="0" Top="0" Width="680,3154" ColumnWidth="0" ColumnGap="0" RowCount="1" Stretched="True"/><TfrxMemoView Name="Memo0000" AllowVectorExport="True" Left="0" Top="11,33859" Width="207,87415" Height="49,13386559" StretchMode="smMaxHeight" Font.Charset="1" Font.Color="-16777208" Font.Height="-16" Font.Name="Times New Roman" Font.Style="0" Frame.Typ="0" ParentFont="False" VAlign="vaBottom" Text="[IIF(Length(getEDSInfoFromDoc(&#60;DOC_ID&#62;,'SN',1))&#62;0,getEDSInfoFromDoc(&#60;DOC_ID&#62;,'DOLGNOST',1),&#60;DOLGNOST&#62;)]"/><TfrxMemoView Name="Memo0001" AllowVectorExport="True" Left="457,32313" Top="11,33859" Width="222,99227" Height="49,13386559" StretchMode="smMaxHeight" Font.Charset="1" Font.Color="-16777208" Font.Height="-16" Font.Name="Times New Roman" Font.Style="0" Frame.Typ="0" HAlign="haRight" ParentFont="False" VAlign="vaBottom" Text="[IIF(Length(getEDSInfoFromDoc(&#60;DOC_ID&#62;,'SN',1))&#62;0,getEDSInfoFromDoc(&#60;DOC_ID&#62;,'MEDPERSONAL',1),&#60;MEDPERSONAL&#62;)]"/><TfrxMemoView Name="Memo0002" AllowVectorExport="True" Left="207,87415" Top="60,47245559" Width="245,66945" Height="0" Font.Charset="1" Font.Color="-16777208" Font.Height="-16" Font.Name="Times New Roman" Font.Style="0" Frame.Typ="4" ParentFont="False" VAlign="vaCenter" Text=""/><TfrxRichView Name="Podpis1" AllowVectorExport="True" Left="207,87415" Top="11,33859" Width="245,66945" Height="49,13389" Visible="False" StretchMode="smActualHeight" Frame.Typ="15" GapX="2" GapY="1" PropData="0852696368456469740AD70200007B5C727466315C616E73695C616E7369637067313235315C64656666305C6E6F7569636F6D7061745C6465666C616E67313034397B5C666F6E7474626C7B5C66305C666E696C5C66636861727365743230342054696D6573204E657720526F6D616E204359523B7D7D0D0A7B5C2A5C67656E657261746F722052696368656432302031302E302E31393034317D5C766965776B696E64345C756331200D0A5C706172645C71635C625C66305C667331325C2763345C2763655C2763615C2764335C2763635C2763355C2763645C276432205C2763665C2763655C2763345C2763665C2763385C2764315C2763305C276364205C2764645C2763625C2763355C2763615C2764325C2764305C2763655C2763645C2763645C2763655C276339205C2763665C2763655C2763345C2763665C2763385C2764315C2764635C2764655C62305C667331345C7061720D0A0D0A5C706172645C2764315C2765355C2766305C2766325C2765385C2766345C2765385C2765615C2765305C2766323A205B676574454453496E666F46726F6D446F63283C444F435F49443E2C27534E272C31295D5C7061720D0A5C2763325C2765625C2765305C2765345C2765355C2765625C2765355C2766363A205C62205B676574454453496E666F46726F6D446F63283C444F435F49443E2C275355524E414D45272C31295D205B676574454453496E666F46726F6D446F63283C444F435F49443E2C27474956454E5F4E414D45272C31295D5C62305C7061720D0A5C2763345C2765355C2765395C2766315C2766325C2765325C2765385C2766325C2765355C2765625C2765355C276564205C276631205C62205B676574454453496E666F46726F6D446F63283C444F435F49443E2C27444154455F46524F4D272C31295D5C623020205C2765665C276565205C62205B676574454453496E666F46726F6D446F63283C444F435F49443E2C27444154455F544F272C31295D5C62305C7061720D0A7D0D0A00"/>
```

<div id="bkmrk-%D0%9A%D0%BE%D0%B4-1-%C2%A0%E2%80%93-masterdata-" style="text-align: center;"><span>Код 1 – MasterData с одним подписантом</span></div>```
#FR3 clipboard#
<TfrxMasterData Name="EDS1" FillType="ftBrush" FillGap.Top="0" FillGap.Left="0" FillGap.Bottom="0" FillGap.Right="0" Frame.Typ="0" Height="60,47248" Left="0" Top="0" Width="680,3154" ColumnWidth="0" ColumnGap="0" RowCount="1" Stretched="True"/><TfrxMemoView Name="Memo0000" AllowVectorExport="True" Left="0" Top="11,33859" Width="207,87415" Height="49,13386559" StretchMode="smMaxHeight" Font.Charset="1" Font.Color="-16777208" Font.Height="-16" Font.Name="Times New Roman" Font.Style="0" Frame.Typ="0" ParentFont="False" VAlign="vaBottom" Text="[IIF(Length(getEDSInfoFromDoc(&#60;DOC_ID&#62;,'SN',1))&#62;0,getEDSInfoFromDoc(&#60;DOC_ID&#62;,'DOLGNOST',1),&#60;DOLGNOST&#62;)]"/><TfrxMemoView Name="Memo0001" AllowVectorExport="True" Left="457,32313" Top="11,33859" Width="222,99227" Height="49,13386559" StretchMode="smMaxHeight" Font.Charset="1" Font.Color="-16777208" Font.Height="-16" Font.Name="Times New Roman" Font.Style="0" Frame.Typ="0" HAlign="haRight" ParentFont="False" VAlign="vaBottom" Text="[IIF(Length(getEDSInfoFromDoc(&#60;DOC_ID&#62;,'SN',1))&#62;0,getEDSInfoFromDoc(&#60;DOC_ID&#62;,'MEDPERSONAL',1),&#60;MEDPERSONAL&#62;)]"/><TfrxMemoView Name="Memo0002" AllowVectorExport="True" Left="207,87415" Top="60,47245559" Width="245,66945" Height="0" Font.Charset="1" Font.Color="-16777208" Font.Height="-16" Font.Name="Times New Roman" Font.Style="0" Frame.Typ="4" ParentFont="False" VAlign="vaCenter" Text=""/><TfrxRichView Name="Podpis1" AllowVectorExport="True" Left="207,87415" Top="11,33859" Width="245,66945" Height="49,13389" Visible="False" StretchMode="smActualHeight" Frame.Typ="15" GapX="2" GapY="1" PropData="0852696368456469740AD70200007B5C727466315C616E73695C616E7369637067313235315C64656666305C6E6F7569636F6D7061745C6465666C616E67313034397B5C666F6E7474626C7B5C66305C666E696C5C66636861727365743230342054696D6573204E657720526F6D616E204359523B7D7D0D0A7B5C2A5C67656E657261746F722052696368656432302031302E302E31393034317D5C766965776B696E64345C756331200D0A5C706172645C71635C625C66305C667331325C2763345C2763655C2763615C2764335C2763635C2763355C2763645C276432205C2763665C2763655C2763345C2763665C2763385C2764315C2763305C276364205C2764645C2763625C2763355C2763615C2764325C2764305C2763655C2763645C2763645C2763655C276339205C2763665C2763655C2763345C2763665C2763385C2764315C2764635C2764655C62305C667331345C7061720D0A0D0A5C706172645C2764315C2765355C2766305C2766325C2765385C2766345C2765385C2765615C2765305C2766323A205B676574454453496E666F46726F6D446F63283C444F435F49443E2C27534E272C31295D5C7061720D0A5C2763325C2765625C2765305C2765345C2765355C2765625C2765355C2766363A205C62205B676574454453496E666F46726F6D446F63283C444F435F49443E2C275355524E414D45272C31295D205B676574454453496E666F46726F6D446F63283C444F435F49443E2C27474956454E5F4E414D45272C31295D5C62305C7061720D0A5C2763345C2765355C2765395C2766315C2766325C2765325C2765385C2766325C2765355C2765625C2765355C276564205C276631205C62205B676574454453496E666F46726F6D446F63283C444F435F49443E2C27444154455F46524F4D272C31295D5C623020205C2765665C276565205C62205B676574454453496E666F46726F6D446F63283C444F435F49443E2C27444154455F544F272C31295D5C62305C7061720D0A7D0D0A00"/><TfrxMasterData Name="EDS2" FillType="ftBrush" FillGap.Top="0" FillGap.Left="0" FillGap.Bottom="0" FillGap.Right="0" Frame.Typ="0" Height="60,47248" Left="0" Top="83,14966" Width="680,3154" ColumnWidth="0" ColumnGap="0" RowCount="1" Stretched="True"/><TfrxMemoView Name="Memo0008" AllowVectorExport="True" Left="0" Top="94,48825" Width="207,87415" Height="49,13386559" Font.Charset="1" Font.Color="-16777208" Font.Height="-16" Font.Name="Times New Roman" Font.Style="0" Frame.Typ="0" ParentFont="False" VAlign="vaBottom" Text="Заведующий отделения"/><TfrxMemoView Name="Memo0009" AllowVectorExport="True" Left="457,32313" Top="94,48825" Width="222,99227" Height="49,13386559" Font.Charset="1" Font.Color="-16777208" Font.Height="-16" Font.Name="Times New Roman" Font.Style="0" Frame.Typ="0" HAlign="haRight" ParentFont="False" VAlign="vaBottom" Text="[getEDSInfoFromDoc(&#60;DOC_ID&#62;,'MEDPERSONAL_SHORT',2)]"/><TfrxMemoView Name="Memo0010" AllowVectorExport="True" Left="207,87415" Top="143,62214" Width="245,66945" Height="0" Font.Charset="1" Font.Color="-16777208" Font.Height="-16" Font.Name="Times New Roman" Font.Style="0" Frame.Typ="4" ParentFont="False" VAlign="vaCenter" Text=""/><TfrxRichView Name="Podpis2" AllowVectorExport="True" Left="207,87415" Top="94,48825" Width="245,66945" Height="49,13389" Visible="False" StretchMode="smActualHeight" Frame.Typ="15" GapX="2" GapY="1" PropData="0852696368456469740A230300007B5C727466315C616E73695C616E7369637067313235315C64656666305C6E6F7569636F6D7061745C6465666C616E67313034397B5C666F6E7474626C7B5C66305C666E696C5C66636861727365743230342054696D6573204E657720526F6D616E204359523B7D7B5C66315C666E696C5C6663686172736574323034205461686F6D613B7D7D0D0A7B5C636F6C6F7274626C203B5C726564305C677265656E305C626C7565303B7D0D0A7B5C2A5C67656E657261746F722052696368656432302031302E302E31393034317D5C766965776B696E64345C756331200D0A5C706172645C71635C625C66305C667331325C2763345C2763655C2763615C2764335C2763635C2763355C2763645C276432205C2763665C2763655C2763345C2763665C2763385C2764315C2763305C276364205C2764645C2763625C2763355C2763615C2764325C2764305C2763655C2763645C2763645C2763655C276339205C2763665C2763655C2763345C2763665C2763385C2764315C2764635C2764655C62305C667331345C7061720D0A0D0A5C706172645C2764315C2765355C2766305C2766325C2765385C2766345C2765385C2765615C2765305C2766323A205B676574454453496E666F46726F6D446F63283C444F435F49443E2C27534E272C32295D5C7061720D0A5C2763325C2765625C2765305C2765345C2765355C2765625C2765355C2766363A205C62205B676574454453496E666F46726F6D446F63283C444F435F49443E2C275355524E414D45272C32295D205B676574454453496E666F46726F6D446F63283C444F435F49443E2C27474956454E5F4E414D45272C32295D5C62305C7061720D0A5C2763345C2765355C2765395C2766315C2766325C2765325C2765385C2766325C2765355C2765625C2765355C276564205C276631205C62205B676574454453496E666F46726F6D446F63283C444F435F49443E2C27444154455F46524F4D272C32295D5C623020205C2765665C276565205C62205B676574454453496E666F46726F6D446F63283C444F435F49443E2C27444154455F544F272C32295D5C6366315C62305C66315C667331365C7061720D0A7D0D0A00"/>
```

<div id="bkmrk-%D0%9A%D0%BE%D0%B4-2%C2%A0%C2%A0%E2%80%93-masterdata-" style="text-align: center;"><span>Код 2 – MasterData с двумя подписантами</span></div><div id="bkmrk-%D0%A0%D0%B8%D1%81%D1%83%D0%BD%D0%BE%D0%BA-1-%E2%80%93-%D0%9F%D1%80%D0%B8%D0%BC%D0%B5%D1%80-%D1%80" style="text-align: center;">[![изображение.png](https://docs.medicine-it.ru/uploads/images/gallery/2024-04/scaled-1680-/4m0izobrazenie.png)](https://docs.medicine-it.ru/uploads/images/gallery/2024-04/4m0izobrazenie.png)Рисунок 2 – Пример результата настройки для одной подписи ЭЦП  
  
</div><div id="bkmrk-%D0%A0%D0%B8%D1%81%D1%83%D0%BD%D0%BE%D0%BA-2-%E2%80%93-%D0%9F%D1%80%D0%B8%D0%BC%D0%B5%D1%80-%D1%80" style="text-align: center;">[![изображение.png](https://docs.medicine-it.ru/uploads/images/gallery/2024-04/scaled-1680-/Ld6izobrazenie.png)](https://docs.medicine-it.ru/uploads/images/gallery/2024-04/Ld6izobrazenie.png)Рисунок 3 – Пример результата настройки для двух подписей ЭЦП  
  
</div><span>После добавления макета подписей, данную форму обязательно надо донастроить. Для этого нужно перейти на вкладку "Код" и скопировать в неё соответствующий код от выбранного числа подписантов. Если выбрана визуализация подписи Врача, то скопировать (код 3), если выбрана визуализация Врача и Зав. отделения, то скопировать (код 4). Примеры результатов приведены на (рисунок 4) и (рисунок 5).  
</span>

```
var sn1 :string; 
begin 
  sn1 := getEDSInfoFromDoc(<DOC_ID>,'SN',1); 
  if Length(sn1) then Podpis1.visible:=true; 
end.
```

<div id="bkmrk-%D0%9A%D0%BE%D0%B4-3%C2%A0-%E2%80%93-%D0%92%D0%B8%D0%B7%D1%83%D0%B0%D0%BB%D0%B8%D0%B7%D0%B0%D1%86%D0%B8" style="text-align: center;"><span>Код 3 – Визуализация одной ЭЦП</span></div>```
var sn1,sn2 :string;
begin  
  sn1 := getEDSInfoFromDoc(<DOC_ID>,'SN',1);
  sn2 := getEDSInfoFromDoc(<DOC_ID>,'SN',2);      
  begin
    if Length(sn1) then Podpis1.visible:=true;        
    if Length(sn2) then Podpis2.visible:=true;  
  end; 
end.
```

<div id="bkmrk-%D0%9A%D0%BE%D0%B4-4%C2%A0-%E2%80%93-%D0%92%D0%B8%D0%B7%D1%83%D0%B0%D0%BB%D0%B8%D0%B7%D0%B0%D1%86%D0%B8" style="text-align: center;"><span>Код 4 – Визуализация двух ЭЦП</span></div><table border="1" id="bkmrk-%D0%A0%D0%B8%D1%81%D1%83%D0%BD%D0%BE%D0%BA-3-%E2%80%93-%D0%9A%D0%BE%D0%B4-%D0%B4%D0%BB%D1%8F-" style="border-collapse: collapse; width: 100%; height: 293.7px; border-width: 0px; border-style: none;"><colgroup><col style="width: 50%;"></col><col style="width: 50%;"></col></colgroup><tbody><tr style="height: 293.7px;"><td style="height: 293.7px; border-width: 0px;">[![image.png](https://docs.medicine-it.ru/uploads/images/gallery/2024-04/scaled-1680-/kaFimage.png)](https://docs.medicine-it.ru/uploads/images/gallery/2024-04/kaFimage.png)<div style="text-align: center;">Рисунок 4 – Код для одной ЭЦП</div></td><td style="height: 293.7px; border-width: 0px;">[![image.png](https://docs.medicine-it.ru/uploads/images/gallery/2024-04/scaled-1680-/neWimage.png)](https://docs.medicine-it.ru/uploads/images/gallery/2024-04/neWimage.png)<div style="text-align: center;">Рисунок 5 – Код для двух ЭЦП</div></td></tr></tbody></table>

<table border="1" cellpadding="0" cellspacing="0" class="MsoTableGrid" id="bkmrk-%D0%92%D0%BD%D0%B8%D0%BC%D0%B0%D0%BD%D0%B8%D0%B5%21-%D0%98%D1%81%D1%81%D0%BF%D0%BE%D0%BB%D1%8C%D0%B7%D0%BE%D0%B2" style="width: 100.0%; border-collapse: collapse; border: none; mso-border-alt: dash-small-gap red 1.5pt; mso-yfti-tbllook: 1184; mso-padding-alt: 0cm 5.4pt 0cm 5.4pt; mso-border-insideh: 1.5pt dash-small-gap red; mso-border-insidev: 1.5pt dash-small-gap red;" width="100%"><tbody><tr style="mso-yfti-irow: 0; mso-yfti-firstrow: yes; mso-yfti-lastrow: yes;"><td style="width: 100.0%; border: none; background: yellow; padding: 0cm 5.4pt 0cm 5.4pt;" valign="top" width="100%">**Внимание!** Использование кода 1 и 2 без использования кода 3 и 4, не дадут желаемого результата. Для визуализации ЭЦП необходимо использовать их в связке.

</td></tr></tbody></table>

<span>Если все настроенно верно, то после подписания осмотра, ЭЦП будет визуализироваться при распечатке. Иначе на месте "штампа" будет прочерк для проставления "живой" подписи (рисунок 6).</span><span></span>

<div id="bkmrk-%D0%A0%D0%B8%D1%81%D1%83%D0%BD%D0%BE%D0%BA-5-%E2%80%93-%D0%9F%D1%80%D0%B8%D0%BC%D0%B5%D1%80-%D0%BF" style="text-align: center;">[![image.png](https://docs.medicine-it.ru/uploads/images/gallery/2024-04/scaled-1680-/3ELimage.png)](https://docs.medicine-it.ru/uploads/images/gallery/2024-04/3ELimage.png)Рисунок 6 – Пример подписанного документа с настроенной визуализацией двух ЭЦП</div>

# Настройка логотипа учреждения

Для отображения логотипов, необходимо сделать ряд настроек:

- Для начала необходимо добавить требуемые логотипы в параметры ЛПУ.  
      
    Для этого, необходимо перейти в пункт меню «ЛПУ» → «Параметры». В открывшемся окне переходим на вкладку «Реквизиты» и опускаем курсор до блока «Логотипы организации» (рисноук 1).  
      
    <div style="text-align: center;">[![изображение.png](https://docs.medicine-it.ru/uploads/images/gallery/2024-05/scaled-1680-/aDCizobrazenie.png)](https://docs.medicine-it.ru/uploads/images/gallery/2024-05/aDCizobrazenie.png)Рисунок 1 - Параметры ЛПУ, вкладка с реквизитами ЛПУ</div>  
    Используя кнопки добавления, загружаем требуемые логотипы. Для удобства работы, в графе "Описание", желательно подписать какой логотип для чего добавлен.
- Далее необходимо добавить запрос (Код 1). Данный запрос всегда будет выводить самый первый по списку логотип.  
    ```sql
    select first 1 A.LOGO
    from REG_PARAMS_LOGO A  
    where A.REGNAME like 'Logo%'
    ```
    
    <div style="text-align: center;">Код 1 – Запрос на вывод первого добавленного логотипа</div>  
    В случаи если есть необходимость в разные документы выводить разные логотипы, используется другой запрос (Код 2). В данном запросе последняя цифра отвечает за порядковый номер выводимого логотипа. Например если понадобиться отобразить 3й по счету добавленный логотип, то код будет оканчиваться записью *'Logo\_3'.* ```sql
    select first 1 A.LOGO
    from REG_PARAMS_LOGO A  
    where A.REGNAME = 'Logo_2'
    ```
    
    <div style="text-align: center;">Код 2 – Запрос на вывод второго по счету, добавленного логотипа</div>
- В заключении настраивается печатная форма. Для макета необходимо добавить элемент «Рисунок» и задать в его свойствах значения запроса. В свойстве "DataSet" указывается запрос, при этом имя запроса будет иметь вид "frxdsShabRep1" где, цифра обозначает порядковый номер запроса. Для свойства "DataField" указывается имя "LOGO" (Рисунок 2).  
      
    <div style="text-align: center;">[![изображение.png](https://docs.medicine-it.ru/uploads/images/gallery/2024-05/scaled-1680-/bigizobrazenie.png)](https://docs.medicine-it.ru/uploads/images/gallery/2024-05/bigizobrazenie.png)Рисунок 2 - Параметры ЛПУ, вкладка с реквизитами ЛПУ</div>

После данных настроек, в случаи если ЛПУ по какой-либо причине изменит свой логотип, будет достаточно изменить его в настройках ЛПУ, во всех остальных документах настроенных подобным образом, логотип подмениться автоматически.