08. Отчёты
Отчёты позволяют пользователям выполнять параметризованные SQL-запросы и просматривать результаты в виде таблицы.
8.1. Синтаксис отчёта
ОТЧЁТ ИмяОтчёта
ПАРАМЕТР ИмяПараметра ТИП_ДАННЫХ [ОБЯЗАТЕЛЬНЫЙ]
ПАРАМЕТР ИмяДругогоПараметра ТИП_ДАННЫХ
ЗАПРОС "
SELECT ...
FROM ...
WHERE 1=1
{{ЕСЛИ Параметр}} AND поле = '{{Параметр}}' {{КОНЕЦ}}
ORDER BY ...
"
КОЛОНКА ИмяКолонки ТИП_ДАННЫХ
КОЛОНКА ИмяКолонки ТИП_ДАННЫХ
КОНЕЦ
8.2. Типы параметров
| Тип | В UI | В SQL |
|---|---|---|
| СТРОКА | Текстовое поле | '{{Значение}}' |
| ЧИСЛО | Поле для цифр | {{Значение}} |
| ДАТА | Выбор даты | '{{Значение}}' |
| ВЫБОР Коллекция | Выпадающий список | '{{Значение}}' |
8.3. Пример отчёта с параметрами
ОТЧЁТ ПродажиЗаПериод
ПАРАМЕТР ДатаС ДАТА ОБЯЗАТЕЛЬНЫЙ
ПАРАМЕТР ДатаПо ДАТА ОБЯЗАТЕЛЬНЫЙ
ПАРАМЕТР Клиент ВЫБОР Клиенты
ЗАПРОС "
SELECT
З.Номер,
З.Дата,
К.Наименование as Клиент,
З.ИтогоСумма as Сумма,
З.Статус
FROM ЗаказНаряд З
JOIN Клиенты К ON З.Клиент = К.id
WHERE З.Дата BETWEEN '{{ДатаС}}' AND '{{ДатаПо}}'
{{ЕСЛИ Клиент}} AND З.Клиент = '{{Клиент}}' {{КОНЕЦ}}
ORDER BY З.Дата DESC
"
КОЛОНКА Номер СТРОКА
КОЛОНКА Дата ДАТА
КОЛОНКА Клиент СТРОКА
КОЛОНКА Сумма ЧИСЛО
КОЛОНКА Статус СТРОКА
КОНЕЦ
8.4. Агрегатный отчёт
ОТЧЁТ ПродажиПоКлиентам
ПАРАМЕТР ДатаС ДАТА
ПАРАМЕТР ДатаПо ДАТА
ЗАПРОС "
SELECT
К.Наименование as Клиент,
COUNT(З.id) as КоличествоЗаказов,
SUM(З.ИтогоСумма) as ОбщаяСумма,
AVG(З.ИтогоСумма) as СреднийЧек
FROM ЗаказНаряд З
JOIN Клиенты К ON З.Клиент = К.id
WHERE 1=1
{{ЕСЛИ ДатаС}} AND З.Дата >= '{{ДатаС}}' {{КОНЕЦ}}
{{ЕСЛИ ДатаПо}} AND З.Дата <= '{{ДатаПо}}' {{КОНЕЦ}}
GROUP BY К.id
ORDER BY ОбщаяСумма DESC
"
КОЛОНКА Клиент СТРОКА
КОЛОНКА КоличествоЗаказов ЧИСЛО
КОЛОНКА ОбщаяСумма ЧИСЛО
КОЛОНКА СреднийЧек ЧИСЛО
КОНЕЦ
8.5. Отчёт по регистру (остатки)
ОТЧЁТ СкладскиеОстатки
ПАРАМЕТР Склад ВЫБОР Склады
ЗАПРОС "
SELECT
Номенклатура,
SUM(_type * Количество) as Остаток,
SUM(_type * Сумма) as СуммаОстатка
FROM Журнал_ОстаткиЗапчастей
WHERE 1=1
{{ЕСЛИ Склад}} AND Склад = '{{Склад}}' {{КОНЕЦ}}
GROUP BY Номенклатура
HAVING Остаток != 0
"
КОЛОНКА Номенклатура ВЫБОР Номенклатура
КОЛОНКА Остаток ЧИСЛО
КОЛОНКА СуммаОстатка ЧИСЛО
КОНЕЦ
8.6. Важные особенности
- RLS не применяется автоматически — добавляйте условия вручную
- Для необязательных параметров используйте
{{ЕСЛИ ...}} - Строковые параметры нужно заключать в кавычки:
'{{Параметр}}' - В отчётах можно использовать JOIN, GROUP BY, подзапросы