После обновления типовых конфигураций 1С (таких как 1С:Управление нашей фирмой, 1С:ERP или 1С:Управление торговлей) пользователи и разработчики нередко сталкиваются с ситуацией, когда ранее работавшее расширение перестает применяться или выдает критические ошибки при запуске. Разберем по шагам, как подключить файл расширения к Конфигуратору, отредактировать его структуру и устранить типовые конфликты метаданных.
Если у вас есть файл расширения с расширением .cfe или расширение уже сохранено отдельно, для его изменения в среде разработки выполним следующий алгоритм действий:
.cfe и подтвердим замену метаданных.После завершения загрузки в окне появится дерево объектов расширения со всеми заимствованными формами, модулями и собственными реквизитами, готовое к редактированию.
Когда расширение загружено в Конфигуратор, выясним причину сбоя применимости. Платформа 1С предоставляет для этого встроенные инструменты диагностики:
Режим совместимости. Если при обновлении основной конфигурации режим совместимости был повышен разработчиками вендора, в свойствах расширения необходимо установить аналогичное значение.Проанализируем распространенную ситуацию: разработчики типовой конфигурации в процессе рефакторинга переименовывают реквизиты (например, реквизит Спецификация справочника Номенклатура переименовывается в УдалитьСпецификацию, а логика переносится в новый механизм). В этом случае расширение ссылается на старое имя и блокирует запуск.
Для устранения конфликтов структуры выполним следующие шаги:
Рассмотрим особенности работы с программными модулями при возникновении ошибок исполнения:
&ИзменениеИКонтролем платформа контролирует неизменность типового кода. Если текст исходной процедуры в типовом релизе изменился хотя бы на один символ, расширение выдаст ошибку. В таком случае требуется открыть оригинальный метод, скопировать новый текст в расширение и заново внести свои доработки между тегами #Вставка и #Удаление.&Перед, &После и &Вместо проверим состав и порядок параметров. Если в типовой процедуре добавился новый параметр, обновим объявление метода в расширении:
&Вместо("РассчитатьСуммуДокумента")
Процедура Расш_РассчитатьСуммуДокумента(Параметр1, Параметр2, НовыйПараметр = Неопределено)
// Актуализированный код с учетом новых параметров типового метода
ПродолжитьВызов(Параметр1, Параметр2, НовыйПараметр);
КонецПроцедуры
После внесения всех правок сохраним обновленное расширение:
.cfe.