<h3><b>Фильтры для SQL bind-ов:</b></h3><br>
Фильтры заводятся в колонке BC <b>BINDS</b>, который содержит массив объектов, описывающих фильтры.<br>
Формат объектов:<br>
<pre>{
  "title":  "Порядковый номер",
  "type": "input",
  "key":  "numberOrig",
  "operations":  [ {"type": "equals"}, {"type": "specified"} ],
  "dictionaryValues": [
    "Звонок представителям",
    "Сверить активы с базой"
  ]
}</pre>
<br>

<b>title</b> - Заголовок bind-а, который будет отображаться на фильтре.<br>
<b>type</b> - Тип данных bind-а. Значения аналогичны возможным типам полей на виджете.<br>
<b>key</b> - Ключ bind-a.<br>
<b>operations</b> - Необязательный параметр. Массив объектов, описывающих доступные операций фильтрации. Если не
 указан, то на фильтре отсутствует меню выбора операций, а при отправке данных на бэк значение фильтра посылается без
 указания типа фильтрации.<br>
<b>dictionaryValues</b> - Необязательный параметр. Массив строк, используемый в качестве словаря для bind-а с типом
 dictionary.
<br>
<br>

Состав объекта <b>operations</b>:<br>
<b>type</b> - Тип операции.<br>
<b>default</b> - Объект, описывающий дефолтное значение фильтра.
<br>
<br>

Состав объекта <b>default</b>:<br>
<b>value</b> - Дефолтное значение.<br>
<b>transform</b> - Для фильтра типа data. Массив объектов, описывающих последовательность операций, модифицирующих
 дефолтное значение перед тем, как оно будет применено на фильтре.
<br>
<br>

Формат дублирует правила описания полей на виджетах за исключением поля operations.
<br>
<br>

<b>Наименование bind-ов в SQL-запросе:</b>
<ul>
    <li> * Если в BC для bind  <b>указаны типы операций</b>, то наименование формируется следующим образом:<br>
        <b> [key или id(в случае pickList) ] + "_" + [наименование операции] </b><br>
        <b>Пример:</b>
        <pre>
        "binds": [
        {
            "title": "Дата",
            "key": "reportDate",
            "type": "date",
            "operations": [
                {"type": "lessThan"},
                {"type": "greaterThan"}
            ]
        }]
        </pre>
        Наименование в sql-запросе -  <b>:reportDate_lessThan</b> и <b>:reportDate_greaterThan</b></li>
    <li> * Если в BC для bind <b>НЕ указаны типы операций</b>, то наименование bind соответствует <b>key или id(в случае pickList)</b>  </li>
</ul>
<br>

<b>Правила построения SQL-запроса, содержащего bind-ы :</b>
<ul>
    <li> * Все значения binds передаются в виде строки. Для типов операций EQUALS_ONE_OF и CONTAINS_ONE_OF передается также строка, например, <pre>'a,bvc,sdfs'</pre> </li>
    <li> * Для булевых типов операций SPECIFIED, SPECIFIED_BOOLEAN_SQL передается строка 'Y' или 'N' </li>
    <li> * Дата и время передается в строке в формате 'YYYY-MM-DD"T"HH24:MI:SS' . Если время не указано, то передаются нули (к примеру, 2018-10-01T00:00:00) </li>
    <li> * По умолчанию для всех операций и типов в binds приходит <b>NULL</b>.
        В sql-запросе для каждого bind необходимо сделать проверку на NULL (в случае NULL результат запроса не должен быть зависим от этого параметра)</li>
</ul>
<br>
<br>

<h3><b>Дефолтные значения:</b></h3><br>
<pre>"operations": [
  {
    "type": "equals",
    "default": {
      "value": 24
    }
  },
  {
    "type": "equalsOneOf",
    "default": {
      "value": ["24", "25", "26"]
    }
  }
]</pre><br>
Для фильтров типа date, предусмотрено специально дефолтное значение <b>"now"</b>, которое представляет собой текущий
 момент времени, его можно модифицировать с помощью поля <b>transform</b>.<br>
Поле <b>transform</b> представляет собой объект, который содержит следующие поля:<br>
<b>operation</b> - тип операции, которую необходимо совершить над промежуточным значением<br>
<b>variable</b> - переменная, модифицирующая промежуточное значение
<br>
<br>
На данный момент доступно 4 операции:<br>
<b>add</b> - добавить к дате временной промежуток<br>
<b>subtract</b> - вычесть из даты временной промежуток<br>
<b>startOf</b> - получить для текущей даты начало недели, месяца и т.д.<br>
<b>endOf</b> - получить для текущей даты конец недели, месяца и т.д.
<br>
<br>
Для операции <b>add</b> и <b>subract</b> в качестве переменной задается объект, содержащий в качестве названий полей - единицу
 времени, а в качестве значения поля - величину этой единицы.<br>
Для операции <b>startOf</b> и <b>endOf</b> переменная задается одной строкой с единицей времени<br>
Допустимые единицы времени: <b>year</b>, <b>quarter</b>, <b>month</b>, <b>week</b>, <b>day</b>, <b>hour</b>, <b>minute</b>, <b>second</b>, <b>millisecond</b><br>

<pre>"default": {
  "value": "now",
  "transform": [
    {
      "operation": "subtract",
      "variable": {
        "year": 1,
        "month": 2
      }
    },
    {
      "operation": "add",
      "variable": {
        "day": 3
      }
    },
    {
      "operation": "startOf",
      "variable": "week"
    }
  ]
}</pre>