Добавляет в построитель отбор по переданным параметрам
Источник: https://t.me/JuniorOneS
// Добавляет в построитель отбор по переданным параметрам
//
// Параметры:
// Построитель - ПостроительЗапроса, ПостроительОтчета - Построитель, в которой необходимо добавить элемент отбора
// ПолеОтбора - Строка - Имя поля отбора
// ЗначениеОтбора - Произвольный - значение отбора
// ВидСравненияСтр - Строка, Неопределено - Вид сравнения отбор в виде строки
// Если Неопределено, то для списков будет ВСписке, а для остальных Равно
// Использование - Булево - включено ли использование отбора
//
// Возвращаемое значение:
// ЭлементОтбора - добавленный элемент отбора
//
Функция ДобавитьОтборПостроителя(Построитель, ПолеОтбора, ЗначениеОтбора,
ВидСравненияСтр = Неопределено, Использование = Истина) Экспорт
ЭлементОтбора = Построитель.Отбор.Добавить(ПолеОтбора);
ЭлементОтбора.Использование = Использование;
ТипЗначенияОтбора = ТипЗнч(ЗначениеОтбора);
ФиксированныйМассив = ТипЗначенияОтбора = Тип("ФиксированныйМассив");
ЗначениеМассивом = ФиксированныйМассив ИЛИ ТипЗначенияОтбора = Тип("Массив");
Если ЗначениеМассивом И ЗначениеОтбора.Количество() = 1 Тогда
УстанавливаемоеЗначениеОтбора = ЗначениеОтбора.Получить(0);
ЗначениеМассивом = Ложь;
ИначеЕсли ФиксированныйМассив Тогда
УстанавливаемоеЗначениеОтбора = Новый Массив(ЗначениеОтбора);
Иначе
УстанавливаемоеЗначениеОтбора = ЗначениеОтбора;
КонецЕсли;
ВидСравненияОтбора = ?(ВидСравненияСтр = Неопределено,
?(ЗначениеМассивом, "ВСписке", "Равно"), ВидСравненияСтр);
ЭлементОтбора.ВидСравнения = ВидСравнения[ВидСравненияОтбора];
Если ЗначениеМассивом Тогда
ЗначениеСписком = Новый СписокЗначений;
ЗначениеСписком.ЗагрузитьЗначения(УстанавливаемоеЗначениеОтбора);
ЭлементОтбора.Значение = ЗначениеСписком;
Иначе
ЭлементОтбора.Значение = ЭлементОтбора.ТипЗначения.ПривестиЗначение(УстанавливаемоеЗначениеОтбора);
КонецЕсли;
Возврат ЭлементОтбора;
КонецФункции
СоздатьГруппуЭлементовОтбора (БСП)
Добавить отбор в списке, в пользовательских настройках
УстановитьЭлементОтбораДинамическогоСписка (БСП)