Блог · 2026-08
Быстрее Зарплата и Отчёты
5 августа 2026: лёгкие итоги ЗП без полного отчёта, отдельный /api/salary/extras, продажи и клиенты в отчётах — SQL LIMIT и агрегаты по периоду.
5 августа 2026: после урезания HTML Настроек и карточки клиента разделы Зарплата и Отчёты всё ещё тормозили — уже не из‑за мегабайт разметки, а из‑за тяжёлых повторных расчётов.
Что тормозило
| Место | Проблема |
|---|---|
/salary light |
«Лёгкий» запрос всё равно гонял полный get_salary_report (со всеми позициями услуг/товаров) ради футера итогов |
/salary extras |
Второй запрос снова считал весь список сотрудников |
| Extras JSON | Блок «не в ЗП» отдавал тысячи строк (~2 МБ) |
/reports/sales за год |
Сначала грузились все продажи периода в Python, потом обрезались до 300 |
/reports/customers |
То же: полная выборка, потом топ‑500 |
Что сделали
Зарплата
- Итоги периода — отдельный лёгкий SQL (refs начислений + агрегаты выручки/прибыли), без разбивки по позициям.
- Новый
GET /api/salary/extras— только сверка кассы, детализация прибыли и «не в ЗП», без повторного списка сотрудников. - «Не в ЗП» —
NOT EXISTS+ LIMIT 200.
Отчёты
- Продажи: итоги отдельным
SUM/COUNT, в таблицуLIMIT 300; агрегаты услуг/товаров только по заявкам периода. - Клиенты: сводка по всем, в таблицу
LIMIT 500, без полного materialize в Python.
Что проверить
/salary— таблица сотрудников быстро; сверка/детали догружаются следом./reports/salesза январь–сегодня — быстрее ответ, итоги полные./reports/customersза длинный период — топ‑500 + предупреждение при обрезке.