|

Формирование объекта конфигурации критерий отбора в 1С


Содержание:

1. Что такое критерий отбора и как он работает

2. Применение критерия отбора в системе программ 1С:Предприятие

Что такое критерий отбора и как он работает

Критерий отбора — это специальный объект метаданных, предназначенный не для хранения данных, а для поиска объектов, содержащих определённое значение в конкретных реквизитах. В отличие от большинства прикладных объектов, он не создает собственных таблиц в базе данных.

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

При создании критерия отбора в конфигурации указывается:

  • Тип данных, по которому осуществляется поиск (например, ссылка на элемент справочника).
  • Список реквизитов разных объектов (документов, справочников и т. д.), в которых это значение может находиться.

Пример:

Допустим, нужно найти документы, где фигурирует определённый контрагент. Это могут быть:

  • Документ.ПриходнаяНакладная.Поставщик
  • Документ.РасходнаяНакладная.Покупатель
  • Документ.Взаимозачет.Состав.Кто
  • Документ.Взаимозачет.Состав.Кому

При этом критерий может включать – несколько объектов разных типов (например, разные документы) или реквизиты табличных частей, а не только «шапки» документа. Таким образом, критерий формирует область поиска — где и в каких полях нужно искать значение.

Хотя критерий не создаёт таблиц, 1С автоматически создает индексы по всем реквизитам, задействованным в критерии. Это повышает скорость выборки, но также увеличивает нагрузку на СУБД. Стоит учитывать:

  • Индексы потребляют ресурсы.
  • Система будет тратить усилия на их поддержку.
  • Критерий стоит использовать там, где ожидаются не слишком большие выборки, иначе эффективность падает.

Применение критерия отбора в системе программ 1С:Предприятие

Критерий можно применять различными способами:

1. Программно:

    Через метод «Найти()» менеджера критерия — возвращается набор ссылок на найденные объекты.

    2. В запросах:

    Используя виртуальную таблицу «КритерийОтбора.<Имя>», можно встроить выборку в язык запросов.

    3. В интерфейсе:

    • Можно создать форму на основе критерия.
    • Вставить табличное поле, связанное с «КритерийОтбораСписок.<Имя>», для отображения выборки.

    4. В списках документов:

    Использовать как условие фильтрации.

    Во всех случаях механизм работает одинаково — 1С формирует единый SQL-запрос на основе описанных в критерии реквизитов и выполняет поиск по всем задействованным таблицам.

    Запросы создаются только по тем таблицам, где реквизиты соответствуют текущему типу искомого значения. Это повышает точность и сокращает ненужные обращения к другим таблицам.

    Выборка всегда формируется полностью, даже в интерфейсах. Частичный просмотр или динамическая подгрузка невозможны, так как запрос объединяет данные из разных таблиц. Если результирующий набор данных слишком велик, выборка может работать медленно. Эффективность критерия зависит от разнообразия значений — чем больше уникальных значений, тем выше производительность.

    Критерий отбора — это инструмент разработчика, позволяющий:

    • Формально и централизованно задать правила поиска данных.
    • Использовать эти правила во всех элементах системы — от программного кода до интерфейса.
    • Повысить удобство пользователя за счёт автоматизации поиска по сложным структурам без ручного написания запросов.

    Используйте критерий отбора для поиска по ключевым справочникам и документам. Избегайте избыточного включения объектов — это замедляет работу и применяйте критерии там, где значения имеют высокий разброс, чтобы не перегружать выборку.

    Специалист компании ООО “Кодерлайн”,

    Куколкина Елена


    Помогла ли вам статья? Оставьте свой комментарий:

    Добавить комментарий

    Ваш адрес email не будет опубликован. Обязательные поля помечены *

    Блог про 1С:Предприятие

    Copyright © 2024 TopKoder

    Мы занимаемся внедрением и обслуживанием программных продуктов 1С.