ФОРС – Центр разработки
Москва, Трифоновский тупик, д. 3
Москва, Графский переулок, д. 14, корп. 2
Новости и события
В своей повседневной жизни мы используем печатные формы документов постоянно, часто даже не задумываясь о том, что это документы, запрограммированные для автоматического заполнения. Среди примеров печатных форм можно назвать: товарные этикетки, различные приказы и распоряжения, справки и выписки, ответы органов власти на обращения граждан (все документы, присланные с портала Госуслуг, например), договоры купли-продажи, аренды или оказания услуг, платежные документы ЖКХ и многие другие.
Печатные формы документов присутствуют практически в любых информационных системах, начиная с ГИС и заканчивая интернет-магазинами. Поэтому нам хотелось бы рассказать широкому кругу читателей о принципах их работы, технологиях разработки, а также коснуться вопросов применения новых инструментов создания печатных форм в ближайшей перспективе.
Это удобно сделать на примере информационной системы, создаваемой на базе СИЭР-системы исполнения электронных регламентов. Это 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-элементов), его использование позволяет значительно ускорить работу с документами и исключить ошибки при их формировании, а также в дальнейшем создавать новые печатные формы, не прибегая к услугам компаний-разработчиков.
Что касается технологических перспектив, необходимо отметить, что применение нейросетевых моделей искусственного интеллекта (ИИ) позволяет значительно упростить для пользователя и ускорить для разработчика процесс создания и оптимизации печатных форм. Наша команда прилагает все усилия в этом направлении. Вот несколько примеров того, как ИИ может быть применен при создании печатных форм:
Используя эти подходы, поставщики систем могут значительно упростить процесс настройки печатных форм, повысить их качество и соответствие требованиям пользователей.
В заключение хотелось бы еще раз отметить, что печатные формы — неотъемлемая часть процесса автоматизации деятельности, обеспечивающей электронный документооборот и делающей работу с данными более эффективной.
Они позволяют:
Москва, Трифоновский тупик, д. 3
Москва, Графский переулок, д. 14, корп. 2
Москва, Графский переулок, д. 14, корп. 2
Москва, ул. Авиамоторная, д. 8, стр. 12, 5 этаж
Москва, Трифоновский тупик, д. 3
Москва, Графский переулок, д. 14, корп. 2
Москва, Графский переулок, д. 14, корп. 2
Москва, ул. Авиамоторная, д. 8, стр. 12, 5 этаж
Благодарим за ваш запрос.
Мы обязательно
свяжемся с вами!
Благодарим Вас!
Регистрация
прошла успешно.