Печатные формы: настройка, инструментарий, возможности

Новости и события

Печатные формы: настройка, инструментарий, возможности

Экспертиза ФОРС

Андрей Горожанцев, ведущий аналитик отдела автоматизации бизнес-процессов, и Лилия Воронцова, старший аналитик отдела автоматизации бизнес-процессов

#Уголок_профессора

В своей повседневной жизни мы используем печатные формы документов постоянно, часто даже не задумываясь о том, что это документы, запрограммированные для автоматического заполнения. Среди примеров печатных форм можно назвать: товарные этикетки, различные приказы и распоряжения, справки и выписки, ответы органов власти на обращения граждан (все документы, присланные с портала Госуслуг, например), договоры купли-продажи, аренды или оказания услуг, платежные документы ЖКХ и многие другие.

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

Андрей Горожанцев, ведущий аналитик отдела автоматизации бизнес-процессов
Лилия Воронцова, старший аналитик отдела автоматизации бизнес-процессов

Особенности разработки печатных форм на платформе СИЭР

Это удобно сделать на примере информационной системы, создаваемой на базе СИЭР-системы исполнения электронных регламентов. Это low-code платформа, применяемая для автоматизации процессов организации, создания и настройки пользовательского интерфейса, обеспечения интеграции данных с профильными ведомствами. В ходе работ по внедрению СИЭР проводятся работы по оцифровке документов (приказов, распоряжений, выписок, запросов, ответов на них и пр.), встречающихся в каждом автоматизируемом процессе. Функционал СИЭР позволяет формировать в момент принятия решений полностью готовый результирующий документ по отдельному этапу или по итогам всего процесса с последующим автоматическим направлением на подпись руководителю и/или дальнейшей его автоматической отправкой инициатору или исполнителю на следующем этапе. Такие документы имеют печатную форму, что позволяет обеспечить их вывод на печать или отправку в читаемом виде по каналам электронного взаимодействия.

Печатные формы документов формируются на основе шаблонов, в которые загружаются данные из информационной базы. Принцип работы печатных форм прост. Создается макет документа со статичным текстом, например, неизменяемыми условиями договора оказания услуг. Изменяемая информация, которая отличается для субъектов разных договоров (например, реквизиты заказчика, цена, дата оказания услуги и пр.), подтягивается автоматически из XML-сообщения/файла с помощью специальных команд.

Печатные формы могут быть сформированы в одном из нескольких заранее выбранных форматов — DOCX, ODT, XLSX, PDF, XML, HTML. В нашей практике чаще всего используется формат DOCX.

Далее готовый документ может быть распечатан либо подписан электронно-цифровой подписью, направлен по электронной почте и т.д. Также есть возможность заранее настроить сохранение документа в формате PDF со штампом ЭЦП при подписании в первоначальном формате. Например, первоначальный документ сформирован в DOCX-формате. Далее руководитель подписывает его ЭЦП. Формируется документ в формате PDF. Таким образом, документ с ЭЦП будет доступен в двух форматах — и DOCX, и PDF.

Инструментарий разработки печатных форм

Для настройки печатных форм требуется рендер — страница с данными для генерации документов, включающая xml-файлы с данными, в том числе обработанными. После разовой настройки путей заполнения данных документы будут формироваться нажатием одной кнопки.

При формировании печатной формы могут быть использованы прямые ключи, ведущие к конечным данным xml-документа и выводящие такие данные в документ без изменений. Например, ключ ${base.Application.Client.Surname} выведет в результирующий документ фамилию клиента. Ключ ${base.Application.Agreement.conclusionDate} выведет дату заключения договора в формате «ГГГГ-ММ-ДД».

Также могут быть использованы дополнительные или пользовательские элементы. При этом для изменения представления данных, например, даты из формата «ГГГГ-ММ-ДД» в удобно читаемый формат «ДД месяца ГГГГ г.» («01 января 2025 г.») потребуется написать XSLT-код.

XSLT (eXtensible Stylesheet Language Transformations) — язык преобразования, определяющий набор правил для преобразования какого-либо электронного XML-документа в другое его представление. Типовые варианты использования XSLT-команд, часто встречающихся на практике:

  • преобразование ФИО из формата «Фамилия Имя Отчество» в формат «И.О. Фамилия» или «Фамилия И.О.»;
  • одновременное преобразование нескольких типов данных (простой текст, кодированный текст, дата и время) для корректного формирования блоков повторяющихся данных;
  • вырезание лишних пробелов для корректного отображения данных и пр.

Измененные данные сохраняются в формате нового xml-файла, для вывода таких данных ключи будут выглядеть следующим образом: ${custom.ServiceTemplate.conclusionDate} или ${custom.ServiceTemplate.SignFIOinit}.

Одним из самых объемных дополнительных элементов, разработанных нами на платформе СИЭР, стал пользовательский элемент, объединяющий и преобразующий данные о виде, названии, в т.ч. латинском, животных, количестве особей с разбивкой по полу, датам начала и окончания их выпуска. Преобразованные данные автоматически выводятся списком в формируемом разрешении в зависимости от проставленных в заявлении чек-боксов. Количество повторяющихся блоков при этом не ограничено.

Теперь рассмотрим две функции XSLT, которые могут использоваться для вывода данных в документ. Эти функции могут применяться как по отдельности, так и совместно. Принцип написания команд следующий. Сначала задается команда старта функции и условия ее выполнения. Затем указывается ключ для вывода данных при соблюдении указанных условий. В конце необходимо обязательно закрыть функцию. Примеры будут показаны ниже.

Функция if позволяет проверять наличие тега в xml-файле и выводить значения при их соответствии определенным условиям. С помощью дополнительной команды [#else] — иначе — можно задать условие выбора из двух вариантов выводимых данных. Например, следующая команда проверяет наличие тега. В зависимости от его соответствия определенному значению выводится определенный результат:

[#if base.Application.Applicants.legalForm.name ?has_content && base.Application.Applicants.legalForm.name =’UL’] ${base.Application.Applicants.Data.Organization.name} [#else] ${base.Application.Applicants.Data.Person.fullName} [/#if]

В данном примере проверяется соответствие организационно-правовой формы значению «UL» (юридическое лицо). Если значение тега равно UL, выводится название организации, в противном случае выводится значение поля «Полное имя индивидуального предпринимателя» (тег fullName).

Функция list позволяет выводить списком повторяющиеся блоки данных. Например, команда

[#list base.Application.constrElements as a] ${a.name}, [/#list]

выведет данные в формате

Пол,
Потолок,
Стены,

В данном случае конструктивные элементы (пол, потолок, стены) являются повторяющимися блоками. Таких элементов может быть гораздо больше. Но выводятся те, которые были отмечены чек-боксом. При этом количество выводимых повторяющихся блоков не ограничено. Для вывода данных в таблицу необходимо к функции list добавить команду добавления строки. В начале функции, в первом столбце, добавляется @before-row. В конце функции, в последнем столбце, добавляется @after-row.

Несмотря на небольшой инструментарий создания печатных форм в СИЭР (две функции и нескольких часто используемых XSLT-элементов), его использование позволяет значительно ускорить работу с документами и исключить ошибки при их формировании, а также в дальнейшем создавать новые печатные формы, не прибегая к услугам компаний-разработчиков.

Возможности ИИ для создания печатных форм

Что касается технологических перспектив, необходимо отметить, что применение нейросетевых моделей искусственного интеллекта (ИИ) позволяет значительно упростить для пользователя и ускорить для разработчика процесс создания и оптимизации печатных форм. Наша команда прилагает все усилия в этом направлении. Вот несколько примеров того, как ИИ может быть применен при создании печатных форм:

  • ИИ может анализировать данные из различных источников (базы данных, документы) и автоматически подбирать необходимые поля для печатных форм. Это позволяет уменьшить время на ручное заполнение и повышает качество документов.
  • ИИ может создавать шаблоны печатных форм на основе существующих данных и стилей, адаптируя их под требования конечного пользователя. Например, система может предложить разные макеты и форматы в зависимости от типа документов.
  • ИИ может автоматически создавать сами тексты для печатных форм, адаптируя их содержание в зависимости от контекста задачи и специфики работы пользователей.
  • ИИ способен выполнять проверки на наличие ошибок в данных — таких как дублирование записей или неправильный формат их представления, прежде чем они будут отображены в печатной форме.

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

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

Они позволяют:

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