ДобавитьУсловиеФильтра (БСП)

Автор: 1С
ОбщийМодуль.АдминистрированиеКластераКлиентСервер
БСП

Добавить условие фильтра. Добавляет к фильтру новое условие.

// Добавляет к фильтру новое условие.
//
// Параметры:
//  Фильтр - Массив - массив структур, описывающих условия фильтрации. Поля структур, входящих в массив:
//             * Свойство - Строка - имя свойства, по которому осуществляется фильтрация,
//             * ВидСравнения - ВидСравнения - значение системного перечисления ВидСравнения,
//             * Значение - Число, Строка, Дата, Булево, СписокЗначений, Массив, Структура - значение, с которым
//               сравнивается значение соответствующего свойства.
//         - Структура - структура: ключ - Имя свойства, значение - значение.
//           При использовании данного варианта описания фильтра сравнение всегда выполняется на равенство.
//  Свойство -  - Строка - имя свойства, по которому осуществляется фильтрация,
//  ВидСравнения - ВидСравнения - значение системного перечисления ВидСравнения,
//  Значение - Число, Строка, Дата, Булево, СписокЗначений, Массив, Структура - значение, с которым
//    сравнивается значение соответствующего свойства.
//
Процедура ДобавитьУсловиеФильтра(Фильтр, Знач Свойство, Знач ВидСравненияЗначений, Знач Значение) Экспорт
	
	Если Фильтр = Неопределено Тогда
		
		Если ВидСравненияЗначений = ВидСравнения.Равно Тогда
			
			Фильтр = Новый Структура;
			Фильтр.Вставить(Свойство, Значение);
			
		Иначе
			
			Фильтр = Новый Массив;
			ДобавитьУсловиеФильтра(Фильтр, Свойство, ВидСравненияЗначений, Значение);
			
		КонецЕсли;
		
	ИначеЕсли ТипЗнч(Фильтр) = Тип("Структура") Тогда
		
		НовыйФильтр = Новый Массив;
		
		Для каждого КлючИЗначение Из Фильтр Цикл
			
			ДобавитьУсловиеФильтра(НовыйФильтр, КлючИЗначение.Ключ, ВидСравнения.Равно, КлючИЗначение.Значение);
			
		КонецЦикла;
		
		ДобавитьУсловиеФильтра(НовыйФильтр, Свойство, ВидСравненияЗначений, Значение);
		
		Фильтр = НовыйФильтр;
		
	ИначеЕсли ТипЗнч(Фильтр) = Тип("Массив") Тогда
		
		Фильтр.Добавить(Новый Структура("Свойство, ВидСравнения, Значение", Свойство, ВидСравненияЗначений, Значение));
		
	Иначе
		
		ВызватьИсключение НСтр("ru = 'Некорректно задано описание фильтра.'");
		
	КонецЕсли;
	
КонецПроцедуры

///////////////////////////////////////////////////////////////////////////////////////////////////////
// Copyright (c) 2019, ООО 1С-Софт
// Все права защищены. Эта программа и сопроводительные материалы предоставляются 
// в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0)
// Текст лицензии доступен по ссылке:
// https://creativecommons.org/licenses/by/4.0/legalcode
///////////////////////////////////////////////////////////////////////////////////////////////////////

Рекомендации

Похожие публикации

ДобавитьУсловиеФильтра (БСП)

ПроверитьУсловияФильтра (БСП)

ДобавитьУсловиеВидимостиКоманды (БСП)

ДобавитьОбъектВФильтрРазрешенныхОбъектов (БСП)

Отправка сообщения в чат-бот телеграм

Ввод по строке вхождением с доп параметрами и подсветкой вхождения

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

TurboConf - расширение Конфигуратора 1С