Программнно выполнить процедуру формы документа из обработки
Задача сформировать программнно документ.
У документа есть две ТЧ. Первую обычно заполняет человек, вторая заполняется сама по нажатию кнопки исходя из информации в первой ТЧ и шапке документа. Заполнить программнно шапку и первую ТЧ не так сложно. Но вот как заполнить вторую? Процедура кнопки заполняющей вторую ТЧ лежит в модуле формы. Копипастить и адаптировать 250 строк ее кода не очень хочется. Можно ли как-то простым способом обратиться к ней или придется танцевать с бубном?
З.Ы. Речь об обычных формах
У документа есть две ТЧ. Первую обычно заполняет человек, вторая заполняется сама по нажатию кнопки исходя из информации в первой ТЧ и шапке документа. Заполнить программнно шапку и первую ТЧ не так сложно. Но вот как заполнить вторую? Процедура кнопки заполняющей вторую ТЧ лежит в модуле формы. Копипастить и адаптировать 250 строк ее кода не очень хочется. Можно ли как-то простым способом обратиться к ней или придется танцевать с бубном?
З.Ы. Речь об обычных формах
По теме из базы знаний
- УФ: программное создание и копирование документов с использованием конструкций ДанныеФормыВЗначение, ЗначениеВДанныеФормы
- Загрузка чеков в 1С из ФНС в документы БП, УНФ, ERP, КА и УТ
- Программное создание и расчет документов начисления зарплаты в конфигурации ЗУП 3.1 и ERP (по подразделениям)
- [ЕХТ] Фреймворк для Расширений 1С: Обработка событий: описание, примеры и демобаза.
- Индикатор прогресса фонового выполнения дополнительной обработки БСП
Найденные решения
(9) Имеется ввиду, что надо просто скопипастить процедуру из формы документа к себе в обработку заполнения (то что вы изначально не хотите делать).
А "адаптация" занимает от силы 10-15 минут, проходитесь по всем ошибкам, если не хватает еще процедур - копипастите, для реквизитов документа спереди добавляете что то типа "ДокОбъект.", все что работает с формой напрямую (видимость/доступность и т.п.) комментируете, в 99% случаев этого хватает для корректной работы
П.С. Чуть не забыл Ссылка в обязательном порядке заменить на "ДокОбъект.Ссылка", это важно не забыть т.к. не вызывает ошибок при проверке.
А "адаптация" занимает от силы 10-15 минут, проходитесь по всем ошибкам, если не хватает еще процедур - копипастите, для реквизитов документа спереди добавляете что то типа "ДокОбъект.", все что работает с формой напрямую (видимость/доступность и т.п.) комментируете, в 99% случаев этого хватает для корректной работы
П.С. Чуть не забыл Ссылка в обязательном порядке заменить на "ДокОбъект.Ссылка", это важно не забыть т.к. не вызывает ошибок при проверке.
Остальные ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
(4) Окей, да работает.
Но, есть один нюанс. Форма документа открывается в предприятии. А соответсвенно при обработке всех записей это будет 500+ открытых окон. Если закрывать их программно то это будет 500+ всплывающих предупреждений просящих подтвердить изменение данных.
Если документ не открывать вовсе, то вылезает ошибка, которая говорит, что не может преобразовать СтавкаДисконтированияЗаДень к типу Чило (там округление стоит) в модуле формы.
Можно как-то закрывать форму без вплывающих окон?
Но, есть один нюанс. Форма документа открывается в предприятии. А соответсвенно при обработке всех записей это будет 500+ открытых окон. Если закрывать их программно то это будет 500+ всплывающих предупреждений просящих подтвердить изменение данных.
Если документ не открывать вовсе, то вылезает ошибка, которая говорит, что не может преобразовать СтавкаДисконтированияЗаДень к типу Чило (там округление стоит) в модуле формы.
Можно как-то закрывать форму без вплывающих окон?
Эххх, не владеете вы методом Копи-Паста!
а все так элементарно!
просто копируете функционал формы к себе в обработку и вызываете его, без открытия форм (вообще)!
для обработки документа, нужна только его Ссылка, по которой вы получаете Объект!!!
а все так элементарно!
просто копируете функционал формы к себе в обработку и вызываете его, без открытия форм (вообще)!
для обработки документа, нужна только его Ссылка, по которой вы получаете Объект!!!
(7) Должно получиться что-то в духе...
где НазваниеНужнойПроцедуры() находится в одном модуле с ее вызывом?
Или не то?
НовыйДокумент = Документы.ГрафикПлатежейПоАренднойПлате.СоздатьДокумент();
ДокОбъект = НовыйДокумент.Ссылка.ПолучитьОбъект();
ДокОбъект.НазваниеНужнойПроцедуры();
Или не то?
(9) Имеется ввиду, что надо просто скопипастить процедуру из формы документа к себе в обработку заполнения (то что вы изначально не хотите делать).
А "адаптация" занимает от силы 10-15 минут, проходитесь по всем ошибкам, если не хватает еще процедур - копипастите, для реквизитов документа спереди добавляете что то типа "ДокОбъект.", все что работает с формой напрямую (видимость/доступность и т.п.) комментируете, в 99% случаев этого хватает для корректной работы
П.С. Чуть не забыл Ссылка в обязательном порядке заменить на "ДокОбъект.Ссылка", это важно не забыть т.к. не вызывает ошибок при проверке.
А "адаптация" занимает от силы 10-15 минут, проходитесь по всем ошибкам, если не хватает еще процедур - копипастите, для реквизитов документа спереди добавляете что то типа "ДокОбъект.", все что работает с формой напрямую (видимость/доступность и т.п.) комментируете, в 99% случаев этого хватает для корректной работы
П.С. Чуть не забыл Ссылка в обязательном порядке заменить на "ДокОбъект.Ссылка", это важно не забыть т.к. не вызывает ошибок при проверке.
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот