Как привязать реквизит формы к кнопке?

Версия для печатиPDF-версия
Если на форме имеется поле с реквизитом формы у которого ТипЗначения ДокументСсылка.РеализацияТоваровУслуг, то легко включить у поля кнопку выбора, по средствам которой можно выбирать из формы выбора нужный документ, который отразится в поле, а реквизиты полученного документа в процедуре ПриИзменении присвоить значения реквизитов другим полям или строкам таблицы.
 
Если при этом, нет необходимости в самом поле, кнопкой которого выбирается документ, то как это сделать кнопкой?
 
Пробую так:


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

// Тут что-то нужно придумать! тут – тупик!???

	ОбъектПункт = ДокументОбъектПункт.ПолучитьОбъект();	
	НоваяСтрока = ТаблицаПунктов.Добавить();
	
	НоваяСтрока.НомерДок = ОбъектПункт.Номер; 
	НоваяСтрока.АдресДок = ОбъектПункт.АдресДоставки; 
	НоваяСтрока.КонтрагентДок = ОбъектПункт.Контрагент;

КонецПроцедуры

 

 
После открытия формы, процедура тупо выполняет последующие команды…
А если в форме выбора выбрать документ, то он никуда не передается…
 
Вопрос:
Как можно кнопкой выбрать их ФормыВыбора нужный документ и передать его реквизиту формы, у которого ТипЗначения ДокументСсылка.* ?
 

Нужно использование конкретной формы выбора документа или это некритично?

ПС. Зачем получать объект документа? Значения всех его реквизитов можно получить из ссылки. А так Вы только замедляете работу системы и создаёте лишние обращения к БД.

В обычном приложении для выбора документа достаточно открыть форму выбора в модальном режиме:

	ВыбранныйДокумент = ФормаВыбора.ОткрытьМодально();
Форма выбора имеет встроенный отбор по реквизиту (хотя можно открыть форму с отбором ) , но главное, форма выбора имеет специфическое.
 
Нашел решение:

Процедура Кнопка3Нажатие(Элемент)

	
  ФормаВыбора = Документы.РеализацияТоваровУслуг.ПолучитьФормуВыбора("ФормаВыбора_Anytos_Логистика_Курьер",Элемент); 
  ФормаВыбора.РежимВыбора=Истина;
  
	//ВыбранныйДокумент = ФормаВыбора.Открыть();

ВыбранныйДокумент = ФормаВыбора.ОткрытьМодально();


Если ВыбранныйДокумент = Неопределено Тогда //Документ не выбрали
		Возврат;
	Иначе
		
	ОбъектПункт = ВыбранныйДокумент.ПолучитьОбъект();
	
	НоваяСтрока = ТаблицаПунктов.Добавить();
	НоваяСтрока.НомерДок = ОбъектПункт.Номер; 
	НоваяСтрока.АдресДок = ОбъектПункт.АдресДоставки; 
	НоваяСтрока.КонтрагентДок = ОбъектПункт.Контрагент;
	
	КонецЕсли;
	
КонецПроцедуры
Все заработало.
Насчет Ссылки, в данном случае, на стадии разработки, не принципиально.
В данной форме в таблицу значений будут вноситься данные из различных документов, из Реализации и заказов поставщику, после чего будут формироваться маршрутный лист, с прокладной маршрута на карте яндекс…
В процессе обкатки, посмотрю, какой метод будет шустрее.
 
Только у меня дополнительный вопрос:
Визуально я не увидел разницы между:
 
ВыбранныйДокумент = ФормаВыбора.Открыть();
и
ВыбранныйДокумент = ФормаВыбора.ОткрытьМодально();
 
Какой метод в данном случае лучше выбрать и почему?

 

Метод Открыть() не возвращает никакого значения, а ОткрытьМодально() возвращает выбранное значение.

Аха.

Понял.

Спасибо огромное.