Дал полю "ВидДоговора" тип "СписокЗначений"
Теперь выбор "В списке" сработал.
Но если выбираю значение "Равно", то выдает ошибку исполнения.
Я так понимаю, что при выборе "Равно", нужно изменить тип значений с "СписокЗначений" на Ссылку на нужный справочник справочник.
Как можно программно изменять тип значений?
Сделал такие махинации:
Процедура ВидДоговораПриИзменении(Элемент)
Если ВыборЗначения = 1 Тогда
Выборы = ВидСравненияКомпоновкиДанных.ВСписке;
ИначеЕсли ВыборЗначения = 0 Тогда
Выборы = ВидСравненияКомпоновкиДанных.Равно;
КонецЕсли;
Для каждого Эл Из КомпоновщикНастроек.Настройки.Отбор.Элементы Цикл
Если Эл.Представление = Элемент.Имя Тогда
//Эл.Использование = ЗначениеЗаполнено(ВидДоговора);
Эл.ВидСравнения = Выборы;//ВидСравненияКомпоновкиДанных.ВСписке;
Эл.ПравоеЗначение = ВидДоговора;
КонецЕсли;
КонецЦикла;
КонецПроцедуры
Процедура ВыборЗначенияПриИзменении(Элемент)
// Вставить содержимое обработчика.
Если ВыборЗначения = 1 Тогда
Выборы = ВидСравненияКомпоновкиДанных.ВСписке;
ТипК = Новый ОписаниеТипов("СписокЗначений");
ЭлементыФормы.ВидДоговора.Значение = ТипК.ПривестиЗначение(Элемент);
ИначеЕсли ВыборЗначения = 0 Тогда
Выборы = ВидСравненияКомпоновкиДанных.Равно;
ТипК = Новый ОписаниеТипов("СправочникСсылка.ВидыДоговоровПоГК");
ЭлементыФормы.ВидДоговора.Значение = ТипК.ПривестиЗначение(Элемент);
КонецЕсли;
КонецПроцедуры
Процедура ВидДоговораНачалоВыбора(Элемент, СтандартнаяОбработка)
// Вставить содержимое обработчика.
Если ВыборЗначения = 1 Тогда
ТипК = Новый ОписаниеТипов("СписокЗначений");
ЭлементыФормы.ВидДоговора.Значение = ТипК.ПривестиЗначение(Элемент);
ИначеЕсли ВыборЗначения = 0 Тогда
ТипК = Новый ОписаниеТипов("СправочникСсылка.ВидыДоговоровПоГК");
ЭлементыФормы.ВидДоговора.Значение = ТипК.ПривестиЗначение(Элемент);
КонецЕсли;
КонецПроцедуры
В результате, если выбираешь "Равно", то отчет срабатывает. Если открываешь в списке, то окно подбора по списку открывается, но пустое, т.е. без возможности выбора.
Что-то я не дотягиваю, но что?