ЭлементОтбора.Имя

Свойства · Name

Тип: Строка. Содержит имя элемента отбора.

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

ЭлементОтбора.Имя (FilterItem.Name)

ЭлементОтбора (FilterItem)

Имя (Name)

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

Использование:
Только чтение.
Описание:
Тип: Строка.
Содержит имя элемента отбора.
Доступность:

Сервер, толстый клиент, внешнее соединение, мобильное приложение (сервер), мобильный автономный сервер.

Использование в версии:

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

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

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

Установить отбор по учебному коду перед чтением набора

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

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

Учебная база: создайте серверный общий модуль УчебныеЗадачи (флаг Сервер). Код без директив вставьте в тело процедуры ВыполнитьПример() Экспорт. Вызовите её из серверного обработчика команды учебной обработки. Не запускайте в рабочей базе.

Подготовка

  1. Создайте НОВУЮ пустую файловую базу. В Конфигураторе корню задайте имя Учебная85; не добавляйте учебные регистры в рабочую УТ/КА2/УНФ/БП.

  2. Регистры сведений → Добавить: УчебныеЦены. Режим записи Независимый, периодичность Непериодический. Измерение КодТовара: Строка, длина 50, индексировать. Ресурс Цена: Число, 12 цифр, 2 дробных, неотрицательное.

  3. Проверку заполнения измерения установите Показывать ошибку. Модуль набора записей оставьте ПУСТЫМ; обработчики записи, обмена, фоновые задания и внешние сервисы для урока не создавайте.

  4. Обновите конфигурацию базы данных. Создайте серверный общий модуль УчебныеЗадачи и команду учебной обработки для вызова ВыполнитьПример() Экспорт.

  5. Фрагмент вставьте в тело ВыполнитьПример. Каждую задачу запускайте отдельно. Вымышленные коды не являются справочными ссылками на рабочие товары.

Описание = Метаданные.РегистрыСведений.Найти("УчебныеЦены");
Если Описание = Неопределено Тогда
    ВызватьИсключение "Сначала подготовьте собственный учебный регистр";
КонецЕсли;
Если Описание.РежимЗаписи <> Метаданные.СвойстваОбъектов.РежимЗаписиРегистра.Независимый
    Или Описание.ПериодичностьРегистраСведений <> Метаданные.СвойстваОбъектов.ПериодичностьРегистраСведений.Непериодический Тогда
    ВызватьИсключение "Настройки учебного регистра не соответствуют подготовке";
КонецЕсли;
Если Описание.Измерения.Количество() <> 1
    Или Описание.Измерения.Найти("КодТовара") = Неопределено
    Или Описание.Ресурсы.Найти("Цена") = Неопределено Тогда
    ВызватьИсключение "Нужны одно измерение КодТовара и ресурс Цена";
КонецЕсли;
Набор = РегистрыСведений.УчебныеЦены.СоздатьНаборЗаписей();
Фильтр = Набор.Отбор.Найти("КодТовара");
Если Фильтр = Неопределено Тогда
    ВызватьИсключение "Учебное измерение отсутствует в отборе";
КонецЕсли;
Фильтр.Установить("BOOK-A01", Истина);
Сообщить(Фильтр.Использование);
Сообщить(Фильтр.Значение = "BOOK-A01");
Сообщить(Фильтр.Имя = "КодТовара");
Сообщить(Фильтр.ТипЗначения.СодержитТип(Тип("Строка")));
Набор.Прочитать();
Для Каждого Запись Из Набор Цикл
    Если Запись.КодТовара <> "BOOK-A01" Тогда
        ВызватьИсключение "Прочитано значение вне установленного учебного отбора";
    КонецЕсли;
КонецЦикла;
Сообщить("Прочитано собственных учебных строк: " + Строка(Набор.Количество()));
Фильтр.Использование = Ложь;
Сообщить(Не Фильтр.Использование);
// Повторное чтение с отключенным отбором не выполняем.
Сообщить("Запись не выполнялась.");

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

  1. Отбор принадлежит набору и создан платформой по структуре регистра.

  2. Находим измерение по Имя. Установить задаёт значение и признак использования одновременно.

  3. Прочитать выполняем только с включённым фильтром BOOK-A01, не читаем все цены рабочего регистра.

  4. В новой пустой базе результат обычно ноль строк. Если ранее вручную добавили свой BOOK-A01, выводится его фактическое количество.

  5. Выключаем фильтр лишь после чтения и не запускаем новое чтение: уже загруженные данные не исчезают от переключения признака.

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

  1. Пять булевых проверок Истина.

  2. В пустой подготовленной базе прочитано 0, никаких строк не записано.

  3. Всякая прочитанная строка должна иметь ровно BOOK-A01.

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

Новичок знает момент применения отбора и различает данные набора с настройкой будущего чтения.

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

  1. Отбор не является безопасной заменой проверки измерений перед записью: новые строки нужно заполнить и проверить отдельно.

  2. Отключение отбора с последующим замещением может затронуть весь независимый регистр; здесь записи нет.

  3. Это не универсальный Отбор компоновки данных: в наборе поддержка сравнений ограничена.

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

Отобрать товары с количеством больше одного и вернуть настройки

Новый отбор исключает Ручку, оставляя Книгу и Коробку. Снимок настроек восстанавливает исходный числовой порог после пробного изменения.

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

Модуль новой управляемой формы учебной внешней обработки. Код содержит готовые процедуры с директивами; вставляйте на уровне модуля, не внутрь другого обработчика. Каждую задачу запускайте в отдельной копии формы.

Подготовка

  1. Учебная внешняя обработка с пустой управляемой основной формой. Создайте команду УчебныйПример, кнопку команды и назначьте действие УчебныйПример.

  2. Вставьте полный модуль урока: клиентский обработчик и серверную функцию. Каждый урок — отдельная копия модуля.

  3. Откройте EPF в тонком клиенте Windows. Данные Книга/Ручка/Коробка создаются только в памяти; запрос урока с параметрами не читает таблицы базы.

  4. ПостроительОтчета — существующий API для изучения/сопровождения старого кода. Это не СистемаКомпоновкиДанных и не рекомендация заменять ею современные отчёты.

&НаКлиенте
Процедура УчебныйПример(Команда)
    ТабДок = СформироватьУчебныйОтчет();
    ТабДок.ТолькоПросмотр = Истина;
    ТабДок.Показать("Учебный ПостроительОтчета");
КонецПроцедуры

&НаСервере
Функция СформироватьУчебныйОтчет()
    Данные = Новый ТаблицаЗначений;
    Данные.Колонки.Добавить("Категория", Новый ОписаниеТипов("Строка"));
    Данные.Колонки.Добавить("Наименование", Новый ОписаниеТипов("Строка"));
    Данные.Колонки.Добавить("Количество", Новый ОписаниеТипов("Число"));
    Данные.Колонки.Добавить("Цена", Новый ОписаниеТипов("Число"));
    Данные.Колонки.Добавить("Сумма", Новый ОписаниеТипов("Число"));
    Образцы = Новый Массив;
    Образцы.Добавить(Новый Структура("Категория,Наименование,Количество,Цена", "Канцелярия", "Книга", 3, 250));
    Образцы.Добавить(Новый Структура("Категория,Наименование,Количество,Цена", "Канцелярия", "Ручка", 1, 50));
    Образцы.Добавить(Новый Структура("Категория,Наименование,Количество,Цена", "Упаковка", "Коробка", 2, 30));
    Для Каждого Образец Из Образцы Цикл
        СтрокаДанных = Данные.Добавить();
        ЗаполнитьЗначенияСвойств(СтрокаДанных, Образец);
        СтрокаДанных.Сумма = СтрокаДанных.Количество * СтрокаДанных.Цена;
    КонецЦикла;
    Описание = Новый ОписаниеИсточникаДанных(Данные);
    Для Каждого Колонка Из Описание.Колонки Цикл
        Колонка.Поле = Истина;
        Колонка.Отбор = Истина;
        Колонка.Порядок = Истина;
        Колонка.Измерение = Колонка.Имя = "Категория";
    КонецЦикла;
    Построитель = Новый ПостроительОтчета;
    Построитель.ИсточникДанных = Описание;
    Построитель.АвтоДетальныеЗаписи = Ложь;
    Построитель.ВыводитьДетальныеЗаписи = Истина;
    Построитель.ВыводитьЗаголовокОтчета = Истина;
    Построитель.ВыводитьОбщиеИтоги = Ложь;
    Построитель.ВыводитьПодвалОтчета = Ложь;
    Построитель.ВыводитьПодвалТаблицы = Ложь;
    Построитель.ВыводитьШапкуТаблицы = Истина;
    Построитель.ОтображатьСостояние = Ложь;
    Построитель.ОбрабатыватьПрерываниеПользователя = Истина;
    Построитель.ТекстЗаголовка = "Учебный отчёт — вымышленные данные";
    Фильтр = Построитель.Отбор.Добавить("Количество", "УчебныйПорог", "Количество больше порога");
    Если Фильтр = Неопределено Тогда
        ВызватьИсключение "Учебное поле недоступно для отбора";
    КонецЕсли;
    Фильтр.ВидСравнения = ВидСравнения.Больше;
    Фильтр.Установить(1, Истина);
    Сообщить(Фильтр.Использование);
    Сообщить(Фильтр.Значение = 1);
    Сообщить(Фильтр.Имя = "УчебныйПорог");
    Сообщить(Фильтр.ТипЗначения.СодержитТип(Тип("Число")));
    Настройки = Построитель.ПолучитьНастройки();
    Фильтр.Установить(99, Истина);
    Построитель.УстановитьНастройки(Настройки);
    Восстановленный = Построитель.Отбор.Найти("УчебныйПорог");
    Если Восстановленный = Неопределено Тогда
        ВызватьИсключение "Отбор не восстановлен из собственных настроек";
    КонецЕсли;
    Сообщить(Восстановленный.Значение = 1);
    Сообщить(Восстановленный.Использование);
    Сообщить("Отбор выводит только Книгу 3 и Коробку 2, не Ручку 1.");

    ТабДок = Новый ТабличныйДокумент;
    Построитель.Вывести(ТабДок);
    Возврат ТабДок;
КонецФункции

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

  1. Флаг Отбор у описания колонки включён до передачи источника построителю.

  2. Добавить получает путь Количество, собственное имя УчебныйПорог и подпись. Метод может вернуть Неопределено — проверяем.

  3. Больше с числовым значением 1 означает строго >1, не >=1. Использование включает фильтр.

  4. ПолучитьНастройки сохраняет настройки отчёта, не товары и не документы базы.

  5. После пробного порога 99 восстанавливаем настройки, заново находим элемент отбора и проверяем 1.

  6. Старую ссылку Фильтр после восстановления больше не используем для изменения настроек.

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

  1. Шесть проверок Истина.

  2. В конечном отчёте Книга и Коробка, Ручки нет.

  3. Исходная таблица остаётся с тремя строками: фильтр влияет на вывод.

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

Рабочий числовой отбор и восстановление его настроек показаны без удаления исходных данных.

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

  1. Это Отбор построителя, не ОтборНабораЗаписей и не ОтборКомпоновкиДанных.

  2. ПолучитьНастройки — не резервная копия данных информационной базы.

  3. Восстановление заменяет элементы настройки, поэтому ссылки на старые элементы нельзя считать актуальными.

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

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

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

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

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