Переход на новый формат обмена данными с ЕГАИС (V3) часто сопровождается техническими сложностями, особенно на устаревших релизах конфигураций и операционных системах. В данной статье мы детально разберем ситуацию, когда 1С:Розница 2.2.8 перестает загружать входящие ТТН, а в журнале регистрации появляются ошибки разбора XML-пакетов и статусов тикетов. Рассмотрим причины возникновения этой проблемы и пошаговые методы её решения.
Ситуация, при которой ТТН приходят только после ручного запроса из личного кабинета ЕГАИС, а автоматический обмен выдает ошибки, свидетельствует о том, что транспортный модуль (УТМ) получает данные, но 1С не может их корректно прочитать или сопоставить со своими внутренними запросами. Выделим ключевые факторы, влияющие на этот процесс:
Рассмотрим порядок действий для синхронизации формата обмена между 1С и УТМ. Недостаточно просто нажать кнопку в интерфейсе; важно убедиться, что изменения применились ко всем участникам документооборота.
Зайдем в настройки обмена с ЕГАИС и убедимся, что для вашей организации установлен формат V3. Однако, как показывает практика, после переустановки УТМ настройки могут сброситься. Выясним, как принудительно инициализировать смену формата:
ФорматыОбменаЕГАИС. Убедимся, что для каждой торговой точки и каждого активного поставщика в базе прописан актуальный формат.ReplyRests_v2, это верный признак того, что в конфигурации остались записи, ссылающиеся на старую схему.Проанализируем ситуацию, когда в УТМ висят сообщения, вызывающие ошибки разбора (например, новые тикеты об отзыве ТТН). 1С «спотыкается» на первом же некорректном файле и прекращает загрузку остальных. В этом случае нам поможет ручное удаление «проблемных» тикетов.
Для этого воспользуемся утилитой curl, входящей в состав многих систем или доступной для скачивания. Выполним команду для удаления входящих сообщений, которые 1С не может распознать:
curl -X DELETE http://localhost:8080/transport/out/xxx
Где xxx — это идентификатор сообщения (ID), который можно увидеть в локальном интерфейсе УТМ (http://localhost:8080). Если сообщений слишком много, иногда эффективнее полностью переустановить УТМ, предварительно убедившись, что все важные документы уже загружены в учетную систему.
Поскольку используется ОС Windows 7, выясним причину возможного «зависания» запросов на уровне сетевого взаимодействия. Серверы ЕГАИС требуют использования протокола TLS 1.2. Рассмотрим, как включить его поддержку:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols должна содержать подразделы для TLS 1.2 с параметром Enabled = 1.Проанализируем работу регламентных заданий. В 1С:Розница загрузка ТТН часто выполняется в фоновом режиме. Если в настройках базы данных на SQL-сервере стоит флаг «Блокировка регламентных заданий», обмен не начнется автоматически.
Посмотрим на настройки базы в консоли администрирования серверов 1С:Предприятия:
Разберем еще одну техническую тонкость. 1С сопоставляет каждый входящий ответ из УТМ с записью в регистре ЗапросыЕГАИС. Если база восстанавливалась из бэкапа или произошел сбой, запись об исходящем запросе может отсутствовать, а ответ в УТМ прийти. В этом случае 1С будет выдавать ошибку «Не найден запрос для входящего сообщения».
Рассмотрим алгоритм исправления:
Запросы ЕГАИС.Подводя итог, можно сказать, что проблема в 1С:Розница 2.2.8 обычно носит комплексный характер. Рекомендуется следующий порядок действий: сначала очистить очередь УТМ от старых сообщений, затем проверить актуальность TLS в Windows 7, убедиться в отсутствии блокировок заданий в SQL и, наконец, принудительно перепроверить настройки формата V3 в регистрах 1С. Если ошибки типа ReplyForm1 или ReplyRests_v2 сохраняются, стоит рассмотреть возможность обновления конфигурации до актуального релиза, так как в версии 2.2.8 схемы XDTO для некоторых новых типов документов реализованы лишь частично.