Передача параметров из одной формы в другую
Здравствуйте! Знаю, что эта тема обсуждалась и не раз, но всё же, может кто подскажет. У меня есть форма1 в которой отображаются документы с типом : реализация, акт выполненных услуг, заказа клиента . На данной форме я создаю кнопку "Настройка" , при нажатии у меня открывается форма2 в которой у меня 3 флага (Флаг1 :реализация , Флаг2: акт выполненных услуг, Флаг3: заказа клиента ). Если я выберу например Флаг1 :реализация , то в моей форма1 должны отобразиться документы только с этим типом. Вопрос в том, что он не передает эти значение и я хочу понять почему.
В первой форме :
Во второй делаю так:
В первой форме :
&НаКлиенте
Процедура Настройка(Команда)
ПараметрыФормы = Новый Структура("АктВыполненныхРабот,РеализацияТоваровУслуг", Истина,Истина);
ОткрытьФорму("Документ.Новый.Форма.ФормаНастроек",ПараметрыФормы,ЭтаФорма);
КонецПроцедуры
Во второй делаю так:
&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
АктВыполненныхРабот = Параметры.АктВыполненныхРабот;
РеализацияТоваровУслуг = Параметры.РеализацияТоваровУслуг;
КонецПроцедуры
&НаКлиенте
Процедура ОК(Команда)
Структура = Новый Структура;
Структура.Вставить("АктВыполненныхРабот",АктВыполненныхРабот);
Структура.Вставить("РеализацияТоваровУслуг",РеализацияТоваровУслуг);
Структура.Вставить("ЗаказПоставщику",ЗаказПоставщику);
Структура.Вставить("ЗаказКлиента",ЗаказКлиента);
ЭтаФорма.Закрыть(Структура);
КонецПроцедуры
ПоказатьПо теме из базы знаний
- Механизмы и транспорт обмена данными. Пример создания в КД 2.1 правил обмена данными ЗУП 2.5 -> БП 3.0. Выгрузка ведомостей и банковских счетов. Передача параметров обмена из Источника в Приемник. ВыгрузитьПоПравилу(). ПередатьОдинПараметрВПриемник().
- Перенос Характеристики в Спецификацию (УНФ)
- Полное копирование одной формы в другую
- Открыть форму внутри другой формы - наконец-то возможно!
- Передача параметров процедур и функций. Особенности "Знач"
Найденные решения
(3)
примерно так
примерно так
&НаКлиенте
Процедура Настройка(Команда)
ПараметрыФормы = Новый Структура("АктВыполненныхРабот,РеализацияТоваровУслуг", Истина,Истина);
Оповещение = Новый ОписаниеОповещения("ПослеЗакрытияФормыНастроек", ЭтаФорма, Параметры);
ОткрытьФорму("Документ.Новый.Форма.ФормаНастроек",ПараметрыФормы,ЭтаФорма,,,,Оповещение,РежимОткрытияОкнаФормы.БлокироватьОкноВладельца);
КонецПроцедуры
&НаКлиенте
Процедура ПослеЗакрытияФормыНастроек(РезультатВыбора, ДопПараметры) Экспорт
Если НЕ РезультатВыбора=неопределено и ТипЗнч(РезультатВыбора)=Тип("Структура") Тогда
///Делаем с возвернутой структорой все то что задумали
КонецЕсли;
КонецПроцедуры
ПоказатьОстальные ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
(1)
откуда куда не передает ?
Из формы настроек, обратно на форму с документами ?
тебе надо процедуру
изменить..
потому что ты форму настроек то открыл, а где получение результата ?
Там нужно описание оповещения сделать, и в нем проверку - что если вернулась структура, то установить свои отборы или что там
Вопрос в том, что он не передает эти значение и я хочу понять почему.
откуда куда не передает ?
Из формы настроек, обратно на форму с документами ?
тебе надо процедуру
&НаКлиенте
Процедура Настройка(Команда)
ПараметрыФормы = Новый Структура("АктВыполненныхРабот,РеализацияТоваровУслуг", Истина,Истина);
ОткрытьФорму("Документ.Новый.Форма.ФормаНастроек",ПараметрыФормы,ЭтаФорма);
КонецПроцедуры
изменить..
потому что ты форму настроек то открыл, а где получение результата ?
Там нужно описание оповещения сделать, и в нем проверку - что если вернулась структура, то установить свои отборы или что там
(3)
примерно так
примерно так
&НаКлиенте
Процедура Настройка(Команда)
ПараметрыФормы = Новый Структура("АктВыполненныхРабот,РеализацияТоваровУслуг", Истина,Истина);
Оповещение = Новый ОписаниеОповещения("ПослеЗакрытияФормыНастроек", ЭтаФорма, Параметры);
ОткрытьФорму("Документ.Новый.Форма.ФормаНастроек",ПараметрыФормы,ЭтаФорма,,,,Оповещение,РежимОткрытияОкнаФормы.БлокироватьОкноВладельца);
КонецПроцедуры
&НаКлиенте
Процедура ПослеЗакрытияФормыНастроек(РезультатВыбора, ДопПараметры) Экспорт
Если НЕ РезультатВыбора=неопределено и ТипЗнч(РезультатВыбора)=Тип("Структура") Тогда
///Делаем с возвернутой структорой все то что задумали
КонецЕсли;
КонецПроцедуры
Показать
примерно так
в форме 2
в форме 1
в форме 2
&НаКлиенте
Процедура ПриЗакрытии(ЗавершениеРаботы)
Оповестить("ПередатьЗначенияВФорму1", ТЗ, ЭтаФорма);
КонецПроцедуры
в форме 1
&НаКлиенте
Процедура ОбработкаОповещения(ИмяСобытия, Параметр, Источник)
Если ИмяСобытия = "ПередатьЗначенияВФорму1" Тогда
ПрименитьЗначенияФормы2();
КонецЕсли;
КонецПроцедуры
Если форму нужно открыть для выбора каких-то данных в главную форму, то есть еще более ранний механизм, связанный с работой форм выбора.
Он оптимизирован под предельно простой возврат выбранных из списков объектов, но возможен и возврат произвольных значений.
Для этого у форм есть метод "ОповеститьОВыборе()". Если вызвать этот метод, то в форме-владельце будет инициировано событие "ОбработкаВыбора" куда будет передано указанное значение. При открытии формы выбора владельцем можно устанавливать не только форму, но и элементы управления формы - у них обычно тоже есть событие ОбработкаВыбора, которое можно перехватить. При этом ценно, что будут штатно вызваны события, связанные с изменением данных элемента управления. Если у формы установлено свойство "ЗакрыватьПриВыборе", то при вызове "ОповеститьОВыборе" она закроется автоматом.
Он оптимизирован под предельно простой возврат выбранных из списков объектов, но возможен и возврат произвольных значений.
Для этого у форм есть метод "ОповеститьОВыборе()". Если вызвать этот метод, то в форме-владельце будет инициировано событие "ОбработкаВыбора" куда будет передано указанное значение. При открытии формы выбора владельцем можно устанавливать не только форму, но и элементы управления формы - у них обычно тоже есть событие ОбработкаВыбора, которое можно перехватить. При этом ценно, что будут штатно вызваны события, связанные с изменением данных элемента управления. Если у формы установлено свойство "ЗакрыватьПриВыборе", то при вызове "ОповеститьОВыборе" она закроется автоматом.
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот