Доработали систему М!Трансфер, которой «Матч ТВ» пользуется по всей России: дата и время заявки теперь показываются по часовому поясу адреса, а не по московскому времени на экране пользователя.
«Матч ТВ» — федеральный спортивный телеканал, сотрудники которого работают по всей России. Служебный транспорт они заказывают через систему М!Трансфер, которую GROTEM создала для телеканала в 2021–2023 годах (подробнее — в первом кейсе). Доработку с часовыми поясами команда сделала на следующем этапе развития системы — требования согласовали с заказчиком в 2025 году.
Избавить пользователей по всей России от ручного пересчёта времени и сделать так, чтобы заявка либо создавалась корректно сразу, либо явно блокировалась — без скрытых ошибок по регламенту.
Показывать дату и время отправления и прибытия по часовому поясу адреса заявки, а не по устройству пользователя.
Проверять регламент по московскому времени до сохранения и блокировать кнопку «Сохранить», если он нарушен.
Применить ту же логику отображения времени и фильтрации, что и в «Заявках».
Чтобы каждый новый тип заявки автоматически получал корректное отображение времени без доработок под конкретный случай.
Команда GROTEM разложила доработку по трём точкам, с которыми пользователи работают каждый день: визарду создания заявки, разделу «Маршруты» и разделу «Заявки»/«Лимит такси».
В мастере создания и редактирования заявки дата и время отправления и прибытия сразу показываются в часовом поясе адреса. Если введённое время нарушает регламент по Москве, сразу появляется предупреждение «Внимание! Время подачи заявки по московскому времени истекло.», а кнопки «Сохранить» и «Продолжить» становятся неактивными. Исключение — пользователи с правом «Игнорирование регламентов при создании заявки».
На вкладках «Распределение» и «Маршруты» время каждой точки показывается и фильтруется так же, как в «Заявках» — по часовому поясу адреса, а не по Москве. Координаторам больше не нужно самим переводить время точек маршрута.
Колонки «Дата и время создания (МСК)» и «Дата и время обновления (МСК)», как и записи в истории заявки, явно подписаны московским временем — чтобы не путать его с локальным временем поездки. Печатные версии заявок и фильтр по дате учитывают часовой пояс адреса так же, как экран.
Больше всего сложностей давала не сама конвертация времени, а краевые случаи — когда устройство, часовой пояс отправления и часовой пояс прибытия попадали в разные календарные дни, а регламент при этом всегда мерился по Москве.
Время поездки показывается по-местному, а регламент проверяется по МСК. Заявки принимают до 18:00 по Москве: во Владивостоке в 21:00 по местному в Москве только 14:00, и заявку ещё можно создать. Поэтому восточнее Москвы система допускает даже заявку на время, которое по местным часам уже прошло.
Заявка, заведённая в Москве «на завтра», для адреса в другом часовом поясе может по факту приходиться уже на «сегодня» — и наоборот; такие случаи проверяли отдельно для каждого типа заявки.
Тысячи заявок и адресов были созданы до доработки и не содержали информацию о часовом поясе; при миграции для них проставили московский часовой пояс по умолчанию, чтобы отображение не «переехало» задним числом.
Из-за рассинхронизации форматов при каждом сохранении или переключении вкладки время могло незаметно «нарастать» на несколько часов — такие баги ловили только прицельным тестированием по опорным точкам.
Решение держится на трёх вещах: где хранится часовой пояс, кто и как его определяет, и кто считает — фронт или бэк.
Доработка распространяется на все 11 часовых поясов России и на все типы заявок М!Трансфер: на работу и с работы, на проект, в офис Краснознаменск и лимит такси.
время отправления и прибытия автоматически показывается в часовом поясе адреса, и пользователям вне Москвы больше не нужно вручную пересчитывать разницу
заявки с нарушенным регламентом не создаются, а пользователь узнаёт о проблеме ещё при вводе даты, а не из отказа
типовые вопросы вроде «на какое время ставить заявку» и «почему заявка не создаётся» отпадают вместе с причиной, которая их вызывала
координаторы и диспетчеры видят время каждой точки в её локальном часовом поясе на вкладках «Распределение» и «Маршруты»
фильтр по дате в «Заявках» и «Маршрутах» работает одинаково, по времени самой заявки, и заявки больше не «пропадают» из выборки из-за несовпадения поясов
в распечатанной заявке время пунктов отправления и прибытия совпадает с экраном — по часовому поясу каждого адреса
Доработка — часть системы М!Трансфер, которая в 2023 году получила премию Global CIO как лучший ИТ-проект в области кастомной разработки и была отмечена Tagline Awards. Подробнее о наградах — в первом кейсе о системе М!Трансфер.


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