Каталог статей
Чтобы при закрытии формы возвращалось значение, надо в параметрах метода Закрыть() указать нужное значение, например Закрыть(Объект.Ссылка);.
Если форму можно закрыть разными методами (кнопка "Выбор", "Закрыть", "Отмена" и т.д.), а возвращать какое-то значение надо всегда, тогда в процедуру формы ПриЗакрытии() надо добавит метод ОповеститьОВыборе(<значение>), например ОповеститьОВыборе(Объект.Ссылка);
Ещё пишут, что на форме родителя надо описать событие «ОбработкаВыбора» и указать в нем получение параметра по ключу из структуры. У меня работает и без этого, возможно потому что указан владелец формы в методе ОткрытьФорму().
Пример вызова на родительской форме:
&НаКлиенте
Процедура СоздатьЗаявку(Команда)
ПараметрыЗаявки = СформироватьПараметры();
ОписаниеЗаявка = Новый ОписаниеОповещения("ВыполнитьПослеЗаписиЗаявки", ЭтаФорма);
ОткрытьФорму("Документ.ЗаявкаНаВыполнениеРабот.Форма.ФормаМастераВводаЗаявки",ПараметрыЗаявки,ЭтаФОрма. ОписаниеЗаявка); // указан владелец вызываемой формы
КонецПроцедуры
&НаСервере
Функция СформироватьПараметры()
Перем Результат;
Результат = Новый Структура();
.
Возврат Результат;
КонецФункции
&НаСервере
Процедура ВыполнитьПослеЗаписиЗаявки(РезультатЗакрытия, ДопПараметры) Экспорт
Если РезультатЗакрытия = Неопределено Тогда
Возврат;
КонецЕсли;
В форме документа заявка пишем:
&НаКлиенте
Процедура ПриЗакрытии(ЗавершениеРаботы)
ОповеститьОВыборе(Заявка.Ссылка);
КонецПроцедуры
v8: как вернуть значение из формыВыбора
при нажати на кнопкуВыбора реквизита ТЧ открывается моя форма,в которой надо выбрать значение, но ситуация поставила в тупик. ак записать это значение в реквизит ТЧ.
при нажатии на кнопку выбора
Процедура МатериалыпартииНачалоВыбора(Элемент, СтандартнаяОбработка)
СтандартнаяОбработка = ЛОЖЬ;
//Берем текущую строку и из нее номенклатуру
Список = Новый СписокЗначений;
Запрос = Новый Запрос;
Запрос.Текст ;
Запрос.УстановитьПараметр(«НаДату», Дата);
Запрос.УстановитьПараметр(«Номенклатура», СтрокаТЧ.Номенклатура);
Выборка = Запрос.Выполнить() ;
// Получаем форму в документе поступление товаров и услуг и в нее выгружаем данные из регистра, отбор по номенклатуре
ФормаВыбора = Документы.ТребованиеНакладная.ПолучитьФормуВыбора(«форма»);
ФормаВыбора.ТабличноеПоле1 = Выборка.Выгрузить();
ФормаВыбора.ЭлементыФормы.ТабличноеПоле1.СоздатьКолонки();
а потом в форме которая открывается —
Процедура ТабличноеПоле1Выбор(Элемент, ВыбраннаяСтрока, Колонка, СтандартнаяОбработка)
// В переменную или куда?)заносим интересующий нас документ
Программирование в 1С:Предприятие
Открытие формы модально — форма появляется на экране и блокирует другие окна, пока не будет закрыта.
Возникает проблема возврата результата, если форма не «для выбора»
В описании функции ОткрытьМодально() написано:
Форма.ОткрытьМодально (Form.DoModal)
ОткрытьМодально(<Таймаут>)
Параметры: <Таймаут> (необязательный)
Тип: Число . Время показа формы в секундах, по истечении которого форма будет закрыта с параметром закрытия Неопределено . Если значение параметра не задано, время показа не ограничено.
Значение по умолчанию: 0
Возвращаемое значение:
Тип: Произвольный. Команда закрытия формы.
Если форма открывалась для выбора, возвращает выбранное значение (или массив значений, в случае разрешенного множественного выделения в открываемой форме). Если значение не выбрано, возвращается Неопределено .
Описание:
Открывает форму в модальном режиме.
Я специально выделил фразу цветом. Получается: если форма определена «для выбора» — то она возвращает выбранные значения
В любых других случаях будет возвращаться — Неопределено.
Что же делать, когда у нас «обычная» форма (т. е. форма не определена как «для выбора») и мы хотим вернуть результат из формы после закрытия ?
В этом случае есть несколько решений:
1. Получив доступ к форме, мы можем вызывать различные функции и получать переменные. Естественно нужно, чтобы эти функции имели статус Экспорт
Передать значение из одной формы в другую в 1С:Предприятии
При закрытии формы может потребоваться вернуть из нее некоторые значения. Например, при нажатии на кнопку основной формы, открывается другая произвольная форма. После выполнения необходимых действий дополнительная форма закрывается, а в основную передается значение.
Открытие формы
Необходимо модально открыть произвольную форму с помощью функции ОткрытьФормуМодально().
Закрытие формы с возвратом значения
У открытой формы необходимо вызвать встроенный метод Закрыть(), который на вход принимает возвращаемое значение. Тип возвращаемого значения произвольный. В данном примере возвращается структура.
Комментарии (0)
Для того чтобы добавить сообщение, необходимо Войти или Зарегистрироваться