Программнно выполнить процедуру формы документа из обработки

1. Scar_rus 19.06.23 14:02 Сейчас в теме
Задача сформировать программнно документ.

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

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

П.С. Чуть не забыл Ссылка в обязательном порядке заменить на "ДокОбъект.Ссылка", это важно не забыть т.к. не вызывает ошибок при проверке.
Остальные ответы
В избранное Подписаться на ответы Сортировка: Древо развёрнутое
Свернуть все
2. soft_wind 19.06.23 14:26 Сейчас в теме
к процедуре формы слово Экспорт добавьте и смело вызывайте!
3. Scar_rus 19.06.23 14:27 Сейчас в теме
(2) Ага, а оно будет (Кнопка) ждать
4. soft_wind 19.06.23 14:35 Сейчас в теме
ВашаФорма.ОбработкаКнопкиЗаполненияТЧ(0);

а бы что передайте туда, как правило кнопка не используется,
5. Scar_rus 19.06.23 15:07 Сейчас в теме
(4) Окей, да работает.

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

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

Можно как-то закрывать форму без вплывающих окон?
6. user5300 966 19.06.23 15:17 Сейчас в теме
(5)
Форм = ПолучитьФорму("ВнешняяОбработка.ФормаТакаяТо.Форма");
Форм.ЭкспортнаяКнопкаНажать();
7. soft_wind 19.06.23 15:20 Сейчас в теме
Эххх, не владеете вы методом Копи-Паста!
а все так элементарно!
просто копируете функционал формы к себе в обработку и вызываете его, без открытия форм (вообще)!

для обработки документа, нужна только его Ссылка, по которой вы получаете Объект!!!
8. Scar_rus 20.06.23 07:09 Сейчас в теме
(7) Должно получиться что-то в духе...

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

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

П.С. Чуть не забыл Ссылка в обязательном порядке заменить на "ДокОбъект.Ссылка", это важно не забыть т.к. не вызывает ошибок при проверке.
11. Scar_rus 20.06.23 07:54 Сейчас в теме
(10) С тем что придется копипастить я смирился
12. nomad_irk 67 20.06.23 09:22 Сейчас в теме
(8)
НовыйДокумент = Документы.ГрафикПлатежейПоАренднойПлате.СоздатьДокумент();
ДокОбъект = НовыйДокумент.Ссылка.ПолучитьОбъект();

Мсье знает толк в извращениях!
Оставьте свое сообщение
Вакансии
Программист
Санкт-Петербург
зарплата от 180 000 руб. до 240 000 руб.
Полный день

Разработчик 1С
Москва
зарплата от 150 000 руб. до 250 000 руб.
Полный день

Программист 1С
Москва
зарплата от 180 000 руб. до 220 000 руб.
Полный день

Программист 1С
Екатеринбург
зарплата от 130 000 руб. до 170 000 руб.
Полный день

Программист 1C
Санкт-Петербург
зарплата от 140 000 руб. до 200 000 руб.
Полный день