Задача сформировать программнно документ.

У документа есть две ТЧ. Первую обычно заполняет человек, вторая заполняется сама по нажатию кнопки исходя из информации в первой ТЧ и шапке документа. Заполнить программнно шапку и первую ТЧ не так сложно. Но вот как заполнить вторую? Процедура кнопки заполняющей вторую ТЧ лежит в модуле формы. Копипастить и адаптировать 250 строк ее кода не очень хочется. Можно ли как-то простым способом обратиться к ней или придется танцевать с бубном?

З.Ы. Речь об обычных формах
---
Имеется ввиду, что надо просто скопипастить процедуру из формы документа к себе в обработку заполнения (то что вы изначально не хотите делать).
А "адаптация" занимает от силы 10-15 минут, проходитесь по всем ошибкам, если не хватает еще процедур - копипастите, для реквизитов документа спереди добавляете что то типа "ДокОбъект.", все что работает с формой напрямую (видимость/доступность и т.п.) комментируете, в 99% случаев этого хватает для корректной работы

П.С. Чуть не забыл Ссылка в обязательном порядке заменить на "ДокОбъект.Ссылка", это важно не забыть т.к. не вызывает ошибок при проверке.
---
к процедуре формы слово Экспорт добавьте и смело вызывайте!
---
Ага, а оно будет (Кнопка) ждать
---
ВашаФорма.ОбработкаКнопкиЗаполненияТЧ(0);

а бы что передайте туда, как правило кнопка не используется,
---
Окей, да работает.

Но, есть один нюанс. Форма документа открывается в предприятии. А соответсвенно при обработке всех записей это будет 500+ открытых окон. Если закрывать их программно то это будет 500+ всплывающих предупреждений просящих подтвердить изменение данных.

Если документ не открывать вовсе, то вылезает ошибка, которая говорит, что не может преобразовать СтавкаДисконтированияЗаДень к типу Чило (там округление стоит) в модуле формы.

Можно как-то закрывать форму без вплывающих окон?
---
```1c
    Форм = ПолучитьФорму("ВнешняяОбработка.ФормаТакаяТо.Форма");
    Форм.ЭкспортнаяКнопкаНажать();
```
---
Эххх, не владеете вы методом Копи-Паста!
а все так элементарно!
просто копируете функционал формы к себе в обработку и вызываете его, без открытия форм (вообще)!

для обработки документа, нужна только его Ссылка, по которой вы получаете Объект!!!
---
Должно получиться что-то в духе...

```1c
    НовыйДокумент = Документы.ГрафикПлатежейПоАренднойПлате.СоздатьДокумент();
    ДокОбъект = НовыйДокумент.Ссылка.ПолучитьОбъект();
    ДокОбъект.НазваниеНужнойПроцедуры();
```
   где НазваниеНужнойПроцедуры() находится в одном модуле с ее вызывом?

Или не то?
---
Или мне в процедуру передать объект и просто из него данные для нее тянуть?
---
Имеется ввиду, что надо просто скопипастить процедуру из формы документа к себе в обработку заполнения (то что вы изначально не хотите делать).
А "адаптация" занимает от силы 10-15 минут, проходитесь по всем ошибкам, если не хватает еще процедур - копипастите, для реквизитов документа спереди добавляете что то типа "ДокОбъект.", все что работает с формой напрямую (видимость/доступность и т.п.) комментируете, в 99% случаев этого хватает для корректной работы

П.С. Чуть не забыл Ссылка в обязательном порядке заменить на "ДокОбъект.Ссылка", это важно не забыть т.к. не вызывает ошибок при проверке.
---
С тем что придется копипастить я смирился
---
НовыйДокумент = Документы.ГрафикПлатежейПоАренднойПлате.СоздатьДокумент();
ДокОбъект = НовыйДокумент.Ссылка.ПолучитьОбъект();
Мсье знает толк в извращениях!