Столкнулся с необходимостью сделать запрос с выборкой данных из списка значений, однако найденный пример оказался нерабочим ни в 8.1, ни в 8.2.
Как известно, Список значений - это по сути таблица с 4мя фиксированными колонками. Почему бы просто не перегнать это в Таблицу значений?
Функция СЗ_В_ТЗ(СЗ)
тз = Новый ТаблицаЗначений;
тз.Колонки.Добавить("Значение");
тз.Колонки.Добавить("Представление", Новый ОписаниеТипов("Строка"));
тз.Колонки.Добавить("Пометка", Новый ОписаниеТипов("Булево"));
тз.Колонки.Добавить("Картинка", Новый ОписаниеТипов("Картинка"));
Для Каждого ЭлементСЗ из СЗ Цикл
ЗаполнитьЗначенияСвойств(тз.Добавить(), ЭлементСЗ)
КонецЦикла;
Возврат тз;
КонецФункции
Единственный нюанс - если в запросе нужно сделать условие, например РекизитЗапроса = ТЗ.Представление, то представление следует ограничить в длине. Здесь поможет из типовых конфигураций функция ОбщегоНазначения.ПолучитьОписаниеТиповСтроки(ДлинаСтроки), т.е. код будет
тз.Колонки.Добавить("Представление", ОбщегоНазначения.ПолучитьОписаниеТиповСтроки(50));
Ну или "ручками"
тз.Колонки.Добавить("Представление", Новый ОписаниеТипов("Строка", Новый КвалификаторыСтроки(ДлинаСтроки, ДопустимаяДлина.Переменная)));