Проверка того, что сравниваемое значение входит в список с учетом иерархии.
Полное описание, параметры и ограничения
ВидСравнения.ВСпискеПоИерархии (ComparisonType.InListByHierarchy)
ВидСравнения (ComparisonType)
ВСпискеПоИерархии (InListByHierarchy)
Доступен, начиная с версии 8.0.
Описание:
Проверка того, что сравниваемое значение входит в список с учетом иерархии.
Примечание:
Имеет смысл при сравнении для иерархических справочников, планов видов характеристик, планов счетов.
Данный вид сравненя не поддерживается в отборах динамических списков.
Для элемента отбора в качестве значения принимается список значений.
Использование в версии:
Доступен, начиная с версии 8.0.
Методическая информация
Практические примеры
Настроить отбор своего построителя: ВСпискеПоИерархии
Конкретный оператор получает подходящее поле и аргумент. Интервал, список, строковая маска, заполненность и иерархия не подменяются одним универсальным значением.
Где и как запускать
Серверная процедура своей учебной обработки. Код работает только с созданным источником / настройками; рабочие данные не изменяются.
Подготовка
Создайте собственную учебную обработку с серверной процедурой ВыполнитьПример. Код без заголовка вставьте в её тело; каждый урок запускайте отдельно.
Для обычного построителя поместите функцию ИсточникУчебногоОтбора из дополнительного блока отдельно в тот же серверный модуль. Она создаёт пять собственных строк с количеством 1–5.
Только для иерархических вариантов в собственной пустой учебной конфигурации создайте иерархический справочник УчебныеКатегорииОтбора с иерархией групп и элементов. В предопределённых данных создайте группу УчебнаяГруппа и элемент УчебнаяКнига внутри неё; имена именно такие, код строковый, наименование длиной 100.
Обновите учебную конфигурацию. Подготовленные ссылки доступны как Справочники.УчебныеКатегорииОтбора.УчебнаяГруппа и УчебнаяКнига. Группа не создаётся фиктивной строкой, иерархические отборы не применяются к обычным строкам Наименование.
Данные = Новый ТаблицаЗначений;
Данные.Колонки.Добавить("Категория", Новый ОписаниеТипов("СправочникСсылка.УчебныеКатегорииОтбора"));
СтрокаДанных = Данные.Добавить();
СтрокаДанных.Категория = Справочники.УчебныеКатегорииОтбора.УчебнаяКнига;
Описание = Новый ОписаниеИсточникаДанных(Данные);
Для Каждого Колонка Из Описание.Колонки Цикл
Колонка.Поле = Истина;
Колонка.Отбор = Истина;
КонецЦикла;
Построитель = Новый ПостроительЗапроса;
Построитель.ИсточникДанных = Описание;
Условие = Построитель.Отбор.Добавить("Категория");
Условие.ВидСравнения = ВидСравнения.ВСпискеПоИерархии;
Значения = Новый СписокЗначений;
Значения.Добавить(Справочники.УчебныеКатегорииОтбора.УчебнаяГруппа);
Условие.Значение = Значения;
Условие.Использование = Истина;
Сообщить("Настроен отбор Категория: " + Строка(Условие.ВидСравнения));
Сообщить("Это настройка; выполнение построителя или отчёта запускается отдельно");Разбор по шагам
Элемент отбора получен из коллекции собственного построителя или созданных настроек СКД, а не передан неизвестным объектом.
Поле Категория имеет подходящий тип. Для интервала используются ЗначениеС / ЗначениеПо; для списка — СписокЗначений; для заполненности правое значение не требуется.
ВидСравнения задаёт ВидСравнения.ВСпискеПоИерархии, а Использование = Истина включает условие. Пример показывает настройку, не утверждая, что отчёт уже выполнен.
Как проверить результат
Сообщение показывает конкретное поле и оператор. Значения границ интервала 2 и 4 позволяют отдельно проверить включение / исключение границ при дальнейшем выполнении.
Для Подобно маска Кн% использует %, а не символ *; для иерархии справа находится ссылка на свою группу, а не её наименование.
Ожидаемый результат
В собственном объекте создано осмысленное условие отбора с корректным типом поля и правого аргумента.
На что обратить внимание
ВидСравнения и ВидСравненияКомпоновкиДанных — разные перечисления и разные классы элементов отбора; значения одного не присваиваются вместо другого.
Интервалы не применяйте к ссылочным полям. Иерархические операторы применяются к соответствующим ссылкам, не к произвольной строке.
Настройка не является результатом фильтрации. Для применения СКД необходима подготовленная схема и обычный процесс компоновки.
Пример не запускался в вашей базе. Перед применением проверьте его в указанном учебном контексте.