Урок 12 · 16 мин чтения

От плана счетов к модели данных

Как проводки и обороты превращаются в факт-таблицу, план счетов — в parent-child измерение, а субконто — в измерения звезды. Проектирование финансовой модели для BI: что взять оборотом, что остатком, и почему отчётная иерархия не равна плану счетов.

Вот точка, где сходятся два мира курса. Слева — план счетов, проводки и обороты из учёта. Справа — звезда, меры и иерархии в Power BI. Аналитик, который не умеет навести этот мост, либо строит технически грамотную модель на неверно понятых данных, либо знает финансы, но не может уложить их в модель. Этот урок — собственно мост.

Идея урока

Спроектировать финансовую модель данных: факт-таблица из оборотов/остатков, измерение «статья» как parent-child иерархия, субконто как измерения. И понять ключевое: отчётная иерархия P&L — это не план счетов, её строят отдельно.

Что является фактом, а что измерением

Источник — выгрузка проводок или оборотно-сальдовая ведомость с аналитикой. Раскладываем её по схеме «звезда»:

Зерно факт-таблицы — одна строка оборота

Факт — это движение: одна строка = дата + счёт (+ субконто) + сумма оборота (или остаток на дату). Мера — сумма. Измерения — это контекст движения: календарь, статья/счёт, контрагент, номенклатура, подразделение, сценарий (факт/план). Субконто из учёта (см. урок 06) становятся ключами измерений. Звезда: в центре факт оборотов, вокруг — справочники.

Минимальная финансовая модель:

        Календарь          Сценарий (Факт/План/Прошлый год)
            |                   |
            v                   v
   [ Факт: Обороты ] -- дата, КодСчёта, КодКонтрагента,
            ^  ^           КодНоменклатуры, Сценарий, Сумма
            |  |
   ПланСчетов  Контрагенты ... (прочие субконто)
   (parent-child)
Обороты или остатки — не смешивать в одной мере

Из урока 06: баланс — это остатки (сальдо на дату), ОФР и ДДС — обороты за период. Это разная природа: остаток не суммируется по времени (нельзя сложить остаток на январь и февраль), оборот — суммируется. В модели их держат либо разными факт-таблицами, либо одной с признаком типа, но никогда не агрегируют одной и той же мерой по времени без разбора. Остаток по периодам берут как «значение на конец» (последнее), оборот — как сумму.

План счетов — это parent-child иерархия

Счета вложены: 90 «Продажи» → 90.01 «Выручка», 90.02 «Себестоимость», 90.03 «НДС». 01, 02, 41 — сами по себе. Это классическая иерархия родитель-потомок (parent-child): у каждого счёта есть родитель, глубина переменная.

В Power BI parent-child разворачивают функциями PATH. Допустим, в измерении ПланСчетов есть КодСчёта и КодРодителя:

Путь =
PATH ( ПланСчетов[КодСчёта], ПланСчетов[КодРодителя] )

Уровень1 = PATHITEM ( ПланСчетов[Путь], 1 )
Уровень2 = PATHITEM ( ПланСчетов[Путь], 2 )
Уровень3 = PATHITEM ( ПланСчетов[Путь], 3 )

ГлубинаСчёта = PATHLENGTH ( ПланСчетов[Путь] )

Колонки Уровень1..N дают иерархию для матрицы, а PATHCONTAINS позволяет в мере собрать все обороты по счёту вместе с дочерними. Но для финансовой отчётности этого мало — и вот почему.

Главное: отчётная иерархия ≠ план счетов

P&L собирают не из плана счетов, а из карты статей

План счетов сделан для бухгалтерии, а не для управленческого отчёта. В ОФР строки идут в своём порядке (Выручка → Себестоимость → Валовая прибыль → Коммерческие → …), с промежуточными итогами, которых в плане счетов нет, и со сменой знака. Поэтому профессиональная модель содержит отдельное измерение «Статья отчёта» — управленческую карту, которая сопоставляет каждый счёт/субсчёт со строкой отчёта, её порядком, уровнем и знаком. Это таблица-мэппинг, и она — сердце финансовой модели.

Пример строк такого справочника статей:

КодСчётаСтатья отчётаПорядокУровеньЗнакТип
90.01Выручка101+1оборот
90.02Себестоимость201−1оборот
(итог)Валовая прибыль300подытог
44Коммерческие расходы401−1оборот
26Управленческие расходы501−1оборот
(итог)Прибыль от продаж600подытог
Зачем колонка «Порядок»

Если строки отчёта сортировать по алфавиту (как Power BI делает по умолчанию для текста), «Выручка» окажется в середине, а не сверху. Управленческий отчёт требует смыслового порядка. Поэтому в справочнике статей всегда есть числовая колонка «Порядок сортировки», по которой настраивают Sort by column. Это мелочь, которую забывают, и отчёт выглядит сломанным.

Что взять оборотом, что остатком — по отчётам

  • ОФР (P&L): обороты счетов 90, 91 (за вычетом внутренних) → строки доходов и расходов. Знак: доходы +, расходы −.
  • Баланс: конечные сальдо постоянных счетов (01, 02, 10, 41, 60, 62, 80, 84…), в нетто-оценке (контрарные вычитаются). Берётся как «остаток на конец периода», не сумма.
  • ДДС: обороты денежных счетов (50, 51, 52) с разбивкой по корзинам (операц./инвест./фин.) — либо прямым методом из аналитики платежей, либо косвенным из ΔБаланса.

Минимальный набор измерений финансовой модели

  • Календарь — обязательно отдельная таблица дат (для time intelligence).
  • Статья отчёта — управленческая карта статей (порядок, уровень, знак, тип).
  • План счетов — parent-child, если нужен «бухгалтерский» разрез.
  • Сценарий — Факт / План / Прошлый год / Прогноз (для план-факта).
  • Субконто — Контрагент, Номенклатура, Подразделение, ЦФО — то, что есть в источнике.
Нет субконто в источнике — нет разреза в отчёте

Повторим из урока 06: если в учёте не вели аналитику по нужному разрезу (например, по каналам продаж), ни одна модель его не восстановит. Аудит доступной аналитики — первый шаг проекта, до проектирования звезды.

Что дальше

Мы упомянули знак (+1/−1) у статей мимоходом — но это отдельная большая тема. Почему обычный SUM по финансовым данным почти всегда врёт, как переворот знака расходов превращает план счетов в читаемый P&L, и как сворачивать обороты корректно — следующий урок.

Почему для P&L строят отдельное измерение «Статья отчёта», а не используют план счетов напрямую?
План счетов — учётная структура, а управленческий ОФР требует своего порядка строк, подытогов (валовая прибыль, прибыль от продаж) и знаков (расходы вычитаются). Поэтому создают отдельную карту статей, сопоставляющую счета со строками отчёта, их порядком, уровнем и знаком. Это ядро финансовой модели.
Прогресс сохраняется в вашем браузере.
§ Power BI под ключ

Нужно внедрить
это в компании?

Соберём DWH, модель и дашборды под ваши данные. Бесплатная консультация — 30 минут.

Телефон+7 918 042 34 43