数据更正与红冲
已经入账的错误数据不要直接修改:通行做法是红冲加补记——先写一条等额负记录冲销原值,再写一条正确记录,两条成对出现且能追溯到被冲销的原始凭证。明细层永远保留原始与冲销两条记录,报表层用求和自动抵消。这样流水完整、可审计,也经得起外部对账。
基本信息
| 红冲 | 等额负记录冲销原值,注明冲销对象 |
|---|---|
| 补记 | 写入正确的记录,注明更正来源 |
| 成对约束 | 红冲与补记成对出现,缺一不可 |
| 追溯字段 | reversal_of 指向被冲销的凭证号 |
| 报表处理 | 报表层直接用 sum 自动抵消 |
| 适用域 | 财务总账、库存、积分、结算流水 |
典型使用场景
- 财务错账:凭证金额录错,用红冲加补记更正,保留原始凭证
- 库存冲销:盘点差错导致的出入库记录,用反向流水冲销
- 积分调整:积分发放错误时用负向流水冲销后重新发放
- 结算更正:结算单金额有误,红冲后按正确金额重新出单
- 审计追溯:审计方需要看到原值、冲销记录与更正后的结果三条线索
红冲与补记
红冲与补记
-- 冲销错误记录:金额取负,备注注明冲销对象
INSERT INTO fact_gl (voucher_id, dr_amt, cr_amt, memo, reversal_of)
VALUES ('RV-1', 0, 100.00, '红冲 V-9', 'V-9');
-- 补记正确记录:写入正确金额,注明来源
INSERT INTO fact_gl (voucher_id, dr_amt, cr_amt, memo, reversal_of)
VALUES ('V-10', 100.00, 0, '更正 V-9', 'V-9'); -- 报表层 sum 后净额为 0,明细仍可逐条追溯更正方式对照
| 方式 | 做法 | 后果 |
|---|---|---|
| 红冲 + 补记 | 新增两条记录 | 流水完整,可审计、可追溯 |
| 直接 update | 覆盖原值 | 审计断链,无法还原原始金额 |
| 只红冲不补记 | 只写负记录 | 净额长期错误,账实不符 |
| 物理删除 | 删除错误行 | 对账差异无法解释 |
报表层用 sum 自动抵消,明细层永远保留原始与冲销两条记录;如果报表里看不到红冲记录,说明报表层已经做了过滤,需要确认过滤条件是否会掩盖真实差错。
红冲要有权限与审批:谁在什么时间因为什么原因冲销了哪张凭证,这些信息必须留痕,否则红冲本身会成为掩盖问题的工具。