Компания СК Обсудить проект
Транспортная компания

Saby Transport Board — очередь для электронной подписи накладных

Saby Transport Board собирает накладные в очередь и подписывает их по одной. После временного сбоя документ можно отправить повторно.

·

ИИ не использовался.
Технологии
Python, Flask, waitress КриптоПро CSP, электронная подпись Saby API
Обложка проекта «Saby Transport Board — очередь для электронной подписи накладных»

Задача

Каждую транспортную накладную приходилось подписывать отдельно, раз за разом повторяя одинаковые действия. Заказчику нужно было локальное приложение, которое соберёт документы в очередь и по одному подпишет их электронной подписью. При временном сбое документ не должен был теряться. Пакетную обработку требовалось запускать по расписанию, но состав очереди и результаты подписания оставались под контролем сотрудника.

Что разработали

Мы разработали Saby Transport Board — локальное приложение с веб-интерфейсом для очереди транспортных накладных. Серверная часть работает на Python и Flask, веб-приложение запускается через waitress. С Saby приложение связывается по Saby API, для подписания используются КриптоПро CSP и электронная подпись.

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

Как работает

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

Результат

Теперь сотрудник собирает накладные в пакет через локальный интерфейс, а приложение подписывает их по очереди. Не нужно вручную запускать весь сценарий для каждого документа. Временный сбой можно обработать повторной попыткой, а готовый пакет — запустить по расписанию. Итог подписания всё равно проверяет сотрудник.

Ограничения и зависимости

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

Есть похожая задача?

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