Оформление
SQL-блок
Кроме таблиц в датасет можно добавить SQL-блок — произвольный запрос, результат которого участвует в датасете наравне с таблицей. Так берут данные, которых нет в источнике готовыми: предварительную агрегацию, объединение через UNION, нестандартный расчёт.
- Нажмите Создать SQL-блок внизу левой панели.
- Задайте Название — под ним блок будет виден на холсте и в списке таблиц.
- Напишите запрос в поле SQL-запрос. Редактор подсвечивает синтаксис, нумерует строки и подсказывает ключевые слова и объекты базы, а слева стоит дерево таблиц источника, чтобы свериться с именами.
- Нажмите Превью и проверьте результат: колонки с типами и первые строки. Чтобы выполнить только часть запроса, выделите её перед нажатием.
- Нажмите Создать — блок появится на холсте, а колонки результата станут его полями.

Диалект — тот же, что у источника: запрос уходит в базу как есть.
Проверяйте запрос до создания
Кнопка Создать не проверяет запрос — она сохраняет его как есть. Нажмите Превью: если запрос ошибочный, вы увидите это сразу, а не при построении первого виджета.
Закрыть окно, не сохранив набранное, платформа не даёт молча. Если название или запрос меняли, Отмена, крестик, щелчок мимо окна и клавиша Esc открывают вопрос «Закрыть без сохранения? Внесённые изменения будут потеряны»: Продолжить редактирование возвращает в окно, Закрыть отбрасывает набранное.
Рядом с редактором есть AI-помощник — он пишет запрос по описанию задачи, см. AI-помощник.
На холсте SQL-блок отличается от таблицы значком <>, а в левой панели такие блоки собраны в отдельную группу SQL над списком таблиц источника. У блока три кнопки: звёздочка — сделать главным, карандаш — вернуться к редактированию запроса, крестик — убрать с холста.

Связи для SQL-блоков не создаются сами
Таблицы платформа может связать по внешним ключам, а результат SQL-блока — нет: у запроса нет ключей. Если блок нужно соединить с другой таблицей, задайте связь вручную.
SQL-блок и режимы датасета
В режиме «Прямой запрос» запрос блока уходит в источник при каждом построении виджета: платформа подставляет его текст подзапросом в свой запрос. Диалект не переводится, поэтому блок работает только с тем источником, где заведён.
Данные при этом всегда свежие, но и нагрузка от каждого открытия виджета ложится на источник. Если запрос тяжёлый, а данные обновляются раз в сутки, выгоднее извлечение.
В режиме извлечения SQL-блок выгружается в витрину наравне с таблицами: платформа выполняет его запрос в источнике и складывает результат в хранилище платформы. Виджеты дальше читают готовый снимок, а запрос блока к источнику больше не уходит — до следующей сборки витрины.
Тяжёлый запрос считается один раз за сборку
Если блок делает предварительную агрегацию по большой таблице, режим извлечения снимает эту работу с источника: запрос выполняется на сборке витрины, а не при каждом открытии виджета.
Что дальше
Результат SQL-блока участвует в датасете наравне с таблицей: его так же связывают с другими объектами и настраивают у него поля.