# Конструктор отчётов

Самостоятельные отчёты из данных Меркурия: источник, колонки, фильтры, таблица, группировка, Excel и куб. Настройки сохраняются для повторного использования.

Раздел: [Аналитика](analitika.md).

## Как устроен конструктор

**Аналитика** → **«Конструктор отчётов»** — вкладка с мастером из четырёх шагов:

1. **Мои отчёты** — новый или сохранённый отчёт.
2. **Поля и фильтры** — источник, колонки, отбор.
3. **Данные** — таблица, сортировка, группировка, Excel.
4. **Куб** — сводная таблица.

Переход вперёд возможен после нужных действий на предыдущем шаге (куб — только после получения данных). **«?»** — эта справка.

**Пример:** выручка по магазинам за месяц — источник «Анализ расходов», период, поля «Склад» и «Сумма, ₽», при необходимости куб со складами в строках.

## Шаг 1. Мои отчёты

- **Создать новый** → шаг «Поля и фильтры».
- Список сохранённых отчётов — открыть с прежними настройками (источник, поля, фильтры, группировка, куб).
- **×** у отчёта — удалить форму (подтверждение); учётные данные не удаляются.
- Пусто: «Нет сохранённых отчётов».

## Шаг 2. Поля и фильтры

### Источники данных

| Источник | Содержание |
| --- | --- |
| **Анализ расходов** | Проведённые расходные покупателям: продажи, выручка, доход, наценка (без производства и служебных потерь) |
| **Анализ приходов** | Проведённые приходные (без актов производства): поставщики, закупки |
| **Кассовые чеки** | Журнал Mercury-POS: кассиры, чеки, скидки, строки чеков |
| **Движение товара** | Остатки на начало/конец, приход и расход по складам |
| **Заявки покупателей** | Заказы (журнал, витрина, боты, Яндекс Еда): каналы, доставка, KDS |

Слева — **фильтры** (набор зависит от источника). Справа — **поля для вывода** (галочки → колонки таблицы).

Кнопки: **← Назад**, **Далее →**, **SQL** (только администратор платформы).

### Общие фильтры

| Фильтр | Назначение |
| --- | --- |
| **Период с / по** | Обязательный интервал дат |
| **Наши юрлица** | Одна или несколько организаций; пусто — все |
| **Склады** | Один или несколько; пусто — все |
| **Группы** | Товарные группы; пусто — все |
| **С подгруппами** | Включать вложенные группы (по умолчанию да) |
| **Товар содержит** | Поиск по части названия |
| **Контрагент содержит** | Поиск по контрагенту (в заявках — покупатель) |

### Дополнительные фильтры

**Анализ расходов и приходов:** № накладной; **Возврат** — Все / Без возвратов / Только возвраты.

**Кассовые чеки:** Кассир содержит, Тип чека содержит, Наименование содержит (по строкам чека).

**Заявки покупателей:** № заявки; Закрыта; Самовывоз; Отправлена; **Статус витрины** (Создан, Собирается, Доставляется, Доставлен, Отменён).

**Движение товара** — только общие фильтры.

## Доступные поля (краткий каталог)

Поля делятся на **признаки группировки** (дата, месяц, склад, товар…) и **числовые показатели** (количество, сумма, доход…).

### Анализ расходов

Даты и документ: Дата расхода, Год, Месяц, Число, День недели, № недели, № накладной, Возврат.

Показатели: Количество, Сумма ₽, Доход ₽, Себестоимость ₽, Средняя цена ₽, Наценка %.

Организация и товар: Наше юрлицо, Склад, Контрагент, Товар, Группа товара, Ед. изм.

### Анализ приходов

Аналогичные даты и № накладной; Количество, Сумма ₽, Средняя цена ₽; юрлицо, склад, контрагент, товар, группа, ед. изм.

### Кассовые чеки

Дата/время закрытия, № чека, Тип, Кассир, № кассы, Смена; показатели чека (кол-во чеков, сумма, средний чек, скидки, бонусы).

Строки чека: № строки, Наименование в чеке, Штрихкод, количество/сумма/цена позиции, Товар, Группа.

**Важно:** суммы чека и поля строк чека **нельзя выбирать вместе** — см. [Особенности расчёта](#особенности-расчёта-показателей).

### Движение товара

Остаток на начало/конец, Приход/Расход кол-во и ₽, Себестоимость расхода ₽; юрлицо, склад, товар, группа, ед. изм.

### Заявки покупателей

Даты заявки и доставки, № и ID заявки; Канал, закрыта, самовывоз, отправлена, статус витрины, KDS, время на кухне; покупатель и адрес витрины; показатели заявки (сумма, доставка, бонусы…); строки заказа (количество, собрано, модификаторы…).

Суммы заявки и строки заказа — **нельзя сочетать** (как у чеков).

## Шаг 3. Данные

Таблица с выбранными колонками.

- Сортировка по заголовку колонки.
- Перетаскивание заголовков — порядок колонок сохраняется в форме.
- **Автофильтр** — строка поиска под заголовками.
- **Группировка** — флажок и поле «Поле»; группы раскрываются.
- **Excel** — выгрузка таблицы (обычной или сгруппированной).
- До **100 строк** на страницу; **←** / **→**.

Кнопки: **← Назад**, **Excel**, **SQL** (админ), **К кубу →** (после появления строк).

## Шаг 4. Куб

Сводная таблица по уже рассчитанным данным (без нового запроса к документам).

| Настройка | Назначение |
| --- | --- |
| **Строки** | Вертикальная группировка (несколько уровней) |
| **Столбцы** | Горизонтальная (например, месяцы) |
| **Показатели** | Числовые поля (Сумма, Доход, Количество…) |
| **Показать итоги** | Итоговые строки/столбцы |
| **Скачать куб Excel** | Выгрузка |
| **← К данным** | Возврат к таблице |

Раскрытие уровней — ▶ / ▼.

## Просмотр SQL-запроса

Кнопка **SQL** — окно с текстом запроса и параметрами; **Копировать**. Только **администратор платформы**; обычной работе SQL не нужен.

## Сохранение отчёта

При закрытии вкладки — предложение сохранить форму с названием (например, «Выручка по магазинам»). **Отмена** — закрыть без сохранения.

Сохраняется: название, источник, поля, фильтры, группировка, куб — **не копия документов**, а настройки для повторного расчёта.

Список отчётов **личный** для каждого пользователя в базе фирмы.

## Особенности расчёта показателей

Источники **«Кассовые чеки»** и **«Заявки покупателей»** имеют уровень **документа** и **строк**. Сумма чека на каждой строке позиции при суммировании даст завышенный итог — конструктор **запрещает** одновременный выбор сумм документа и полей строк.

- Анализ сумм чеков — показатели уровня чека.
- Анализ товаров в чеках — «Сумма (позиция), ₽» и аналоги.

**Средние цены** — по суммарным количествам и суммам, не среднее арифметическое цен строк.

**Наценка** — Суммарный доход / Суммарная себестоимость × 100% (не среднее % по строкам).

Куб использует только данные, уже отобранные на шаге 3 — проверьте фильтры перед построением.
