Почему в 1С 8.2.19 отсутствует режим совместимости 8.2.16 и как правильно перевести базу на новую платформу

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

При администрировании и разработке на платформе 1С:Предприятие специалисты часто сталкиваются с необходимостью обновления версии платформы при сохранении стабильности работы конфигурации. Одной из самых запутанных ситуаций является поиск режима совместимости Версия 8.2.16 в последних релизах ветки 8.2 (например, 8.2.19). Рассмотрим, почему этот режим невозможно найти в привычном месте, и разберем алгоритм безопасного перехода.

Выясняем причину отсутствия режима совместимости 8.2.16 в платформе 8.2

Проанализируем ситуацию, с которой столкнулся автор темы: база работает на платформе 8.2.19 с установленным режимом совместимости 8.2.13. При попытке изменить этот параметр в конфигураторе той же версии 8.2, пункт 8.2.16 попросту отсутствует в выпадающем списке. Это вызывает логичное недоумение, ведь 8.2.19 по логике вещей должна включать в себя все возможности предыдущих минорных релизов.

Разберем этот парадокс. Режим совместимости Версия 8.2.16 фактически не является частью платформы 8.2. Он был разработан и внедрен компанией 1С начиная с версии платформы 8.3.1. Его основное предназначение — служить технологическим «мостиком» для конфигураций, которые переводятся на платформу 8.3, но еще не готовы к использованию всех ее нововведений. Таким образом, работая исключительно в конфигураторе версии 8.2, вы никогда не увидите этот режим в списке. Чтобы он стал доступен, информационную базу необходимо открыть конфигуратором версии 8.3.

Технические изменения при переходе на режим совместимости 8.2.16

Переход на режим 8.2.16 (который обычно выполняется одновременно с миграцией на 8.3) — это не просто смена цифры в свойствах конфигурации. Это включение целого ряда механизмов, которые меняют поведение системы. Рассмотрим подробнее, к чему стоит подготовиться:

  1. Изменение работы с навигационными ссылками. В режиме 8.2.16 меняется структура формирования внешних ссылок на объекты базы данных. Если в вашей конфигурации реализованы механизмы рассылки уведомлений с URL-ссылками или используется сложный парсинг строк для получения навигационной ссылки, эти модули могут потребовать доработки.
  2. Поведение динамических списков. Это одно из самых критичных изменений. Начиная с версии 8.2.16, платформа по-новому определяет Основную таблицу в произвольных запросах динамических списков. Если раньше платформа могла «прощать» неоднозначности, то теперь это может привести к невозможности редактирования данных в списке или к ошибкам при выполнении стандартных команд (изменить, пометить на удаление).
  3. Сериализация XDTO. Изменяются алгоритмы сериализации некоторых типов данных в XML и JSON. Это напрямую влияет на работу веб-сервисов и интеграций с внешними системами. Если ваша база активно обменивается данными, необходимо провести полное тестирование всех точек сопряжения.
  4. Рендеринг форм в веб-клиенте. В режиме 8.2.16 используется обновленная модель верстки. Это делает формы в браузере более стабильными и быстрыми, однако нестандартные интерфейсные решения, основанные на особенностях старых версий, могут «развалиться» или отображаться некорректно.
  5. Строгая валидация метаданных. Платформа 8.3 в данном режиме начинает жестко проверять корректность структуры конфигурации. Например, уникальность имен объектов или соответствие типов в определенных свойствах. Ошибки, на которые платформа 8.2 «закрывала глаза», могут стать блокирующими при попытке обновить конфигурацию БД.

Что произойдет при полном отключении режима совместимости в 8.3

Иногда возникает соблазн сразу установить режим совместимости в значение Не использовать при переходе на 8.3. Проанализируем последствия такого решения:

Во-первых, интерфейс «Такси» станет интерфейсом по умолчанию. Это потребует полной переработки всех форм, если вы хотите, чтобы они выглядели современно и удобно. Во-вторых, изменится объектная модель. Те методы и свойства, которые имели пометку «устаревшие» (obsolete) в 8.2, могут быть полностью удалены или изменить свою логику.

В-третьих, произойдет переход на новую систему блокировок. Если в режиме 8.2.16 еще допускалось использование автоматических блокировок в некоторых случаях, то без совместимости платформа будет требовать исключительно управляемые блокировки. Это может привести к потере целостности данных, если код не был заранее адаптирован.

Рассмотрим пример кода, который может вести себя по-разному в зависимости от режима:


// В старых режимах совместимости установка блокировки могла происходить автоматически
// При переходе на 8.3 (без совместимости) необходимо явно описывать блокировку
Блокировка = Новый БлокировкаДанных;
ЭлементБлокировки = Блокировка.Добавить("РегистрНакопления.ОстаткиТоваров");
ЭлементБлокировки.УстановитьЗначение("Склад", СкладСсылка);
ЭлементБлокировки.Режим = РежимБлокировкиДанных.Исключительный;
Блокировка.Заблокировать();

Пошаговый алгоритм смены режима совместимости

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

  1. Резервное копирование. Это обязательный этап перед любыми манипуляциями с режимами совместимости.
  2. Подготовка в 8.2. Убедитесь, что конфигурация в версии 8.2.19 не имеет критических ошибок и успешно проходит процедуру Тестирование и исправление.
  3. Переход на платформу 8.3. Запустите информационную базу через конфигуратор платформы 8.3. Платформа предложит преобразовать базу (для файлового варианта) — соглашайтесь.
  4. Установка режима 8.2.16. Перейдите в свойства конфигурации (правой кнопкой на корне дерева метаданных -> Свойства). В поле Режим совместимости теперь будет доступен вариант Версия 8.2.16. Выберите его.
  5. Реструктуризация. Выполните обновление конфигурации базы данных (F7). На этом этапе платформа проверит метаданные на соответствие новым правилам.
  6. Тестирование функционала. Проверьте работу динамических списков, проведение документов и работу внешних интеграций.

Интересный нюанс, отмеченный участниками обсуждения: если в платформе 8.2 у базы вообще не установлен режим совместимости (стоит Не использовать), то при первом открытии и конвертации этой базы платформой 8.3, режим совместимости автоматически установится в значение Версия 8.2.16. Это сделано специально для того, чтобы база «не сломалась» от резкого перехода на механизмы 8.3.

Выясним причины, почему это важно для разработчика

Понимание того, как работают режимы совместимости, позволяет планировать миграцию крупных систем. Режим 8.2.16 — это стабильная «гавань» внутри платформы 8.3. Он позволяет пользоваться преимуществами новой платформы (например, повышенной производительностью, поддержкой новых ОС или 64-битных серверов), сохраняя при этом старый программный код и интерфейс 8.2.

Таким образом, мы выяснили, что автор темы не видел нужного режима просто потому, что пытался найти его в «старом» конфигураторе. Использование 8.2.16 — это грамотный промежуточный этап, позволяющий избежать множества ошибок, которые неизбежно возникают при прямом переходе с 8.2 на «чистую» 8.3.

← На главную