Администрирование · 10 мин
Зачем нужен режим совместимости в 1С и как с ним работать
Режим совместимости в 1С: зачем он нужен, как проверить и изменить значение, когда его снимать после обновления конфигурации и какие риски это несёт.
Режим совместимости — это свойство конфигурации 1С, которое указывает платформе, под поведение какой версии должна работать прикладное решение. Когда вы обновляете платформу на сервере или на компьютере, новая версия может по-другому обрабатывать запросы, работу с СКД, безопасный режим, механизмы блокировок и другие подсистемы. Если конфигурация писалась под старое поведение, прямой переход на новое может сломать отчёты, обмены или проведение документов. Режим совместимости позволяет платформе работать «как раньше», пока разработчики не адаптируют код.
Свойство задаётся в конфигураторе в палитре свойств корневого узла конфигурации. Значение «Не использовать» означает, что конфигурация работает в режиме текущей установленной платформы без ограничений. Значение вида «Версия 8.3.10» или «Версия 8.3.22» заставляет платформу эмулировать поведение указанной версии.
На практике режим совместимости чаще всего встречается в двух ситуациях: после обновления платформы, когда типовая или самописная конфигурация ещё не адаптирована, и при установке старой конфигурации на новую платформу. Понимание этого механизма помогает осознанно планировать обновления и не держать систему в «замороженном» состоянии дольше необходимого.
Что именно делает режим совместимости
Платформа 1С от версии к версии меняет внутреннее поведение: оптимизатор запросов может строить другие планы, меняется работа с временными таблицами, ужесточается безопасный режим, появляются новые требования к коду. Если конфигурация рассчитана на старое поведение, после обновления платформы возможны ошибки выполнения запросов, изменение результатов отчётов или отказ внешних обработок.
Режим совместимости фиксирует набор правил, по которым платформа исполняет код. При установленной совместимости с версией, например, 8.3.14 платформа применяет поведение, характерное для этой версии, даже если физически установлена более новая. Это касается не только языка запросов, но и работы форм, механизмов расширений, фоновых заданий и ряда других подсистем.
Важно понимать: режим совместимости не «откатывает» платформу и не отключает обновления безопасности. Он лишь выбирает модель поведения для конкретной конфигурации. Разные информационные базы на одном сервере могут работать с разными режимами совместимости.
Когда режим совместимости действительно нужен
Первый типичный сценарий — обновление платформы опережает обновление конфигурации. Например, вы обновили платформу на сервере ради исправлений безопасности, а типовая конфигурация пока сертифицирована под старую версию. Режим совместимости позволяет эксплуатировать систему без срочной адаптации кода.
Второй сценарий — самописные или сильно доработанные решения. Если в коде есть запросы или механизмы, чувствительные к изменениям платформы, адаптация требует времени на тестирование. Совместимость даёт это время без остановки работы пользователей.
Третий сценарий — внешние обработки и расширения сторонних разработчиков, которые перестают работать на новой платформе. Пока поставщик не выпустил обновление, режим совместимости сохраняет работоспособность интеграций.
Как выбрать действие
Как проверить текущий режим совместимости
Откройте конфигуратор, выделите корневой узел конфигурации в дереве объектов, вызовите контекстное меню и выберите «Свойства». В палитре свойств найдите пункт «Режим совместимости». Там будет указано либо «Не использовать», либо конкретная версия, например «Версия 8.3.17».
Дополнительно проверьте свойство «Режим использования модальности» и «Режим использования синхронных вызовов» — они часто связаны с совместимостью и влияют на работу клиентских приложений. Если конфигурация старая, эти свойства могут быть установлены в устаревшие значения.
Программно текущий режим можно получить через объект метаданных: у объекта «Метаданные» есть свойство «РежимСовместимости», доступное во встроенном языке. Это удобно для автоматических проверок в скриптах обновления.
- 1Сделайте резервную копию информационной базы перед любыми изменениями
- 2Откройте конфигуратор под пользователем с правами администратора
- 3Выделите корень конфигурации и откройте палитру свойств
- 4Найдите «Режим совместимости» и зафиксируйте текущее значение
- 5Измените значение при необходимости и сохраните конфигурацию
- 6Обновите конфигурацию базы данных (F7) при появлении запроса
- 7Проведите тестирование ключевых операций: проведение документов, отчёты, обмены, печать
Чем рискует система, если режим совместимости не снимать
Долгая работа в режиме совместимости — это технический долг. Новые оптимизации платформы, включая ускорение запросов и уменьшение блокировок, могут быть недоступны, потому что платформа вынуждена воспроизводить старое поведение. На больших базах это выливается в заметную разницу производительности.
Вторая проблема — безопасность и поддержка. Новые механизмы защиты и исправления ошибок иногда применяются только в актуальном режиме работы. Кроме того, поставщики типовых конфигураций тестируют свои релизы преимущественно без режима совместимости, поэтому нестандартные ошибки в «замороженном» режиме сложнее диагностировать.
Третья проблема — накопление изменений. Чем дольше откладывается переход, тем больше версий поведения нужно перескочить одномоментно, и тем сложнее тестирование. Переход с совместимости 8.3.6 на актуальную платформу заметно труднее, чем последовательный отказ от совместимости по мере обновлений.
Как безопасно снять режим совместимости
Безопасный переход начинается с копии базы. Разверните актуальную копию на тестовом сервере, установите режим совместимости в «Не использовать», обновите конфигурацию базы данных и проведите комплексное тестирование. Особое внимание уделите отчётам на СКД, сложным запросам, регламентным заданиям и обменам данными — именно там чаще всего проявляются различия в поведении платформы.
Для типовых конфигураций проверьте документацию поставщика: в описании релиза обычно указано, с какой версией платформы и в каком режиме совместимости рекомендуется работа. Если поставщик подтверждает поддержку актуального режима, риски минимальны.
После успешного тестирования запланируйте переключение рабочей базы на время минимальной нагрузки. Сохраните прежнее значение режима в инструкции по обновлению, чтобы при необходимости быстро вернуть его без восстановления из копии — само свойство меняется обратно так же просто.
Как проверить результат после перехода
Документы проводятся без ошибок, движения по регистрам корректны
Ошибки выполнения запросов или сообщения о несовместимости
Отчёты формируются, итоги совпадают с контрольными значениями
Отчёт падает с ошибкой или выдаёт другие итоги
Обмены выполняются по расписанию без ошибок в журнале
Ошибки внешних компонентов, обработок или веб-сервисов
Задания завершаются успешно в журнале регистрации
Массовые ошибки фоновых заданий после переключения
Типичные ошибки при работе с режимом совместимости
Самая частая ошибка — воспринимать режим совместимости как постоянную настройку «поставил и забыл». На практике это временная мера, и у неё должен быть владелец и план отказа. База может годами работать в режиме совместимости с версией, которую уже никто не помнит, просто потому что «всё работает».
Вторая ошибка — путать режим совместимости конфигурации с режимом совместимости расширения. У расширений есть собственное аналогичное свойство, и несоответствие режимов конфигурации и расширения может приводить к ошибкам применения расширения.
Третья ошибка — менять режим совместимости вместе с обновлением конфигурации без раздельного тестирования. Если после такого комбинированного обновления что-то сломалось, сложно понять, виноват новый релиз конфигурации или смена режима. Меняйте по одному фактору за раз.
Частые вопросы о режиме совместимости
Влияет ли режим совместимости на скорость работы базы?
Да, может влиять. В режиме совместимости платформа не использует часть новых оптимизаций запросов и механизмов работы с данными, поскольку обязана воспроизводить старое поведение. На небольших базах разница незаметна, на крупных системах с тяжёлыми запросами переход в актуальный режим часто даёт прирост производительности.
Можно ли установить режим совместимости выше версии платформы?
Нет. Режим совместимости может указывать только на версию не выше установленной платформы — нельзя заставить старую платформу работать по правилам новой. Обратное возможно: новая платформа может эмулировать поведение более старых версий.
Нужно ли обновлять конфигурацию базы данных после смены режима?
Да, в большинстве случаев после изменения свойства конфигуратор потребует обновление конфигурации базы данных (клавиша F7). Без этого изменения не применятся, и база продолжит работать в прежнем режиме. Обновление выполняйте при отсутствии активных сеансов пользователей.
Почему типовая конфигурация после обновления сама стоит в режиме совместимости?
Поставщик может намеренно поставлять релиз с установленным режимом совместимости, если конфигурация ещё не адаптирована под актуальное поведение платформы. Ориентируйтесь на документацию к релизу: в ней указывается рекомендуемая версия платформы и режим работы. Менять значение самостоятельно стоит только после тестирования.
Что делать, если после снятия совместимости сломался один отчёт?
Не обязательно возвращать режим для всей базы. Часто проблема локальна: устаревший запрос или конструкция, поведение которой изменилось. Исправьте код отчёта под актуальное поведение платформы — это правильнее, чем удерживать всю систему в старом режиме ради одного объекта. Вернуть совместимость стоит только как временную меру на время исправления.
Отличается ли режим совместимости в файловой и клиент-серверной базе?
Само свойство и его смысл одинаковы — оно хранится в конфигурации и действует независимо от варианта развёртывания. Различия проявляются лишь в последствиях: на клиент-серверной базе смена режима требует контроля сеансов и обычно выполняется через кластер с завершением работы пользователей, тогда как в файловой базе достаточно, чтобы никто не был подключён.
Что важно запомнить
Режим совместимости — временный мостик между старой конфигурацией и новой платформой. Проверяйте его в свойствах конфигурации, снимайте только после тестирования на копии базы и не держите включённым дольше, чем требует адаптация кода.