Как открыть существующее расширение в Конфигураторе 1С и исправить ошибки после обновления?

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

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

Загрузка существующего расширения в Конфигуратор

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

  1. Откроем информационную базу в режиме Конфигуратор.
  2. В главном меню перейдем в пункт Конфигурация — Расширения конфигурации. Перед нами откроется список всех подключенных расширений.
  3. В командной панели открывшегося окна нажмем кнопку Добавить (зеленый плюс), чтобы создать новое пустое расширение. Зададим ему произвольное имя и префикс или оставим значения по умолчанию.
  4. Выделим созданную строку расширения и дважды кликнем по ней либо нажмем кнопку открытия дерева метаданных.
  5. В основном командном меню окна Расширения конфигурации выберем пункт Конфигурация — Загрузить конфигурацию из файла.
  6. Укажем путь к нашему файлу .cfe и подтвердим замену метаданных.

После завершения загрузки в окне появится дерево объектов расширения со всеми заимствованными формами, модулями и собственными реквизитами, готовое к редактированию.

Диагностика ошибок и проверка применимости

Когда расширение загружено в Конфигуратор, выясним причину сбоя применимости. Платформа 1С предоставляет для этого встроенные инструменты диагностики:

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

Актуализация заимствованных объектов и реквизитов

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

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

  1. Найдем заимствованный объект в дереве расширения, кликнем по нему правой кнопкой мыши и выберем пункт Обновить, чтобы подтянуть актуальное состояние метаданных из основной конфигурации.
  2. Исправим имена реквизитов и обращений к ним в заимствованных формах и программном коде на актуальные.
  3. Будем соблюдать осторожность при удалении или замене заимствованных объектов: если в расширении создавались собственные реквизиты или табличные части, важно не удалить их случайным сбросом структуры, так как это приведет к потере пользовательских данных, хранящихся в таблицах расширения.

Адаптация перехваченных процедур и директив

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

  1. При использовании директивы &ИзменениеИКонтролем платформа контролирует неизменность типового кода. Если текст исходной процедуры в типовом релизе изменился хотя бы на один символ, расширение выдаст ошибку. В таком случае требуется открыть оригинальный метод, скопировать новый текст в расширение и заново внести свои доработки между тегами #Вставка и #Удаление.
  2. При использовании директив &Перед, &После и &Вместо проверим состав и порядок параметров. Если в типовой процедуре добавился новый параметр, обновим объявление метода в расширении:

&Вместо("РассчитатьСуммуДокумента")
Процедура Расш_РассчитатьСуммуДокумента(Параметр1, Параметр2, НовыйПараметр = Неопределено)
    // Актуализированный код с учетом новых параметров типового метода
    ПродолжитьВызов(Параметр1, Параметр2, НовыйПараметр);
КонецПроцедуры

Выгрузка и подключение через пользовательский режим

После внесения всех правок сохраним обновленное расширение:

  1. В окне Расширения конфигурации выберем пункт Конфигурация — Сохранить конфигурацию в файл и запишем актуальный .cfe.
  2. Если база работает в клиент-серверном варианте с активными пользователями, загрузить исправленный файл можно в режиме 1С:Предприятие: перейдем в раздел Администрирование — Печатные формы, отчеты и обработки — Расширения, выберем нужное расширение и нажмем Обновить из файла....
  3. Проверим состояние флага Безопасный режим: если логика расширения использует привилегированные операции, работу с файловой системой или внешними компонентами, безопасный режим в карточке расширения необходимо отключить.
← На главную