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

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

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

Поведение платформы при изменении методов поставщика

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

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

Способы проверки расширений в режиме «Конфигуратор»

Разберем по шагам, как выявить проблемы совместимости непосредственно в среде разработки до передачи обновления пользователям:

  1. Проверка возможности применения расширения: Откроем список расширений через меню Конфигурация — Расширения конфигурации. В контекстном меню нужного расширения выберем пункт Проверить возможность применения. Платформа выполнит сопоставление всех заимствованных объектов, методов и свойств расширения с обновленной конфигурацией и выведет список несовпадений в окно сообщений.
  2. Комплексная проверка конфигурации: Выполним команду главного меню Конфигурация — Проверка конфигурации. В открывшемся окне параметров проверки обязательно отметим флаги проверки логической целостности, синтаксического контроля модулей и проверки расширений.
  3. Синтаксический контроль модулей: Откроем модуль расширения и запустим синтаксическую проверку (клавиши Ctrl + F7), чтобы убедиться в отсутствии обращений к несуществующим процедурам, функциям или реквизитам.

Проверка применимости в режиме «1С:Предприятие»

Проанализируем возможность контроля расширений на стороне пользовательского режима без запуска Конфигуратора:

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

Автоматическая проверка в пакетном режиме (CI/CD)

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


"C:\Program Files\1cv8\8.3.XX.XXXX\bin\1cv8.exe" DESIGNER /IBConnectionString "File=""C:\Bases\Demo"";" /CheckConfig -Extension "МоеРасширение" -DumpResult "C:\Logs\check_result.txt"

Параметр -Extension задает имя конкретного расширения, а параметр -AllExtensions позволяет запустить проверку сразу для всех подключенных расширений базы данных с выгрузкой отчета в текстовый файл.

Важные нюансы и рекомендации при доработке конфигураций

Выясним, на что следует обращать внимание при написании кода в расширениях, чтобы минимизировать поломки при обновлениях:

  1. Директива &ИзменениеИКонтроль: При использовании данной директивы платформа строго отслеживает неизменность тела исходного метода поставщика. Любая правка оригинальной строки кода поставщиком потребует актуализации зафиксированного фрагмента в расширении.
  2. Режим совместимости: Если при обновлении основной конфигурации повышается режим совместимости, необходимо синхронно скорректировать режим совместимости в свойствах самого расширения.
  3. Минимизация перехватов &Вместо: Рекомендуется отдавать предпочтение директивам &Перед или &После, а также использовать стандартные переопределяемые модули БСП (с суффиксом Переопределяемый) и подписки на события.
  4. Изоляция логики: Прикладной код доработок следует выносить в отдельные процедуры и функции собственных общих модулей расширения, оставляя в методах-перехватчиках только минимальные вызовы.
← На главную