Как загрузить дамп информационной базы с расширением в 1С:Фреш и избежать ошибки XDTO?

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

При переходе в облачный сервис 1С:Фреш (или развертывании локального Фреша на собственных серверах) многие специалисты сталкиваются с критической ошибкой на этапе загрузки выгруженного архива `data_dump.zip`. Если в исходной локальной базе подключено расширение, добавляющее новые объекты (справочники, документы, реквизиты), процесс загрузки прерывается.

Система выдает сообщение вида: Ошибка преобразования данных XDTO: Отсутствует отображение для типа.... Разберем подробнее, почему возникает эта ситуация и как правильно перенести базу, сохранив при этом все накопленные данные.

Выясним причину возникновения ошибки XDTO

Проблема кроется в архитектурных особенностях загрузки данных в 1С:Фреш. Проанализируем ситуацию:

  1. При загрузке дампа платформа всегда создает новую, абсолютно чистую область данных на основе типовой конфигурации.
  2. Сразу после этого начинается потоковое чтение и парсинг XML-файлов из архива с данными.
  3. Так как расширение к этой новой области еще не подключено, сериализатор платформы натыкается на неизвестные ему объекты (например, новый документ из расширения).
  4. Сериализатор не понимает, как прочитать этот тип данных, и генерирует фатальную ошибку XDTO.

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

Решение 1: Перенос без сохранения данных расширения

Если данные из расширения вам не нужны (например, там были только временные записи или пустые справочники), воспользуемся базовым алгоритмом:

  1. Удалите расширение из локальной информационной базы.
  2. Выгрузите стандартный дамп типовой конфигурации.
  3. Загрузите полученный архив в 1С:Фреш. База загрузится без ошибок.
  4. Отправьте файл расширения на обязательный аудит в сервисе.
  5. После успешного прохождения аудита подключите расширение к загруженной области данных.

Решение 2: Перенос с полным сохранением данных из расширения

Рассмотрим по шагам более сложный, но необходимый для бизнеса сценарий, когда данные в расширении (например, созданные документы) нужно перенести в облако.

Поскольку типовой механизм выгрузки дампа нам не поможет, перенесем данные расширения отдельно. Выполним следующие действия:

  1. Подготовим правила обмена или обработку. Мы можем использовать конфигурацию "Конвертация данных 2" (КД2) и написать правила обмена исключительно для объектов расширения. В качестве источника и приемника выступает типовая конфигурация с данным расширением. В качестве альтернативы можно написать простую внешнюю обработку, которая выгрузит нужные объекты в формат JSON.
  2. Выгрузим данные. Запустите обработку `Универсальная загрузка/выгрузка данных в формате XML` (или свою обработку для JSON) в локальной базе и сохраните данные объектов расширения в отдельный файл.
  3. Подготовим базу к переезду. Удалите расширение из локальной базы (данные, добавленные расширением, при этом очистятся, но у нас есть резервная выгрузка из шага 2).
  4. Выгрузим и загрузим дамп. Выгрузите типовой дамп базы и загрузите его в 1С:Фреш. Процесс пройдет успешно.
  5. Подключим расширение в облаке. Отправьте расширение на аудит. Помните, что во Фреше действуют правила безопасного режима: в коде не должно быть синхронных вызовов, прямой работы с файловой системой или инициализации COM-объектов. После аудита установите расширение в область данных.
  6. Загрузим данные расширения в облако. Войдите в Фреш-базу под пользователем с правами Владельца абонента. Ему необходимо дать права на открытие внешних отчетов и обработок. С помощью универсальной загрузки XML (или вашей внешней загрузки JSON) прочитайте сохраненный ранее файл и создайте объекты.

Обратите внимание: Если вы используете универсальную загрузку/выгрузку данных, вам потребуется закомментировать в её модуле проверку на наличие полных административных прав, так как у Владельца абонента в облаке прав АдминистраторСистемы нет, однако есть права на изменение данных в своей области.

Дополнительные нюансы при переносе в 1С:Фреш

Проанализируем дополнительные шаги, которые помогут сделать переезд гладким:

Ограничения на размер дампа: Перед выгрузкой архива учитывайте, что сервис ограничивает максимальный размер загружаемого zip-файла (обычно 2-3 ГБ). Рекомендуется предварительно оптимизировать локальную базу: очистить старые журналы регистрации, удалить неиспользуемые версии файлов и провести сжатие таблиц базы данных.

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

Автоматический перенос: Даже если вы решите воспользоваться штатной обработкой "Переход в сервис" для прямого соединения базы с облаком, правило остается неизменным: любые расширения, изменяющие структуру (добавляющие новые таблицы), придется временно отключить перед миграцией и переносить их данные отдельно по описанному выше алгоритму.

← На главную