Initial spec: MVP-1 workload + drafts for MVP-2/3/4 + Subsystem D
This commit is contained in:
@@ -0,0 +1,111 @@
|
||||
# MVP-4 «Финрез по подразделениям» — Design Draft
|
||||
|
||||
| | |
|
||||
|---|---|
|
||||
| Дата | 2026-05-13 |
|
||||
| Статус | **Draft — требует отдельного мозгового штурма по схеме расчёта** |
|
||||
| Зависимости | MVP-1 + MVP-2 + MVP-3 |
|
||||
| Срок | 2-3 недели после MVP-3 + отдельная сессия с пользователем по схеме расчёта |
|
||||
|
||||
> **Назначение этого документа:** зафиксировать то, что уже обсудили по MVP-4, чтобы не вспоминать заново. **Это самая сырая из спек** — финальная схема расчёта финреза требует отдельного мозгового штурма.
|
||||
|
||||
## Цели MVP-4
|
||||
|
||||
Автоматизация расчёта финрезультата по подразделениям. Сейчас пользователь ведёт расчёт **руками в Excel** и кладёт итоги в самописную 1С (см. [reference-finrez-1c](../../memory/reference_finrez_1c.md)).
|
||||
|
||||
### Главные бизнес-вопросы
|
||||
|
||||
- Какой финрез у каждого подразделения за прошлый месяц / квартал / год?
|
||||
- Прогноз финреза на основе текущей загрузки.
|
||||
- Какие подразделения убыточны, какие прибыльны?
|
||||
|
||||
## Текущий статус автоматизации (как есть)
|
||||
|
||||
В **самописной 1С** (без БСП, 9 объектов):
|
||||
- `Document.РегистрацияПоказателейЗаПериод` — ввод вручную раз в месяц.
|
||||
- ТЧ: Сотрудник × ФОТ × Оборот × КоличествоЧасов.
|
||||
- `AccumulationRegister.ПоказателиЗаПериод` — обороты с измерениями Сотрудник + Подразделение, ресурсы ФОТ + Оборот + Часы.
|
||||
|
||||
То есть **в 1С лежит только итог**. **Сложная схема расчёта** живёт в голове пользователя и Excel-файлах. По его словам — «считаю сам, кладу финальную информацию, конфигурацию придется дорабатывать под реальные расчеты».
|
||||
|
||||
## Что планируется в MVP-4
|
||||
|
||||
### Этап 1 — Сбор и автоматизация ввода (вместо Excel)
|
||||
|
||||
**До детального проектирования** — обязательная **сессия с пользователем** где он рассказывает:
|
||||
- Как именно считается выручка по подразделению (распределение проектной выручки между подразделениями? через сотрудников?).
|
||||
- Как считается расход (ФОТ + амортизация + накладные? распределение общих расходов?).
|
||||
- Какие статьи используются (ДДС / БДР)?
|
||||
- Как меняется схема по времени (что было до этого, что планируется).
|
||||
|
||||
### Этап 2 — Доработка самописной 1С
|
||||
|
||||
Текущая конфигурация — приёмник готовых цифр. Нужно превратить в **калькулятор**:
|
||||
- Добавить справочник статей затрат.
|
||||
- Добавить документ с детализацией: Сотрудник × Статья × Сумма за период.
|
||||
- Привязка к проектам (если расходы можно атрибутировать на проект).
|
||||
- Привязка к данным из BIT.RA (фактические работы сотрудников).
|
||||
- Добавить email в `Catalog.Сотрудники` (для identity-resolution).
|
||||
- HTTP-сервисы — реализация в самописной 1С (см. [architecture-transport-decisions](../../memory/architecture_transport_decisions.md)).
|
||||
|
||||
### Этап 3 — ETL в core
|
||||
|
||||
```sql
|
||||
core.dept_finance_monthly (
|
||||
department_id bigint REFERENCES core.department,
|
||||
period_month date,
|
||||
fot decimal(15,2),
|
||||
oborot decimal(15,2),
|
||||
hours_count decimal(15,2),
|
||||
finrez decimal(15,2) -- oborot - fot - расходы
|
||||
)
|
||||
|
||||
core.expense_item (
|
||||
code text PRIMARY KEY,
|
||||
label text,
|
||||
category text -- ФОТ, амортизация, общие, ...
|
||||
)
|
||||
|
||||
core.dept_finance_detailed (
|
||||
department_id bigint,
|
||||
period_month date,
|
||||
employee_id bigint REFERENCES core.employee,
|
||||
expense_item_code text REFERENCES core.expense_item,
|
||||
amount decimal(15,2)
|
||||
)
|
||||
```
|
||||
|
||||
### Этап 4 — Витрины
|
||||
|
||||
```
|
||||
mart.dept_finance_monthly — по подразделению × месяц: выручка, расходы по статьям, финрез, маржинальность
|
||||
mart.finrez_trend — динамика по подразделениям за 12 мес
|
||||
mart.finrez_forecast — прогноз финреза на основе текущей загрузки + средних показателей
|
||||
```
|
||||
|
||||
### Этап 5 — Дашборд
|
||||
|
||||
«Финрез по подразделениям» в Metabase:
|
||||
- Плитка «Финрез компании за прошлый месяц».
|
||||
- Таблица по подразделениям: выручка, расходы, финрез, маржинальность %, цвета.
|
||||
- График: динамика финреза по подразделениям за 12 месяцев.
|
||||
- Прогноз следующего месяца на основе загрузки.
|
||||
|
||||
## Identity-resolution
|
||||
|
||||
Сотрудники самописной 1С ↔ BIT.RA — **сейчас нет общего ключа** (`Catalog.Сотрудники` имеет только Код+Наименование). После добавления email в `Catalog.Сотрудники` — связь через email (см. [identity-and-scope](../../memory/feedback_identity_and_scope.md)).
|
||||
|
||||
## Open questions (для финализации перед стартом MVP-4)
|
||||
|
||||
1. **Схема расчёта финреза.** Это **самый главный вопрос**. Без него нельзя проектировать. Отдельная сессия пользователя.
|
||||
2. **Уровень детализации.** Расход сразу по статьям или агрегированно? По сотрудникам или нет?
|
||||
3. **Атрибуция выручки.** Как делится выручка проекта между подразделениями (если в проекте сотрудники разных подразделений)? Пропорционально часам? По ставке × часы?
|
||||
4. **Альтернатива** — может проще не дорабатывать 1С, а реализовать расчёт прямо в core PG, оставив 1С только для просмотра итогов? Решение зависит от готовности пользователя работать с витриной в Metabase вместо отчёта в 1С.
|
||||
5. **Прогноз финреза** — на основе чего считать? Среднее за прошлые периоды + текущая загрузка + ставки. Или модель сложнее.
|
||||
|
||||
## Зависимости от MVP-3
|
||||
|
||||
MVP-4 стартует когда:
|
||||
- ✅ MVP-3 работает (есть core.project_finance с маржой).
|
||||
- ✅ Отдельная сессия с пользователем по схеме финреза завершена.
|
||||
- ✅ Решение по доработке finrez_1c принято (доработка vs расчёт в core).
|
||||
Reference in New Issue
Block a user