Как вернуть значение из формы 1с
Перейти к содержимому

Как вернуть значение из формы 1с

  • автор:

Каталог статей

Чтобы при закрытии формы возвращалось значение, надо в параметрах метода Закрыть() указать нужное значение, например Закрыть(Объект.Ссылка);.

Если форму можно закрыть разными методами (кнопка "Выбор", "Закрыть", "Отмена" и т.д.), а возвращать какое-то значение надо всегда, тогда в процедуру формы ПриЗакрытии() надо добавит метод ОповеститьОВыборе(<значение>), например ОповеститьОВыборе(Объект.Ссылка);

Ещё пишут, что на форме родителя надо описать событие «ОбработкаВыбора» и указать в нем получение параметра по ключу из структуры. У меня работает и без этого, возможно потому что указан владелец формы в методе ОткрытьФорму().

Пример вызова на родительской форме:

&НаКлиенте
Процедура СоздатьЗаявку(Команда)
ПараметрыЗаявки = СформироватьПараметры();
ОписаниеЗаявка = Новый ОписаниеОповещения("ВыполнитьПослеЗаписиЗаявки", ЭтаФорма);
ОткрытьФорму("Документ.ЗаявкаНаВыполнениеРабот.Форма.ФормаМастераВводаЗаявки",ПараметрыЗаявки,ЭтаФОрма. ОписаниеЗаявка); // указан владелец вызываемой формы
КонецПроцедуры

&НаСервере
Функция СформироватьПараметры()
Перем Результат;
Результат = Новый Структура();
.
Возврат Результат;
КонецФункции

&НаСервере
Процедура ВыполнитьПослеЗаписиЗаявки(РезультатЗакрытия, ДопПараметры) Экспорт

Если РезультатЗакрытия = Неопределено Тогда
Возврат;
КонецЕсли;

В форме документа заявка пишем:

&НаКлиенте
Процедура ПриЗакрытии(ЗавершениеРаботы)
ОповеститьОВыборе(Заявка.Ссылка);
КонецПроцедуры

v8: как вернуть значение из формыВыбора

при нажати на кнопкуВыбора реквизита ТЧ открывается моя форма,в которой надо выбрать значение, но ситуация поставила в тупик. ак записать это значение в реквизит ТЧ.

при нажатии на кнопку выбора

Процедура МатериалыпартииНачалоВыбора(Элемент, СтандартнаяОбработка)

СтандартнаяОбработка = ЛОЖЬ;
//Берем текущую строку и из нее номенклатуру

Список = Новый СписокЗначений;

Запрос = Новый Запрос;
Запрос.Текст ;

Запрос.УстановитьПараметр(«НаДату», Дата);
Запрос.УстановитьПараметр(«Номенклатура», СтрокаТЧ.Номенклатура);

Выборка = Запрос.Выполнить() ;
// Получаем форму в документе поступление товаров и услуг и в нее выгружаем данные из регистра, отбор по номенклатуре

ФормаВыбора = Документы.ТребованиеНакладная.ПолучитьФормуВыбора(«форма»);
ФормаВыбора.ТабличноеПоле1 = Выборка.Выгрузить();
ФормаВыбора.ЭлементыФормы.ТабличноеПоле1.СоздатьКолонки();

а потом в форме которая открывается —

Процедура ТабличноеПоле1Выбор(Элемент, ВыбраннаяСтрока, Колонка, СтандартнаяОбработка)
// В переменную или куда?)заносим интересующий нас документ

Программирование в 1С:Предприятие

Открытие формы модально — форма появляется на экране и блокирует другие окна, пока не будет закрыта.

Возникает проблема возврата результата, если форма не «для выбора»

В описании функции ОткрытьМодально() написано:

Форма.ОткрытьМодально (Form.DoModal)
ОткрытьМодально(<Таймаут>)

Параметры: <Таймаут> (необязательный)
Тип: Число . Время показа формы в секундах, по истечении которого форма будет закрыта с параметром закрытия Неопределено . Если значение параметра не задано, время показа не ограничено.
Значение по умолчанию: 0
Возвращаемое значение:
Тип: Произвольный. Команда закрытия формы.
Если форма открывалась для выбора, возвращает выбранное значение (или массив значений, в случае разрешенного множественного выделения в открываемой форме). Если значение не выбрано, возвращается Неопределено .
Описание:
Открывает форму в модальном режиме.

Я специально выделил фразу цветом. Получается: если форма определена «для выбора» — то она возвращает выбранные значения
В любых других случаях будет возвращаться — Неопределено.

Что же делать, когда у нас «обычная» форма (т. е. форма не определена как «для выбора») и мы хотим вернуть результат из формы после закрытия ?

В этом случае есть несколько решений:
1. Получив доступ к форме, мы можем вызывать различные функции и получать переменные. Естественно нужно, чтобы эти функции имели статус Экспорт

Передать значение из одной формы в другую в 1С:Предприятии

При закрытии формы может потребоваться вернуть из нее некоторые значения. Например, при нажатии на кнопку основной формы, открывается другая произвольная форма. После выполнения необходимых действий дополнительная форма закрывается, а в основную передается значение.

Открытие формы

Необходимо модально открыть произвольную форму с помощью функции ОткрытьФормуМодально().

Закрытие формы с возвратом значения

У открытой формы необходимо вызвать встроенный метод Закрыть(), который на вход принимает возвращаемое значение. Тип возвращаемого значения произвольный. В данном примере возвращается структура.

Комментарии (0)

Для того чтобы добавить сообщение, необходимо Войти или Зарегистрироваться

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *