Общие сведения
Надёжность и безопасность
Покупка лицензии
Начало работы
Роли в системе
Проекты
Концепции
Компоненты
Инструкции
Задачи
Финансы
Ресурсы
Таймшиты
Клиенты
Вики
Затраты
Отчёты и аналитика
Типы отчётов
Тип отчёта «Акты»
Тип отчёта «Баланс отсутствий»
Тип отчёта «Бронирование»
Тип отчёта «Биллинг»
Тип отчёта «Версии проектов»
Тип отчёта «Задачи»
Тип отчёта «Затраты»
Тип отчёта «Заявки на затраты»
Тип отчёта «Заявки на отсутствия»
Тип отчёта «История ставок пользователей»
Тип отчёта «Запросы ресурсов»
Тип отчёта «Навыки пользователей»
Тип отчёта «Пользователи»
Тип отчёта «Проводки»
Тип отчёта «Ресурсный план»
Тип отчёта «Ресурсный план (по версиям)»
Тип отчёта «Проекты»
Тип отчёта «Сертификаты пользователей»
Тип отчёта «Счета»
Тип отчёта «Счета (строки)»
Тип отчёта «Таймшиты»
Тип отчёта «Таймшиты детально»
Тип отчёта «Финансы»
Тип отчёта «Структура работ»
Тип отчёта «Центры затрат проектов»
Тип отчёта «Задания воркфлоу»
Тип отчета Клиенты
Тип отчета «Контакты»
Тип отчёта «Сделки»
Тип отчёта «История состояний сделок»
Тип отчёта «Взаимодействия»
Использование отчётов
Группировка данных источника
Группировка данных в отчёте
Типы виджетов
Общие отчёты и шаблоны
Настройка отчёта
Экспорт отчётов
Пользовательские настройки отчёта
Вычисляемые поля
Особые колонки отчётов с временными рядами
Использование панелей мониторинга
Публикация панелей
FAQ
Фильтры источников данных
Настройка и администрирование
Типовой порядок настройки системы
Язык формул и выражений
Язык шаблонов
On-premises
API
История изменений
Термины и определения

Фильтрация

Обновлено: 21.06.2026

Назначение

Фильтрация позволяет ограничивать набор возвращаемых записей по заданным условиям.

Для этого используется параметр $filter.

Фильтрация выполняется на стороне сервера, что позволяет уменьшить объём передаваемых данных и ускорить обработку результата.

Базовый пример

Например, можно получить проекты с определённым названием:

GET https://api.timetta.com/odata/Projects?$filter=name eq 'Business Process Optimization'

Пример ответа:

{
  "value": [
    {
      "name": "Business Process Optimization",
      "id": "2fa44ea0-df3b-47f0-bc62-fea3554c6c3c",
      "modified": "2022-09-04T11:06:03.775347Z"
    }
  ]
}

Операторы сравнения

Timetta API поддерживает стандартные операторы OData:

Оператор Описание
eq равно
ne не равно
gt больше
ge больше или равно
lt меньше
le меньше или равно

Пример:

GET https://api.timetta.com/odata/Projects?$filter=modified gt 2022-01-01T00:00:00Z

Будут возвращены проекты, изменённые после указанной даты.

Логические операторы

Условия можно комбинировать.

Поддерживаются:

  • and
  • or
  • not

Пример:

GET https://api.timetta.com/odata/Projects?$filter=name ne null and modified gt 2022-01-01T00:00:00Z

Запрос вернёт проекты, у которых заполнено название и дата изменения больше указанной.

Фильтрация по идентификатору

Часто фильтрация используется по связанным сущностям.

Например, получить проекты конкретного руководителя:

GET https://api.timetta.com/odata/Projects?$filter=managerId eq 'bcd753cc-0b80-47ae-a471-6ff7f06010e1'

Это позволяет получать связанные данные без дополнительной обработки на стороне клиента.

Примечание

При фильтрации по значениям типа Guid рекомендуется передавать значение в одинарных кавычках.

Пример:

$filter=id eq '2fa44ea0-df3b-47f0-bc62-fea3554c6c3c'

Фильтрация по связанным сущностям

Timetta API позволяет выполнять фильтрацию не только по собственным полям сущности, но и по полям связанных объектов.

Например, сущность Project содержит навигационное свойство manager.

Можно получить проекты, у которых имя руководителя начинается с Ace:

GET https://api.timetta.com/odata/Projects?$filter=startswith(manager/name,'Ace')

Пример ответа:

{
  "value": [
    {
      "name": "Business Process Optimization",
      "id": "2fa44ea0-df3b-47f0-bc62-fea3554c6c3c",
      "manager": {
        "name": "Ace Fry",
        "id": "bcd753cc-0b80-47ae-a471-6ff7f06010e1"
      }
    }
  ]
}

Для доступа к полю связанной сущности используется путь через символ /.

Например:

  • manager/name
  • manager/id
  • department/name

Примечание

Фильтрация по связанным сущностям особенно полезна, когда идентификатор связанного объекта неизвестен, но доступны его атрибуты.

Фильтрация по строковым функциям

Для строковых полей доступны функции OData.

Поиск по началу строки:

GET https://api.timetta.com/odata/Projects?$filter=startswith(name,'Business')

Поиск по окончанию строки:

GET https://api.timetta.com/odata/Projects?$filter=endswith(name,'Optimization')

Поиск по вхождению:

GET https://api.timetta.com/odata/Projects?$filter=contains(name,'Process')

Примечание

Строковые функции особенно полезны для реализации поиска.

Работа с null

Можно проверять наличие значения:

GET https://api.timetta.com/odata/Projects?$filter=managerId eq null

Или наоборот:

GET https://api.timetta.com/odata/Projects?$filter=managerId ne null

Комбинирование с другими параметрами

Фильтрация может использоваться вместе с $select, $expand, $top, $skip и $orderby.

Пример:

GET https://api.timetta.com/odata/Projects?$filter=contains(name,'Business')&$select=id,name,modified&$orderby=modified desc&$top=10

Такой запрос:

  • отфильтрует проекты по названию;
  • вернёт только выбранные поля;
  • отсортирует по дате изменения;
  • ограничит выборку.

Рекомендации

При использовании фильтрации рекомендуется:

  • максимально ограничивать выборку на стороне сервера;
  • использовать фильтрацию по идентификаторам для связанных сущностей;
  • использовать фильтрацию по навигационным свойствам для сложных выборок;
  • комбинировать фильтрацию с пагинацией;
  • учитывать, что сложные фильтры могут влиять на производительность.

Содержание

Назначение Базовый пример Операторы сравнения Логические операторы Фильтрация по идентификатору Фильтрация по связанным сущностям Фильтрация по строковым функциям Работа с null Комбинирование с другими параметрами Рекомендации
Ничего не найдено

Перейти на русскую версию?