При разработке в среде 1С:Предприятие часто возникает ситуация, когда конфигурация, созданная или измененная на более свежем релизе платформы (например, 8.3.20), отказывается загружаться на компьютере клиента или сервере, где установлена более старая версия (например, 8.3.18). При попытке загрузить файл .dt или .cf система выдает критическую ошибку: "Для загрузки файла требуется платформа не меньше чем 8.3.20".
Рассмотрим природу этой проблемы и разберем несколько способов ее решения — от "хирургического" вмешательства в исходные файлы конфигурации до использования профессиональных инструментов разработки.
Разберем ситуацию подробнее. Платформа 1С при сохранении конфигурации записывает в файл информацию о версии формата метаданных. Даже если вы не использовали новые объекты или функции, появившиеся в релизе 8.3.20, заголовок файла уже содержит метку этой версии. Старая платформа, видя эту метку, блокирует загрузку, так как "не знает", как интерпретировать структуру файла, созданную более современным "движком".
Важно понимать разницу между режимом совместимости в свойствах конфигурации и версией формата выгрузки. Установка режима совместимости "8.3.18" внутри платформы 8.3.20 не меняет формат самого файла выгрузки, поэтому простая смена настройки в конфигураторе чаще всего не помогает.
Проанализируем самый быстрый и действенный метод, который не требует установки дополнительных программ. Он заключается в обмане системы путем подмены версии платформы в файлах выгрузки.
Configuration.xml.
<CompatibilityMode>Version8_3_20</CompatibilityMode>
<ConfigurationExtensionCompatibilityMode>Version8_3_20</ConfigurationExtensionCompatibilityMode>
Version8_3_20 на нужную нам версию, например, Version8_3_17 (или ту, что установлена на целевом ПК). Внимание: это нужно сделать во всех местах файла, где встречается упоминание версии платформы.Configuration.xml.Как показывает практика, после этих манипуляций конфигуратор успешно "проглатывает" файлы, и база начинает работать на старой платформе.
Иногда платформа блокирует именно полную загрузку (замену) конфигурации, но позволяет выполнить сравнение и объединение. Выясним, как использовать это поведение:
.cf, выгруженный из новой платформы.Этот метод безопаснее, так как платформа сама пытается адаптировать объекты под текущую версию в процессе объединения.
Посмотрим на ситуацию со стороны профессиональной разработки. EDT — это современная среда разработки, которая работает с исходным кодом конфигурации напрямую. Для нее версия платформы — это лишь настройка проекта.
Если проект серьезный, выполним следующие шаги:
project.xml или через интерфейс настроек) изменим версию целевой платформы на 8.3.18..cf.Этот метод является самым надежным, так как исключает риск возникновения "дампов" (аварийных завершений) из-за использования функционала, которого физически не существует в старой платформе.
Проанализируем возможные последствия принудительного "понижения" версии. Нужно помнить:
Configuration.xml — это "хак". Платформа может начать вести себя непредсказуемо при попытке редактирования объектов, метаданные которых изменились структурно.Рассмотрим полезный совет: если вам нужно перенести данные вместе с конфигурацией, лучше сначала перенести структуру одним из описанных выше способов, а затем воспользоваться обработкой ВыгрузкаЗагрузкаДанныхXML.epf. Она работает через универсальный формат и гораздо менее чувствительна к версиям платформы 1С.
Выясним причину, почему так важно проверять рабочее место клиента заранее. Как отмечали участники обсуждения, "чинить надо в ДНК" (в переносном смысле — в подходе к работе). Всегда старайтесь вести разработку на той версии платформы, которая является целевой для эксплуатации. Если же ситуация уже случилась, используйте Способ 1 для простых задач и Способ 3 (EDT) для сложных корпоративных систем.