Фильтры | A-TECHS

Фильтры

При необходимости к исходным данным могут быть применены функции-фильтры. Фильтры необходимо располагать после секции с именем Журнала/Справочника и перед функциями, извлекающими данные.

В выражении может быть использовано произвольное количество фильтров. Они применяются к исходным данным по-очереди, т.е. условия фильтров складываются по И.


Пример:
Товары | Склад(основной) | Product( лист, балка) | GroupBy(Product, Quantity, Amount)

Из журнала Товары отбираем записи со значением в колонке Склад основной И значениями в колонке Product лист или балка.


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

Ниже подробнее рассматривается синтаксис доступных функций-фильтров.

Фильтр по Периоду

Имеет смысл для журналов. Фильтрует по стандартному полю журнала Period. Существует несколько вариантов синтаксиса.

Period(dateStart, dateFinish)

dateStart — дата, dateFinish- дата. Выбираем записи между указанными датами, границы включаются.

Period(,dateFinish)

dateFinish — дата. С самого начала, по указанную дату, включая дату.

Period(dateStart,)

dateStart — дата. C указанной даты, включая дату, до самого конца.

Period(standardPeriodName)

standardPeriodName — строка. Отбор по «стандартному периоду». Удобно использовать, когда необходимо получать данные , например, за текущий месяц. Время идет, а в настройке не надо изменять даты.

Доступные стандартные периоды:

  • ThisDay
  • ThisMonth
  • ThisQuarter
  • ThisYear
  • LastDay
  • LastMonth
  • LastQuarter
  • LastYear
  • NextDay
  • NextMonth
  • NextQuarter
  • NextYear

Period(date, periodType)

date — дата, periodType — строка.  Указывается любая дата из периода и тип периода. Например можно указать любую дату из месяца, тип Month и запрос будет выполнен за месяц.

Доступные значения periodType:

  • Day
  • Month
  • Quarter
  • Year

Примечание. При указании конкретных значений даты следует использовать ISO формат.YYYY-MM-DDThh:mm:ss


Примеры:

Period(2019-01-01T00:00:00, 2019-03-22T23:59:59) Отбор с начала дня 01 января 2019 по конец дня 03 марта 2019.

Period(ThisYear) Отбор за текущий год.

Period(ThisMonth) Отбор за текущий месяц.

Period(2019-03-22, Month) Отбор за Март 2019.

Фильтр по направлению записей журнала

Имеет смысл для журналов. Выполняет фильтрацию по стандартному полю журнала Direction.

Direction( Income )  Отбирает записи с направлением Приход.

Direction( Expense ) Отбирает записи с направлением Расход.

Фильтр по типу операции

Имеет смысл для журналов. Отбирает записи, сформированные конкретным видом операции.

Template( name1, name2,…, nameN ), где name1..N — имена шаблонов операции.

Template( id1, id2,…, idN ), где id1…idN — идентификаторы шаблонов операции.

Фильтр по операции

Имеет смысл для журналов. Отбирает записи, сформированные конкретной операцией.

Registrator( id1, id2,…,idN ) — где id1…idN — идентификаторы операций.

Фильтр по справочнику

Применяется и для журналов и для справочников. Если в журнале/справочнике существует поле типа справочник, то по значениям этого поля может быть наложен фильтр. Например, если в журнале существует колонка Склад, то в источнике данных может быть использована функция фильтр Склад(). В качестве аргументов фильтры принимают имена или идентификаторы элементов.

<CatalogName>(name1, name2,…, nameN), где CatalogName — имя колонки в журнале или поля в справочнике, name1…nameN — имена элементов справочника по которым надо выполнить отбор.

<CatalogName>(id1, id2,…,idN) — вариант с указанием идентификаторов элементов.


Примеры:

Товары | Склад(основной, резерв) | GroupBy(Product, Quantity, Amount)

Из журнала Товары отбираем только те записи в которых значение в колонке Склад равно основной или резерв.

Товары | Склад(основной) | Product( лист, балка) | GroupBy(Product, Quantity, Amount)

Из журнала Товары отбираем только те записи, в которых значение в колонке Склад равно основной, а значение в колонке Product равно лист или резерв.


Префикс NOT

Добавление NOT к фильтру означает НЕ.


Пример:

Товары | NOT Склад(резерв) | GroupBy(Product, Quantity, Amount)

Из журнала Товары отбираем только те записи, в которых значение в колонке Склад не равно резерв.