Множественный выбор элементов справочника в ТЧ документа

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

Платформа:

Добрый день. Посоветуйте пожалуйста, как можно в ячейку табличной части документа добавить значения нескольких элментов справочника?

Напрямую никак.

Можно поизвращаться: либо сделать тип реквизита ТЧ ХранилищеЗначения, либо добавить дополнительную ТЧ, в которой хранить соответствие строк первой ТЧ и выбранных элементов.

Вообще, там по большому счету мне надо хранить строку, где через запятую хранятся наименования элементов справочника. Список значений на сервере я заполнил этими наименованиями. Осталось на клиенте получить эти значения, реорганизовать в строку через запятую и вернуть в элемент формы на клиенте

А зачем передавать на клиента список значений? Можно же на сервере сформировать строку и передать её на клиента.

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

 

Можно переопределить обработчик события Выбор для таблицы формы. Если текущая колонка - нужная, то открывать форму выбора нужного справочника, установив МножественныйВыбор = Истина. Затем обрабатывать выбранные значения и помещать в ячейку строку с наименованиями.



&НаСервере
Функция ЗаполнитьСписокПретензийКлейма()
	
	СписокВидовПретензий = Новый СписокЗначений;
	Выборка = Справочники.ОбоснованияПретензийКлейма.Выбрать();
	Пока Выборка.Следующий() Цикл
		СписокВидовПретензий.Добавить(Выборка.Наименование);
	КонецЦикла;
	
	Возврат СписокВидовПретензий;
	
КонецФункции

&НаКлиенте
Процедура МножественныйВыборЭлементаВТЧ(Элемент, ВыбранноеЗначение, СтандартнаяОбработка)
	
	СтандартнаяОбработка = Ложь;
	
	#Область ЗаполнениеСпискаПретензий 
	
	СписокВидовПретензий = ЗаполнитьСписокПретензийКлейма();
	
	Если СписокВидовПретензий.ОтметитьЭлементы("Претензия") Тогда
		РезСтр = "";
		Для Каждого Элемент Из СписокВидовПретензий Цикл
			Если Элемент.Пометка Тогда
				РезСтр = РезСтр + ?(ПустаяСтрока(РезСтр),"",", ") + Элемент.Значение;
			КонецЕсли;
		КонецЦикла;
		Если НЕ ПустаяСтрока(РезСтр) Тогда
			Элементы.ТЧПос.ТекущиеДанные.Претензия = РезСтр;
		КонецЕсли;
	КонецЕсли;
	
	#КонецОбласти	
	
КонецПроцедуры

Сделал так.

А к чему привязали вызов МножественныйВыборЭлементаВТЧ?

В события: НачалоВыбора