К статье
Практический материал

Администрирование · 11 мин

Режим совместимости в 1С: на что влияет и как его правильно настроить

Что такое режим совместимости в 1С, на что он влияет, как проверить и изменить. Практические рекомендации по выбору режима и типичные ошибки при обновлении.

Режим совместимости — это свойство конфигурации 1С, которое указывает платформе, под какую версию «правил игры» должна работать прикладная система. Даже если на сервере установлена новая платформа, конфигурация с пониженным режимом совместимости будет вести себя так, будто работает на старой версии: часть новых механизмов окажется недоступна, а некоторые операции будут выполняться по старым алгоритмам.

Свойство задаётся в конфигураторе в свойствах корневого узла конфигурации и хранится вместе с ней, а не с базой данных. Это важно: при выгрузке и загрузке конфигурации режим переносится вместе с ней, поэтому при обмене файлами .cf между контурами легко незаметно «откатить» режим на более ранний.

Практическая значимость режима проста: он влияет на то, какие объекты и конструкции можно использовать в коде, как компилируются запросы, какие требования предъявляет платформа к структуре данных и какие проверки выполняются при обновлении конфигурации базы данных. Игнорирование этого параметра — частая причина ситуаций, когда конфигурация «вдруг» перестаёт обновляться или ведёт себя не так, как ожидают разработчики.

Где находится настройка и как её проверить

Режим совместимости просматривается и изменяется в конфигураторе. Для этого нужно открыть конфигурацию, выделить корневой узел дерева конфигурации, вызвать палитру свойств и найти свойство «Режим совместимости». Рядом обычно присутствует и свойство «Режим использования модальности», которое часто путают с режимом совместимости, хотя это разные настройки.

Варианты значений свойства: «Не использовать» (конфигурация работает со всеми возможностями установленной платформы) или конкретная версия, например «Версия 8.3.14». Выбор версии означает, что платформа будет эмулировать поведение указанного релиза и блокировать всё, что появилось позже.

Как проверить текущий режим
  1. 1
    Откройте конфигуратор и загрузите конфигурацию для редактирования.
  2. 2
    Выделите корневой узел дерева конфигурации и откройте палитру свойств.
  3. 3
    Найдите свойство «Режим совместимости» и зафиксируйте его значение.
  4. 4
    Сверьте значение с версией платформы, установленной на сервере или клиентских машинах.
  5. 5
    Проверьте режим на всех контурах: рабочая база, тестовая, база разработки — значения должны совпадать осознанно, а не случайно.

На что влияет режим совместимости

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

Доступность объектов и конструкций языка. Новые типы объектов метаданных, методы встроенного языка, свойства и события появляются в каждой версии платформы. Если режим совместимости ниже версии их появления, конфигуратор не даст использовать эти возможности — они будут недоступны или вызовут ошибку проверки. Разработчик, работающий с конфигурацией в пониженном режиме, фактически ограничен инструментарием старой версии.

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

Структура данных и реструктуризация. Некоторые изменения режима требуют реструктуризации таблиц при обновлении конфигурации базы данных. На больших базах это длительная операция, которую нужно планировать. Кроме того, отдельные механизмы (например, требования к заполнению служебных полей) включаются только при определённом режиме совместимости.

Поведение интерфейса и клиентских приложений. Часть изменений касается отображения форм, работы такси-интерфейса, поведения элементов управления. При смене режима пользователи могут заметить отличия в отображении привычных форм, и это нужно учитывать при подготовке к переходу.

Язык и объектыДоступность новых механизмов

Конструкции, появившиеся после указанной версии, будут недоступны в коде и метаданных

Запросы и СУБДПравила работы с данными

Меняется генерация запросов и поведение при работе с таблицами

ОбновлениеТребования при реструктуризации

Смена режима может потребовать длительной реструктуризации базы

ИнтерфейсПоведение форм

Отдельные элементы могут отображаться иначе после смены режима

Когда оправдан пониженный режим

Основной легитимный сценарий — переходный период при обновлении платформы. Новая версия платформы устанавливается на сервер, но конфигурация временно остаётся в режиме совместимости со старой версией. Это позволяет обновить инфраструктуру без одновременной доработки прикладного кода и снизить риски, разделив одно большое изменение на два управляемых этапа.

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

Третий случай — требования поставщика типовой конфигурации. Некоторые решения сертифицированы и поддерживаются только при определённом режиме совместимости. Самовольное повышение режима в такой конфигурации может привести к отказу в поддержке или к ошибкам в механизмах, которые поставщик не тестировал в новом режиме.

Маршрут решения

Как выбрать действие

Платформа обновлена, а конфигурация ещё не адаптированаОставьте пониженный режим на переходный период и запланируйте адаптацию кода
Конфигурация разрабатывается с нуляУстановите режим «Не использовать» или актуальную версию — ограничивать себя нет причин
Одна конфигурация работает на базах с разными версиями платформыУстановите режим совместимости с минимальной версией платформы среди всех баз
Типовая конфигурация на поддержке поставщикаИспользуйте режим, рекомендованный поставщиком, и меняйте его только по его инструкции

Как безопасно повысить режим совместимости

Повышение режима — односторонняя операция с точки зрения рисков: вернуться назад обычно можно, но уже выполненная реструктуризация и адаптация кода могут сделать откат трудоёмким. Поэтому порядок действий должен быть выверенным.

Сначала выполняется полная выгрузка информационной базы (файл .dt) и резервная копия средствами СУБД. Затем режим меняется на тестовой копии базы, после чего запускается обновление конфигурации базы данных и проверяется реструктуризация. Далее обязательна проверка конфигурации с полным набором проверок — конфигуратор покажет конструкции, несовместимые с новым режимом.

После технической части нужно прогнать ключевые бизнес-сценарии: проведение основных документов, формирование регламентированной отчётности, обмены с другими системами, работу печатных форм. Особое внимание — запросам и отчётам на СКД, так как именно они чаще всего чувствительны к смене поведения платформы.

Типичные ошибки и ограничения

Самая распространённая ошибка — забытый пониженный режим. Платформу обновили давно, переходный период закончился, а режим так и остался старым. Конфигурация годами не использует новые возможности, разработчики сталкиваются с необъяснимыми ограничениями, а при очередном обновлении типовой версии возникают конфликты, потому что поставщик уже рассчитывает на актуальный режим.

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

Третья ошибка — ожидание, что смена режима сама по себе ускорит работу или «починит» что-либо. Режим совместимости — это переключатель правил, а не оптимизатор. Производительность может измениться в обе стороны, и это нужно измерять, а не предполагать.

Типичные ошибки
01
Оставить пониженный режим навсегда после переходного периода — конфигурация не получает новые возможности и накапливает технический долг
02
Повысить режим без проверки конфигурации — обновление базы падает на ошибках несовместимых конструкций
03
Менять режим на рабочей базе без копии — риск многочасового простоя и повреждения данных при реструктуризации
04
Разный режим на контуре разработки и рабочем контуре — доработки не переносятся или падают в эксплуатации
05
Путать режим совместимости конфигурации с режимом совместимости расширения — у расширений свой аналогичный параметр, и он проверяется отдельно

Режим совместимости в расширениях конфигурации

У расширений конфигурации есть собственное свойство совместимости, которое работает по тем же принципам, но независимо от основной конфигурации. Расширение, созданное под конкретный режим, может отказаться подключаться или работать некорректно, если режим основной конфигурации изменился и заимствованные объекты стали вести себя иначе.

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

Контрольные точки

Как проверить результат после смены режима

Проверка конфигурации в конфигураторе
Норма

Нет ошибок, связанных с режимом совместимости

Тревожный признак

Ошибки о недоступных конструкциях или объектах

Обновление конфигурации базы данных
Норма

Реструктуризация завершается без ошибок

Тревожный признак

Процесс прерывается или зависает на отдельных таблицах

Ключевые документы и отчёты
Норма

Проведение и формирование работают как раньше

Тревожный признак

Ошибки запросов, неверные итоги, падение отчётов

Расширения конфигурации
Норма

Все расширения подключаются без предупреждений

Тревожный признак

Сообщения о несовместимости при запуске

Частые вопросы

Можно ли понизить режим совместимости после повышения?

Технически свойство можно переключить обратно, но если за время работы в новом режиме в конфигурацию добавили объекты или конструкции, недоступные в старом режиме, проверка конфигурации выдаст ошибки, и их придётся устранять вручную. Поэтому откат без потерь возможен только если после повышения никаких доработок под новый режим не выполнялось.

Влияет ли режим совместимости на скорость работы базы?

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

Где посмотреть режим совместимости без конфигуратора?

Штатного способа посмотреть значение из пользовательского режима нет — это свойство конфигурации, доступное в конфигураторе. Косвенно информацию можно получить программно через объект Метаданные, если в конфигурации предусмотрен соответствующий программный интерфейс, но проще открыть конфигуратор.

Нужно ли менять режим при каждом обновлении платформы?

Нет. Обновление платформы не требует автоматической смены режима — конфигурация продолжит работать в прежнем режиме. Повышать режим стоит осознанно: когда нужны новые возможности, когда этого требует поставщик конфигурации или когда старый режим перестаёт поддерживаться новыми релизами платформы.

Что делать, если типовая конфигурация требует режим выше текущего?

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

Итог

Что важно запомнить

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