Прочитайте готовые ответы
Новые статьи
Поддержка Битрикс24
Регистрация и вход
Тарифы и оплата
Задачи и проекты
Чат и звонки
Группы
Календарь
CRM + Интернет-магазин
Диск
Сайты
База знаний
Интернет-магазин (beta)
Складской учет
Почта
CRM
CoPilot — AI в Битрикс24
Битрикс24 КЭДО
Маркетинг
Сквозная аналитика
Центр продаж (beta)
CRM-аналитика (beta)
BI Конструктор
Автоматизация
CRM.Оплата и Доставка
Интеграция 1С и Битрикс24
Компания
Бизнес-процессы
Приложения
Контакт-центр
Моя страница
Телефония
Настройки
Мой тариф
Энтерпрайз
Enterprise HRM
Мобильное приложение
Десктоп-приложение
Общие вопросы
Готовые решения для бизнеса
Битрикс24 в коробке
1С-Битрикс24: Интернет-магазин + CRM
Изменения в статьях (архив)

Поддержка24

Как использовать шаблоны Jinja Templates в BI Конструкторе

Jinja Templates — это язык для создания шаблонов. С его помощью можно написать динамические SQL-запросы, которые меняются в зависимости от заданных условий. Шаблоны можно использовать в виртуальных наборах данных BI Конструктора. Например, добавить динамический диапазон дат, который будет запрашивать данные только за выбранные промежутки времени.

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


Создать виртуальный набор данных

Откройте BI Конструктор, перейдите в раздел SQL > SQL Lab . В окне впишите SQL-запрос и сохраните его как новый датасет.
Как создать виртуальный набор данных

01.jpg
С помощью SQL-запроса получаем данные о сделках и менеджерах за 2023 год

Отредактировать виртуальный набор данных

Чтобы добавить шаблон, откройте вкладку Datasets, выберите виртуальный набор данных и нажмите Редактировать.

Измените SQL-запрос и добавьте шаблон Jinja:

 WHERE {% if from_dttm is not none %} date_create >= from_iso8601_timestamp('{{ from_dttm }}') AND {% endif %} {% if to_dttm is not none %} date_create < from_iso8601_timestamp('{{ to_dttm }}') AND {% endif %} true; 
  • {% if from_dttm is not none %} — проверяет наличие начальной даты для фильтрации.
  • date_create >= from_iso8601_timestamp('{{ from_dttm }}') AND — фильтрует данные, чтобы они включали записи с датой создания, начиная с заданной начальной даты.
  • {% endif %} — завершает проверку начальной даты.
  • {% if to_dttm is not none %} — проверяет наличие конечной даты для фильтрации.
  • date_create < from_iso860i_timestamp('{{ to_dttm }}') AND — фильтрует данные, чтобы они включали записи с датой создания до заданной конечной даты.
  • {% endif %} — завершает проверку конечной даты.
  • true — поддерживает работу запроса при отсутствии дат.

Переменные в шаблоне делают запрос гибким: вы можете изменять временной диапазон выборки данных с помощью фильтра. Подставляя разные значения в from_dttm и to_dttm, не изменяя остальную часть запроса.

Cписок переменных для шаблонов Jinja

Переменная Что делает
columns Определяет столбцы для группировки данных в запросе
filter Указывает фильтры, применяемые к данным
from_dttm и to_dttm Устанавливает временной диапазон выборки данных
groupby Повторяет функцию columns, группируя данные по указанным столбцам
metrics Включает агрегатные функции, такие как сумма или среднее
row_limit и row_offset Ограничивает количество строк в результате запроса и смещение начала выборки
table_columns Перечисляет доступные столбцы в наборе данных
time_column и time_grain Определяет временной столбец и интервал агрегации данных

Проверить работу шаблона

Нажмите на набор данных и в открывшемся окне создайте график. Выберите режим запроса Сырые записи, перенесите показатели слева в блок Столбцы, настройте фильтр и нажмите Создать график.

Посмотрите, как работает шаблон в запросе, нажмите Три точки (...) > Показать SQL-запрос.

05.jpg
Теперь в графике работает динамический диапазон дат, который будет запрашивать данные только за выбранные промежутки времени


Коротко

  • Jinja Templates — это специальный язык для создания шаблонов. С его помощью можно написать динамические SQL-запросы, которые меняются в зависимости от заданных условий.
  • Чтобы добавить шаблон Jinja, отредактируйте SQL-запрос в новом или существующем наборе данных.

Рекомендуем прочитать:
Спасибо, помогло!
Спасибо :)
Не помогло
Очень жаль :(
Помощь интегратора
Это не то, что я ищу
Написано очень сложно и непонятно
Есть устаревшая информация
Слишком коротко, мне не хватает информации
Мне не нравится, как это работает