В целях автоматизации процесса получения всех государственных услуг в рамках единой жизненной ситуации реализована возможность подачи комплексных заявлений
Комплексное заявление обеспечивает заполнением одной формы нескольких атомарных заявлений. При заполнении и отправке комплексного заявления осуществляется распределение заполненных данных на комплексной форме между черновиками заявлений по атомарным услугам, входящим в комплексную, с последующей отправкой заявлений в соответствующие ведомства, оказывающие атомарные услуги
Механизм обеспечивает параллельную и последовательную передачу заявлений в ведомства с возможностью автоматического заполнения ранее созданных заявлений результатами оказания услуг, полученными на предыдущих шагах. При этом набор оказываемых услуг может зависеть от выбора пользователей
Отслеживать процесс оказания комплексного заявления, атомарных в рамках комплексного, можно в деталях комплексного заявления, которые содержат следующую информацию:
- название комплексной услуги
- блок текущего статуса по родительскому заявлению, содержащего:
- статус родительского заявления
- комментарий к статусу в виде совета Госуслуг (при наличии)
- блок дочерних заявок, связанных с родительским заявлением, содержащего по каждой из дочерней заявки:
- название атомарной услуги
- статус заявления, изменяемый согласно статусной модели атомарной услуги
- комментарий ведомства (при наличии)
В данной статье будет рассмотрен процесс создания и настройки комплексных услуг, в которые входят несколько услуг и все они оказываются последовательно, основываясь на результате оказания предыдущих услуг. Положительным результатом будет являться успешное оказание последней услуги в списке
Важно! Данная функциональность сейчас находится в стадии пилотной эксплуатации в рамках проекта внедрения комплексных услуг и может быть использована только в согласованных услугах данного проекта. По итогам пилотной эксплуатации в настройки могут быть внесены изменения
Часто пользователю для получения желаемого результата требуется последовательно подать несколько заявлений в различные ведомства, причём во всех этих заявлениях требуется указать одну и ту же информацию. Для ускорения процесса подачи заявлений и уменьшения объёма ручной работы в ВКУ была добавлена возможность настройки комплексных услуг
Допустим, заявитель хочет открыть аптеку, для этого ему необходимо последовательно подать два заявления. Сперва необходимо получить в Роспотребнадзоре санитарно-эпидемиологическое заключение на помещение, после чего подать новое заявление в Росздравнадзор для получения лицензии на фармацевтическую деятельность, причём большая часть указываемых данных в заявлениях совпадает. Следовательно, является логичным объединить эти услуги в единую комплексную услугу
Пример процесса:
- Пользователь подаёт заявление на оказание услуги 1
- По заданным условиям (например, после одобрения или завершения этапа) автоматически создается заявление на оказание услуги 2
- Новое заявление предзаполняется нужными данными, возможно копирование файлов и отправка уведомлений пользователю
Создание комплексной услуги с последовательным оказанием услуг
Создание комплексной услуги с последовательным оказанием услуг состоит из следующих этапов:
- Анализ всех необходимых данных для получения всех услуг создаваемой комплексной услуги, на предмет отсутствия необходимой информации в первой услуге для получения всех последующих
- Межведомственное согласование содержания стартовых и финальных экранов, а также экранов решения всех услуг входящих в комплексную услугу
- Добавление в стартовую услугу экранов с запросом отсутствующих данных, необходимых для получения последующих услуг и правка экранов согласованных на втором этапе
- Настройка маршрутизации оказания услуги (опционально, при необходимости)
- Создание новых форм для оказания последующих форм с минимально необходимым количеством экранов (стартовый экран, экран решения, финальный экран, экраны подписания и оплаты по необходимости)
- Перенос VM шаблонов из услуг прототипов в соответствующие услуги, созданные на этапе 4
- Настройка правил создания заявления при последовательном оказании услуг на основе существующего заявления
- Настройка кнопки действий с заявлением
- Сквозное интеграционное тестирование
- Вывод услуги в продуктивный контур
На этапах 4 и 7-9 остановимся подробнее
Этап 4. Настройка маршрутизации оказания услуги
Данная функциональность предназначена для настройки маршрутизации оказания услуги, в зависимости от выбора пользователя. Например, в зависимости ответа пользователя на один из квизов будет предусмотрен различный набор оказываемых услуг. После оказания стартовой услуги, пользователь, в зависимости от ответа, будет переходить к услуге 2 или услуге 3, либо предзаполнять заявление на следующем шаге разным набором значений и вести пользователя в разные сценарии
Шаги настройки маршрутизации:
- Добавить в стартовую услуг обязательный для прохождения служебный экран маршрутизации оказания услуги
- Настроить два или больше правил создания заявления при последовательном оказании услуг
- Настроить два или больше наборов кнопок действий
Шаг 1. В стартовую услугу добавляется обязательный для прохождения служебный экран (EMPTY) с вызовом через компонент BackRestCall необходимого реста. Экран можно располагаться в любом месте услуги после определения маршрута сценария оказания услуги и перед экраном подписания или (при использовании простой электронной подписи) перед финальным экраном. С шаблоном данного экрана можно ознакомиться по ссылке
Шаг 2. В настройках стартовой услуги во вкладке «Последовательное оказание услуг» требуется добавить два или больше правил создания заявления при последовательном оказании услуг, возможно с указанием перехода на один и тот же сервисный код, но дополнительно требуется указать параметр «Код для создания нового заявления», который доступен в расширенном режиме. Подробно настройки правил создания заявлений описаны ниже в Этапе 7

При заполнении параметра «Код для создания нового заявления» рекомендуем придерживаться следующего формата: сервисный код, нижнее подчёркивание, номер перехода, например, 60012345_1
Для каждого правила можно задать свой маппинг полей черновика и свои настройки предзаполнения экранов
Шаг 3. В настройках стартовой услуги во вкладке «Кнопки действий с заявлением» требуется добавить требуемое количество кнопок перехода. При создании в поле «Код услуги дочерних заявлений» нужно указать код, который был записан ранее в правилах создания заявлений, например: 60012345_1. «Наименование действия» может быть любым

Подробно настройки кнопок действий с заявлением описаны ниже на Этапе 8
Этап 7. Настройка правил проактивного создания нового заявления на основе существующего заявления
Данная функциональность предназначена для настройки правил, по которым происходит автоматическое создание нового заявления на основе уже существующего. Эта настройка осуществляется внутри услуги, связанной с первым заявлением. Иными словами, в процессе обработки первого заявления система автоматически инициирует создание нового заявления, используя заранее определённые параметры и правила. Все параметры создания, условия старта (например, система и код события), копируемые данные, предзаполнение черновика и отправка уведомлений — настраиваются в рамках этой конфигурации. Настройка выполняется в режиме разработчика и доступна только для чтения обычным пользователям. Изменение параметров возможно только через разработчиков или администраторов системы
Ключевые моменты:
- Настройка привязана к услуге 1
- Новое заявление к услуге 2 создаётся по заранее описанным правилам
- Все основные параметры (сервис-код, копирование файлов, уведомления, маппинг черновика) задаются в рамках единой структуры
- Редактирование настроек разрешено только специалистам с правами разработчика
Настройка правил создания заявления при последовательном оказании услуг находятся в разделе «Настройки услуги» во вкладке «Последовательное оказание услуг»

Секция «Основные настройки»
|
Название поля |
Описание |
Комментарий |
|
Сервисный код услуги |
Код целевой услуги, для которой будет создано проактивное заявление на основе заявления текущей услуги |
Должен состоять только из цифр |
|
Включить отправку уведомления пользователю |
Признак активности правила. Если установлено значение false, правило не активно |
Это значит, что правило не сработает, даже если заполнены все другие поля По умолчанию активно (true) |
Секция «Настройка старта создания заявления» (отображается в расширенном режиме)
|
Название поля |
Описание |
Комментарий |
|
Код для создания нового заявления |
Код, по которому будет создаваться новое заявление |
Автоматически подставляется из сервисного кода услуги, но можно указать и своё |
Секция «Настройка копирования файлов из результатов основного заявления в создаваемое»
Копировать все файлы из основного заявления в дочернее
| Название поля | Описание | Комментарий |
|---|---|---|
| Компонент для загрузки файлов в дочернем заявлении. Файлы добавятся в один компонент | Указывается идентификатор компонента загрузчика файлов в дочернем заявлении, куда будут скопированы все файлы из основного заявления | Файлы добавятся в один компонент |
| Если в компоненте несколько загрузчиков, укажите идентификатор загрузчика, куда добавлять файлы | Указывается идентификатор загрузчика внутри компонента в дочернем заявлении, куда будут скопированы все файлы из основного заявления | |
| Показывать файлы пользователю | Выбор отображения скопированных файлов пользователю при прохождении им экрана с указанным выше идентификатором компонента |
Копировать файлы из результатов основного заявления
| Название поля | Описание | Комментарий |
|---|---|---|
| Типы файлов, которые нужно скопировать из результатов основного заявления | Выбор типов файлов (XML, ZIP, PDF), которые нужно скопировать в новое заявление |
Список форматов для копирования результатов. Важно! Копируются файлы, присланные ведомством по заявлению текущей услуги, в которой настраивается данная функциональность |
| Компонент для загрузки файлов в дочернем заявлении | Указывается идентификатор компонента загрузчика файлов в дочернем заявлении, куда будут скопированы все файлы выбранных типов из основного заявления | Если идентификатор не указан, то файлы добавляются к заявлению, как прочие файлы, сгенерированные при отправке дочернего заявления, без отображения в черновике |
| Если в компоненте несколько загрузчиков, укажите идентификатор загрузчика, куда добавлять файлы | Указывается идентификатор загрузчика внутри компонента в дочернем заявлении, куда будут скопированы все файлы из основного заявления | |
| Показывать файлы пользователю | Выбор отображения скопированных файлов пользователю при прохождении им экрана с указанным выше идентификатором компонента дочернего заявления | |
| Статусы основного заявления, из которых брать файлы | Указываются все статусы, в которых может находиться заявление для копирования файлов | Каждый статус указывается как отдельный элемент |
Секция «Копирование файлов, приложенных пользователем или сгенерированных системой, из основного заявления в дочернее»
В этой секции настраивается маппинг копируемых файлов из основного заявления в дочерние
Приложенные файлы
| Название поля | Описание |
|---|---|
| Компонент в основном заявлении, откуда брать файлы | Указывается идентификатор компонента загрузчика файлов в основном заявлении, откуда будут скопированы файлы |
| Компонент в дочернем заявлении, куда добавлять файлы | Указывается идентификатор компонента загрузчика файлов в дочернем заявлении, куда будут скопированы файлы |
| Если в компоненте несколько загрузчиков, укажите идентификатор загрузчика, куда добавлять файлы | Указывается идентификатор загрузчика внутри компонента в дочернем заявлении, куда будут скопированы все файлы из основного заявления |
| Показывать файлы пользователю | Выбор отображения скопированных файлов пользователю при прохождении им экрана с указанным выше идентификатором компонента дочернего заявления |
Сгенерированные файлы
| Название поля | Описание |
|---|---|
| Регулярное выражение для поиска по мнемонике сгенерированного файла | Указывается регулярное выражение для поиска по мнемонике сгенерированного файла в основном заявлении, для копирования его в дочернее |
| Компонент для загрузки файлов в дочернем заявлении | Указывается идентификатор компонента загрузчика файлов в дочернем заявлении, куда будет скопирован файл |
| Если в компоненте несколько загрузчиков, укажите идентификатор загрузчика, куда добавлять файлы | Указывается идентификатор загрузчика внутри компонента в дочернем заявлении, куда будут скопированы все файлы из основного заявления |
| Показывать файлы пользователю | Выбор отображения скопированных файлов пользователю при прохождении им экрана с указанным выше идентификатором компонента дочернего заявления |
Секция «Дополнительные настройки проактивного заявления» (отображается в расширенном режиме)
|
Название поля |
Описание |
Комментарий |
|
Возможность удаления проактивного заявления в ЛК |
Разрешение пользователю удалить проактивное заявление |
По умолчанию включено (true). Доступен только в расширенном режиме |
Секция «Дополнительные условия создания дочернего заявления»
Тип условия — необходимо выбрать тип условия откуда будет использовано значение в условии создания дочернего заявления
По содержимому основного заявления
| Название поля | Описание |
|---|---|
| Идентификатор компонента | Указывается идентификатор компонента родительского черновика, значение которого будет использовано в условии создания дочернего заявления |
| Операция сравнения | Выбирается операция для сравнения значения указанного выше компонента |
| Ожидаемое значение |
Указывается значение, с которым будет сравниваться значение указанного выше компонента |
По полю события

| Название поля | Описание |
|---|---|
| Путь к полю события | Указывается путь внутри JSON-события |
| Операция сравнения | Выбирается операция для сравнения значения полученного из события |
| Ожидаемое значение | Указывается значение, с которым будет сравниваться значение полученного из события |
Существует черновик основного заявления

Условие создания проактивного заявления только при наличии черновика родительского заявления
Существует файл у родительского заявления
| Название поля | Описание |
|---|---|
| Регулярное выражение для поиска по мнемонике файла | Указывается регулярное выражение для поиска по мнемонике файла в основном заявлении |
| Операция сравнения | NOT_NULL |
Секция «Маппинг полей черновика»
В настройках маппинга полей черновика указываются те ответы пользователя, которые необходимо скопировать из основного черновика в черновик заявления дочерней услуги
Фиксированное значение

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

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

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

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

Переменная из XML-файла — указывается переменная из приложенного или сгенерированного XML-файла
Идентификатор компонента, в который передаётся значение — указывается идентификатор компонента дочернего черновика, в который будет скопировано значение
Идентификатор атрибута внутри компонента — указывается идентификатор атрибута внутри компонента
Идентификатор циклического компонента, внутри которого находится компонент — указывается идентификатор циклического компонента, внутри которого находится компонент
Порядковый номер элемента внутри циклического компонента — указывается порядковый номер элемента внутри циклического компонента, нумерация начинается с нуля
Данные из ЛК ФЛ

Переменная из ЛК пользователя — выбирается поле из личного кабинета пользователя, которое будет скопировано в дочерние заявление. Например, «Имя»
Идентификатор компонента, в который передаётся значение — указывается идентификатор компонента дочернего черновика, в который будет скопировано значение
Идентификатор атрибута внутри компонента — указывается идентификатор атрибута внутри компонента
Идентификатор циклического компонента, внутри которого находится компонент — указывается идентификатор циклического компонента, внутри которого находится компонент
Порядковый номер элемента внутри циклического компонента — указывается порядковый номер элемента внутри циклического компонента, нумерация начинается с нуля
Данные из ЛК ЮЛ или ИП

Переменная из ЛК пользователя — выбирается поле из личного кабинета пользователя, которое будет скопировано в дочерние заявление. Например, «Полное наименование»
Идентификатор компонента, в который передаётся значение — указывается идентификатор компонента дочернего черновика, в который будет скопировано значение
Идентификатор атрибута внутри компонента — указывается идентификатор атрибута внутри компонента
Идентификатор циклического компонента, внутри которого находится компонент — указывается идентификатор циклического компонента, внутри которого находится компонент
Порядковый номер элемента внутри циклического компонента — указывается порядковый номер элемента внутри циклического компонента, нумерация начинается с нуля
Автозаполнение данными из ЛК
Идентификатор компонента, в который передаётся значение — указывается идентификатор компонента дочернего черновика, в который будет скопировано значение.
Копируемые в компонент данные из ЛК зависят от вида указанного компонента и выбранных в нём контактных данных. Например в компонент ConfirmContact с выбранным типом контактных данных "Номер телефона ФЛ" из ЛК скопируется телефонный номер ФЛ
Важно! В данном поле можно указывать только идентификаторы компонентов следующих видов:
ConfirmAddress
ConfirmContact
ConfirmLegalData
ConfirmPersonalUserData
Важно! Маппинг полей черновика должен быть настроен так, чтобы создаваемые дочерние черновики были валидны, подходили под VM шаблоны дочерних услуг
Секция «Настройка предзаполнения экранов»
|
Название поля |
Описание |
|
Идентификатор предзаполненного экрана |
Заполняются экраны, которые предзаполнены и пользователю не нужно будет заполнять эти поля. А ниже в "Экран, с которого пользователь начнет заполнение" выбирается экран, с которого пользователь начнет заполнение |
Частые ошибки при заполнении настроек «Создание заявления на основе другого заявления»
|
Ошибка |
Как правильно сделать |
|
Неверный формат сервис-кода услуги |
Использовать только цифры |
|
Пустое значение у «Сервис-кода услуги» |
Убедиться, что сервис-код заполнен (Например, 60057285) |
|
Несогласованность типов файлов для копирования |
Выбирать только поддерживаемые форматы: XML, ZIP, PDF |
|
Некорректная настройка уведомлений |
При включении уведомления обязательно указывать корректные код шаблона и код события |
|
Ошибки в маппинге черновика |
При маппинге обязательно указывать компонент и источник значения (переменная или фиксированное значение) |
|
Оставлен выключенным флаг активности правила |
Проверить, что поле «Активность правила» установлено в true, если правило должно работать |
Этап 8. Настройка кнопки действий с заявлением
CTA (Call to Action, переводится как «призыв к действию») — это функциональность ЕПГУ, которая призывает настроить условия для отображения и содержание кнопок в ЛК пользователя в деталях заявления. Кнопки позволяют пользователю ЕПГУ выполнять действия с заявлением в соответствии с установленными настройками CTA. К примеру, при нажатии на кнопку пользователь может к перейти по ссылке или выполнить действие с заявлением через REST запросИнтерфейс СТА на портале ЕПГУ
Блок СТА, отображаемый в деталях заявления, может состоять из:
- заголовка (опционально)
- описания (опционально)
- кнопок (не более трёх)
Настройка СТА в ВКУ
Настройки СТА для проактивного создания заявления находятся в разделе «Настройки услуги» во вкладке «Кнопки действий с заявлением» -> «Проактивное создание заявлений»

Для добавления и возможности дальнейшей настройки CTA необходимо нажать на элемент «Добавить элемент». После добавления элемента появляется блок с настройками CTA. На каждый отдельный CTA требуется добавлять отдельный элемент

Первоначально необходимо заполнить код услуги дочерних заявлений для отображения основных настроек:
|
Наименование поля |
Описание |
|
Код услуги дочерних заявлений |
Код услуги дочернего заявления, в котором будет отображаться СТА |
После заполнения кода услуги дочерних заявлений будут отображены основные настройки СТА


В основных полях блока с настройками СТА необходимо заполнить следующие поля:
|
Наименование поля |
Описание |
|
|
Наименование действия |
В данном поле записывается внутреннее наименование СТА, которое не отображается пользователю |
|
|
Портальные статусы, на которых будут отображаться кнопки |
В данном поле устанавливаются портальные статусы, в которых будет отображаться CTA. Отображение одного и того же блока CTA можно настроить для нескольких портальных статусов. Важно: если на одну и ту же услугу требуется настроить разные кнопки на разных статусах, то для каждой новой кнопки необходимо конфигурировать новый блок CTA, который будет привязываться к статусу. |
|
|
Проверять наличие дочерних заявлений |
Настройка, определяющая необходимость проверки наличия поданных дочерних заявлений. В случае если проверка вернула положительный результат, то будет отображён альтернативный СТА |
|
|
Статусы, проверяемые в дочерних заявлениях |
Данная настройка позволяет задать проверяемые статусы дочерних заявлений. |
|
|
Описание действия |
||
| Заголовок |
Заголовок, отображаемый в блоке СТА на портале ЕПГУ |
|
| Текст |
Текст с описанием, отображаемый в блоке СТА на портале ЕПГУ |
|
| Текст кнопки |
Текст, отображаемый на кнопке блока СТА на портале ЕПГУ. Возможны следующие варианты:
|
|
| Текст в модальном окне при возникновении ошибки |
Текст ошибки, отображаемый в модальном окне при возникновении ошибки при осуществлении REST API запроса |
|
|
Альтернативное описание действия в случае наличия дочерних заявлений |
||
| Заголовок |
Заголовок, отображаемый в блоке СТА на портале ЕПГУ при наличии поданных дочерних заявлениях |
|
| Текст |
Текст с описанием, отображаемый в блоке СТА на портале ЕПГУ при наличии поданных дочерних заявлениях |
|
| Текст кнопки |
Текст, отображаемый на кнопке блока СТА на портале ЕПГУ при наличии поданных дочерних заявлениях. Возможны следующие варианты:
|
|
| Хост |
Настройка, содержащая доменное имя хоста, куда будет осуществлен переход по ссылке |
|
| Путь и параметры URL без хоста |
Настройка, настраивающая URL-путь без учета хоста, включающий в себя query-параметры запроса |
|
Этап 9. Сквозное интеграционное тестирование
Проверка результатов- Подать заявление по первой услуге
- Дождаться перевода услуги в статус «3 – Услуга оказана»
- В личном кабинете появится уведомление о сформированном заявлении с кнопкой «Перейти»
- Нажать кнопку «Перейти». Попадаем на инициализирующий экран второго шага подачи комплексной услуги
- Нажать кнопку «Продолжить заполнение». Попадаем на стартовый экран второй услуги
- Проходим услугу и подаем заявление
- В личном кабинете проверяем информацию по второму заявлению

