General Ledger Engine

总账引擎

政务财务的核心核算引擎:从科目体系到凭证处理,从余额计算到期间管理, 覆盖总账处理的完整链路。包含业财映射(业务事件→凭证)、双核算体系平行记账、 期初期末结转、跨期业务处理等核心机制。

复式记账引擎
借贷必相等、有借必有贷
双核算并行
财务会计 + 预算会计平行记账
业财映射
业务事件自动生成双体系凭证
期间引擎
状态机驱动月结年结与结转
一、总账引擎是什么

总账引擎是财务系统的核算核心,负责把业务事件转化为会计凭证,记入账簿,计算余额,管理会计期间。 所有业务模块(报销、支付、采购)都通过总账引擎完成最终的会计处理。

业务事件
报销/支付/采购/收入
业财映射
映射规则 / 自动生成
凭证处理
录入 / 审核 / 过账
余额计算
借方 / 贷方 / 余额
期间管理
结账 / 结转 / 冻结
环节做什么输入输出
业财映射业务事件转化为会计凭证报销单、支付单、采购单记账凭证(双体系)
凭证处理审核、过账、写入账簿记账凭证总账/明细账记录
余额计算按科目、期间、维度计算余额已过账凭证科目余额表
期间管理月结、年结、结转、冻结余额数据期末余额 / 下期期初
二、科目体系

科目是总账引擎的基础数据结构。政府会计科目分为财务会计科目和预算会计科目两套,各自独立编码、独立核算。

2.1 财务会计科目(权责发生制)
类别科目编码前缀典型科目余额方向
资产类1xxx库存现金、银行存款、固定资产、应收账款借方
负债类2xxx应缴财政款、应付职工薪酬、长期应付款贷方
净资产类3xxx累计盈余、本期盈余、专用基金贷方
收入类4xxx财政拨款收入、事业收入、其他收入贷方
费用类5xxx业务活动费用、单位管理费用、资产处置费用借方
2.2 预算会计科目(收付实现制)
类别科目编码前缀典型科目余额方向
预算收入类6xxx财政拨款预算收入、事业预算收入贷方
预算支出类7xxx行政支出、事业支出、其他支出借方
资金结存类8xxx资金结存—货币资金、资金结存—财政应返还额度借方
2.3 辅助核算维度

科目 + 辅助核算 = 多维余额

一个科目可以挂多个辅助核算维度,如"部门"、"项目"、"资金性质"、"功能分类"。

系统设计上,科目余额不是一维的,而是多维立方体:科目 × 期间 × 部门 × 项目 × 资金性质

辅助核算的常见维度:部门、项目、往来单位、资金性质(财政拨款/非财政拨款)、功能分类(经济分类科目)。

三、凭证从哪来:业财映射

业务事件(报销、支付、采购等)发生时,通过映射规则自动生成会计凭证。 这是"业财一体化"的核心——业务人员不需要懂会计,系统自动完成凭证生成。

3.1 映射规则体系
映射要素说明示例
业务类型 → 科目根据业务类型确定借贷科目报销差旅费 → 借:业务活动费用 / 贷:零余额账户用款额度
金额取值确定凭证金额的来源字段报销单金额、支付金额、合同金额
辅助核算映射业务字段映射到辅助核算维度报销单.所属部门 → 凭证.部门
双体系判断是否需要同时生成预算会计凭证涉及现金收支的业务 → 必须双体系
时点控制业务确认时点 vs 会计确认时点报销审批通过时生成 / 支付完成时生成
3.2 双体系平行记账规则

什么业务需要平行记账

涉及现金收支的业务,必须同时生成财务会计凭证和预算会计凭证。

不涉及现金的业务(如计提折旧、内部转账),只生成财务会计凭证。

典型场景

报销差旅费 3000 元(财政拨款资金):

财务会计:借 业务活动费用 3000 / 贷 零余额账户用款额度 3000

预算会计:借 行政支出 3000 / 贷 资金结存 3000

计提固定资产折旧 5000 元:

财务会计:借 业务活动费用 5000 / 贷 固定资产累计折旧 5000

预算会计:不生成(不涉及现金收支)

3.3 映射配置模型
业财映射配置结构
映射规则 = {
  业务类型: "报销",
  业务子类型: "差旅费",
  资金性质: "财政拨款",
  财务会计分录: [(借, "业务活动费用", 金额), (贷, "零余额账户用款额度", 金额)],
  预算会计分录: [(借, "行政支出", 金额), (贷, "资金结存", 金额)],
  触发时点: "审批通过",
  辅助核算映射: { 部门: 单据.所属部门, 项目: 单据.项目, 功能分类: 单据.功能分类 }
}
四、凭证处理

凭证从生成到写入账簿,需要经过完整的处理链路:录入/生成 → 审核 → 过账。 每一步都有校验规则,确保借贷平衡和核算完整性。

凭证生成
业务事件触发映射规则,自动生成记账凭证。也可手工录入。
业务事件 映射规则 凭证草稿
凭证审核
校验借贷平衡、辅助核算完整性、科目有效性。审核人与制单人不能相同。
凭证草稿 借贷平衡校验 审核通过
凭证过账
将审核通过的凭证写入总账和明细账,更新科目余额。过账后不可修改。
审核通过 写入账簿 更新余额

凭证核心校验规则

借贷平衡: 每张凭证借方合计 = 贷方合计,精确到分。

辅助核算完整: 挂了辅助核算的科目,每条分录必须填写对应的辅助核算值。

期间校验: 凭证日期必须在当前打开的会计期间内。

科目有效: 科目必须已启用、未禁用,且是末级科目。

双体系对应: 涉及现金收支的凭证,必须同时有财务会计和预算会计分录。

五、余额模型

余额是总账引擎的核心输出。每个科目在每个期间都有期初余额、本期借方发生额、本期贷方发生额、期末余额。

5.1 余额计算公式
资产类 / 费用类(借方余额科目)
期末余额 = 期初余额 + 借方发生额 − 贷方发生额
负债类 / 净资产类 / 收入类(贷方余额科目)
期末余额 = 期初余额 + 贷方发生额 − 借方发生额
资金结存(预算会计,借方余额)
期末余额 = 期初余额 + 预算收入发生额 − 预算支出发生额
5.2 多维余额

余额是立方体,不是一行数据

科目余额的维度组合:科目 × 期间 × 币种 × 部门 × 项目 × 资金性质 × 功能分类

总账余额 = 所有辅助核算维度汇总后的结果。

明细余额 = 按某个辅助核算维度展开后的结果。

系统设计上,余额表通常以"科目+期间+辅助维度组合"为粒度存储,查询时按需汇总。

5.3 试算平衡

试算平衡是总账引擎的核心校验

发生额平衡: 所有科目本期借方发生额合计 = 贷方发生额合计。

余额平衡: 所有科目期末借方余额合计 = 贷方余额合计。

资产负债平衡: 资产合计 = 负债合计 + 净资产合计。

试算不平衡意味着凭证处理有错误,必须修复后才能结账。

六、期间引擎

期间引擎管理会计期间的打开、关闭、结转。政府会计年度为自然年(1月1日-12月31日), 不可自定义起止日期。每个会计期间有明确的状态,控制着凭证能否录入和过账。

6.1 期间状态机
未初始化
新年度尚未开账
无期初余额
已打开
可录入凭证、可过账
日常业务处理期间
已结账
不可录入新凭证
已结转本期发生额和余额
已冻结
完全锁定,不可调整
通常用于已报送的正式期间
未初始化
→ 年初开账 →
已打开
→ 月结/年结 →
已结账
→ 正式报送 →
已冻结
6.2 月结处理
步骤做什么校验内容
1. 凭证完整性检查确认本期无未审核、未过账凭证凭证状态全部为"已过账"
2. 试算平衡验证借贷平衡、资产负债平衡借方合计 = 贷方合计
3. 结转收支收入/费用科目本期发生额转入"本期盈余"结转后收入/费用余额为零
4. 计算期末余额更新各科目的期末余额资产 = 负债 + 净资产
5. 关闭本期期间状态变为"已结账"下期状态变为"已打开"
6.3 年结处理

年结比月结多几步

月结全部完成: 12个月全部月结后才能开始年结。

结转本年盈余: "本期盈余"转入"累计盈余"。

预算结转: 预算收入/支出科目余额转入"资金结存",结转后清零。

结转结余处理: 财政拨款结转、非财政拨款结余按资金性质分别结转。

生成新年度期初: 资产/负债/净资产/资金结存的期末余额结转为新年度期初余额。

收入/支出/费用类清零: 损益类科目余额为零,不结转到新年。

6.4 双核算体系的平行结转

两套体系各自结转,但必须勾稽

财务会计结转: 收入→本期盈余,费用→本期盈余,本期盈余→累计盈余。

预算会计结转: 预算收入→资金结存,预算支出→资金结存,结转后清零。

勾稽校验: 财务会计"货币资金"期末 = 预算会计"资金结存"期末。

如果勾稽不等,说明有凭证遗漏或分录错误,必须修复后才能完成年结。

七、跨期业务处理

不是所有业务都恰好在一个会计期间内完成。跨年支付、预提摊销、以前年度差错更正都需要特殊处理。

跨年支付
上年度已列支(预算已列支、财务已确认费用),但本年度才实际支付。

预算会计:本年不再列预算支出(上年已列),只在资金结存内部调整。
财务会计:冲减上年应付,减少货币资金。
预提与待摊
费用归属期与支付期不一致时,需要预提或待摊。

预提:已发生但未支付的费用 → 借 费用 / 贷 应付
待摊:已支付但归属多期的费用 → 借 待摊 / 贷 资金,逐期摊销
以前年度调整
发现以前年度的会计差错,在本期进行调整。

通过"以前年度盈余调整"科目处理,不直接修改历史期间数据。
调整后需要重新计算期初余额和累计盈余。
结转结余 vs 结转下年
结转结余:预算口径的概念。财政拨款结余需交回或经批准留用。

结转下年:项目未完成,预算指标结转到下年继续使用。
结转资金 ≠ 结余资金,前者有具体项目指向,后者是剩余可用额度。
八、与其他模块的关系
上游:报销 / 支付
报销审批通过 → 触发业财映射 → 生成费用凭证和预算支出凭证。支付完成 → 生成资金凭证。
报销 支付 总账引擎
下游:报表 / 关账
科目余额表是报表的数据源。期间结转后触发关账流程。报表口径直接取总账余额。
总账引擎 报表/关账 预算报表
横向:账簿 / 核算
总账引擎负责处理过程,账簿/凭证页面记录结果和规则。两者是过程与数据的关系。
账簿/凭证 总账引擎
九、常见认知误区
误区: 总账就是一张余额表
总账引擎不只是存余额。它包含科目体系管理、业财映射规则、凭证处理链路、期间状态机、结转算法。余额表只是最终输出。
误区: 双体系做两套系统就行
双核算体系不是两套独立系统,而是同一平台内的双轨并行。映射规则、凭证处理、余额计算、期间结转都要同时处理两套,且保持勾稽。
误区: 结转就是复制期末到期初
结转是分类处理:资产/负债/净资产类结转余额,收入/支出类结转后清零,盈余类需要多层结转。不是简单的复制粘贴。
误区: 业财映射只要配一次就不用管
映射规则会随会计准则调整、业务变化、科目体系调整而需要维护。映射规则的版本管理和变更记录是系统设计的必要功能。
十、导航
政务财务全景图
返回政务财务总览,查看预算层、执行层、资金层等其他模块。
返回全景图 →
账簿 / 凭证 / 核算
账簿结构、凭证生成规则、核算规则的详细专题。
进入专题 →
报表 / 关账
报表口径治理、结报校验、关账冻结、重算追溯。
进入专题 →