Мы 10 месяцев готовили ЭТрН. Всё сломалось из-за потока, который нельзя было отключить штатно»

Все названия продуктов, компаний и деталей изменены. История собирательная, но боль настоящая.

В пятницу мы жали друг другу руки и говорили: «Ну всё, запустились». В понедельник утром я сидел в пустом офисе, пил четвёртый кофе и смотрел на монитор, где входящая лента была просто... пустая. Не «мало документов». Пустая. Ноль. Как будто сервер оператора ЭДО взял и умер. А он не умер. Он работал. Просто захлебнулся потоком, о существовании которого мы узнали только в тот самый понедельник. Десять месяцев подготовки. Три дня тишины. И три недели разгребания.

Десять месяцев в режиме «ещё чуть-чуть»

Ноябрь 2025-го. Нам говорят: с первого сентября 2026 года ЭТрН — обязательна для всех. Не «желательна». Не «пилотный режим». Обязательна. Дедлайн — железный, как бетонная плита.И мы начинаем. Титулы. Кто работал с ЭТрН, тот знает, что такое Титулы. Это не просто поля. Это состояния, переходы, статусы, которые должны меняться в строгой последовательности. Мы настраивали их, пере настраивали, ругались, переделывали. Помню, в марте мы в третий раз переписывали автозаполнение — потому что на втором тесте выяснилось, что поле «масса брутто» подтягивается не из того справочника. Мелочь? Ага. А попробуй объяснить логисту, почему в накладной написано «0 кг». Склады обучали отдельно. Сначала они смотрели на нас как на людей, которые пришли усложнить им жизнь. Потом привыкли. Потом начали задавать вопросы. Потом сами находили баги. К августу всё было отлажено: автоматизация создаёт накладную, заполняет поля, отправляет на подпись. Тесты зелёные. Я помню, как в последний вечер перед запуском сидел в офисе до девяти, гонял контрольный сценарий в пятый раз. Работает. Выдохнул. Пошёл домой.(Зря выдохнул.)

День Х. И два дня тишины

Первое сентября. Массовый запуск ЭТрН по всей стране. Мы на работе с семи утра. Смотрим на мониторы. Документы идут. Немного, но идут. Статусы меняются. Подписи ставятся. Операторы на складах подтверждают приёмку. Тишина. Хорошая тишина.Второе сентября. То же самое. Уже чуть больше объём, но система справляется. Мы начинаем расслабляться. Кто-то в чате пишет: «Ну вроде живём». Я ставлю реакций огонёк. Иду обедать.Третье сентября. 7:40 утра. Мне пишет оператор: «У меня лента пустая. Вообще пустая. Я перезагрузила три раза. Не помогает.»Сначала подумал: ерунда. Перезапустим службу. Может, кэш завис. Может, канал моргнул. Перезапускаю. Не помогает. Исходящие ЭТрН создаются в системе — я их вижу, они сформированы. Но подпись не ставится. На сервер оператора не уходят. Входящие — ноль. Тишина в ленте.К десяти утра я уже не пью кофе. Я пью кофе и одновременно висю на телефоне с поддержкой оператора. К обеду понимаю: проблема не на их стороне. Сервер отвечает. Канал живой. Проблема у нас. Внутри.

Одна труба на два крана

Знаете, как это бывает? Ты смотришь на систему и думаешь: «Ну не может быть. Мы же всё сделали по инструкции.» А потом начинаешь копать. И находишь. То, о чём в инструкции не было ни слова.Короче. Представьте, что у вас в квартире два крана. Один на кухню, один в ванную. Вы ими пользуетесь, всё нормально. А потом выясняется, что вода из обоих кранов идёт в одну трубу. И пока вы моете посуду тонкой струйкой — всё ок. Но когда весь подъезд одновременно открывает воду на полную... Труба не справляется. Вот это и произошло.Сервер оператора ЭДО по умолчанию отправлял транспортные сообщения в оба модуля одновременно. И в логистический модуль, который мы поставили в начале 2026 года специально для работы с перевозками. И в модуль ЭДО — потому что эта функция предусмотрена для тех компаний, у которых отдельного логистического модуля нет и они обрабатывают ЭТрН прямо через документооборот.У нас модуль был. И мы действовали строго по логике продукта: раз есть отдельный логистический модуль, значит, провайдер сам разруливает потоки. Транспортные документы — в логистику. Бухгалтерские — в ЭДО. Так устроены нормальные интеграции.Мы начали искать, как отключить дублирующий поток. Искали в настройках модуля ЭДО. Искали в документации. Искали в базе знаний. Не нашли. Написали провайдеру: «У нас установлен логистический модуль, он обрабатывает ЭТрН. Как отключить получение транспортных сообщений в модуле ЭДО?»Ответ был примерно такой: «Штатной настройки нет. Отключайте программно.»(Я в тот момент очень долго смотрел в монитор. Потом выдохнул. Пошёл писать ТЗ на доработку.)

Почему мы не могли это предвидеть

Я хочу быть честным. Мы не думали об этом. Не потому что не профессионалы. А потому что в документации и в самом продукте провайдера этого сценария не существовало. Когда мы ставили логистический модуль, мы читали инструкцию от корки до корки. Там было написано: подключите модуль, настройте интеграцию, транспортные документы будут обрабатываться в логистическом контуре. Точка. Ни слова о том, что модуль ЭДО продолжит получать те же самые документы параллельно. Ни слова о том, что нужно писать доработку, чтобы отфильтровать поток. Ни слова.Мы рассуждали как инженеры: если провайдер сделал отдельный логистический модуль — значит, он забирает на себя транспортный поток. Значит, в модуль ЭДО этот поток больше не идёт. Зачем ему туда идти? Это же дублирование. Это же бессмысленная нагрузка. Это же противоречит здравому смыслу. Оказалось — нет. Не противоречит. Просто провайдер не предусмотрел механизм штатного отключения для тех, у кого логистический модуль есть. Два модуля от одного провайдера, которые друг о друге не знают. И пользователь, который должен сам писать костыли, чтобы они не мешали друг другу. До первого сентября объёмы были крошечные. Несколько тестовых накладных в день. Двойной поток — незаметен. А первого сентября вся страна начала оформлять ЭТрН. И в модуль ЭДО хлынуло: транспортные сообщения, изменения Титулов, служебные события, промежуточные статусы. Всё. Вперемешку. В очередь, которая к такому не готова.

Три недели

Первые три дня мы ещё надеялись найти штатный способ. Перечитывали документацию. Писали в поддержку. Получали ответы в духе «передадим в продуктовую команду». Не нашли. Поняли: придётся писать доработку. Доработка — это не «поставить галочку». Это правка логики обмена. Это фильтр, который на лету отсекает транспортные сообщения от потока, идущего в модуль ЭДО. Это тесты. Это выкатка в боевой контур. Это страх, что сломается что-то ещё.Написали. Протестировали. Выкатили. Нагрузка упала. Но не до нуля — очередь была забита на несколько дней вперёд. Плюс нужно было перестроить маршрутизацию, переписать алгоритм подписания, проверить каждый сценарий заново.Три недели. Не три дня. Три недели ручного разбора, звонков от логистов каждый час, операторов на нервах, бухгалтеров. Три недели, в течение которых УПД создавались в системе, но не уходили на сервер. «Кое-как работали» — это, пожалуй, самое точное описание.К концу сентября всё восстановилось. Документы пошли. Подписи ставились. Лента ожила.

Что я теперь делаю иначе

Если бы я мог вернуться в ноябрь 2025-го, я бы сделал пять вещей:
Первое. Если в продукте провайдера нет штатной настройки для очевидного сценария — это само по себе красный флаг. Закладывай время на программные костыли. Сразу. Не «когда столкнёмся». Сразу. Две-три недели на доработку, которая по идее должна быть в коробке.
Второе. Теперь я разделяю мониторинг по типам документов. Не просто «лента входящих», а отдельно: договоры, счета, акты, транспортные. И алерт на аномальный рост каждого типа. Если в модуль ЭДО не должно быть транспортных — их не должно быть. И если они вдруг появляются — я хочу знать об этом в ту же секунду.
Третье. Нагрузочное тестирование — не «обычный рабочий день», а сценарий «вся страна одновременно нажала кнопку». Если дедлайн привязан к массовому запуску — и нагрузку моделируй массовую. И обязательно — с подключёнными всеми модулями одновременно.
Четвёртое. Подключать новый модуль за месяц-два до дедлайна. Не за две недели. Дать системе поработать в новом состоянии. Пусть двойной поток проявится на тестовых объёмах, а не в день Х.
Пятое. Перед подключением нового модуля — писать провайдеру напрямую: «Мы ставим логистический модуль. Что изменится в потоке сообщений? Как отключить дублирование? Где это в документации?» Не ждать, что найдёшь сам. Спрашивать. Письменно. С сохранением переписки. И если ответ «штатно никак» — сразу готовить план Б.

Выдох

ЭТрН работает. Документы ходят. Подписи ставятся. Я больше не вздрагиваю от звука уведомлений в телефоне. Почти.А провайдеру мы написали. Подробно. С описанием ситуации, с хронологией, с просьбой добавить штатную настройку и нормальную документацию для сценария с двумя модулями. Ответили: «Принято. Передадим в продуктовую команду.» Надеюсь, до следующего массового запуска кто-то не напишет ту же доработку с нуля.А у вас было что-то подобное? Когда два модуля от одного провайдера оказывались несовместимы без костылей, а в документации не было ни слова про очевидный сценарий? Расскажите в комментариях. Мне правда интересно. Я хочу знать, что не один такой.