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