На форме ТЗ, суть такая же как в типовом конструкторе запросов. Первая колонка - строка, вторая - любая ссылка, примитивные типы и список значений. При начале выбора пишу след код:
ТекстЗапроса = СохраненныйЗапрос;
Запрос = Новый Запрос(ТекстЗапроса);
Запрос.МенеджерВременныхТаблиц = Новый МенеджерВременныхТаблиц;
Попытка
ПараметрыЗапроса = Запрос.НайтиПараметры();
Исключение
Возврат;
КонецПопытки;
Для каждого ПараметрЗапроса Из ПараметрыЗапроса Цикл
ИмяПараметра = ПараметрЗапроса.Имя;
Если ЭлементыФормы.ТабПараметров.ТекущиеДанные.НаименованиеПараметра <> ИмяПараметра Тогда
продолжить;
КонецЕсли;
Если ТипЗнч(Элемент.Значение) = неопределено Тогда
возврат;
КонецЕсли;
Тип = "";
Есть = Ложь;
Для каждого ТекТип Из ПараметрыЗапроса[ИмяПараметра].ТипЗначения.Типы() Цикл
Если ТекТип = Тип("ДАТА")
ИЛИ ТекТип = Тип("Число")
ИЛИ ТекТип = Тип("Строка")
ИЛИ ТекТип = Тип("Булево")
Тогда
Есть = Истина;
КонецЕсли;
КонецЦикла;
Если Не Есть Тогда
Тип = "СписокЗначений";
КонецЕсли;
ТипСтр = Новый ОписаниеТипов(ПараметрыЗапроса[ИмяПараметра].ТипЗначения);
Элемент.ОграничениеТипа = Новый ОписаниеТипов(ТипСтр,Тип);
Значение = Элемент.Значение;
Элемент.Значение = Элемент.ОграничениеТипа.ПривестиЗначение(Значение);
Элемент.ВыбиратьТип = Истина;
КонецЦикла;
После сей нехитрой конструкции при выборе типа остается только список значений и тип параметра. Только вот незадача - при выборе списка значений ничего не меняется. Можно опять выбирать тип - СЗ или конкретный тип. Вроде консольку всю облазил - видимых отличий нет. Что сделать чтоб при выборе типа списка значений далее открывался сам список и там уже можно было забивать элементы?