Администрирование · 13 мин
Как убрать режим совместимости в 1С
Как отключить режим совместимости в конфигураторе 1С: где найти настройку, какие риски учесть, каскадная проверка расширений и подчинённых объектов перед изменением.
Режим совместимости в 1С — это свойство конфигурации, которое заставляет платформу работать по правилам более старой версии, даже если фактически установлена новая. Он нужен на переходный период: типовая конфигурация обновлена, а код и механизмы ещё не адаптированы под новые возможности платформы. Пока режим включён, часть современных функций недоступна: новые объекты метаданных, улучшенные механизмы СКД, расширенные возможности языка запросов и оптимизации производительности.
Убрать режим совместимости — значит перевести конфигурацию в состояние «Не использовать», когда платформа работает в полную силу своей версии. Операция выполняется в конфигураторе буквально за минуту, но ошибка здесь обходится дорого: если конфигурация или расширения используют устаревшие механизмы, после снятия совместимости база может перестать запускаться или начать выдавать ошибки в прикладном коде. Поэтому порядок действий важен не меньше, чем само действие.
Ниже разобрано, где находится настройка, как безопасно её изменить в файловой и клиент-серверной базе, что проверить до и после, и в каких случаях снимать режим совместимости нельзя.
Что такое режим совместимости и когда его нужно убирать
Режим совместимости задаётся в свойствах конфигурации и принимает значения вида «Версия 8.3.10», «Версия 8.3.14» и так далее, либо «Не использовать». Когда выбрана конкретная версия, платформа эмулирует поведение этой версии: отключает новые проверки, сохраняет старое поведение механизмов, запрещает использование объектов и конструкций, появившихся позже.
Типовые конфигурации часто поставляются с включённым режимом совместимости, потому что вендор гарантирует работу на широком диапазоне версий платформы. Снимать режим имеет смысл, когда вы обновили платформу и хотите использовать её новые возможности, когда разработка ведётся под актуальную версию, или когда режим совместимости мешает работе механизма, который вам нужен (например, новых функций языка запросов или истории данных).
Важно понимать: режим совместимости существует не только у основной конфигурации, но и у каждого расширения конфигурации, а также отдельно у режима совместимости интерфейса (такси/старой версии). Снятие основного режима без корректировки расширений — самая частая причина проблем после изменения.
Что проверить перед отключением режима совместимости
Первое и безусловное требование — резервная копия базы. Для файловой базы достаточно скопировать файл 1Cv8.1CD при остановленной работе пользователей, для клиент-серверной — выполнить выгрузку в dt через конфигуратор или средствами СУБД. Изменение режима совместимости само по себе обратимо, но если после него база перестанет открываться в нужном режиме, откат через копию — самый быстрый путь.
Второе — проверьте расширения конфигурации. Откройте список расширений и посмотрите свойства каждого: у расширения есть собственное поле «Режим совместимости», и оно не должно быть выше режима основной конфигурации, но при снятии совместимости у основной конфигурации расширения, собранные под старую версию, могут потребовать пересборки. Если расширения поставляются сторонним разработчиком, уточните у него совместимость с целевой версией платформы.
Третье — оцените доработки. Если конфигурация сильно изменена, полезно выполнить полную проверку конфигурации (Конфигурация → Проверка конфигурации) уже после смены режима, но до обновления базы данных — платформа покажет конструкции, недопустимые без режима совместимости.
Откройте свойства корня конфигурации и посмотрите поле «Режим совместимости»
Конфигурация → Расширения конфигурации → свойства каждого расширения
Выполните проверку конфигурации после смены режима на копии
Справка → О программе в клиенте или конфигураторе
Как убрать режим совместимости через конфигуратор
Основной сценарий одинаков для файловой и клиент-серверной базы и выполняется в конфигураторе. Пользователи на время обновления конфигурации базы данных должны завершить работу — для клиент-серверной базы установите блокировку сеансов заранее.
- 1Сделайте резервную копию базы (файл 1Cv8.1CD или выгрузка dt)
- 2Откройте конфигуратор и выполните: Конфигурация → Открыть конфигурацию
- 3Щёлкните правой кнопкой по корневому узлу конфигурации и выберите «Свойства»
- 4Найдите поле «Режим совместимости» и установите значение «Не использовать»
- 5Сохраните конфигурацию (Ctrl+S) и дождитесь окончания реструктуризации
- 6Выполните Конфигурация → Проверка конфигурации с полным набором проверок
- 7Если ошибок нет — выполните Конфигурация → Обновить конфигурацию базы данных
- 8Проверьте расширения и при необходимости скорректируйте их режим совместимости
- 9Запустите базу в режиме предприятия и проверьте ключевые операции
Поле «Режим совместимости» находится в палитре свойств корневого узла конфигурации, обычно в нижней части списка свойств. В выпадающем списке перечислены версии, начиная с которых платформа поддерживает совместимость, и пункт «Не использовать» — именно он переводит конфигурацию в режим работы текущей версии платформы.
После сохранения конфигурации платформа может выполнить реструктуризацию — это нормально. Если в процессе появятся сообщения о недопустимых объектах или конструкциях, не продолжайте обновление базы данных, пока не разберётесь с причиной: обычно это объекты или свойства, существование которых невозможно без режима совместимости.
Особенности для клиент-серверных баз и расширений
В клиент-серверном варианте добавляются два момента. Первый — обновление конфигурации базы данных требует монопольного доступа: завершите сеансы пользователей через консоль кластера или установите блокировку соединений заранее, чтобы не прерывать работу аварийно. Второй — если на сервере работают фоновые задания и регламентные операции, убедитесь, что после смены режима они запускаются без ошибок: код, рассчитанный на старое поведение платформы, может падать в фоне незаметно для пользователей.
По расширениям правило простое: режим совместимости расширения не может быть выше режима совместимости основной конфигурации, но при значении «Не использовать» у основной конфигурации расширения, собранные под конкретную старую версию, как правило, продолжают работать. Тем не менее практика показывает, что безопаснее открыть каждое расширение, выставить у него аналогичное значение и пересохранить. Если расширение загружено из файла стороннего поставщика и применяется с ошибками — запросите у поставщика сборку под актуальную версию платформы.
Снятие режима совместимости пакетно и через код
Если баз много, ручное изменение через конфигуратор неудобно. Платформа поддерживает пакетный запуск конфигуратора, но прямой команды «снять режим совместимости» в командной строке нет — режим меняется либо через загрузку изменённой конфигурации из файлов, либо программно через объектную модель (например, с использованием внешних инструментов работы с метаданными).
Практичный путь для нескольких одинаковых баз: снять режим на эталонной базе, выгрузить конфигурацию в файл cf и загрузить её в остальные базы пакетным режимом конфигуратора с последующим обновлением конфигурации базы данных.
1cv8 DESIGNER /F"C:\Bases\MyBase" /N"Администратор" /P"пароль" /LoadCfg"C:\Cfg\config.cf" /UpdateDBCfg /DisableStartupDialogsБудьте осторожны с параметром /UpdateDBCfg в пакетном режиме: обновление выполняется без диалогов, и если конфигурация требует реструктуризации с потерей данных, предупреждения вы не увидите. Запускайте такие команды только после проверки на копии.
Проверка результата и типичные ошибки
После обновления конфигурации базы данных откройте базу в режиме предприятия и пройдите по ключевым сценариям: проведение документов, формирование основных отчётов, обмены данными, печатные формы. Особое внимание — механизмам, чувствительным к версии платформы: запросы с новыми конструкциями, работа с СКД, веб-сервисы и HTTP-соединения.
Как проверить результат
Режим совместимости — «Не использовать»
Значение откатилось или осталась старая версия
Нет ошибок, связанных с режимом совместимости
Ошибки о недопустимых объектах и конструкциях
Все применяются, статус активен
Расширение не применяется или отключено
Документы проводятся, отчёты формируются
Ошибки при проведении, фоновые задания падают
Если после снятия режима база открывается, но часть функций ведёт себя иначе, не спешите возвращать режим обратно: сначала локализуйте проблемный код через журнал регистрации и проверку конфигурации. Часто причина — в одном-двух местах, которые проще исправить, чем жить с ограничениями старой версии.
Когда режим совместимости лучше оставить
Не всегда снятие режима — правильное решение. Если конфигурация типовая и вендор поставляет её с включённой совместимостью, самостоятельное снятие режима может нарушить условия поддержки и создать проблемы при очередных обновлениях: механизм обновления рассчитан на исходное состояние конфигурации.
Как выбрать действие
Также режим стоит оставить, если в инфраструктуре есть внешние системы, интегрированные с базой через механизмы, поведение которых меняется между версиями платформы, и у вас нет возможности протестировать интеграцию на копии. В таких случаях безопаснее запланировать переход с полным тестированием, чем снимать режим «на живую».
Что важно запомнить
Режим совместимости снимается в свойствах конфигурации значением «Не использовать» с последующим обновлением конфигурации базы данных. Обязательны резервная копия, проверка расширений и полная проверка конфигурации. На типовых конфигурациях без явной потребности в новых функциях платформы режим лучше не трогать.
Частые вопросы
Можно ли вернуть режим совместимости обратно после снятия?
Да, изменение обратимо: в свойствах конфигурации снова выберите нужную версию и обновите конфигурацию базы данных. Однако если за время работы без совместимости были созданы объекты или конструкции, невозможные в старом режиме, вернуть его не получится, пока эти объекты не удалены. Поэтому резервная копия до изменения остаётся самым надёжным способом отката.
Почему после снятия режима перестало работать расширение?
У расширения есть собственный режим совместимости, и оно могло быть собрано под старую версию платформы. Откройте расширение в конфигураторе, установите у него значение «Не использовать» и пересохраните. Если расширение от стороннего поставщика и ошибки сохраняются — запросите обновлённую сборку.
Нужно ли снимать режим совместимости при обновлении платформы?
Нет, обновление платформы не требует снятия режима совместимости — именно для плавного перехода он и существует. Снимайте режим только тогда, когда вам нужны возможности новой версии платформы или вы уверены, что конфигурация полностью готова к работе без ограничений старой версии.
Где посмотреть текущий режим совместимости без конфигуратора?
Проще всего в конфигураторе через свойства конфигурации. В режиме предприятия штатного отображения этого свойства нет, но программно значение доступно через объект Метаданные — свойство РежимСовместимости, например, через внешнюю обработку или консоль кода.
Влияет ли снятие режима совместимости на производительность?
Само по себе снятие режима не ускоряет и не замедляет базу, но открывает доступ к оптимизациям новой версии платформы, которые в режиме совместимости отключены. Реальный эффект зависит от того, использует ли конфигурация эти механизмы. На рабочей базе изменение стоит проверять на копии с типичной нагрузкой.
Что делать, если при обновлении конфигурации базы данных появились ошибки реструктуризации?
Не подтверждайте обновление и не пытайтесь повторять его вслепую. Сохраните список ошибок, восстановите базу из резервной копии и разберитесь с причинами на копии: чаще всего это объекты или данные, несовместимые с новым режимом. Только после устранения причин повторяйте операцию на рабочей базе.