Получить данные из реквизитов другой открытой формы.
Добрый день, уважаемые форумчане!
Знаю тема наверное в 1С уже заезжанная, но спрошу. У меня есть на форме документа реквизит, который мне нужно заполнить адресом, то есть строкой), при событии выбора я открываю форму ввода адреса через ОткрытьФорму(ИмяФормы,ОткрытьФорму("Обработка.ВводКонтактнойИнформации.Форма.ВводАдреса", ПараметрыФормы, ЭтаФорма,,,, ). Там я заполняю данные адреса, но вот хотел бы узнать как их вернуть обратно на мою форму. Через метод ПолучитьФорму()? У меня формы УФ.
Простой код события:
Делал как тест для передачи своих данных. В какую сторону копать? Заранее спасибо.
Знаю тема наверное в 1С уже заезжанная, но спрошу. У меня есть на форме документа реквизит, который мне нужно заполнить адресом, то есть строкой), при событии выбора я открываю форму ввода адреса через ОткрытьФорму(ИмяФормы,ОткрытьФорму("Обработка.ВводКонтактнойИнформации.Форма.ВводАдреса", ПараметрыФормы, ЭтаФорма,,,, ). Там я заполняю данные адреса, но вот хотел бы узнать как их вернуть обратно на мою форму. Через метод ПолучитьФорму()? У меня формы УФ.
Простой код события:
&НаКлиенте
Процедура неоАдресПодачиНачалоВыбора(Элемент, ДанныеВыбора, СтандартнаяОбработка = Ложь)
ПараметрыФормы = Новый Структура;
ПараметрыФормы.Вставить("ОткрытаПоСценарию", Истина);
ОткрытьФорму("Обработка.ВводКонтактнойИнформации.Форма.ВводАдреса", ПараметрыФормы, ЭтаФорма,,,, );
КонецПроцедуры
ПоказатьДелал как тест для передачи своих данных. В какую сторону копать? Заранее спасибо.
По теме из базы знаний
Ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
(1) 2 простых навскидку
1. в в клиентской процедуре модуля формы
2. В основной форме перед открытием
В форме выбора
1. в в клиентской процедуре модуля формы
Обработка.ВводКонтактнойИнформации.Форма.ВводАдреса
ВладелецФормы.НужныйРеквизит= ЧтоТоИзФормыВыбора;
Закрыть();
2. В основной форме перед открытием
ПараметрыФормы = Новый Структура;
ПараметрыФормы.Вставить("ОткрытаПоСценарию", Истина);
Оповещение=Новый ОписаниеОповещения("ВводАдресаЗавершение",ЭтаФорма);
ОткрытьФорму("Обработка.ВводКонтактнойИнформации.Форма.ВводАдреса", ПараметрыФормы, ЭтаФорма,,,, );
&НаКлиенте
Процедура ВводАдресаЗавершение(Результат,ДопПараметры) ЭКСПОРТ
Если Результат<>Неопределено Тогда
НужныйРеквизит=Результат;
КонецЕсли;
КонецПроцедуры
ПоказатьВ форме выбора
Закрыть(ЧтоТоИзФормыВыбора);
(1)
Начать можно сhttps://its.1c.ru/db/bsp317doc#content:4:1:issogl4_%D0%B4%D0%BE%D0%B1%D0%B0%D0%B2%D0%BB%D0%B5%D0%BD%D0% B8%D0%B5_%D0%BF%D1%80%D0%BE%D0%B8%D0%B7%D0%B2%D0%BE%D0%BB%D1 %8C%D0%BD%D1%8B%D1%85_%D1%80%D0%B5%D0%BA%D0%B2%D0%B8%D0%B7%D 0%B8%D1%82%D0%BE%D0%B2_%D1%81_%D0%BA%D0%BE%D0%BD%D1%82%D0%B0 %D0%BA%D1%82%D0%BD%D0%BE%D0%B9_%D0%B8%D0%BD%D1%84%D0%BE%D1%8 0%D0%BC%D0%B0%D1%86%D0%B8%D0%B5%D0%B9
В какую сторону копать?
В сторону документации по БСП.
Начать можно с
(1) ОткрытьФорму(<ИмяФормы>, <Параметры>, <Владелец>, <Уникальность>, <Окно>, <НавигационнаяСсылка>, <ОписаниеОповещенияОЗакрытии>, <РежимОткрытияОкна>)
Тебе нужен заполнить ОписаниеОповещенияОЗакрытии, и процедуре опевешения можно получить то, что будете указывать в "ПараметрЗакрытия", при закрытии формы:
Закрыть(<ПараметрЗакрытия>)
Тебе нужен заполнить ОписаниеОповещенияОЗакрытии, и процедуре опевешения можно получить то, что будете указывать в "ПараметрЗакрытия", при закрытии формы:
Закрыть(<ПараметрЗакрытия>)
(10) нет конечно, типовые лучше не изменять.
в форме документа , (если еще нету то создать) обработчик события выбора, примрено так
в форме документа , (если еще нету то создать) обработчик события выбора, примрено так
&НаКлиенте
Процедура ОбработкаВыбора(ВыбранноеЗначение, ИсточникВыбора)
РеквизитСАдресом = ВыбранноеЗначение.ДанныеВыбора.Представление;//может в попытке?
КонецПроцедуры
(21) /Да, точно! просто возьмите нужное свойство из структуры и присвойте своему реквизиту с адресом!
(в обработчике Выбора)
только как правильно посоветовали, пару проверок добавьте!
так как в одну форму документа могут приходить оповещения от разных форм выбора, а они соответсовенно разные данные передают!
(в обработчике Выбора)
только как правильно посоветовали, пару проверок добавьте!
так как в одну форму документа могут приходить оповещения от разных форм выбора, а они соответсовенно разные данные передают!
(31) Да об этом и шла. У меня на форме есть реквизит Адрес, в событии выбора я вызываю открытие формы обработки типовой адрес контактной информации. И там я заполняю данные, нажимаю Ок. И вот при закрытии формы я хочу получить результат и обработать его ( присвоить своему реквизиту данные).
Всем спс, разобрался. Сделал через Оповещение и обработал РезультатЗакрытия.
Может для начинающих будет со временем полезно)))
&НаКлиенте
Процедура неоАдресПодачиНачалоВыбора(Элемент, ДанныеВыбора, СтандартнаяОбработка = Ложь)
ПараметрыФормы = Новый Структура;
ПараметрыФормы.Вставить("ОткрытаПоСценарию", Истина);
ОписаниеОповещения = Новый ОписаниеОповещения("ВыполнитьПослеЗакрытияФормыВводАдреса", ЭтотОбъект);
ОткрытьФорму("Обработка.ВводКонтактнойИнформации.Форма.ВводАдреса", ПараметрыФормы, ЭтаФорма,,,,ОписаниеОповещения);
КонецПроцедуры
&НаКлиенте
Процедура ВыполнитьПослеЗакрытияФормыВводАдреса(РезультатЗакрытия, ПараметрыОповещения) Экспорт
Если РезультатЗакрытия = Неопределено Тогда
Возврат;
КонецЕсли;
Объект.неоАдресПодачи = РезультатЗакрытия.Представление;
КонецПроцедуры
ПоказатьМожет для начинающих будет со временем полезно)))
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот