Содержание:
1. Что такое критерий отбора и как он работает
2. Применение критерия отбора в системе программ 1С:Предприятие
Что такое критерий отбора и как он работает
Критерий отбора — это специальный объект метаданных, предназначенный не для хранения данных, а для поиска объектов, содержащих определённое значение в конкретных реквизитах. В отличие от большинства прикладных объектов, он не создает собственных таблиц в базе данных.
Иными словами, это механизм, который помогает найти ссылки на объекты заданных типов, содержащие искомое значение в указанных полях. Это может быть полезно, например, при необходимости найти все документы, связанные с конкретным контрагентом.
При создании критерия отбора в конфигурации указывается:
- Тип данных, по которому осуществляется поиск (например, ссылка на элемент справочника).
- Список реквизитов разных объектов (документов, справочников и т. д.), в которых это значение может находиться.
Пример:
Допустим, нужно найти документы, где фигурирует определённый контрагент. Это могут быть:
- Документ.ПриходнаяНакладная.Поставщик
- Документ.РасходнаяНакладная.Покупатель
- Документ.Взаимозачет.Состав.Кто
- Документ.Взаимозачет.Состав.Кому
При этом критерий может включать – несколько объектов разных типов (например, разные документы) или реквизиты табличных частей, а не только «шапки» документа. Таким образом, критерий формирует область поиска — где и в каких полях нужно искать значение.
Хотя критерий не создаёт таблиц, 1С автоматически создает индексы по всем реквизитам, задействованным в критерии. Это повышает скорость выборки, но также увеличивает нагрузку на СУБД. Стоит учитывать:
- Индексы потребляют ресурсы.
- Система будет тратить усилия на их поддержку.
- Критерий стоит использовать там, где ожидаются не слишком большие выборки, иначе эффективность падает.
Применение критерия отбора в системе программ 1С:Предприятие
Критерий можно применять различными способами:
1. Программно:
Через метод «Найти()» менеджера критерия — возвращается набор ссылок на найденные объекты.
2. В запросах:
Используя виртуальную таблицу «КритерийОтбора.<Имя>», можно встроить выборку в язык запросов.
3. В интерфейсе:
- Можно создать форму на основе критерия.
- Вставить табличное поле, связанное с «КритерийОтбораСписок.<Имя>», для отображения выборки.
4. В списках документов:
Использовать как условие фильтрации.
Во всех случаях механизм работает одинаково — 1С формирует единый SQL-запрос на основе описанных в критерии реквизитов и выполняет поиск по всем задействованным таблицам.
Запросы создаются только по тем таблицам, где реквизиты соответствуют текущему типу искомого значения. Это повышает точность и сокращает ненужные обращения к другим таблицам.
Выборка всегда формируется полностью, даже в интерфейсах. Частичный просмотр или динамическая подгрузка невозможны, так как запрос объединяет данные из разных таблиц. Если результирующий набор данных слишком велик, выборка может работать медленно. Эффективность критерия зависит от разнообразия значений — чем больше уникальных значений, тем выше производительность.
Критерий отбора — это инструмент разработчика, позволяющий:
- Формально и централизованно задать правила поиска данных.
- Использовать эти правила во всех элементах системы — от программного кода до интерфейса.
- Повысить удобство пользователя за счёт автоматизации поиска по сложным структурам без ручного написания запросов.
Используйте критерий отбора для поиска по ключевым справочникам и документам. Избегайте избыточного включения объектов — это замедляет работу и применяйте критерии там, где значения имеют высокий разброс, чтобы не перегружать выборку.
Специалист компании ООО “Кодерлайн”,
Куколкина Елена
Добавить комментарий