Как исправить ошибку формата потока при обмене с ВЕТИС в 1С:УТ 11.4?

Программист 1С v8.3 (Управляемые формы) 1С:Управление торговлей Управленческий учет Торговля и дистрибуция
← На главную

При работе в 1С:Управление торговлей 11.4 пользователи нередко сталкиваются с ситуацией, когда при запуске обмена с подсистемой ВЕТИС (Меркурий) процесс прерывается и система выдает сообщение «Ошибка формата потока». Это достаточно общая ошибка платформы 1С, которая может указывать как на проблемы с самой информационной базой, так и на сбои в передаче данных. Проанализируем эту ситуацию и разберем по шагам все возможные способы решения данной проблемы.

Очистка кэша и удаление старых протоколов обмена

В первую очередь всегда следует исключить влияние временных файлов и накопленных логов. Начнем с базовых процедур, которые мы выполним прямо сейчас.

  1. Очистим локальный кэш пользователя. Самый простой способ сделать это — удалить проблемную информационную базу из списка баз в окне запуска 1С и добавить её заново, указав тот же путь. Это обновит локальные временные файлы на вашем рабочем месте.
  2. Удалим старые протоколы. Перед запуском новой синхронизации зайдем в настройки обмена с ВЕТИС и очистим (удалим) все предыдущие протоколы обмена. Иногда платформа «спотыкается» при попытке обработать огромный массив старых логов.
  3. Очистим серверный кэш. Если ваша база работает в клиент-серверном варианте (SQL), учтите, что фоновые задания по обмену с ВЕТИС выполняются на сервере 1С. В этом случае локальной чистки недостаточно. Остановим службу Агента сервера 1С:Предприятия, перейдем в каталог кластера серверов, найдем и очистим папки snccntx, после чего запустим службу заново.

Проверка синхронизации классификаторов и смещения

Если очистка кэша не помогла, рассмотрим подробнее настройки синхронизации классификаторов ВЕТИС. Зачастую проблема кроется в некорректном сдвиге (смещении) при загрузке справочников.

  1. Перейдем в Панель обмена ВЕТИС.
  2. Откроем раздел Синхронизация данных (или Синхронизация классификаторов).
  3. Обратим внимание на реквизит Смещение в строках классификаторов. Если в этом поле стоит значение больше нуля, это может вызывать сбой при получении очередного пакета данных.
  4. Очистим значение смещения (установим его в 0).
  5. Выполним синхронизацию построчно: кликнем правой кнопкой мыши на строке классификатора и выберем пункт синхронизации. По кнопке F5 обновим статус и проверим результат.
  6. Также проанализируем протокол обмена: если в логах есть пустые строки (например, не заполнен реквизит Документ), удалим такие «зависшие» и неиспользуемые записи.

Решение проблем с XML-ответами и сетевым соединением

Обмен между 1С и шлюзами ВЕТИС осуществляется с помощью передачи файлов в формате XML. Выясним причину сбоя на уровне сети.

Если во время обмена происходит кратковременный обрыв интернет-соединения или сервер Россельхознадзора из-за высокой нагрузки возвращает оборванный (недогруженный) пакет данных, платформа 1С не может корректно прочитать структуру XML. При попытке распарсить такой файл возникает ошибка чтения потока. Что мы можем сделать?

Увеличим таймаут ожидания ответа в настройках интеграции. Если проблема носит массовый характер из-за сбоев на стороне ВЕТИС, зачастую достаточно просто повторить процедуру обмена через пару часов. В ситуациях, когда типовой обмен зависает или выдает сбои, для переноса данных можно использовать обработку для загрузки записей журнала продукции и ВСД из ВЕТИС.

Лечение и тестирование информационной базы (ТИИ)

Ошибка формата потока может прямо свидетельствовать о логическом или физическом повреждении внутренних таблиц базы данных 1С. Проведем диагностику — поможет инструмент выявления и удаления поврежденных записей базы.

  1. Если используется файловая база данных, запустим встроенную утилиту chdbfl.exe (находится в папке bin установленной платформы) и пролечим файл 1Cv8.1CD.
  2. Откроем базу в режиме Конфигуратора. Перейдем в меню «Администрирование» и выберем Тестирование и исправление. Рекомендуется отметить галочками реиндексацию таблиц, проверку логической и ссылочной целостности (для этого подойдет обработка поиска и безопасного удаления битых ссылок).
  3. В качестве крайней меры выполним глубокую реструктуризацию: выгрузим базу данных в файл формата .dt, создадим новую пустую базу и загрузим этот файл в нее. Это полностью перестроит внутренние индексы.

Проверка расширений и совместимости форматов API

Россельхознадзор регулярно обновляет протоколы и форматы шлюзов ВЕТИС.API. Конфигурация 1С:УТ 11.4 уже не является самой современной, поэтому в нее могут поступать XML-пакеты в новом формате, к которому старые алгоритмы парсинга 1С не готовы.

Убедимся, что наша версия платформы обновлена до актуального релиза. Также обязательно проверим наличие официальных патчей (исправлений) от фирмы «1С» для подсистемы ВЕТИС в УТ 11.4 и установим их.

Дополнительно проанализируем установленные расширения. Если у вас подключены нетиповые расширения, дорабатывающие складской учет или саму интеграцию с Меркурием, временно отключим их все. Запустим обмен. Если без расширений ошибка ушла, значит, проблема в коде конкретного расширения, которое вызывает сбой сериализации при обработке данных.

← На главную