Как передать параметр (ТЗ) в уже открытую форму? #100781


#0 by KiLLER
Из формы документа открваю форму для подбора товара по минимаьному остатку, формирую ТЗ, и хочу при закрытии формы подбора передать ТЗ в форму из которой был открыт подбор, а у меня получается только открытие новой формы документа и передача именно в нее. Ключ уникальности задан = 123 (к примеру) Что не так?
#1 by sanitar
Все гораздо проще.        vvvv код исходной формы vvvv // второе поле -- владелец, третье -- код уникальности формы подбора        vvvv код формы подбора vvvv ЭтаФорма.ОповеститьОВыборе(ВыбраннаяТаблицаЗначений);        vvvv опять код исходной формы vvvv
#2 by sanitar
Идея в том что у любой формы есть процедуры ОповеститьОВыборе и ОбработкаВыбора. Причем первая процедура формы X вызывает вторую у формы Y (которая является владельцем формы X), передавая ей в качестве параметров выбранное значение  и собственные характеристики. Так что для связки достаточно открыть форму подбора, указав ей в качестве владельца форму, которой этот подбор нужен и дальше можно баловаться.
#3 by KiLLER
Пишет в ответ: {Документ.ЗаказПоставщику.Форма.ФормаДокумента}: Ошибка при вызове метода контекста (ПолучитьОбщуюФорму): Недопустимое значение параметра (параметр номер "1") Форма=ПолучитьОбщуюФорму("ФормаЗаполненияПоМинимальномуОстатку",ЭтаФорма,ДокументОбъект.Дата); по причине: Недопустимое значение параметра (параметр номер "1")
#4 by sanitar
ПолучитьОбщуюФорму я привел для примера. Это в случае если форма с таким названием лежит в ветке "общие" (имхо самое правильное место для форм подбора). Если она у тебя хранится в ветке документа, тада применяй метод документа получитьформу Остальное без изменений
#5 by Ветеран
ВладелецФормы.ТаблицаДляПередачи = ТЗ;
#6 by sanitar
Ветеран: имхо с точки зрения идеологии это не есть совсем правильно... заводить отдельный реквизит ради того чтобы принимать в него значения подбора...
#7 by Факер_S
можно завести переменную экспорт и ей присваивать значения
#8 by Ветеран
ВладелецФормы - это свойство формы ...
#9 by sanitar
Я знаю. Разница в происходящих процессах: 1) Через Обработку выбора Форма 1 открывает форму 2, потом просыпается по приходе сигнала от нее, принимает данные и обрабатывает их как только хочет. 2) Через реквизит владельца формы: Форма 1 открывает форму 2, форма 2 чего-то пишет форме 1 в реквизит и закрывается. Первый вариант ИМХО гибче и идейно правильней.
#10 by KiLLER
Большое спасибо...!
Тэги:
Ответить:
Комментарии доступны только авторизированным пользователям

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