﻿---
title: Контроль бюджета по центрам затрат
description: "Дашборд на Laravel + Filament: план и факт по центрам затрат, единые категории, согласование трат и предупреждения о перерасходе до закрытия месяца."
---

## Что это за сервис

Рабочее место финансового контролёра и руководителей подразделений, где видно, сколько заложено в бюджет, сколько уже потрачено и сколько обещано по согласованным заявкам. Сервис работает поверх ERP и бухгалтерии и не заменяет их.

Без него бюджет живёт в общей таблице, факт — в ERP, счета — в биллинге, и названия статей в этих системах не совпадают. Каждое совещание по бюджету начинается с выяснения, какие цифры окончательные. Перерасход обнаруживается после закрытия месяца, когда повлиять на него уже нельзя, а сверка счетов и оплат с бюджетными строками каждую неделю повторяется вручную.

Заявки на внеплановые траты при этом ждут решения по неделе: правила маршрутизации нигде не записаны, и непонятно, кто последний должен подписать. Руководители подразделений узнают о состоянии своего бюджета из ежемесячного письма финансовой службы, а не в тот момент, когда принимают решение о расходе. Сервис переносит эту информацию туда, где решение принимается.

## Что он делает

- **Сводит план и факт в одних категориях.** Статьи бюджета, проводки ERP и счета приводятся к единому справочнику статей и центров затрат с понятной датой отражения.
- **Показывает остаток с учётом обязательств.** Кроме фактических трат учитываются согласованные, но ещё не оплаченные заявки и счета, поэтому остаток не завышен.
- **Предупреждает о перерасходе в течение месяца.** Ежедневная проверка отмечает центры затрат, где факт опережает план сверх допустимого отклонения.
- **Делает согласование трат прозрачным.** У каждой заявки на внеплановый расход есть владелец решения и срок, просроченные заявки поднимаются выше.
- **Готовит отчёт для руководства.** Сводка по подразделениям и отклонениям выгружается за выбранный период в одном формате.

## Нюансы и особенности

- **Справочник статей фиксирован.** Категории задаются в модели данных, а при загрузке из CSV и ERP проверяются на соответствие. Свободный текст вместо статьи со временем разводит отчёты по разным корзинам.
- **Сопоставление статей — отдельная таблица.** Если в ERP 50 кодов затрат, а в бюджете 8 статей, соответствие хранится явно и меняется через интерфейс, а не правкой кода.
- **Отклонение — это настройка по центру затрат.** Для фонда оплаты труда нормально одно отклонение, для маркетинга — другое. Порог в 10% — пример, а не рекомендация.
- **Согласование без эскалации застревает.** У каждого шага нужен срок и заместитель; через несколько рабочих дней без решения заявка переходит к следующему согласующему.
- **Доступ ограничивают на сервере.** Руководитель подразделения видит свои центры затрат, контролёр — всё, правление — сводку. Правило действует в таблицах, виджетах и выгрузках.
- **Интеграция без переноса данных.** К ERP подключаются через API или отдельное подключение только на чтение к нужным таблицам. Ручной ввод дублей факта в сервис — плохой знак.
- **Предзакрытие ежедневно.** Несверенные счета и незавершённые согласования лучше показывать каждый день, а не в последнюю неделю периода. Если бюджетный модуль ERP уже закрывает эти задачи, отдельный сервис может не понадобиться.

## Как сгенерировать через ИИ-агентов

Промпты рассчитаны на AI-агента (Claude Code, Cursor и аналоги) в Laravel-проекте с установленным **Filament 4.x**. Отправляйте их по одному: каждый шаг даёт результат, который можно проверить до перехода к следующему.

### 1. Данные и справочники

```text
Создай модели и миграции для контроля бюджета: CostCenter (подразделение,
руководитель), BudgetCategory (фиксированный справочник), CategoryMapping
(код из внешней системы → BudgetCategory), BudgetLine (центр затрат,
статья, период, плановая сумма), Actual (центр затрат, статья, дата
отражения, сумма, источник, внешний id), Commitment (согласованная, но
не оплаченная сумма со ссылкой на заявку). Добавь фабрики с демо-данными.
```

### 2. Загрузка факта

```text
Сделай фоновую задачу по расписанию, которая загружает проводки из ERP
через API и принимает CSV-файлы через импорт Filament. Код затрат
переводи в статью через CategoryMapping; строки без соответствия не
сохраняй в факт, а помещай в очередь «Требует сопоставления». Повторная
загрузка той же проводки не должна создавать дубль.
```

Загрузите файл с неизвестным кодом и убедитесь, что он попал в очередь, а не в прочие расходы.

### 3. План-факт по центрам затрат

```text
Сгенерируй Filament-ресурс для CostCenter. В таблице покажи план, факт,
обязательства, остаток и процент отклонения за выбранный период, с
фильтрами по периоду, подразделению и статье. В карточке выведи
разбивку по статьям и список обязательств через relation managers.
```

### 4. Предупреждения и согласование трат

```text
Добавь настройку допустимого отклонения на уровне центра затрат и
ежедневную проверку, которая создаёт уведомление в панели руководителю
и контролёру при превышении. Добавь модель SpendRequest со сроком
решения и заместителем; просроченные заявки переходят к следующему
согласующему, каждое действие пишется в журнал.
```

### 5. Доступ и отчёт для руководства

```text
Настрой доступ: руководитель подразделения видит только свои центры
затрат, контролёр — все, роль «Руководство» — только сводные виджеты.
Примени ограничение к таблицам, виджетам и экспорту. Добавь виджеты
отклонений по подразделениям и экспорт сводки за период в CSV.
```

## Похожие сценарии

- [Согласование расходов сотрудников](https://wpcraft.ru/kb/stacks/filament/use-cases/finance/expense-approval.md) — заявки на возмещение, которые списывают бюджет подразделения.
- [Мониторинг аномальных расходов](https://wpcraft.ru/kb/stacks/filament/use-cases/finance/spend-anomaly-monitor.md) — проверка отдельных операций, а не статей бюджета.
- [Планирование численности](https://wpcraft.ru/kb/stacks/filament/use-cases/hr/headcount-planning-dashboard.md) — бюджет фонда оплаты труда и открытые позиции.

## Материалы и источники

- [Refine: Budget Tracker](https://refine.dev/use-cases/finance/budget-tracker/)
- [Filament 4.x: ресурсы](https://filamentphp.com/docs/4.x/resources/overview)
- [Filament 4.x: импорт](https://filamentphp.com/docs/4.x/actions/import)
- [Filament 4.x: фильтры таблиц](https://filamentphp.com/docs/4.x/tables/filters/overview)
- [Filament 4.x: экспорт](https://filamentphp.com/docs/4.x/actions/export)