01Задача
Заявка приходила в почту, Telegram и телефон — диспетчер собирал её руками
Российский автоперевозчик: ~120 собственных машин плюс наёмный транспорт, магистральные рейсы по РФ. Клиенты — грузовладельцы, заявки приходят оптовыми партиями и каждая ждёт ответа с цифрой. Пока заявка лежала в общей почте или в личном чате диспетчера, конкурент успевал отправить своё КП первым
Ставку считали в Excel — около 40 минут на расчёт и оформление. Статус рейса клиент узнавал звонком диспетчеру: по замеру, 38% рабочего времени смены уходило на ответы «где машина». ТТН и УПД передавались бухгалтерии вручную — часть документов терялась и всплывала только на сверке
- Расчёт ставки в Excel — ~40 минут на КП, пока конкурент уже отправил своё предложение грузовладельцу
- Статус рейса — только звонком диспетчеру: 38% времени смены уходило на вопрос «где машина»
- ТТН и УПД передавались бухгалтерии вручную — документы терялись и находились на сверке
- Простой машины под погрузкой нигде не считался и не попадал в себестоимость рейса
KPI зафиксировали до старта, чтобы не спорить о результатах потом: не меньше 70% заявок через кабинет ко второму месяцу, КП — не дольше 10 минут, дебиторка короче на 10 дней
02Что построили
Кабинет грузовладельца и диспетчерская — поверх текущего учёта, без замены 1С
1С:УТ осталась системой учёта — бухгалтерия работает там, как и работала. Мы построили вокруг неё слой работы с клиентом и рейсом: личный кабинет грузовладельца, диспетчерскую панель и документооборот, который собирается из рейса, а не вводится руками
Главное правило системы: у рейса один источник правды. Заявка, ставка, трек, документы и счёт цепляются к одной карточке рейса — диспетчер и клиент смотрят на одни и те же данные
- Личный кабинет грузовладельца: заявка, расчёт онлайн, документы и статусы рейсов — в одном окне
- Диспетчерская панель: рейсы, экипажи, ГЛОНАСС-треки на карте, отклонения от плана
- Калькулятор тарифов: сетки по направлениям, коэффициенты сезона и типа кузова — КП за минуты, а не за 40 минут
- ЭДО с Диадоком: УПД и транспортная накладная формируются из карточки рейса и уходят на подписание
- Модуль путевых листов: выпуск и закрытие в том же окне, без бумажных дублей
- Обмен с 1С:УТ: реализация и счёт создаются из рейса — без ручного ввода
// Галерея кейса · клик открывает кадр крупно
03Технологии и интеграции
Стек выбирали под треки и документы, а не наоборот
Требования были простые: статус рейса — из трекера ГЛОНАСС, а не из звонков водителю; документы — с юридической силой через Диадок; 1С — без ручного ввода; данные — в контуре РФ. Под них и подбирали инструменты
Бэкенд
Гео-треки лежат в PostGIS: история маршрута и «кто ближе к точке разгрузки» — запросом к БД. Опросы трекеров живут в Celery и не блокируют API в утренний пик выставления КП
Фронтенд
Панель диспетчера — плотные таблицы и карта: это работа для Vue 3. Кабинет грузовладельцу нужен простой и быстрый — серверный рендер и нативный JS без лишнего бандла
Интеграции
Статус рейса собирается из трекера, а не из звонков водителю. УПД и ТрН подписываются в Диадоке без бумаги; реализация и счёт уходят в 1С:УТ сами — в обе стороны ходит и статус оплаты
Инфраструктура
Данные — в контуре РФ. Окружения dev/stage/prod развёрнуты одинаково, восстановление из бэкапа отрепетировано до пилота
Безопасность
Грузовладелец видит только свои рейсы, диспетчер — свою смену. Каждое действие с документом пишется в журнал: кто и когда отправил или подписал
04Результат
Ставка за 3 минуты, а дебиторка короче на 12 дней
3 мин
Расчёт КП
Было ~40 минут в Excel — КП уходило позже, чем у конкурента
87%
Заявок через кабинет
Мимо почты и чатов; цель была ≥70% ко второму месяцу
−12 дн
Дебиторка
Счёт-УПД уходит в день рейса через Диадок
96%
Рейсов с автотреком
Статус в кабинете клиента собирается из ГЛОНАСС, без звонков
Диспетчеры перестали быть «телефонной станцией»: время смены ушло в планирование и работу с отклонениями — опоздания, перестановки экипажей, простой под погрузкой, который теперь виден в себестоимости рейса
Метрики — за первые три месяца после запуска, значения округлены. Компания и направления не названы — см. главу 08
05Сроки
12 недель до продакшна — пилот поехал на десятой
Самое долгое — не код, а доступы и регламенты: запрос в ГЛОНАСС-провайдера и учётку Диадока ушли в первый день проекта, регламент ЭДО согласовали с бухгалтерией параллельно разработке. Поэтому чужой доступ не остановил пилот
Недели 01–02
Дискавери и замер
Замер: 38% времени диспетчеров — ответы «где машина». Фиксация KPI. Запрос доступов ГЛОНАСС и Диадок — день 1
Недели 03–05
Ядро: рейсы и тарифы
Модель рейса, тарифные сетки по направлениям, кабинет грузовладельца MVP с расчётом ставки
Недели 06–07
Трекинг
Omnicomm REST, треки на карте диспетчерской, ETA в кабинете клиента
Недели 08–09
Документы и 1С
УПД и ТрН собираются из рейса и уходят в Диадок, реализация и счёт — в 1С:УТ
Неделя 10
Пилот
10 грузовладельцев и 2 диспетчерские смены на живых рейсах. Замечания смен — прямо в бэклог
Недели 11–12
Роллаут и обучение
Перевод всех клиентов в кабинет, обучение диспетчеров, панель контроля отклонений
Итог: 12 недель, до пилота — 10. Без остановки перевозок
06Экспертиза
Четыре роли — тарифы весили больше кода
Системный аналитик~30% часов
Тарифные сетки и правила расчёта — сердце проекта: направления, сезоны, типы кузова, минимальные плечи. Плюс регламент ЭДО: кто подписывает, что делать при отказе, куда падает подписанный УПД
Бэкенд-разработчик~35% часов
API кабинета и диспетчерской, хранение и обработка треков, фоновые опросы трекеров, обмен с 1С:УТ и Диадоком
Фронтенд-разработчик~25% часов
Карта с треками, плотные таблицы диспетчерской, UX кабинета грузовладельца — от расчёта ставки до списка документов
Тестирование и запуск~10% часов
Сверка документов с бухгалтерией, нагрузка утреннего выставления КП, обучение двух диспетчерских смен
Домен-экспертизу дал начальник смены перевозчика: он знал, где тонут заявки и почему простой под погрузкой дороже пробега. Наша роль — превратить «как мы везём» в протокол и интерфейс, не потеряв ни одного правила
07Ориентир для повторения
Что нужно, чтобы повторить такую диспетчерскую
Нужно от заказчика
Артефакты старта
Вилки сроков и команды
Если тарифы живут «в голове директора» — это не блокер: первые сетки собираем из истории рейсов за месяц. Типовая вилка проектов этого класса — 10–14 недель
08Честно оговорим
Что обезличено — и что не показываем
Перевозчик не назван: направления, имена сотрудников и клиенты убраны — объём публикации согласован с владельцем в части метрик без идентификации
Метрики показаны за первые три месяца и округлены; сырые дашборды диспетчерской не публикуем
Фотография — временный плейсхолдер до согласования съёмки; интерфейсы показаны схемами, а не скриншотами, — по той же причине
Хотите такой же разбор своей диспетчерской — расскажите о задаче в форме ниже