При попытке открыть старую внешнюю обработку формата 1С:Предприятие 8.1 в современных версиях платформы 1С:Предприятие 8.3 (особенно в релизах 8.3.8, 8.3.9 и новее) разработчики часто сталкиваются с критической ошибкой. Программа выдает сообщение "структура базы несовместима с версией программы", после чего Конфигуратор или режим 1С:Предприятие аварийно завершает свою работу. Разберем по шагам, почему возникает эта неполадка и как успешно сконвертировать обработку для работы в актуальной версии платформы.
Проанализируем техническую сторону вопроса. Внешние файлы обработок с расширением .epf представляют собой специализированные структурированные хранилища (бинарные контейнеры). Формат сериализации метаданных, интерфейсных компонентов и программных потоков между версиями 8.1 и 8.3 имеет кардинальные различия.
В ранних релизах платформы механизм миграции пытался преобразовать структуру налету. Однако начиная с релиза 8.3.8 и особенно в 8.3.9, внутренние механизмы совместимости форматов были глубоко переработаны, а прямая трансляция из формата 8.1 была окончательно упразднена. Из-за отсутствия сквозной обратной совместимости через целое поколение систем Конфигуратор старших релизов 8.3 не может корректно прочитать внутренний контейнер эпохи 8.1, что вызывает фатальный сбой ядра платформы.
Рассмотрим основной и самый надежный рабочий способ решения проблемы — пошаговую конвертацию файла через промежуточную версию технологической платформы. Платформа 1С:Предприятие 8.2 умеет штатно открывать и переводить объекты ветки 8.1 в свой внутренний формат, а платформа 8.3, в свою очередь, без ошибок открывает файлы формата 8.2.
1С:Предприятие 8.2 (подойдет любой стабильный релиз, например, 8.2.19).8.2 в любой пустой или тестовой информационной базе..epf.1С:Предприятие 8.3 и откроем сохраненный файл. Платформа откроет его в штатном режиме без вылетов и критических ошибок.Разберем ситуацию, когда цель открытия старого файла — исключительно перенос алгоритма (например, функций трансформации таких объектов, как ТаблицаЗначений или ДеревоЗначений), а устанавливать устаревшие дистрибутивы 8.2 нет возможности или желания. В этом случае мы можем извлечь программный код напрямую из контейнера без запуска платформы 1С.
v8unpack или скрипты на базе OneScript/Python)..epf во временную папку. Утилита извлечет вложенные потоки данных.8.3.Посмотрим на особенности, с которыми предстоит столкнуться после успешного открытия обработки в современной платформе:
8.1, являются обычными (толстыми) формами. Если рабочая конфигурация 8.3 функционирует в режиме управляемого приложения (интерфейс «Такси»), открыть такую форму в тонком клиенте не удастся. Потребуется либо запускать сеанс в режиме Толстый клиент (управляемое приложение) с включенной поддержкой обычных форм, либо перерисовать интерфейс на управляемые формы.&НаСервере, &НаКлиенте). Коллекции ДеревоЗначений и ТаблицаЗначений в управляемом приложении 8.3 доступны исключительно на стороне сервера. При переносе алгоритма в управляемые формы весь код работы с ними должен быть расположен в процедурах и функциях с серверной директивой.8.3.9, активирован встроенный механизм безопасности. При интерактивном открытии любого внешнего файла .epf система выдает предупреждение безопасности. Для выполнения кода потребуется явное подтверждение пользователя.