
Рисунок 1 – Заголовок фильтра
При работе с большими объемами данных возникает необходимость скрыть ненужную в данный момент информацию. Для этого используются фильтры. Фильтр содержит набор условий, которые накладываются на значения атрибутов сущности, представленной в табличной форме. При первоначальном открытии справочника фильтр пустой («Фильтр не задан») (рисунок 1) и отображаются все объекты выбранной сущности.
Содержимое панели фильтра и функции представлены в таблице 1.
Таблица 1 – Панель фильтра
Графическое изображение | Назначение |
| Кнопка для применения фильтра (отбора элементов списка по заданным условиям) |
| Сброс всех условий (отбор всех элементов списка) |
| Выбор сохраненных фильтров |
| Сохранение построенного фильтра. Задается наименование и доступ для пользователей:
|
| Закрытие области фильтра |
Для построения фильтра необходимо щелкнуть левой кнопкой мыши в область «Фильтр не задан». ![]()
Откроется панель для построения фильтров (рисунок 2).

Рисунок 2 – Панель для построения фильтров
Содержимое области фильтра и функции, средства построения фильтра, представлены в таблице 2 и таблице 3.
Таблица 2 – Панель команд
Графическое | Назначение кнопки |
|---|---|
| Переключение представления фильтра в текстовый формат |
| Переключение представления фильтра в графический вид. |
| Преобразование представления фильтра в XML - формат |
| Отменяет последнее изменение фильтра (Undo) |
| Возвращает последнее изменение фильтра (Redo) |
| Некорректные условия или части условий обводятся красным прямоугольником, возможность отключить проверку |
| Сортировка запрашиваемых параметров |
Слева располагается панель атрибутов сущности (рисунок 3).

Рисунок 3 – Дерево атрибутов
Размер панели атрибутов можно изменить, переместив мышью границу его правой или нижней внешних рамок.
Список атрибутов на панели имеет древовидную структуру. Простые атрибуты обозначаются в списке атрибутов иконкой
. Это такие атрибуты, которые не имеют ссылок на другие атрибуты. Они не могут быть развернуты в следующий уровень дерева списка. Примером простого атрибута для сущности «Посещение врача» может служить «Время посещения», «Дата ввода информации» и т.д.
Атрибуты, являющиеся так называемой «связанной сущностью», обозначаются в списке атрибутов иконкой
. Такие атрибуты имеют свои собственные списки атрибутов. Примером такого атрибута для сущности «Посещение врача» может служить атрибут «Вид оплаты», «Должность» и т.д.
В списке атрибутов сущности могут содержаться так называемые «дочерние коллекции». Дочерние коллекции обозначаются иконкой
. Примером дочерней коллекции для сущности «Посещение врача» может служить «Назначения», «Элементы реестра счетов».
Атрибуты связанных сущностей и дочерних коллекций могут быть развернуты, если щелкнуть на значке
с помощью левой клавиши мыши в списке атрибутов, или свернуты, если щелкнуть на значке
.
Атрибуты можно «перетаскивать» с помощью мыши на рабочую панель. Для этого необходимо навести указатель мыши на атрибут в списке слева, нажать левую кнопку мыши и, не отпуская кнопки мыши, переместить указатель мыши на рабочую панель справа и затем отпустить кнопку. Когда мы отпустим кнопку мыши, появится форма для ввода дополнительных условий (рисунок 4).

Рисунок 4 – Форма для ввода условий
Панель инструментов (рисунок 5) содержит инструменты, позволяющие формировать различные условия фильтров.
Они являются запросами, параметрами запросов, системными параметрами, строковыми, логическими и арифметическими операторами (все функции описаны в таблице 3). Для построения условий фильтра необходимо перетащить инструменты при помощи мыши с панели инструментов на рабочую панель, в соответствующую часть условия.

Рисунок 5 – Панель инструментов фильтра
Таблица 3 – Операторы и функции, используемые в выражениях
Графическое | Назначение кнопки |
|---|---|
| Функция позволяет сделать выборку значений определенного атрибута заданной сущности |
| Функция подсчета количества элементов в указанной коллекции элементов типа «Объект» |
| Функция анализа дерева наследования |
| Функция позволяет проверить факт существования данных сущности, удовлетворяющих определенным условиям |
| Операнды не должны быть равны друг другу. В случае строк это означает, что строки не должны совпадать |
| Точное равенство операндов – чисел, строк, дат и т.д. Регистр символов строки данной операцией игнорируется, т.е. строки «Текст» и «текст» равны |
| Значение первого (левого) операнда должно быть меньше или равно значению второго (правого) |
| Значение первого (левого) операнда должно быть больше или равно значению второго (правого) |
| Значение первого (левого) операнда должно быть меньше значения второго (правого) |
| Значение первого (левого) операнда должно быть больше значения второго (правого) |
| Объединение операндов – логических значений или выражений (условий) через «или», т.е. положительным результатом выражения будет выполнение любого из этих условий |
| Объединение условий через «и», т.е. положительным результатом выражения будет одновременное выполнение всех этих условий |
| Возвращает положительный результат, если значение удовлетворяет определенному шаблону |
| Позволяет вставить в выражение условную конструкцию вида «Если … тогда … иначе …» |
| Оператор отрицания |
| Арифметический оператор сложения либо оператор сложения (конкатенации) строк. |
| Арифметический оператор вычитания |
| Арифметический оператор умножения |
| Арифметический оператор деления |
| Скобки определяют очередность вычислений |
| Вычисление математической функции |
| Вычисление остатка от деления |
| Функция, позволяющая вычислить разность между двумя датами в различных единицах измерения – годах, месяцах, днях и т.д. |
| Функция, позволяющая вычислить дату путем добавления периода к исходной дате. Период может быть выражен в годах, месяцах, днях и т.д. |
| Функция получения части даты в виде числа (год, месяц, номер недели в году и т.д.). |
| Функция получения заданной части текстовой строки (подстроки). |
| Функция вычисления длины строки в символах. |
| Функция переводит все символы строки в ЗАГЛАВНЫЕ |
| Функция переводит все символы строки в строчные |
| Функция добавляет слева указанные символы к строке до заданной длины строки |
| Функция добавляет справа указанные символы к строке до заданной длины строки |
| Функция заменяет в строке выбранный символ на указанный |
| Функция повторяет заданный символ в строке указанное кол-во раз |
| Функция возвращает логическое Да/Нет (1/0), Да - если длина строки >0 |
| Функция приводит значение входного параметра любого типа к строке. Для логических параметров возвращает строку "True"/"False" |
| Функция удаляет пробелы в текстовой строке слева |
| Функция удаляет пробелы в текстовой строке справа |
| Функция позволяет преобразовать значение аргумента функции к требуемому типу данных, если возможно |
| Функция позволяет преобразовать значение аргумента функции к требуемому типу данных |
| Функция позволяет анализировать значение аргумента с помощью регулярных выражений |
| Функция задания константы |
| Функция задания параметра |
| Для ввода зарегистрированного системного параметра, например:
|
| Функция позволяет проверить строку на пустоту и в случае «Да» заполнить ее заданными символами |
Рабочая панель находится справа от панели инструментов и предназначена для отображения в графическом виде конструируемого фильтра.
Перед началом конструирования, рабочая панель пуста и не содержит никаких элементов. В процессе конструирования фильтров, рабочая панель заполняется условиями фильтров и содержит эти условия в графическом представлении (рисунок 6).
![]()
Рисунок 6 – Фильтр в графическом режиме