Модель данных
Три справочника, вокруг которых строятся все операции.
Все три справочника поддерживают ручную сортировку и «мягкую» архивацию вместо физического удаления.
В списке счетов помимо реальных счетов всегда присутствует виртуальная строка «Без счёта» — её остаток равен сумме всех
операций, не привязанных ни к одному счёту.
Логика и побочные эффекты
Пересчёт баланса счёта
- При создании нового счёта текущий баланс приравнивается к начальному остатку.
- При изменении начального остатка существующего счёта баланс сдвигается ровно на разницу между новым и старым значением — накопленные операции при этом не теряются.
- При любом сохранении или удалении оплаты баланс её счёта пересобирается по формуле «начальный остаток + сумма всех операций по этому счёту». Так расходы уменьшают баланс, а приходы увеличивают. Как именно оплата попадает на счёт — см. «Оплата: модель, знак и проверки».
Мягкое удаление справочников
Удаление вида оплаты, счёта или статьи через интерфейс — не физическое: создаётся отметка об архивации (с причиной и автором), а сама запись перестаёт показываться в списках выбора, но остаётся связанной с прошлыми операциями. Контрагент (см. «Распределение, назначение платежа и контрагенты») удаляется как переключатель архивации: первое удаление архивирует, повторное — восстанавливает.Связанные страницы
Глоссарий: Счета и справочники
Полный перечень полей денежного счёта, вида оплаты и статьи.
Оплата: модель, знак и проверки
Как оплата подбирает счёт и запускает пересчёт баланса.
Распределение, назначение платежа и контрагенты
Контрагенты и их архивация, разметка платежей по позициям заказа.
Переводы между счетами и возвраты
Как обмен между счетами влияет на баланс сразу двух счетов.