ВидСравнения.ВСпискеПоИерархии

Свойства · InListByHierarchy

Проверка того, что сравниваемое значение входит в список с учетом иерархии.

Полное описание, параметры и ограничения

ВидСравнения.ВСпискеПоИерархии (ComparisonType.InListByHierarchy)

ВидСравнения (ComparisonType)

ВСпискеПоИерархии (InListByHierarchy)

Доступен, начиная с версии 8.0.

Описание:
Проверка того, что сравниваемое значение входит в список с учетом иерархии.
Примечание:
Имеет смысл при сравнении для иерархических справочников, планов видов характеристик, планов счетов.
Данный вид сравненя не поддерживается в отборах динамических списков.
Для элемента отбора в качестве значения принимается список значений.
Использование в версии:

Доступен, начиная с версии 8.0.

Методическая информация

Практические примеры

Настроить отбор своего построителя: ВСпискеПоИерархии

Конкретный оператор получает подходящее поле и аргумент. Интервал, список, строковая маска, заполненность и иерархия не подменяются одним универсальным значением.

Где и как запускать

Серверная процедура своей учебной обработки. Код работает только с созданным источником / настройками; рабочие данные не изменяются.

Подготовка

  1. Создайте собственную учебную обработку с серверной процедурой ВыполнитьПример. Код без заголовка вставьте в её тело; каждый урок запускайте отдельно.

  2. Для обычного построителя поместите функцию ИсточникУчебногоОтбора из дополнительного блока отдельно в тот же серверный модуль. Она создаёт пять собственных строк с количеством 1–5.

  3. Только для иерархических вариантов в собственной пустой учебной конфигурации создайте иерархический справочник УчебныеКатегорииОтбора с иерархией групп и элементов. В предопределённых данных создайте группу УчебнаяГруппа и элемент УчебнаяКнига внутри неё; имена именно такие, код строковый, наименование длиной 100.

  4. Обновите учебную конфигурацию. Подготовленные ссылки доступны как Справочники.УчебныеКатегорииОтбора.УчебнаяГруппа и УчебнаяКнига. Группа не создаётся фиктивной строкой, иерархические отборы не применяются к обычным строкам Наименование.

Данные = Новый ТаблицаЗначений;
Данные.Колонки.Добавить("Категория", Новый ОписаниеТипов("СправочникСсылка.УчебныеКатегорииОтбора"));
СтрокаДанных = Данные.Добавить();
СтрокаДанных.Категория = Справочники.УчебныеКатегорииОтбора.УчебнаяКнига;
Описание = Новый ОписаниеИсточникаДанных(Данные);
Для Каждого Колонка Из Описание.Колонки Цикл
    Колонка.Поле = Истина;
    Колонка.Отбор = Истина;
КонецЦикла;
Построитель = Новый ПостроительЗапроса;
Построитель.ИсточникДанных = Описание;
Условие = Построитель.Отбор.Добавить("Категория");
Условие.ВидСравнения = ВидСравнения.ВСпискеПоИерархии;
Значения = Новый СписокЗначений;
Значения.Добавить(Справочники.УчебныеКатегорииОтбора.УчебнаяГруппа);
Условие.Значение = Значения;
Условие.Использование = Истина;
Сообщить("Настроен отбор Категория: " + Строка(Условие.ВидСравнения));
Сообщить("Это настройка; выполнение построителя или отчёта запускается отдельно");

Разбор по шагам

  1. Элемент отбора получен из коллекции собственного построителя или созданных настроек СКД, а не передан неизвестным объектом.

  2. Поле Категория имеет подходящий тип. Для интервала используются ЗначениеС / ЗначениеПо; для списка — СписокЗначений; для заполненности правое значение не требуется.

  3. ВидСравнения задаёт ВидСравнения.ВСпискеПоИерархии, а Использование = Истина включает условие. Пример показывает настройку, не утверждая, что отчёт уже выполнен.

Как проверить результат

  1. Сообщение показывает конкретное поле и оператор. Значения границ интервала 2 и 4 позволяют отдельно проверить включение / исключение границ при дальнейшем выполнении.

  2. Для Подобно маска Кн% использует %, а не символ *; для иерархии справа находится ссылка на свою группу, а не её наименование.

Ожидаемый результат

В собственном объекте создано осмысленное условие отбора с корректным типом поля и правого аргумента.

На что обратить внимание

  1. ВидСравнения и ВидСравненияКомпоновкиДанных — разные перечисления и разные классы элементов отбора; значения одного не присваиваются вместо другого.

  2. Интервалы не применяйте к ссылочным полям. Иерархические операторы применяются к соответствующим ссылкам, не к произвольной строке.

  3. Настройка не является результатом фильтрации. Для применения СКД необходима подготовленная схема и обычный процесс компоновки.

Пример не запускался в вашей базе. Перед применением проверьте его в указанном учебном контексте.

Не хотите разбираться сами?

Адаптируем это решение под вашу базу. Оценка бесплатно.

Оставить задачу

1С, 1С:Предприятие — товарные знаки ООО «1С». Сайт не является официальным представительством фирмы «1С» и не аффилирован с ней.