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

```1c
    // перехватчики событий формы

    &НаКлиенте
    Процедура Расш1_ПриОткрытииПосле(Отказ)
    ЗаполнитьОстаткиНаСкладе();
    КонецПроцедуры

    &НаКлиенте
    Процедура Расш1_ТоварыНоменклатураПриИзмененииПосле(Элемент)
    ЗаполнитьОстаткиНаСкладе();
    КонецПроцедуры

    &НаСервере
    Процедура Расш1_ПриСозданииНаСервереПосле(Отказ, СтандартнаяОбработка)

    // добавляем реквизит для колонки остатков
    Реквизиты = Новый Массив;
    Реквизиты.Добавить(Новый РеквизитФормы("Остатки", Новый ОписаниеТипов("Строка"), "Объект.Товары" , "Доступно на складе", Ложь));
    ИзменитьРеквизиты(Реквизиты);

    // добавляю новый элемент формы для созданного только что реквизита
    НовыйЭлементФормы = Элементы.Добавить("ТоварыОстатки", Тип("ПолеФормы"), Элементы.Товары);
    НовыйЭлементФормы.Вид = ВидПоляФормы.ПолеВвода;
    НовыйЭлементФормы.ТолькоПросмотр = Истина;
    НовыйЭлементФормы.ПутьКДанным = "Объект.Товары.Остатки";

    КонецПроцедуры

    // вспомогательная процедура заполнения колонки остатков
    // используется запрос к соответствующему регистру накопления остатков

    Процедура ЗаполнитьОстаткиНаСкладе()

    // для каждой Стр из табличной части Объект.Товары записываем Стр.Остатки = полученное из регистра значение
    // полный код не привожу, потому что суть вопроса сейчас не в этом

    КонецПроцедуры
```

Расширение работает как нужно, колонка добавляется, остатки заполняются.

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

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

тогда код расширяемого общего модуля "МодификацияКонфигурацииПереопределяемый" будет иметь следующий вид:

```1c
    &Перед("ПриСозданииНаСервере")
    Процедура Расш1_ПриСозданииНаСервере(Форма, Отказ, СтандартнаяОбработка) Экспорт

    Если Форма.ИмяФормы = "Документ.РеализацияТоваровУслуг.Форма.ФормаДокумента" Тогда

    // здесь уже делаем что захотим: добавляем на форму документа свои реквизиты, элементы и т.п.

    КонецЕсли

    КонецПроцедуры
```
---
По моему нет, т.к. даже в комментах к расширениям 1С-ники пишут, что не гарантируется сохранность работоспособности расширения если были какие - то изменения в update-тах к конфе.
---
Проблемы возникнут только при изменении (удалении) заимствованных реквизитов. Уже несколько раз такое наблюдалось...решается тупо удалением ненужных элементов из расширения. Это можно сделать сразу, или потом, когда после обновления, расширение отвалится...
---
Возможно ты не знаешь вот о чем:
1) у каждого реквизита в расширении есть свойство "проверять при подключении". Лично я его всегда выключаю у всех объектов. Это предотвращает ошибки подключения если меняется тип, проблема будет только когда реквизит удалят из конфигурации.
2) связанные реквизиты и объекты вообще не обязаны присутствовать в расширении. их можно тупо удалять. при сохранении вывалит ошибки, но работать будет.
3) если у документа например в расширении очистить свойство "основная форма", то форма всегда будет подгружаться из конфигурации, а не с расширения. Будет ли расширение перехватывать методы при этом - не знаю, проверь опытным путем.
---
как вариант, попробовать заимствовать не форму документа в расширение, а общий модуль "МодификацияКонфигурацииПереопределяемый" (напомню, в типовой конфигурации он служит для переопределения стандартных обработчиков событий формы (например, ПриСозданииНаСервере) .

тогда код расширяемого общего модуля "МодификацияКонфигурацииПереопределяемый" будет иметь следующий вид:

```1c
    &Перед("ПриСозданииНаСервере")
    Процедура Расш1_ПриСозданииНаСервере(Форма, Отказ, СтандартнаяОбработка) Экспорт

    Если Форма.ИмяФормы = "Документ.РеализацияТоваровУслуг.Форма.ФормаДокумента" Тогда

    // здесь уже делаем что захотим: добавляем на форму документа свои реквизиты, элементы и т.п.

    КонецЕсли

    КонецПроцедуры
```
---
тогда код расширяемого общего модуля "МодификацияКонфигурацииПереопределяемый" будет иметь следующий вид: имеется ввиду, код одноименного модуля в расширении. в основной конфигурации общий модуль редактировать не нужно