В процессе работы с алкогольной продукцией пользователи конфигурации «1С:Розница» (особенно версии 2.2.7.39 и смежных релизов) часто сталкиваются с неприятной ситуацией. При попытке подтверждения входящей ТТН ЕГАИС документ отправляется в транспортный модуль, но его статус замирает на значении «Передан в УТМ». Фактически накладная на стороне системы ЕГАИС уже может быть подтверждена, но в самой программе 1С статус не обновляется на «Подтвержден», и при попытке выполнить обмен возникает ошибка. В этой статье мы подробно разберем, почему возникает этот сбой и какими способами можно вернуть работу системы в штатный режим.
Проанализируем техническую сторону вопроса. Основная причина кроется в глобальном переходе ЕГАИС на новые форматы обмена данными (версии 2 и 3). Сервер ФСРАР начинает присылать квитанции (тикеты) типа WayBillAct, которые старые релизы программы «1С:Розница» не ожидают увидеть в контексте подтверждения ТТН. Система просто не понимает, как сопоставить пришедший ответ с отправленным запросом, из-за чего алгоритм обработки прерывается.
Ситуация осложняется тем, что транспортный модуль (УТМ) успешно принимает и передает данные, но при возврате ответа программа 1С не находит в нем ожидаемых признаков соответствия типу. Это приводит к «зависанию» записи в базе данных. Рассмотрим подробнее, как мы можем решить эту задачу двумя основными путями: через интерфейс программы и через корректировку программного кода.
Если нам нужно быстро восстановить статус накладной без вмешательства в конфигуратор (что особенно актуально для пользователей Базовых версий), воспользуемся механизмом группового изменения данных. Этот метод заставляет систему «перезаписать» объект и инициировать проверку привязанных к нему тикетов.
Разберем этот процесс по шагам:
Товарно-транспортная накладная ЕГАИС (входящая).Ссылка или Идентификатор ЕГАИС и укажем конкретную накладную (например, содержащую номер TTN-0000000000).Дата регистрации движений.Почему это помогает? Изменение даты регистрации движений и последующая запись объекта активируют программные подписки на события. При записи документа 1С заново сканирует входящие сообщения из УТМ и, обнаружив «потерянный» тикет, привязывает его к нашей ТТН. Статус документа корректно меняется на «Подтвержден».
Если вы используете версию ПРОФ и готовы внести изменения в код (или использовать расширение), проанализируем ситуацию в конфигураторе. Проблема заключается в функции, которая проверяет соответствие типа документа. Нам необходимо расширить список допустимых типов, чтобы программа начала узнавать акты подтверждения накладных.
Рассмотрим подробнее изменения в общем модуле ИнтеграцияЕГАИС. Нам нужно найти функцию ДокументСоответствуетТипуЕГАИС и дополнить её логику.
Исходный фрагмент кода обычно выглядит так:
Возврат ВРег(ТипЕГАИС) = ВРег("WayBill")
ИЛИ ВРег(ТипЕГАИС) = ВРег("WayBill_v2")
ИЛИ ВРег(ТипЕГАИС) = ВРег("WayBill_v3");
Нам необходимо заменить его на вариант, который учитывает типы WayBillAct. Мы добавим проверку на версии актов, чтобы система корректно обрабатывала тикеты, приходящие от ФСРАР:
Возврат ВРег(ТипЕГАИС) = ВРег("WayBill")
ИЛИ ВРег(ТипЕГАИС) = ВРег("WayBill_v2")
ИЛИ ВРег(ТипЕГАИС) = ВРег("WayBill_v3")
ИЛИ ВРег(ТипЕГАИС) = ВРег("WayBillAct")
ИЛИ ВРег(ТипЕГАИС) = ВРег("WayBillAct_v2")
ИЛИ ВРег(ТипЕГАИС) = ВРег("WayBillAct_v3");
После внесения этих правок и сохранения конфигурации система начнет автоматически распознавать входящие акты подтверждения, и проблема с зависанием статуса исчезнет для всех последующих накладных.
Если ручное изменение реквизитов кажется сложным, можно попробовать «подтолкнуть» систему через повторный запрос данных. Выясним, как это сделать:
TTN-0123456789).При получении ответа по конкретному идентификатору программа инициирует процедуру сопоставления данных. В большинстве случаев это приводит к тому, что статус уже существующей накладной обновляется до актуального.
Иногда корень проблемы лежит не в коде 1С, а в работе самого транспортного модуля. Проанализируем ситуацию: если в очереди УТМ скопилось слишком много необработанных сообщений (более 100-200), 1С может работать крайне нестабильно и пропускать нужные пакеты данных.
Рекомендуется выполнить следующие действия:
http://localhost:8080).Мы рассмотрели несколько способов решения проблемы со статусом ТТН. Самым надежным и долгосрочным решением является обновление конфигурации 1С:Розница до релиза 2.2.7.43 или выше (в ветке 2.2.8 и 2.3 эта ошибка полностью исправлена). Однако, если обновление невозможно по техническим причинам, использование групповой обработки реквизитов для изменения ДатаРегистрацииДвижений является проверенным и безопасным способом «протолкнуть» зависший документ.