Проверить условия фильтра. Проверяет значения свойств объекта на соответствие условиям, указанным в фильтре.
// Проверяет значения свойств объекта на соответствие условиям, указанным в фильтре.
//
// Параметры:
// ПроверяемыйОбъект - Структура:
// * Ключ - Имя свойства,значение которого сравнивается с фильтром,
// * Значение - Значение свойства, которое сравнивается с фильтром,
// Фильтр - Массив - массив структур, описывающих условия фильтрации. Поля структур, входящих в массив:
// * Свойство - Строка - имя свойства, по которому осуществляется фильтрация,
// * ВидСравнения - ВидСравнения - значение системного перечисления ВидСравнения,
// * Значение - Число, Строка, Дата, Булево, СписокЗначений, Массив, Структура - значение, с которым
// сравнивается значение соответствующего свойства.
// - Структура - структура: ключ - Имя свойства, значение - значение.
// При использовании данного варианта описания фильтра сравнение всегда выполняется на равенство.
//
// Возвращаемое значение:
// Булево - Истина если значения свойств объекта удовлетворяют условиям, указанным в фильтре,
// Ложь - если не удовлетворяют.
//
Функция ПроверитьУсловияФильтра(Знач ПроверяемыйОбъект, Знач Фильтр = Неопределено) Экспорт
Если Фильтр = Неопределено Или Фильтр.Количество() = 0 Тогда
Возврат Истина;
КонецЕсли;
ВыполненоУсловий = 0;
Для Каждого Условие Из Фильтр Цикл
Если ТипЗнч(Условие) = Тип("Структура") Тогда
Поле = Условие.Свойство;
ТребуемоеЗначение = Условие.Значение;
ВидСравненияЗначений = Условие.ВидСравнения;
ИначеЕсли ТипЗнч(Условие) = Тип("КлючИЗначение") Тогда
Поле = Условие.Ключ;
ТребуемоеЗначение = Условие.Значение;
ВидСравненияЗначений = ВидСравнения.Равно;
Иначе
ВызватьИсключение НСтр("ru = 'Некорректно задан фильтр.'");
КонецЕсли;
ПроверяемоеЗначение = ПроверяемыйОбъект[Поле];
УсловиеВыполнено = ПроверитьУсловиеФильтра(ПроверяемоеЗначение, ВидСравненияЗначений, ТребуемоеЗначение);
Если УсловиеВыполнено Тогда
ВыполненоУсловий = ВыполненоУсловий + 1;
Иначе
Прервать;
КонецЕсли;
КонецЦикла;
Возврат ВыполненоУсловий = Фильтр.Количество();
КонецФункции
///////////////////////////////////////////////////////////////////////////////////////////////////////
// Copyright (c) 2019, ООО 1С-Софт
// Все права защищены. Эта программа и сопроводительные материалы предоставляются
// в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0)
// Текст лицензии доступен по ссылке:
// https://creativecommons.org/licenses/by/4.0/legalcode
///////////////////////////////////////////////////////////////////////////////////////////////////////
ПроверитьИзменениеФильтровОграниченияМиграцииДанныхПриЗаписи (БСП)
УсловиеЭлементаНастройки (БСП)
ФильтрДиалоговВыбораИСохранения (БСП)