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