Кастомные отчёты для бухгалтерии в Odoo: как это устроено
ОСВ, акты сверки, книга покупок и продаж, управленческий P&L. Разбираем, какие механизмы Odoo использовать под каждый тип отчёта и где не стоит изобретать своё.
О проекте
- Отрасль
- Финансы
Бухгалтерия — то место, где «почти правильный» отчёт бесполезен. Ниже — как мы строим отчётность в Odoo, чтобы её принимали и главбух, и аудитор.
Три механизма, из которых выбираем
1. Движок account.report
Подходит для регламентированных отчётов с иерархией строк: оборотно-сальдовая ведомость, баланс, отчёт о финансовых результатах. Строки описываются декларативно, движок сам считает сальдо и обороты, умеет разворачивать детализацию до проводок и выгружать в XLSX/PDF.
Берём его всегда, когда отчёт — это агрегат по плану счетов.
2. QWeb-шаблоны
Для печатных форм: акт сверки, счёт, УПД, накладная, паспорт качества. QWeb даёт полный контроль над версткой, поддерживает подстановку реквизитов, печатей и подписей, корректно работает с многостраничностью.
3. SQL-представления + список/сводная таблица
Для управленческой аналитики, где нужны быстрые срезы: маржа по клиентам, дебиторка по срокам, P&L по проектам. Создаём модель на базе представления (_auto = False), а дальше пользуются штатными фильтрами, группировками и графиками Odoo.
Что чаще всего просят
Оборотно-сальдовая ведомость с аналитикой — стандартная ОСВ плюс разрез по субсчетам и аналитическим счетам, с возможностью провалиться в проводки.
Акт сверки взаиморасчётов — с учётом валют, авансов и договоров, в формате, который контрагент подпишет без вопросов.
Дебиторка по срокам — 0–30, 31–60, 61–90, 90+, с ответственным менеджером и датой последнего платежа. Отдельная кнопка — рассылка напоминаний должникам.
Управленческий P&L — параллельный план счетов или аналитические счета, потому что управленческий и регламентированный учёт почти всегда расходятся.
Закрытие месяца — чек-лист: что не разнесено, где нет закрывающих документов, какие проводки без аналитики.
Три правила, которые экономят месяцы
- 01Не считать в отчёте то, что должно считаться в учёте. Если себестоимость приходится «допиливать» в отчёте — сломана настройка учёта, и отчёт это только замаскирует.
- 02Любой агрегат должен разворачиваться до документа. Главбух не верит числу, которое нельзя расшифровать до проводки.
- 03Выгрузка в Excel обязательна. Не «PDF, а потом скопируете», а нормальный XLSX с формулами и типами данных.
Производительность
Отчёты по нескольким миллионам проводок пишем на SQL, а не циклами по ORM. Тяжёлые агрегаты выносим в материализованные представления с ночным обновлением. Практическая планка: интерактивный отчёт должен открываться меньше чем за 3 секунды, иначе им не пользуются.
Похожая задача?
Расскажите о процессе — оценим объём работ и сроки.
Похожие материалы
Переход с 1С на Odoo: чек-лист миграции данных
Что переносить, что оставить в архиве, как проверить результат и почему параллельный период важнее любого технического решения. Практический чек-лист из наших проектов.
Миграция с 1С:УПП на Odoo 17: завод металлоконструкций
Перенесли производственный учёт с 1С:УПП на Odoo 17: справочники, остатки, спецификации и незавершённое производство. Параллельный период — один месяц, потерь данных нет.
Odoo с нуля на пищевом производстве: партии, сроки годности, себестоимость
Компания росла без ERP: заказы в мессенджерах, склад в тетради. За 10 недель развернули Odoo 18 с производством, партионным учётом и прослеживаемостью до сырья.
