![]() |
![]() |
![]() |
|
Как передать параметр (ТЗ) в уже открытую форму? | ☑ | ||
---|---|---|---|---|
0
KiLLER
19.05.05
✎
13:18
|
Из формы документа открваю форму для подбора товара по минимаьному остатку, формирую ТЗ, и хочу при закрытии формы подбора передать ТЗ в форму из которой был открыт подбор, а у меня получается только открытие новой формы документа и передача именно в нее.
Ключ уникальности задан = 123 (к примеру) Фрм = ДокументОбъект.ПолучитьФорму("ФормаДокумента",,123); Фрм.ТаблицаДляПередачи = ЭтаФорма.ТЗ; Фрм.Открыть(); Что не так? |
|||
1
sanitar
19.05.05
✎
13:49
|
Все гораздо проще.
vvvv код исходной формы vvvv // второе поле -- владелец, третье -- код уникальности формы подбора Форма=ПолучитьОбщуюФорму("ТвояФормаПодбора",ЭтаФорма,"МояФормаПодбора123"); Форма.Открыть(); vvvv код формы подбора vvvv ЭтаФорма.ОповеститьОВыборе(ВыбраннаяТаблицаЗначений); ЭтаФорма.Закрыть(); vvvv опять код исходной формы vvvv Процедура ОбработкаВыбора(ЗначениеВыбора, Источник) если Источник.КлючУникальности="МояФормаПодбора123" тогда // обрабатываешь переменную ЗначениеВыбора -- это твоя таблица иначеесли Источник.КлючУникальности="ещечтото" тогда .... иначе ... конецесли; КонецПроцедуры |
|||
2
sanitar
19.05.05
✎
13:52
|
Идея в том что у любой формы есть процедуры ОповеститьОВыборе и ОбработкаВыбора.
Причем первая процедура формы X вызывает вторую у формы Y (которая является владельцем формы X), передавая ей в качестве параметров выбранное значение и собственные характеристики. Так что для связки достаточно открыть форму подбора, указав ей в качестве владельца форму, которой этот подбор нужен и дальше можно баловаться. |
|||
3
KiLLER
19.05.05
✎
16:15
|
Пишет в ответ:
{Документ.ЗаказПоставщику.Форма.ФормаДокумента(170)}: Ошибка при вызове метода контекста (ПолучитьОбщуюФорму): Недопустимое значение параметра (параметр номер "1") Форма=ПолучитьОбщуюФорму("ФормаЗаполненияПоМинимальномуОстатку",ЭтаФорма,ДокументОбъект.Дата); по причине: Недопустимое значение параметра (параметр номер "1") |
|||
4
sanitar
19.05.05
✎
17:21
|
ПолучитьОбщуюФорму я привел для примера.
Это в случае если форма с таким названием лежит в ветке "общие" (имхо самое правильное место для форм подбора). Если она у тебя хранится в ветке документа, тада применяй метод документа получитьформу() Остальное без изменений |
|||
5
Ветеран
19.05.05
✎
17:48
|
ВладелецФормы.ТаблицаДляПередачи = ТЗ;
|
|||
6
sanitar
19.05.05
✎
17:56
|
Ветеран:
имхо с точки зрения идеологии это не есть совсем правильно... заводить отдельный реквизит ради того чтобы принимать в него значения подбора... |
|||
7
Факер_S
19.05.05
✎
17:58
|
можно завести переменную экспорт и ей присваивать значения
|
|||
8
Ветеран
19.05.05
✎
18:19
|
(6) ВладелецФормы - это свойство формы ...
|
|||
9
sanitar
20.05.05
✎
06:20
|
Я знаю. Разница в происходящих процессах:
1) Через Обработку выбора Форма 1 открывает форму 2, потом просыпается по приходе сигнала от нее, принимает данные и обрабатывает их как только хочет. 2) Через реквизит владельца формы: Форма 1 открывает форму 2, форма 2 чего-то пишет форме 1 в реквизит и закрывается. Первый вариант ИМХО гибче и идейно правильней. |
|||
10
KiLLER
20.05.05
✎
13:34
|
Большое спасибо...!
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |