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

1. olo_lo4 24.11.15 17:12 Сейчас в теме
Знаю вопрос очень простой, но что то зарапартовался

На форме есть текстовое поле, к нему прикреплена кнопка выбора
По кнопке выбора открываю форму выбора Контрагента.
Нужно что бы возвращался контрагент, но без дописок на стороне формы выбора контрагента, типо оповеститьовыборе.
Как реализовать ?
По теме из базы знаний
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. Boneman 302 24.11.15 17:22 Сейчас в теме
(1) olo_lo4, сделайте не текстовое, а ссылочное поле, типа справочника контрагенты, с кнопокй выбора.
Вообще ничего дописывать не надо нигде.
А если нужен текст, - то возьмете наименование
3. Xershi 1534 24.11.15 17:22 Сейчас в теме
(1) olo_lo4, куда вернуть в реквизит? Так и так он туда попадет. Только тип реквизита не текст должен быть, а контрагент. Иначе дописка, вы же и так прикрутили кнопку кодом!
4. PetroP 24.11.15 17:22 Сейчас в теме
Открывать форму для выбора, указать владельца. Обрабатывать в обработчике события владельца "ОбработкаВыбора".
5. olo_lo4 24.11.15 17:23 Сейчас в теме
Пишу

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


Нич не возвращает.

Нужно просто именно полное наименование вытаскивать
6. Boneman 302 24.11.15 17:34 Сейчас в теме
(5) olo_lo4, ну форму открыли и дальше что..
оповещение городите, и параметрами получайте результат, и делайте с ним все что надо
7. olo_lo4 24.11.15 17:40 Сейчас в теме
(6) в том то и дело что не хочу в форме выбора оповещение городить.. можно как то обойтись или нет ?
8. ronhard 24.11.15 17:41 Сейчас в теме
(5) olo_lo4,
Так работает, проверял, нужный реквизит также по аналогии:
&НаКлиенте
Процедура Реквизит1ОбработкаВыбора(Элемент, ВыбранноеЗначение, СтандартнаяОбработка)
	// Вставить содержимое обработчика.
	Реквизит1 = ПолучитьНаименование(ВыбранноеЗначение);
КонецПроцедуры

// <Описание функции>
//
// Параметры:
//  <Параметр1>  - <Тип.Вид> - <описание параметра>
//                 <продолжение описания параметра>
//  <Параметр2>  - <Тип.Вид> - <описание параметра>
//                 <продолжение описания параметра>
//
// Возвращаемое значение:
//   <Тип.Вид>   - <описание возвращаемого значения>
//
&НаСервереБезКонтекста
Функция ПолучитьНаименование(Контрагент)

	Возврат Контрагент.Наименование;

КонецФункции // ПолучитьНаименование()


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


Весь код естественно только в обработке.
9. olo_lo4 24.11.15 17:54 Сейчас в теме
Да у меня тоже самое написано, но не возвращает.
Наверное у вас в форме выбора что то указывается

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

&НаКлиенте
Процедура НаименованиеКонтрагентаОбработкаВыбора(Элемент, ВыбранноеЗначение, СтандартнаяОбработка)
	й=1; = ставлю точку останова, ничего не срабатывает
КонецПроцедуры
Показать
10. ronhard 24.11.15 17:57 Сейчас в теме
(9) olo_lo4, Обратите внимание, что в Вашем коде передаются параметры "П", а у меня нет, зато указан владелец "Элементы.Реквизит1". И обработчик выбора "Реквизит1ОбработкаВыбора" тоже есть если что, может дело в этом проверьте. Параметры конкретно в данном случае могут быть и не обязательны.
ЗЫ: Только заметил: Вы владельца не указали.
11. olo_lo4 24.11.15 18:13 Сейчас в теме
(10) Клаааасс!!! спасибо огромное, то что нужно
Borunmeert; hcooh; +2 Ответить
12. ronhard 24.11.15 20:27 Сейчас в теме
(11) olo_lo4, Всегда пожалуйста. Кстати логика работы события оповещения о выборе на мой взгляд больше относится к обычным формам. В управляемых многое через "ОткрытьФорму" сделать можно.
13. olo_lo4 24.11.15 23:50 Сейчас в теме
(12) решил несколько докрутить задачку - а если справочник контрагентов иерархический, то как можно открыть именно нужную папку, получается нужно передать еще какой-то параметр
14. ronhard 25.11.15 00:33 Сейчас в теме
(13) Ну да без параметров тут уже не обойтись. Кроме того потребуется обработка этого параметра в обработчике открытия формы.
15. ditp 94 25.11.15 08:48 Сейчас в теме
(13) olo_lo4, см. ВвестиЗначение / ПоказатьВводЗначения

В качестве начального значения указать некий элемент из нужной группы справочника.
16. lev6975 10.12.19 14:20 Сейчас в теме
&НаКлиенте
Процедура Реквизит1НачалоВыбора(Элемент, ДанныеВыбора, СтандартнаяОбработка)
    // Вставить содержимое обработчика.
    СтандартнаяОбработка = Ложь;
   ФормаВыбора = ПолучитьФорму("Справочник.Контрагенты.ФормаВыбора");
   ФормаВыбора.ВладелецФормы = Элемент;//Ключевой момент чтобы форма выбора возвратила выбранное значение 
... //тут условия отбора
ФормаВыбора.Открыть();
КонецПроцедуры
Показать
Ermigen; ikalmykia; sermalp; DiasA; nikidevel; +5 Ответить
17. sermalp 12.05.23 18:06 Сейчас в теме
(16)
ФормаВыбора.ВладелецФормы = Элемент;//Ключевой момент чтобы форма выбора возвратила выбранное значение
Спасибо! Очень помогло!
18. user1826630 12.05.23 18:27 Сейчас в теме
(17) Точно 12 лет на форуме?
19. sermalp 12.05.23 18:47 Сейчас в теме
20. МимохожийОднако 142 13.05.23 07:24 Сейчас в теме
(18) "Тараписса не нада" © "Кавказская пленница"))
21. ikalmykia 24.01.24 17:03 Сейчас в теме
(16) Так тоже можно попробовать, без возврата формы:
&НаКлиенте
Процедура Реквизит1НачалоВыбора(Элемент, ДанныеВыбора, СтандартнаяОбработка)
   
	СтандартнаяОбработка = Ложь;
	ПараметрыОтбора = Новый Структура; // отбор при необходимости 
	// ПараметрыОтбора.Вставить("Отбор", ...); 
	ОткрытьФорму("Справочник.Контрагенты.ФормаВыбора", ПараметрыОтбора, Элемент); 

КонецПроцедуры
Показать
Оставьте свое сообщение

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