Как в табличное поле добавить строку из справочника?

Версия для печатиPDF-версия

1С 8.2 УТ 10.3 Создал в форме Справочника Контрагента табличное поле, по абсолютной аналогии с ВидыДеятельности, с соответствующем набором реквизитов, Табличной частью и реквизитами. Поэтому, чтобы не городить огород, на примере ВидыДеятельности и задам вопрос: На форме создал поле ввода: ПолеОсновнойВидДеятельности, подключил реквизит ОсновнойВидДеятельности, и включил кнопку выбора. Теперь в ПолеОсновнойВидДеятельности можно выбирать элементы из СправочникСсылка.ВидыДеятельностиКонтрагентов. При этом в Табличном поле ВидыДеятельности в имеющихся строках выбирается основной вид деятельности (подсвечивая шрифт жирным) в уже добавленных. Возникла необходимость добавлять элементы (подобно действию кнопки добавить), путем выбора значения в ПолеОсновнойВидДеятельности. Т.е. при отсутствии элемента, он автоматически добавляется в табличное поле ВидыДеятельности. Понимаю, что в процедуре Процедура ПолеОсновнойВидДеятельности ПриИзменении(Элемент) необходимо задать запрос, который сравнит содержимое и если в списке строк не найдет элемент, то его добавит. И тут у меня полный тупняк. Вот какая…. Получается:


Процедура ПолеОсновнойВидДеятельностиПриИзменении(Элемент)
	   
	Запрос = Новый Запрос;
	Запрос.Текст = 
		"ВЫБРАТЬ
		|	КонтрагентыВидыДеятельности.ВидДеятельности
		|ИЗ
		|	Справочник.Контрагенты.ВидыДеятельности КАК КонтрагентыВидыДеятельности
		|ГДЕ
		|	КонтрагентыВидыДеятельности.ВидДеятельности = &ВидДеятельности";
	
	Запрос.УстановитьПараметр("ВидДеятельности",  ОсновнойВидДеятельности);
	
	РезультатЗапроса = Запрос.Выполнить();
		
			Если РезультатЗапроса.Пустой() Тогда 
			Предупреждение(" не найден!!!!");
	   
		Иначе  Предупреждение("ОК!");
		
		ЭлементыФормы.ВидыДеятельности.ДобавитьСтроку(); // Сломал голову, как добавить в строчку элемент
	 	  		
		КонецЕсли;
       	     	
КонецПроцедуры

Пожалуйста, подскажите как правильно написать запрос, чтобы при отсутствии указанного в ПолеОсновнойВидДеятельности автоматическое добавление элемента. И объясните, пожалуйста, как правильно написать, чтобы добавлялась не только новая строка, но и автоматически вставлялся элемент из справочника ВидыДеятельностиКонтрагентов

Кажется, вы усложняете задачу. Запрос тут вообще не нужен. Особенно, если учесть, что пользователь может несколько раз поменять основной вид деятельности не записывая контрагента.

Достаточно просто проверить наличие выбранного значения в табличной части ВидыДеятельности:

Процедура ОсновнойВидДеятельностиПриИзменении(Элемент)
	Если ВидыДеятельности.Найти(ОсновнойВидДеятельности, "ВидДеятельности") = Неопределено Тогда 
		НоваяСтрока = ВидыДеятельности.Добавить();
		НоваяСтрока.ВидДеятельности = ОсновнойВидДеятельности;
	КонецЕсли;
КонецПроцедуры

Реализовал.

Все замечательно заработало.