Как исправить ошибку формата потока данных при обновлении отчетов УПП с платформы 8.3 на 8.2?

Программист 1С v8.3 (Обычные формы) IT и автоматизация бизнеса
← На главную

При обслуживании и обновлении конфигурации «Управление производственным предприятием» (УПП) разработчики часто сталкиваются с ситуацией, когда конфигураторы новых релизов обновляются на платформе 1С:Предприятие 8.3, а рабочая база пользователей все еще функционирует под платформой 8.2. При попытке применить сравнение и объединение конфигураций или открыть внешний отчет, сохраненный в платформе 8.3, возникает аварийное завершение работы с сообщением «Ошибка формата потока данных».

Проанализируем причины возникновения этой проблемы и разберем практические варианты ее решения.

Причины возникновения ошибки

Выясним, почему возникает данная проблема. Платформа 1С:Предприятие не обладает полной обратной совместимостью «сверху вниз». Это означает, что метаданные и объекты, сохраненные на более новой версии платформы, не могут быть корректно прочитаны более старой версией:

  1. Изменение формата метаданных: При сохранении объектов на платформе 8.3 меняются бинарный и XML-форматы хранения данных. Платформа 8.2 не умеет обрабатывать новые структуры и считывать обновленные теги.
  2. Обновление структуры схем компоновки данных (СКД): Новые релизы платформы добавляют дополнительные параметры и свойства в схемы СКД, которые платформа 8.2 воспринимает как повреждение потока.
  3. Изменения в описании форм и макетов: При пересохранении форм или макетов в 8.3 меняется описание элементов управления, что приводит к падению платформы 8.2 при попытке сравнения или открытия файла.

Способ 1. Очистка кэша платформы 1С

Иногда ошибка формата потока может быть вызвана накоплением поврежденных временных файлов платформы. Проверим этот вариант в первую очередь:

  1. Завершим работу всех сеансов 1С и конфигуратора.
  2. Удалим информационную базу из списка запуска 1С и добавим ее заново (при этом меняется идентификатор базы и создается новый каталог кэша).
  3. Либо вручную очистим каталоги временных файлов пользователя:

    %LOCALAPPDATA%\1C\1Cv82

    %APPDATA%\1C\1Cv82

Способ 2. Запуск рабочей базы под платформой 8.3 в режиме совместимости

Наиболее технологичным и рекомендованным решением является переход на запуск базы под платформой 8.3. Для этого не требуется глобально перерабатывать конфигурацию УПП:

  1. Установим актуальную версию платформы 1С:Предприятие 8.3.
  2. Переведем запуск информационной базы на платформу 8.3.
  3. В свойствах корневого элемента конфигурации укажем режим совместимости с платформой 8.2.19.

Это позволит платформе корректно обрабатывать и сравнивать объекты от новых релизов без нарушения структуры текущей конфигурации.

Способ 3. Перенос схемы СКД через XML

Если необходимо обновить только конкретный отчет и оставить разработку на платформе 8.2, разберем по шагам порядок переноса основной схемы компоновки данных:

  1. Откроем нужный отчет в конфигураторе на платформе 8.3.
  2. Зайдем в макет схемы компоновки данных и выгрузим схему в отдельный файл с расширением .xml.
  3. Откроем конфигуратор на платформе 8.2, создадим новый отчет или откроем существующий.
  4. Добавим новую схему компоновки данных и выполним загрузку из ранее сохраненного XML-файла.
  5. Если при загрузке платформа выдает ошибку на неизвестные теги, откроем XML-файл в текстовом редакторе и удалим свойства, появившиеся только в платформе 8.3.

Способ 4. Доработка отчета в среде 8.2

Если отчет содержит сложные формы и множественные макеты, объединение которых вызывает сбой, рассмотрим вариант ручного переноса:

  1. Возьмем за основу исходную версию отчета из предыдущего релиза УПП, который заведомо не открывался и не сохранялся на платформе 8.3.
  2. Откроем его на платформе 8.2.
  3. Вручную перенесем изменения в модули и структуры программного кода, сопоставляя тексты процедур и функций с версией из нового релиза.
← На главную