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