Перейти к содержимому

Бухгалтерский учёт

Назначение

Финансовый учёт: план счетов, проводки (двойная запись), платежи за накладные и услуги, ПКО, акты услуг, типы внесений/изъятий, категории учёта. Контроль финансовых потоков и формирование бухгалтерской отчётности.

9 контроллеров, ~35 эндпоинтов. Поддерживает экспорт в Excel и PDF.


Сценарии

План счетов

Актор: Бухгалтер / Владелец

Иерархическая структура бухгалтерских счетов.

Типы счетов (superType): Актив, Пассив, Доходы, Расходы.

Особенности:

  • Счета образуют иерархию (parent → children)
  • Системные счета — создаются автоматически, не удаляются. Для стандартных операций (излишки, недостачи, списания, ДДС)
  • Опциональная привязка к типу контрагента (поставщик/клиент)
  • Мягкое удаление/восстановление

Где используются:

  • В проводках (дебет/кредит)
  • В инвентаризациях (счёт излишков/недостач)
  • В актах списания (счёт списания)
  • В актах реализации (счёт выручки/расходов)
  • В типах внесений/изъятий (основной, корреспондентский, ДДС)
  • В методах оплаты (ДДС-счёт)

Проводки

Актор: Бухгалтер

Двойная запись: дебет одного счёта + кредит другого на одну сумму.

Типы: MANUAL (создаёт бухгалтер) / AUTOMATIC (при платежах, инвентаризациях и т.д.)

Создание:

  1. Счёт дебета, счёт кредита, сумма, учётная дата
  2. Опционально: описание
  3. Опционально: аналитика (подразделение, юрлицо, контрагент, сотрудник, ДДС-счёт)

Бизнес-правила (агрегат PostingAggregate, static):

  • Дебет ≠ кредит
  • Сумма > 0, точность 2 знака
  • Учётная дата не в заблокированном периоде (ни предварительная, ни окончательная)

Доменное событие: posting-changed

Платежи

Актор: Бухгалтер

Оплата за документ (накладную или акт услуг). При создании автоматически формируется проводка.

Пакетное создание:

  1. Дата, контрагент, юрлицо
  2. Позиции: документ-основание + сумма
  3. Для каждой: проверка → создание Payment → создание Posting

Отмена: платёж → cancelled, создаётся сторнирующая проводка (обратная).

Бизнес-правила (агрегат PaymentAggregate, static):

  • Сумма > 0
  • Документ не дублируется в пакете
  • Нельзя отменить повторно
  • Дата не в заблокированном периоде

Оплачиваемые документы — агрегированный эндпоинт PayableDocumentController для просмотра накладных и актов услуг с суммами оплат. Поддерживает экспорт в Excel/PDF через PayableDocumentExportService.

Акты услуг

Актор: Бухгалтер

Документ об оказании услуг (аренда, клининг, бухгалтерия). Основание для платежа.

DRAFT → POSTED / CANCELLED

Бизнес-правила (агрегат ServiceActAggregate, static):

  • Сумма > 0
  • Срок оплаты ≥ дата документа
  • Редактирование только в DRAFT

ПКО (приходный кассовый ордер)

Актор: Бухгалтер / Кассир

Объединяет несколько платежей в один кассовый документ.

Создание:

  1. Выбор платежей
  2. Контрагент, юрлицо, дата, номер
  3. Общая сумма = сумма платежей
  4. Может быть сводным (isSummary)

Бизнес-правила (агрегат PaymentReceiptAggregate, static):

  • Общая сумма > 0
  • Список платежей не пуст

Типы внесений и изъятий

Актор: Управляющий / Бухгалтер

Предустановленные типы кассовых операций для POS: внесение (инкассация, размен) и изъятие из кассы.

Каждый тип привязан к трём счетам:

  • Основной (chefAccount)
  • Корреспондентский
  • ДДС-счёт

Бизнес-правила (агрегат DepositWithdrawalTypeAggregate, static):

  • Тип: DEPOSIT или WITHDRAWAL
  • Лимит > 0 (если задан)
  • Мягкое удаление/восстановление

Доменное событие: deposit-withdrawal-type-changed

Категории учёта

Актор: Бухгалтер

Группировка номенклатуры для бухгалтерии (себестоимость продуктов, расходные материалы, бытовая химия). Привязывается к номенклатуре. Перед удалением — проверка использования через ACL.


Финансовые потоки

НАКЛАДНАЯ ──── оплата ───► ПЛАТЁЖ ──── автоматически ───► ПРОВОДКА
(дебет/кредит)
АКТ УСЛУГ ──── оплата ───► ПЛАТЁЖ ──── автоматически ───► ПРОВОДКА
ПЛАТЁЖ ──── отмена ───► СТОРНИРУЮЩАЯ ПРОВОДКА (обратная)
ПЛАТЕЖИ ──── группировка ───► ПКО (приходный кассовый ордер)
ИНВЕНТАРИЗАЦИЯ (излишки/недостачи) ───► ПРОВОДКА
СПИСАНИЕ ───────────────────────────► ПРОВОДКА
АКТ РЕАЛИЗАЦИИ ─────────────────────► ПРОВОДКА

Связи с другими контекстами

НаправлениеЧтоЗачем
Организация → БухгалтерияДаты блокировки, timezoneЗапрет проводок в закрытых периодах
Склад → БухгалтерияНакладныеОснование для платежей
Меню → Бухгалтерия (через ACL)НоменклатураПроверка перед удалением категории
Бухгалтерия → СкладСчетаДля инвентаризаций, списаний, реализации
Бухгалтерия → POSТипы внесений/изъятийКассовые операции

Сущности

СущностьОписание
Тип счёта (AccountType)Актив, Пассив, Доходы, Расходы
Счёт (Account)Бухгалтерский счёт. Иерархический, системный/пользовательский
Проводка (Posting)Дебет + кредит + сумма + дата. MANUAL / AUTOMATIC
Аналитика проводки (PostingAnalytics)Подразделение, юрлицо, контрагент, сотрудник, ДДС-счёт
Платёж (Payment)Оплата за документ. Автоматическая проводка. Сторнирование
Акт услуг (ServiceAct)Документ об услугах. Основание для платежа
ПКО (PaymentReceipt)Группировка платежей в кассовый документ
Тип внесения/изъятия (DepositWithdrawalType)Кассовая операция с привязкой к 3 счетам
Категория учёта (AccountingCategory)Группировка номенклатуры для бухгалтерии