Коммерческое предложение клиенту / Множественный отбор списка / Модуль формы

файл

#Область ОбработчикиСобытийФормы

&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)

	Если ПустаяСтрока(Заголовок) Тогда
		Заголовок = НСтр("ru = 'Выбранные значения'");
	Иначе
		Заголовок = Параметры.Заголовок;
	КонецЕсли;
	
	Если ТипЗнч(Параметры.ТипПеречисления) <> Тип("Тип") Тогда
		Отказ = Истина;
		Возврат;
	КонецЕсли;
	
	МетаданныеПеречисления = Метаданные.НайтиПоТипу(Параметры.ТипПеречисления);
	
	Если Метаданные.НайтиПоТипу(Параметры.ТипПеречисления) = Неопределено Тогда
		Отказ = Истина;
		Возврат;
	КонецЕсли;
	
	Для Каждого ЗначениеПеречисления Из МетаданныеПеречисления.ЗначенияПеречисления Цикл
		
		ЭлементСписка = Список.Добавить();
		
		ЭлементСписка.Значение      = Перечисления[МетаданныеПеречисления.Имя][ЗначениеПеречисления.Имя];
		ЭлементСписка.Представление = ЗначениеПеречисления.Синоним;
		
		Если Параметры.СписокОтбор.НайтиПоЗначению(ЭлементСписка.Значение) <> Неопределено Тогда
			
			ЭлементСписка.Пометка = Истина;
			
		КонецЕсли;
		
	КонецЦикла;
	
КонецПроцедуры

#КонецОбласти

#Область ОбработчикиКомандФормы

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

#КонецОбласти

Связанные материалы