关于应付账款明细帐余额余总账不平解决方案
[摘要]2020年3月财务部反馈应付账款明细账与应付余额,与总账不平衡。严重质疑是IT部于2018年11月底升级服务器&数据切割造成的。要求IT必须解决且负全责!
[回顾]因服务器服役年限到期且数据量“较大”,财务部月结计算速度过慢,决定2018年11月24号进行服务器迁移同时数据切割(2013年12月31号)。考虑到可能存在的风险总账与应收子系统不处理。只处理应付子系统与分录子系统,同时让财务确认。
[确认问题]
- 还原数据后仍然存在异常,即使重新应付之后还是存在差异
- 数据切割前数据本身也存在差异,且与现有最新数据一致
- 抽样针对切割前没有交易,如17年后才有交易对象,差异也存在
- 财务部一直未对应付账款明细帐或余额表 与总账核对,应收除外。之前也存在差异,但是一直未要求此部分账务一致性。
- 账龄分析表与总账一致但与应付账款明细帐余额表不一致部分,差异原因还在分析中.
综合以上基本确定和数据切割无关系。
财务部硬核答复:
(1)一一反击
(2)2019年4月毕马威审计时应付账龄分析与总账是一致的。
[恢复数据]
新建测试账套TEST&切割前账套[ZE2018]:
ACP:
USE [TEST]
--TEST:测试账套 2018ZE:切割前账套数据
---采购发票
--DELETE FROM ACPTA WHERE TA003<='20131231'
--DELETE FROM ACPTB WHERE TB001+TB002 NOT IN (SELECT TA001+TA002 FROM ACPTA)
INSERT INTO TEST.dbo.ACPTA
SELECT * FROM [2018ZE].dbo.ACPTA WHERE TA003<='20131231' AND TA001+TA002 NOT IN ('7102131215038','7102131115036')
INSERT INTO TEST.dbo.ACPTB
SELECT * FROM [2018ZE].dbo.ACPTB WHERE TB001+TB002 IN (SELECT TA001+TA002 FROM [2018ZE].dbo.ACPTA WHERE TA003<='20131231' AND TA001+TA002 NOT IN ('7102131215038','7102131115036'))
-----供应商每月统计
--DELETE FROM ACPTE WHERE TE002<='201311'
--DELETE FROM ACPTF WHERE TF002<='201311'
INSERT INTO TEST.dbo.ACPTE
SELECT * FROM [2018ZE].dbo.ACPTE WHERE TE002<='201311'
INSERT INTO TEST.dbo.ACPTF
SELECT * FROM [2018ZE].dbo.ACPTF WHERE TF002<='201311'
-----其他应付
--DELETE FROM ACPTI WHERE TI003 <='20131231'
--DELETE FROM ACPTJ WHERE TJ001+TJ002 NOT IN (SELECT TI001+TI002 FROM ACPTI)
INSERT INTO TEST.dbo.ACPTI
SELECT * FROM [2018ZE].dbo.ACPTI WHERE TI003<='201311'
INSERT INTO TEST.dbo.ACPTJ
SELECT * FROM [2018ZE].dbo.ACPTJ WHERE TJ001+TJ002 IN (SELECT TI001+TI002 FROM [2018ZE].dbo.ACPTI WHERE TI003<='201311')
-----付款单
--DELETE FROM ACPTK WHERE TK003<='20131231'
--DELETE FROM ACPTL WHERE TL001+TL002 NOT IN (SELECT TK001+TK002 FROM ACPTK)
INSERT INTO TEST.dbo.ACPTK
SELECT * FROM [2018ZE].dbo.ACPTK WHERE TK003<='20131231'
INSERT INTO TEST.dbo.ACPTL
SELECT * FROM [2018ZE].dbo.ACPTL WHERE TL001+TL002 IN (SELECT TK001+TK002 FROM [2018ZE].dbo.ACPTK WHERE TK003<='20131231')
-----费用结算
--DELETE FROM ACPTM WHERE TM003<='20131231'
--DELETE FROM ACPTN WHERE TN001+TN002 NOT IN (SELECT TM001+TM002 FROM ACPTM)
--DELETE FROM ACPTO WHERE TO001+TO002 NOT IN (SELECT TM001+TM002 FROM ACPTM)
INSERT INTO TEST.dbo.ACPTM
SELECT * FROM [2018ZE].dbo.ACPTM WHERE TM003<='20131231'
INSERT INTO TEST.dbo.ACPTN
SELECT * FROM [2018ZE].dbo.ACPTN WHERE TN001+TN002 IN (SELECT TM001+TM002 FROM [2018ZE].dbo.ACPTM WHERE TM003<='20131231')
INSERT INTO TEST.dbo.ACPTO
SELECT * FROM [2018ZE].dbo.ACPTO WHERE TO001+TO002 IN (SELECT TM001+TM002 FROM [2018ZE].dbo.ACPTM WHERE TM003<='20131231' )
-----暂估
--DELETE FROM ACPTP WHERE TP003<='20131231'
--DELETE FROM ACPTQ WHERE TQ001+TQ002 NOT IN (SELECT TP001+TP002 FROM ACPTP)
INSERT INTO TEST.dbo.ACPTP
SELECT * FROM [2018ZE].dbo.ACPTP WHERE TP003<='20131231'
INSERT INTO TEST.dbo.ACPTQ
SELECT * FROM [2018ZE].dbo.ACPTQ WHERE TQ001+TQ002 IN (SELECT TP001+TP002 FROM [2018ZE].dbo.ACPTP WHERE TP003<='20131231')
-----应付异动
--DELETE FROM ACPLB WHERE LB020<='20131231'
INSERT INTO TEST.dbo.ACPLB
SELECT * FROM [2018ZE].dbo.ACPLB WHERE LB020<='20131231' AND LB002+LB003 NOT IN ('7102131215038','7102131115036')
-----核销
--DELETE FROM ACPLC WHERE LC029<='20131231'
INSERT INTO TEST.dbo.ACPLC
SELECT * FROM [2018ZE].dbo.ACPLC WHERE LC029<='20131231'
-----调汇
--DELETE FROM ACPLD WHERE LD003<='20131231'
--DELETE FROM ACPLE WHERE LE001+LE002 NOT IN (SELECT LD001+LD002 FROM ACPLD)
INSERT INTO TEST.dbo.ACPLD
SELECT * FROM [2018ZE].dbo.ACPLD WHERE LD003<='20131231'
INSERT INTO TEST.dbo.ACPLE
SELECT * FROM [2018ZE].dbo.ACPLE WHERE LE001+LE002 IN (SELECT LD001+LD002 FROM [2018ZE].dbo.ACPLD WHERE LD003<='20131231')
select object_name(id) as tablename,reserved----查询各个表大小
from sys.sysindexes
where indid in (0,1)
order by reserved desc
AJS:
-----分录底稿
--DELETE FROM AJSTA WHERE TA006<='20131231'
--DELETE FROM AJSTB WHERE TB001+TB002 NOT IN (SELECT TA001+TA002 FROM AJSTA)
--DELETE FROM AJSLA WHERE LA001+LA002 NOT IN (SELECT TA001+TA002 FROM AJSTA)
--DELETE FROM AJSLB WHERE LB001+LB002 NOT IN (SELECT TA001+TA002 FROM AJSTA)
INSERT INTO TEST.dbo.AJSTA
SELECT * FROM [ZE2018].dbo.AJSTA WHERE TA006<='20131231'
INSERT INTO TEST.dbo.AJSTB
SELECT * FROM [ZE2018].dbo.AJSTB WHERE TB001+TB002 IN (SELECT TA001+TA002 FROM [ZE2018].dbo.AJSTA WHERE TA006<='20131231' )
INSERT INTO TEST.dbo.AJSLA
SELECT * FROM [ZE2018].dbo.AJSLA WHERE LA001+LA002 IN (SELECT TA001+TA002 FROM [ZE2018].dbo.AJSTA WHERE TA006<='20131231' )
INSERT INTO TEST.dbo.AJSLB
SELECT * FROM [ZE2018].dbo.AJSLB WHERE LB001+LB002 IN (SELECT TA001+TA002 FROM [ZE2018].dbo.AJSTA WHERE TA006<='20131231' )
----DELETE FROM AJSLA WHERE LC001+LC002 NOT IN (SELECT TA001+TA002 FROM AJSTA)
还原数据后校验
财务比对差异还是存在大量差异几乎没有变化?
考虑到应付账款余额表应该是取应付对象月档数据,建议:
(1)重计每月统计账款。结果没有效果?
抽样异常供应商查看月档:
(2)重新生成应付对象账款交易
重计后月档从开账到现在基本每月都有记录无论当期是否有交易。(如果当期供应商被禁用可能造成缺失),因为历史交易太多,重计时间教长。
找到问题点:所有供应商全部重计,服务器后台作业处理:
[重计后确认]
重新计算完毕后,让财务进行应付明细账款/余额表与总账再次确认差异。
差异部分减少50%,剩余大概70笔异常,80%供应商为禁止交易。
报告财务负责人:风险暂时解除。
[正式处理前注意事项]
- 让财务确认测试账套还原且重计算之后,总账数据是否有异动。(务必保证不变)
- 正式还原前数据前,务必做好数据备份,以防万一。
- 数据切割可能存在还原异常问题,先查询是否切割时间点前还存在单据(还真有)
- 数据还原后同步进行生成应付对象账款交易,我司在2020年1月启用项目号管理。还需要执行更新项目号批次作业。
- 重计后让财务确认总账数据是否一致。(务必在现场,防止后续扯皮)
[建议财务处理]
- 查明原因自行在前端处理:(千万别答应后台处理)
- 总体原则:抓大放小:差异在0.02元以内,暂时忽略或者直接账。
2.1 若确定明细帐正确, 总账异常,则直接切凭证。
2.2 若确定应付子系统异常,总账正确
一般调子系统就只能说是,增加金额做蓝字发票,减少金额做红字发票
发票来源其他,录入进去后审核就生效了,审核时间点就是调整的时间点,后续需要做的操作是后台修改该发票的生成分录码为Y,修改核销状态为3:已核销
2.3 若无法查明原因,请示领导。结合供应商是否允许交易以及差异金额大小。单独处理! - 每月务必及时对总账与子系统明细帐,及时发现问题及时解决问题。
总结:
- 数据切割原则上不做,即使要做切割采用重新开账方式进行,若必须切割,则只切割物流体系相关单据,财务数据原则上一律不动,若必须,签字画押。
- 数据备份:本次查找切割前备份数据,居然被人从服务器上删除。万幸当时留意下本机保存一份。
- 建立测试环境:数据库后台作业存在风险,任何人都可能犯错。
写在最后:
加班财务同事溜了,周五约会?
卒