Чем грозит принудительное изменение режима совместимости в 1С:ERP и как сделать это правильно?

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

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

Проблема принудительного переключения: почему система откажется запускаться?

Если мы откроем Конфигуратор 1С:ERP 2.4 (находящейся, к примеру, в режиме совместимости Версия 8.3.10) и принудительно переставим значение свойства на Версия 8.3.11 или выше, то при первом же запуске в режиме «1С:Предприятие» мы получим критическую ошибку, после чего программа аварийно завершит работу.

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

Рассмотрим, где именно в коде кроется данная проверка. Обычно это происходит в общем модуле СтандартныеПодсистемыСервер в процедуре ПередЗапускомПрограммы() или связанных с ней процедурах проверки параметров системы. Ниже представлен пример упрощенного алгоритма, который выполняет БСП при старте:


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

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


&Вместо("ПередЗапускомПрограммы")
Процедура Расш_ПередЗапускомПрограммы(ПараметрыЗапуска)
    // Обход стандартной проверки БСП для экспериментального запуска
    // Логика проверки отключается или модифицируется под нужный режим
КонецПроцедуры

Важное предупреждение: подобный обход проверок крайне опасен для рабочей базы данных и может применяться исключительно на тестовых копиях для проведения экспериментов!

Возможности расширений при смене режима совместимости

Чаще всего разработчики хотят повысить режим совместимости ради расширения возможностей разработки без снятия основной конфигурации с поддержки. Разберем по шагам, какие возможности открываются перед нами при переходе на новые версии режима совместимости:

  1. Создание собственных справочников и документов: Механизм полноценного добавления новых объектов метаданных (справочников, документов, бизнес-процессов) в расширениях (так называемое «Расширение данных») появился начиная с версии платформы 8.3.11. Чтобы использовать этот функционал, режим совместимости и основной конфигурации, и самого расширения должен быть не ниже Версия 8.3.11.
  2. Создание собственных регистров: Если вам требуется создавать в рамках расширений новые регистры накопления, регистры бухгалтерии или регистры расчета, то режима Версия 8.3.11 или Версия 8.3.12 будет недостаточно. Для поддержки этих объектов потребуется перевести конфигурацию в режим совместимости не ниже Версия 8.3.14.
  3. Главное правило совместимости расширений: Запомните ключевое правило платформы — режим совместимости расширения не может быть выше, чем режим совместимости основной конфигурации. Если ERP работает в режиме совместимости Версия 8.3.10, вы не сможете подключить к ней расширение, разработанное под свойства Версия 8.3.11 или в режиме Не использовать.

Новые механизмы для РИБ (начиная с версии 8.3.12)

Посмотрим на ситуацию со стороны системного администрирования. Если вы используете распределенные информационные базы (РИБ), то повышение режима совместимости до значения Версия 8.3.12 и выше решает одну из главных болей администраторов 1С.

До версии 8.3.12 платформа не поддерживала автоматическую отправку расширений конфигурации в периферийные узлы по каналам РИБ. Администраторам приходилось устанавливать расширения в каждый узел вручную или писать сторонние скрипты автоматизации. Начиная с режима Версия 8.3.12, в планах обмена доступно стандартное свойство Включать расширения конфигурации. После его активации платформа берет на себя синхронизацию кода и структуры расширений между всеми узлами распределенной базы данных.

Технические риски принудительного изменения режима совместимости на рабочей базе

Если проигнорировать рекомендации и принудительно сменить режим совместимости на «живой» базе ERP, можно столкнуться с серьезными техническими проблемами. Проанализируем основные риски:

Резюме и правильное решение

Подводя итог, можно с уверенностью сказать: попытка ручного изменения режима совместимости в обход обновлений конфигурации на рабочей базе ERP — это крайне опасная процедура, которая практически гарантированно приведет к неработоспособности системы.

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

← На главную