Разберем типичную техническую ловушку, в которую нередко попадают специалисты при необходимости быстро развернуть локальную базу данных 1С и загрузить в нее данные из облачного сервиса (например, «1С:Фреш» или других облаков). Представим ситуацию: у вас есть чистая база «1С:Бухгалтерия предприятия 3.0 (Базовая)», и вам нужно загрузить в нее файл выгрузки данных. Однако версия локально установленной конфигурации оказалась на несколько релизов выше, чем версия конфигурации, из которой был сделан дамп в облаке.
В этой статье мы проанализируем, почему попытка быстрого «обмана» системы путем ручного изменения номера версии в свойствах конфигурации гарантированно приводит к краху базы данных, выясним природу возникающих при этом ошибок десериализации XML и рассмотрим правильный, безопасный и максимально быстрый алгоритм решения этой задачи.
На первый взгляд кажется, что если база абсолютно пустая, то для понижения ее релиза достаточно открыть Конфигуратор, снять конфигурацию с поддержки (или разрешить изменения), зайти в свойства конфигурации и вручную переписать текстовое поле «Версия» на более старое. После этого запускается режим «1С:Предприятие», и система начинает выполнять некоторые транзакции обновления.
Давайте выясним, почему этот финт является критической ошибкой:
ВерсииПодсистем. БСП «думает», что база действительно старая, и пытается запустить обработчики обновления. Но так как реальный программный код модулей остался новым, логика обработчиков ломается. Происходит попытка повторного применения обновлений, перезаписи системных констант и заполнения предопределенных данных, что приводит к разрушению структуры служебных таблиц.Для переноса данных из облака используется архивный файл data_dump.zip. Важно понимать фундаментальное отличие этого архива от привычной резервной копии формата .dt. Файл .dt содержит в себе и конфигурацию, и данные. В то же время data_dump.zip содержит только XML-файлы с самими данными (справочники, документы, константы, движения регистров) и не содержит программный код конфигурации.
Когда вы запускаете загрузку данных из сервиса, платформа выполняет следующие шаги:
data_dump.zip был сформирован в облаке под старую версию. В XML-файлах отсутствуют поля, добавленные в новых релизах, либо некоторые типы данных имеют другие типы и структуры.Попытка запустить процедуру «Тестирование и исправление» (ТиИ) в этой ситуации только усугубляет проблему. ТиИ пытается сопоставить физическую структуру таблиц базы данных с искаженными метаданными конфигурации, обнаруживает критические расхождения и начинает принудительно очищать ссылки, ломая логическую целостность окончательно.
Если вам нужно развернуть чистую базу определенной версии, скачивание полного дистрибутива конфигурации (который может весить около 2 ГБ) на низкой скорости интернета — это нерациональная потеря времени. Для решения задачи нам потребуется только файл конфигурации поставщика.
Рассмотрим по шагам правильный алгоритм действий:
.cf нужного вам старого релиза. Объем такого файла обычно составляет всего 100–300 МБ, что скачивается и передается на компьютер клиента в разы быстрее..cf нужной вам старой версии.data_dump.zip. Процесс загрузки пройдет абсолютно штатно, без ошибок XDTO и повреждения логической целостности базы.Используя данный подход, вы гарантируете стабильную работу информационной базы у клиента, исключаете появление отложенных системных ошибок БСП в будущем и существенно экономите свое время на передачу тяжелых дистрибутивов по каналам связи.