Получить данные из реквизитов другой открытой формы.

1. Az18011993 27.03.23 15:12 Сейчас в теме
Добрый день, уважаемые форумчане!
Знаю тема наверное в 1С уже заезжанная, но спрошу. У меня есть на форме документа реквизит, который мне нужно заполнить адресом, то есть строкой), при событии выбора я открываю форму ввода адреса через ОткрытьФорму(ИмяФормы,ОткрытьФорму("Обработка.ВводКонтактнойИнформации.Форма.ВводАдреса", ПараметрыФормы, ЭтаФорма,,,, ). Там я заполняю данные адреса, но вот хотел бы узнать как их вернуть обратно на мою форму. Через метод ПолучитьФорму()? У меня формы УФ.

Простой код события:

&НаКлиенте
Процедура неоАдресПодачиНачалоВыбора(Элемент, ДанныеВыбора, СтандартнаяОбработка = Ложь)   
	
	ПараметрыФормы = Новый Структура;
	ПараметрыФормы.Вставить("ОткрытаПоСценарию", Истина);
	ОткрытьФорму("Обработка.ВводКонтактнойИнформации.Форма.ВводАдреса", ПараметрыФормы, ЭтаФорма,,,, );
	
КонецПроцедуры
Показать


Делал как тест для передачи своих данных. В какую сторону копать? Заранее спасибо.
По теме из базы знаний
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
4. independ 1540 27.03.23 16:01 Сейчас в теме
(1) 2 простых навскидку
1. в в клиентской процедуре модуля формы
Обработка.ВводКонтактнойИнформации.Форма.ВводАдреса

ВладелецФормы.НужныйРеквизит= ЧтоТоИзФормыВыбора;
Закрыть();

2. В основной форме перед открытием
ПараметрыФормы = Новый Структура;
    ПараметрыФормы.Вставить("ОткрытаПоСценарию", Истина);
Оповещение=Новый ОписаниеОповещения("ВводАдресаЗавершение",ЭтаФорма);
    ОткрытьФорму("Обработка.ВводКонтактнойИнформации.Форма.ВводАдреса", ПараметрыФормы, ЭтаФорма,,,, ); 

&НаКлиенте
Процедура ВводАдресаЗавершение(Результат,ДопПараметры) ЭКСПОРТ
	Если Результат<>Неопределено Тогда
		НужныйРеквизит=Результат;
	КонецЕсли;
КонецПроцедуры
Показать


В форме выбора
Закрыть(ЧтоТоИзФормыВыбора);
5. soft_wind 27.03.23 16:02 Сейчас в теме
(1)как вариант, так и пишите (свои имена реквизитов подставьте)

ЭтаФорма.ВладелецФормы.РеквизитСАдресом = ВашАдрес;
6. пользователь 27.03.23 16:03
Сообщение было скрыто модератором.
...
2. Vlad_M_75 27.03.23 15:34 Сейчас в теме
В сторону процедур ОповеститьОВыборе и обработкаВыбора
3. SP17081992 5 27.03.23 16:00 Сейчас в теме
(1) ОткрытьФорму(<ИмяФормы>, <Параметры>, <Владелец>, <Уникальность>, <Окно>, <НавигационнаяСсылка>, <ОписаниеОповещенияОЗакрытии>, <РежимОткрытияОкна>)

Тебе нужен заполнить ОписаниеОповещенияОЗакрытии, и процедуре опевешения можно получить то, что будете указывать в "ПараметрЗакрытия", при закрытии формы:
Закрыть(<ПараметрЗакрытия>)
7. soft_wind 27.03.23 16:06 Сейчас в теме
(6) так это сплошь и рядом используется прямая запись в реквизиты Владельца
из подчиненной формы! без всяких оповещений!

если есть такая возможность почему не использовать?
9. user1863362 27.03.23 16:16 Сейчас в теме
(7)
если есть такая возможность почему не использовать?
Анекдот №698390
10. пользователь 27.03.23 16:17
Сообщение было скрыто модератором.
...
22. Az18011993 27.03.23 17:02 Сейчас в теме
(10)Это мне ж каждый обработчик прописывать для данных, нафиг надо)))Мне то просто результат получить из обработки при нажатии кнопки ОК у ней.
Прикрепленные файлы:
25. пользователь 27.03.23 17:04
Сообщение было скрыто модератором.
...
11. Kilka_v_Kepke 27.03.23 16:18 Сейчас в теме
(7) есть подозрение что эта форма Обработка.ВводКонтактнойИнформации.Форма.ВводАдреса при нажатии какой-то кнопки сама возвращает адрес. Если так, то зачем менять 2 модуля формы вместо одного
12. пользователь 27.03.23 16:19
Сообщение было скрыто модератором.
...
13. пользователь 27.03.23 16:20
Сообщение было скрыто модератором.
...
14. пользователь 27.03.23 16:23
Сообщение было скрыто модератором.
...
15. пользователь 27.03.23 16:27
Сообщение было скрыто модератором.
...
16. пользователь 27.03.23 16:32
Сообщение было скрыто модератором.
...
17. пользователь 27.03.23 16:33
Сообщение было скрыто модератором.
...
18. soft_wind 27.03.23 16:40 Сейчас в теме
(10) нет конечно, типовые лучше не изменять.
в форме документа , (если еще нету то создать) обработчик события выбора, примрено так
&НаКлиенте
Процедура ОбработкаВыбора(ВыбранноеЗначение, ИсточникВыбора)
	РеквизитСАдресом = ВыбранноеЗначение.ДанныеВыбора.Представление;//может в попытке?
КонецПроцедуры
19. пользователь 27.03.23 16:41
Сообщение было скрыто модератором.
...
20. Kilka_v_Kepke 27.03.23 16:43 Сейчас в теме
(18) а что в источнике выбора? мб его проверить вместо попытки. Вроде как метод экспортный должен быть
21. Az18011993 27.03.23 16:57 Сейчас в теме
(18)Так я вызываю типовую обработку Адреса,зачем мне ее менять? Я ж так понимаю она возвращает Результат в виде параметров (структура)
23. пользователь 27.03.23 17:03
Сообщение было скрыто модератором.
...
24. soft_wind 27.03.23 17:04 Сейчас в теме
(21) /Да, точно! просто возьмите нужное свойство из структуры и присвойте своему реквизиту с адресом!
(в обработчике Выбора)

только как правильно посоветовали, пару проверок добавьте!
так как в одну форму документа могут приходить оповещения от разных форм выбора, а они соответсовенно разные данные передают!
Az18011993; +1 Ответить
26. пользователь 27.03.23 17:07
Сообщение было скрыто модератором.
...
29. Az18011993 27.03.23 17:33 Сейчас в теме
(24)А можно простой пример, если не трудно?
30. Az18011993 27.03.23 17:33 Сейчас в теме
(24)А можно простой пример, если не трудно?
27. soft_wind 27.03.23 17:14 Сейчас в теме
(26) я об этом, из одной формы документа, можно открыть НЕСКОЛЬКО И РАЗНЫХ форм выбора и все оповещения из них придут в один обработчик! где и надо с помощью проверок условий (Если...) разделить/распознать входящие (разные)данные
28. пользователь 27.03.23 17:16
Сообщение было скрыто модератором.
...
31. soft_wind 27.03.23 17:43 Сейчас в теме
(28) эээ, так изначально же речь шла как раз об открытии формы ввода адреса, а в ней процедура Оповещениеовыборе(...)
и Закрыть с параметром
33. Az18011993 27.03.23 17:48 Сейчас в теме
(31) Да об этом и шла. У меня на форме есть реквизит Адрес, в событии выбора я вызываю открытие формы обработки типовой адрес контактной информации. И там я заполняю данные, нажимаю Ок. И вот при закрытии формы я хочу получить результат и обработать его ( присвоить своему реквизиту данные).
32. user1826630 27.03.23 17:46 Сейчас в теме
(31) Версию БСП подскажешь?
34. Az18011993 27.03.23 18:12 Сейчас в теме
Всем спс, разобрался. Сделал через Оповещение и обработал РезультатЗакрытия.

&НаКлиенте
Процедура неоАдресПодачиНачалоВыбора(Элемент, ДанныеВыбора, СтандартнаяОбработка = Ложь)   
	
	ПараметрыФормы = Новый Структура;
	ПараметрыФормы.Вставить("ОткрытаПоСценарию", Истина);  
	ОписаниеОповещения = Новый ОписаниеОповещения("ВыполнитьПослеЗакрытияФормыВводАдреса", ЭтотОбъект); 
	ОткрытьФорму("Обработка.ВводКонтактнойИнформации.Форма.ВводАдреса", ПараметрыФормы, ЭтаФорма,,,,ОписаниеОповещения);
	
КонецПроцедуры 

&НаКлиенте
Процедура ВыполнитьПослеЗакрытияФормыВводАдреса(РезультатЗакрытия, ПараметрыОповещения) Экспорт
	
	Если РезультатЗакрытия = Неопределено Тогда
		Возврат;
	КонецЕсли;
	
	Объект.неоАдресПодачи = РезультатЗакрытия.Представление;
	
КонецПроцедуры

Показать


Может для начинающих будет со временем полезно)))
35. Az18011993 27.03.23 22:45 Сейчас в теме
Но теперь столкнулся с интересной проблемой, а вот как заполнить ее данные при открытии, там обработка. Я понимаю что нужно через параметры)))
36. Az18011993 27.03.23 23:32 Сейчас в теме
(32) Решил через
Возврат 
	УправлениеКонтактнойИнформациейСлужебный.
	КонтактнаяИнформацияXDTOПоПредставлению(Адрес,Перечисления.ТипыКонтактнойИнформации.Адрес)
	.Представление;

может тоже будет полезно для будущего поколения)))
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот