Как исправить ошибку совместимости при использовании расширений в 1С:Комплексная автоматизация?

Программист 1С v8.3 (Управляемые формы) 1С:Комплексная автоматизация IT и автоматизация бизнеса
← На главную

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

Рассмотрим типовую ситуацию: при попытке запуска базы после установки режима совместимости в значение «Не использовать» система выдает исключение:

{ОбщийМодуль.СтандартныеПодсистемыСервер.Модуль(2486)}: Режим совместимости конфигурации с 1С:Предприятием версии 8.3.18 не поддерживается. Для запуска установите в конфигурации режим совместимости "Не использовать" при разработке на версии 8.3.10 (или "Версия 8.3.10" при разработке на более старших версиях).

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

Причина возникновения ошибки в БСП

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

Зачем это нужно разработчикам фирмы «1С»? Дело в том, что изменение режима совместимости на «Не использовать» радикально меняет поведение платформы в следующих аспектах:

  1. Работа с блокировками: Изменяются механизмы управления транзакционными блокировками данных.
  2. Выполнение запросов: Появляются более строгие требования к типизации полей и работе с временными таблицами.
  3. Сериализация: Меняются алгоритмы преобразования данных в форматы XML и JSON.
  4. Фоновые задания: Изменяется логика передачи параметров и контекста выполнения.

Если мы просто закомментируем проверку в коде БСП, как предлагают некоторые пользователи, мы столкнемся с «эффектом домино». Код типовых механизмов (например, версионирование объектов, дополнительные реквизиты или обмен данными) ожидает старого поведения платформы. В новом режиме эти функции начнут выдавать непредсказуемые ошибки или, что еще опаснее, некорректно записывать данные в базу.

Заблуждение о необходимости отключения совместимости

Разберем главный миф: «Чтобы добавить реквизит в расширение, нужно отключить совместимость основной конфигурации». Это утверждение было актуально для очень старых версий платформы. Начиная с версии 8.3.11, платформа позволяет добавлять собственные объекты данных (реквизиты, справочники, документы) в расширения даже в том случае, если основная конфигурация находится в режиме совместимости 8.3.10.

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

Правильная настройка режима совместимости расширения

Существует золотое правило разработки расширений: режим совместимости расширения не может быть выше режима совместимости основной конфигурации.

Проанализируем возможные варианты настроек:

Алгоритм решения проблемы

Для корректного добавления функционала без вызова системных ошибок выполним следующие шаги:

Шаг 1. Восстановление параметров основной конфигурации.
Верните режим совместимости основной конфигурации в исходное состояние (в нашем примере это Версия 8.3.10). Также убедитесь, что совместимость интерфейса установлена в значение, предусмотренное разработчиком (обычно Такси. Разрешить варианты).

Шаг 2. Настройка свойств расширения.
В свойствах вашего расширения установите режим совместимости точно такой же, как в основной конфигурации. Если в конфигурации стоит 8.3.10, в расширении тоже должно быть 8.3.10.

Шаг 3. Добавление данных.
Теперь вы можете добавлять необходимые реквизиты. Обратите внимание на важные настройки расширения для корректной работы новых данных:

  1. Убедитесь, что расширение находится в состоянии «Активно».
  2. Установите флаг «Использовать основные роли для всех пользователей», чтобы система корректно определяла права доступа к новым реквизитам.
  3. Проверьте, что расширение не находится в режиме Безопасный режим, если оно должно влиять на структуру данных.

Риски принудительного изменения режима в КА и ERP

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

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

Пример проверки версии в коде (как это делать не нужно)

Проанализируем фрагмент кода, который вызывает исключение. В БСП это выглядит примерно так:


Процедура ПроверитьРежимСовместимости() Экспорт
    ТекущийРежим = Метаданные.РежимСовместимости;
    Если ТекущийРежим <> Объекты.РежимСовместимости.Версия8_3_10 Тогда
        ВызватьИсключение НСтр("ru = 'Данный режим совместимости не поддерживается конфигурацией!'");
    КонецЕсли;
КонецПроцедуры

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

← На главную