Как корректно программно вызвать обработчик события другой формы? #623105


#0 by napagokc
В модуле формы, событие в которой хочу вызвать, добавил процедуру: Вызвать хочу событие "ПриВыбореТовара(Элемент)" В модуле совершенно другого объекта пишу: ДокФорма = Док.ПолучитьФорму; Вот что должно быть, вместо "ТутЧтоТоДолжноБыть", поделитесь опытом? По отладчику там должно быть Поле ввода формы, событие которой я пытаюсь вызвать. Какой параметр я должен передать, чтобы все корректно работало? Сейчас пишет: Переменная не определена (ТутЧтоТоДолжноБыть) ПриВыбореТовара(<<?>>ТутЧтоТоДолжноБыть) Я так понимаю, что если это поле ввода в самом обработчике нигде не используется, то можно вообще левое поле ввода туда передать. Только не понял, как это сделать? Ну, и это, конечно, читерство, попытка выкрутиться из ситуации. Мне бы хотелось сделать грамотно, если уж задаю тут вопрос. Мистяне ведь знают ВСЁ. Даже 1С )))
#1 by napagokc
Ах, да. 1С8.2
#2 by alextom81
Никак. (Если я правильно понял задачу) - На старте долго пытался программно добавить кнопки в формы - и уткнулся в то, что обработчик элемента формы должен быть прописан в самом модуле формы. Либо в модуле формы вызываться экспортная процедура из других модулей. Но обработчик - только в форме. Из модуля формы тебе будут доступны только экспортные процедуры и функции, насколько я понимаю
#3 by napagokc
Так у меня все так и сделано. Попробую пояснить более подробно на примере... Есть форма какого-то документа (условно: ДокФорма), там есть уже реализованные обработчики событий, в том числе и "ПриВыбореТовара(Элемент)". Я из модуля объекта совершенно другого объекта (простите за тавтологию) пытаюсь вызвать этот обработчик события. Для этих целей в модуле формы ДокФорма я создал экспортную процедуру "ВыполнитьИзвне(пВыражение)", которая, согласно справке, "Позволяет выполнить фрагмент кода, который передается ему в качестве строкового значения" (это описание к методу "Выполнить"). И все хорошо, но ругается на передаваемый параметр... Проблемы только с ним.
#4 by napagokc
Я, как и написал в , считерил и подставил вместо параметра события "ПриВыбореТовара" просто левое поле ввода той же формы. Все отработало корректно, т.к. этот параметр внутри обработчика события нигде не использовался. Но все равно я понимаю, что я что-то не так сделал. Если кто-то все же знает как достучаться до нужного параметра, напишите, плз. Спасибо.
#5 by anddro
Оповестить ?
#6 by TormozIT
Попробуй это
#7 by Rovan
если у тебя в "ПриВыбореТовара(Элемент)". сам Элемент роли не играет, то ТутЧтоТоДолжноБыть пусть = 0
#8 by anddro
а вот это лишнее. В принципе путь, когда одна форма меняет непосредственно данные другой формы, это порочно, т.к. это потенциальный источник ошибок. Взаимодействие между формами реализуется через Оповестить и ОбработкаОповещения.
Тэги: 1С 8
Ответить:
Комментарии доступны только авторизированным пользователям

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