Добавить отбор построителя

SeiOkami 395 5 8 6

Добавляет в построитель отбор по переданным параметрам

Источник: https://t.me/JuniorOneS

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

См. также

УстановитьЭлементОтбора (БСП)

СоздатьГруппуЭлементовОтбора (БСП)

Добавить отбор в списке, в пользовательских настройках

УстановитьЭлементОтбораДинамическогоСписка (БСП)

ДобавитьОтборыВСписокФайлов (БСП)

Добавить (БСП)

Модератору