Механизм расширения конфигурации создан для доработки прикладных решений без внесения изменений в типовую конфигурацию и без снятия базы с поддержки поставщика. Однако при первых попытках создания или подключения расширений разработчики часто сталкиваются с вопросом: требуется ли отключать режим совместимости основной конфигурации и не нарушит ли это типовую поддержку? Разберем подробно, как взаимодействуют режимы совместимости конфигурации и расширения, а также рассмотрим правила их корректной настройки.
Главный принцип работы механизма: отключать режим совместимости у основной конфигурации не требуется. Снимать конфигурацию с замка или включать возможность изменения только ради использования расширений не нужно.
Проанализируем ключевое правило платформы: в свойствах самого расширения есть параметр РежимСовместимости. Значение этого параметра в расширении должно в точности совпадать со значением режима совместимости основной конфигурации (или быть установлено в значение «Не использовать», если у основной конфигурации совместимость уже отключена).
Разберем по шагам, как правильно настроить совместимость при разработке собственного расширения:
РежимСовместимости основной конфигурации и зафиксируем его значение (например, Версия 8.3.8 или Не использовать).РежимСовместимости укажем точно такое же значение, какое установлено в основной конфигурации..cfe режим совместимости расширения соответствует целевой конфигурации, куда оно будет загружаться. Несовпадение режимов совместимости приведет к ошибке применения расширения.Выясним причину, почему возникает миф о необходимости обязательного отключения совместимости. В ранних версиях платформы (начиная с 8.3.6) механизм расширений позволял изменять только управляемые формы и их модули. Полноценная доработка серверной логики, добавление собственных реквизитов и объектов метаданных появлялись поэтапно в версиях 8.3.8, 8.3.9 и последующих релизах.
Если конфигурация работает в режиме совместимости со старыми версиями, платформа блокирует использование новшеств, появившихся в более поздних версиях платформы. Поэтому, если требуется использовать функционал расширений, недоступный в текущем режиме совместимости старой конфигурации, наилучшим решением является плановое обновление типовой конфигурации («1С:Бухгалтерия» или другие конфигурации) до актуального релиза, где режим совместимости повышен разработчиками фирмы «1С» штатно.
Рассмотрим особенности использования механизма в базовых версиях программных продуктов 1С:
.cfe непосредственно в базовой версии нельзя..cfe) можно подключать к базовым версиям непосредственно в режиме «1С:Предприятие» через стандартный интерфейс (раздел «Администрирование» — «Печатные формы, отчеты и обработки» — «Расширения»), если задействованная функциональность поддерживается платформой и конфигурацией.При создании и подключении нескольких расширений важно учитывать свойство Назначение, которое определяет приоритет и очередность их применения платформой. Платформа 1С поддерживает три вида назначения:
Внутри одной группы назначения расширения применяются строго по порядку их расположения в списке.
Проанализируем параметры безопасности и сопровождения расширений:
Безопасный режим: При подключении расширения через пользовательский интерфейс по умолчанию активирован флаг «Безопасный режим». В этом режиме для расширения запрещены привилегированные операции, прямое обращение к внешним компонентам и файловой системе. Если расширению требуется вызов метода УстановитьПривилегированныйРежим(Истина), безопасный режим в карточке расширения необходимо отключить или настроить соответствующие профили безопасности.
Контроль заимствования при обновлениях: При заимствовании объектов конфигурации в расширение фиксируется их текущая структура. Если при обновлении основной конфигурации разработчики типового решения удалили реквизит, изменили тип данных или сигнатуру метода заимствованного объекта, платформа выдаст ошибку несовместимости структуры. Для предотвращения сбоев в конфигураторе предусмотрена команда «Проверить возможность применения», позволяющая заранее валидировать работоспособность расширения после обновления основной конфигурации.