Chart of accounts / posting overview
Kandra.Persistence/Accounting is a second, independent accounting engine (Acc_ tables in
PlatformDbContext) — deliberately not built on top of the Balance/Movement register
engine described under Register Engine. This is a directed design
choice: don't attempt to unify the two.
Core pieces:
- Chart of accounts — account codes, hierarchy.
- Subconto — dimension/analytics slots attached to an account.
ISubcontoimplementors are narrow by design (Item,Warehouse,Counterparty,Waybill,GoodsReceiptin the reference configuration) — grep, ISubcontoin the source rather than assuming broader coverage.SubcontoSlotis theEntityRefinISubcontoSet.Values(no separateIRootEntityinstances); build one withchart.AsOf(code).With(...).Build()(AccountWithSubcontoBuilder). - Posting batches —
IPostingService, called only from a document'sOnSubmitAsyncviaISubmitScope, same as register writers. - Balance updater and query service — for reading posted balances/turnovers and the posted ledger (see the account transactions viewer in the practical guide's Chart of accounts page).
Full design: see the platform's docs/chart-of-accounts-posting-subsystem.md.