ЭТрН · Электронная подпись Операционная веб-система для транспортных документов

Электронная ТТН: перевозки, документы и электронная подпись

Разработали веб-интерфейс сервиса электронных транспортных накладных. Объединили оформление перевозки, заполнение накладной, работу участников, подписание через КриптоПро и Рутокен и получение файлов через серверный API.

СфераТранспортный документооборот
ФорматВеб-система
Наша работаFrontend, интеграция с API и криптоплагинами
Основной сценарийПеревозка → накладная → подпись → статусы и файлы
1Оформить перевозкуУчастники, погрузка и груз.
2Заполнить накладнуюРеквизиты, водитель, транспорт и масса.
3Подписать документСертификат, криптоплагин, передача подписи через API.
4Проверить состояниеСтатусы, история и готовность файлов.
Схема: перевозка, накладная, подпись и получение файлов.
PNG-версия схемы клиентского сценария. Иллюстрация процесса, не скриншот приложения.
01

Рабочий процесс, в котором документ проходит через несколько участников

Транспортная накладная связана с перевозкой, компаниями, водителем, автомобилем и грузом. Участникам нужны разные действия: кто-то заполняет сведения, кто-то подписывает свою часть, кто-то отслеживает состояние документа.

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

02

Начать с перевозки и перейти к связанным накладным

Реализовали создание и редактирование перевозки: сведения об участниках, пункте погрузки, грузополучателе и грузе. Формы связаны со справочниками и серверными данными, а сохранение проходит клиентскую проверку заполнения.

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

Верхняя часть реестра: перевозка, сводные состояния и категории.
03

Понять состояние документов без просмотра каждого по очереди

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

Из реестра пользователь переходит к подробностям накладной. В карточке отображаются сведения перевозки, текущие состояния и история изменений отдельных полей, полученная от API. Предыдущие значения помогают разобраться, какие данные менялись.

Фрагмент реестра накладных в перевозке из дизайн-макета.
Фрагмент карточки накладной: сообщение об ошибке.
04

Учитывать компанию и роль участника

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

Для работы предусмотрены профили компаний, сотрудники и справочные сведения о водителях и транспорте. К перевозке можно подключать наблюдателей. Это доступ к связанным документам и их состояниям, а не слежение за местоположением автомобиля.

ОтправительПеревозчикПолучательВодитель
Схема объясняет роли участников; набор прав зависит от компании и роли.
05

Подписание — отдельный управляемый сценарий

Реализовали интеграцию с КриптоПро и Рутокеном. Пользователь выбирает сертификат и проходит проверки готовности. Клиент получает XML от API, вызывает установленный криптоплагин и передаёт документ вместе с подписью обратно на сервер.

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

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

ПРИМЕР ПОСЛЕДОВАТЕЛЬНОСТИ · КриптоПро / Рутокен
01Получаем XML
02Проверяем сертификат
03Подписываем
04Передаём через API
Презентационная анимация: не вызывает криптоплагины, не запрашивает PIN и не обращается к API.
06

Работать с пакетом документов и видеть готовность файлов

Вместо отдельных запросов для каждой накладной пользователь может выбрать несколько записей и запросить пакет PDF или QR-кодов. Раздел загрузок показывает состояние подготовки и позволяет получить готовые файлы.

Веб-клиент связан с серверной очередью операций: он отображает подготовку, доступность скачивания и ошибки. Такой интерфейс важен в ежедневной работе с большим списком документов, когда подготовка файла занимает время.

07

Реализовали веб-часть процесса от перевозки до подписи и файлов

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

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

ТЕХНОЛОГИИ

Frontend
Vue 3TypeScriptViteVue RouterPiniaTanStack Vue Query
Интерфейсы и формы
VuetifyElement PlusVuelidate
Интеграции
Axios / серверный APIКриптоПроРутокенJSZip
Наша работа — веб-интерфейс: формы и реестры, интеграция с серверным API и криптоплагинами КриптоПро и Рутокен.

Нужно связать документы и рабочий процесс?

Расскажите, какие документы проходят через ваш бизнес, кто с ними работает и где возникают сложности. Определим состав системы и интеграций, согласуем этапы и способ проверки результата.

Обсудить задачу