Вызов обработчика формы из внешней обработки #428768


#0 by Ustas
Есть внешняя обработка, перебирающая список документов (например ПКО). Нужно выставить флаг ОтражатьВБухгалтерскомУчете и вызвать обработчик События ОтражатьВБухгалтерскомУчетеПриИзменении(Элемент). ФормаДок = Выборка.Ссылка.ПолучитьФорму("ФормаДокумента"); Очевидно, что ОтражатьВБухгалтерскомУчетеПриИзменении даже объявленная "Экспорт" не видна. Как вызвать данное событие? или как вызвать функцию обработчик?
#1 by ТелепатБот
#2 by Михей
Да, через ЭлементыФормы она и не будет видна так как это не элемент формы
#3 by Mitriy
скопируй в обработку и не парься...
#4 by Defender aka LINN
"ФормаДок.ЭлементыФормы.ОтражатьВБухгалтерскомУчетеПриИзменении(Элемент);" - это что за эротические фантазии?
#5 by SuperMario
что за изврат? Зачем тебе вообще вызывать эту процедуру? Ты код ее видел? Рекомендую посмотреть. Для объекта там ничего тебе полезного нет.
#6 by SuperMario
+ ты внешней обработкой перебираешь список документов. Зачем ты вообще их форму получаешь?
#7 by Ustas
так и сделал. Но нутром чую что есть возможность вызывать событие. , Фантазии на тему: Если мышкой включаю флаг, то заполняются счета учета, а если программно, то нет. С ПКО понятно - обработчик не изменяет фанные а с РасходомТоваровУслуг? В принципе, не зачем. Мне нужно только обработчик Элемента формы вызвать. Я предположил, что если Форма будет открыта, то и обработчик автоматом будет вызван. Не вышло...
#8 by Defender aka LINN
Ну и вызывай процедуры, которые в обработчике, зачем писать какую-то фигню непонятного вида и назначения?
#9 by SuperMario
#10 by Ustas
Какую "фигню"? Я хочу одной строкой вызвать обработчик события формы документа.
#11 by Mitriy
это и есть фигня... на кой тебе обработчик события, если достаточно того, что вызывается в этом обработчике?
#12 by Фокусник
процедура без Экспорт, т.е. не получится ее вызвать извне. Добавляй Экспорт и вызывай (т.к. параметр Элемент не используется, можно передать Неопределено) или дублируй текст процедуры.
#13 by Ustas
Экспорт не помогает. Точнее если процедура объявлена (+ экспорт) в модуле объекта (документа), то код очень даже работает, а вот к процедуре, объявленной в МодулеФормы (+ экспорт) не получается добраться: Док.ОтражатьВБухгалтерскомУчетеПриИзменении(Неопределено); // так не работает Или я обращаюсь не к тому объекту?
#14 by Фокусник
"а вот к процедуре, объявленной в МодулеФормы" она у формы и находится:
#15 by Ustas
Огромное Спасибо. Работает
#16 by Mitriy
извращенцы упертые...
#17 by Фокусник
а вообще, если типовая, то лучше код скопируй. Т.к. обновлять потом не айс ;)
#18 by Ustas
, Я понимаю все прелести обновления конфигурации. Но при данной схеме, нет необходимости отслеживать изменения в обработчике. Код обработчика изменяется, а я просто его вызываю и всегда текущий. Нет дублирования кода программы. А это основное и есть функциональное программирование - "Один алгоритм реализован в одном месте"
#19 by Фокусник
в данном конкретном случае - не очень оправдано, тем более, что прав , этот обработчик можно вообще не вызывать. А изменение в конфигурации сделаешь... >Нет дублирования кода программы в типовых в обработчиках нет кода, есть только вызов процедур/функций (во всяком случае так должно быть), а значит и редактироваться код обработчиков будет не принципиально часто. А экспортов уже понаставил, за ними придется следить при _каждом_ обновлении.
#20 by Ustas
Спасибо. Я вас прекрасно понял. Главное, что научился обращаться к функциям, прописанным в Конфигураторе из ВнешнейОбработки.
#21 by 73
+ Потом не спрашивай, как обработку твою на сервере запустить...
Тэги:
Ответить:
Комментарии доступны только авторизированным пользователям

В этой группе 1С