# 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).