Настроить отбор СКД: МеньшеИлиРавно

Учебные задачи

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

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

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

Подготовка

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

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

  3. Для применения создайте собственную схему СКД с полями Наименование (Строка), Количество (Число), а для иерархии — Категория типа СправочникСсылка.УчебныеКатегорииОтбора. Этот блок создаёт конкретный элемент настройки отбора; формирование и вывод отчёта здесь не выполняются.

Настройки = Новый НастройкиКомпоновкиДанных;
Условие = Настройки.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
Условие.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("Количество");
Условие.ВидСравнения = ВидСравненияКомпоновкиДанных.МеньшеИлиРавно;
Условие.ПравоеЗначение = 3;
Условие.Использование = Истина;
Сообщить("Настроен отбор Количество: " + Строка(Условие.ВидСравнения));
Сообщить("Это настройка; выполнение построителя или отчёта запускается отдельно");

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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