本文介绍了处理ERP系统中应付单据核销相关的几种常见问题及其解决方案。主要内容包括:单据已付款但仍在报表中显示,可能是账龄取数用日期晚于查询截止日期;单据审核且核销后修改关键字段会触发计划分录重新生成,导致报表无法正确关联核销记录;修复数据不匹配的问题,包括核销记录源单内码与单据计划分录内码不一致的情况,并提供了SQL语句进行数据修复;处理单据超额核销的问题,即已核销金额大于应付金额时,需反核销最后一笔核销记录;此外,还提及了包含暂估应付的场景,建议提单到金蝶总部处理。全文旨在通过具体SQL语句和操作步骤指导用户解决应付单据核销过程中的问题。
如下说明已应付为例,应收同理
如下SQL语句仅供参考!!!更新前建议做全表备份!!!
1. 单据已付款核销仍显示在报表
1.1 账龄报表取数用日期晚于查询截止日期
说明:单据核销时会取核销单据中较晚的业务日期作为账龄取数用日期,用于账龄表取数用,即在该日期及之后才认为该单据已核销。
示例:应付单下推付款单,应付单业务日期2024.8.13,付款单业务日期2025.8.13,账龄取数用日期取较晚日期为2025.8.13,过滤账龄表截止日期选择2024.8.13,应付单仍会显示在报表,选择2025.8.13,报表就不显示这张应付单了。
过滤截止日期选择2024.8.13:
过滤截止日期选择2025.8.13:
账龄取数用日期可见性设置:
1.2 单据已审核且已核销修改了单据的关键字段触发计划分录重新生成
关键字段示例:比如业务日期/到期日/收付款条件/明细备注等,9.0.0.20240711版本已优化
说明:这种情况最直观的现象是单据的修改日期大于审核日期。
标准产品下,单据已审核不允许修改单据字段,如果在bos里设置了应付单单据状态对应锁定性可实现单据已审核状态仍可修改字段的功能
数据分析:计划重新生成后,计划分录内码和核销记录中的源单分录内码不匹配,导致报表无法正常关联查询到核销记录,故仍显示未核销。
从如下示例数据看出,单据的业务日期和核销记录的不匹配,初步判断是单据审核且和核销后修改了单据业务日期导致计划重新生成,内码就变更了
以上查询sql:
--应付单单据头关联付款计划 SELECT A.FBILLNO 单据编号,A.FMODIFYDATE 修改日期,A.FAPPROVEDATE 审核日期,A.FDATE 业务日期,B.FENTRYID 计划分录内码,B.FPAYAMOUNTFOR 应付金额,B.FWRITTENOFFSTATUS 计划核销状态,B.FWRITTENOFFAMOUNTFOR 已核销金额 FROM T_AP_PAYABLE A LEFT JOIN T_AP_PAYABLEPLAN B ON A.FID=B.FID WHERE FBILLNO='AP00003289' --应付单核销记录 SELECT FID 核销序号,FSRCBILLNO 单据编号,FSRCDATE 源单业务日期,FSRCBILLID 单据头内码FID,FSRCROWID 源单分录内码,FSOURCEFROMID 源单类型,FCURWRITTENOFFAMOUNTFOR 本次核销金额 FROM T_AP_PAYMATCHLOGENTRY WHERE FSRCBILLNO='AP00003289' OR FID=1064
数据修复方案:将核销记录源单内码修复为和单据计划分录内码一致,并按核销记录修复单据的已核销金额
修复前注意当前分录的核销状态,如果有核销可能出现修复后超额核销的情况,所以修复前需要提前确认好需要修复的单据。
--1. 数据备份语句参考 SELECT * INTO T_AP_PAYMATCHLOGENTRY_SQLBAK_20230911 FROM T_AP_PAYMATCHLOGENTRY SELECT * INTO T_AP_PAYABLEPLAN_SQLBAK_20230911 FROM T_AP_PAYABLEPLAN --2. 修复付款核销记录 --2.1 查询应付单计划内码和核销记录源单内码不一致的核销记录 并插入临时表 SELECT A.FENTRYID,A.FID 核销序号,A.FSRCBILLNO 单据编号,A.FTARGETBILLNO 目标单据编号,A.FTARGETENTRYID 目标单据内码,B.FENTRYID 计划内码新,FSRCROWID 计划内码旧,B.FWRITTENOFFSTATUS 现核销状态,A.FID,A.FSRCBILLNO,A.FSRCBILLID,FSRCROWID,A.FTARGETBILLNO,A.FTARGETBILLID,A.FTARGETENTRYID,B.FENTRYID FSRCROWIDNEW INTO #TEMP1 FROM T_AP_PAYMATCHLOGENTRY A LEFT JOIN T_AP_PAYABLEPLAN B ON A.FSRCBILLID=B.FID LEFT JOIN T_AP_PAYABLE C ON B.FID=C.FID WHERE A.FSOURCEFROMID='AP_Payable' AND A.FSRCSEQ=B.FSEQ AND A.FSRCROWID<>B.FENTRYID AND C.FBYVERIFY<>2 AND C.FBILLNO='应付单号' --2.2 更新当前单据所在核销记录分录的的源单内码 UPDATE A SET A.FSRCROWID=B.FSRCROWIDNEW FROM T_AP_PAYMATCHLOGENTRY A INNER JOIN #TEMP1 B ON A.FENTRYID=B.FENTRYID --2.3 更新目标单据所在核销记录分录的目标单据内码 UPDATE A SET A.FTARGETENTRYID=B.FSRCROWIDNEW FROM T_AP_PAYMATCHLOGENTRY A INNER JOIN #TEMP1 B ON A.FID=B.FID AND A.FTARGETBILLNO=B.FSRCBILLNO AND A.FTARGETENTRYID=B.FSRCROWID --3. 修复应付单核销字段 --3.1 修复应付单已核销金额 SELECT A.FBILLNO 单据编号,A.FDATE,A.FSETACCOUNTTYPE 立账类型,A.FWRITTENOFFSTATUS 付款核销状态头,B.FENTRYID,B.FPAYAMOUNTFOR 应付金额,B.FPAYAMOUNT,B.FWRITTENOFFSTATUS 核销状态, B.FWRITTENOFFAMOUNTFOR 已核销金额,B.FWRITTENOFFAMOUNT 已核销金额本,B.FRELATEHADPAYAMOUNT 付退款关联金额,B.FNOTVERIFICATEAMOUNT 未核销金额,ISNULL(C.FCURWRITTENOFFAMOUNTFOR,0) 核销记录已核销金额,ISNULL(C.FCURWRITTENOFFAMOUNT,0) 记录已核销金额本 --UPDATE B SET B.FWRITTENOFFAMOUNTFOR=ISNULL(C.FCURWRITTENOFFAMOUNTFOR,0),B.FWRITTENOFFAMOUNT=ISNULL(C.FCURWRITTENOFFAMOUNT,0),B.FRELATEHADPAYAMOUNT=ISNULL(C.FCURWRITTENOFFAMOUNTFOR,0),FNOTVERIFICATEAMOUNT=FPAYAMOUNTFOR-ISNULL(C.FCURWRITTENOFFAMOUNTFOR,0) FROM T_AP_PAYABLE A LEFT JOIN T_AP_PAYABLEPLAN B ON A.FID=B.FID LEFT JOIN ( SELECT FSRCBILLNO,FSRCBILLID,FSRCROWID,SUM(FCURWRITTENOFFAMOUNTFOR) FCURWRITTENOFFAMOUNTFOR,SUM(FCURWRITTENOFFAMOUNT) FCURWRITTENOFFAMOUNT FROM ( SELECT FSRCBILLNO,FSRCBILLID,FSRCROWID,SUM(FCURWRITTENOFFAMOUNTFOR) FCURWRITTENOFFAMOUNTFOR,SUM(FCURWRITTENOFFAMOUNT) FCURWRITTENOFFAMOUNT FROM T_AP_PAYMATCHLOGENTRY WHERE FSOURCEFROMID='AP_Payable' GROUP BY FSRCBILLNO,FSRCBILLID,FSRCROWID UNION ALL (SELECT FSRCBILLNO,FSRCBILLID,FSRCROWID,SUM(FCURWRITTENOFFAMOUNTFOR) FCURWRITTENOFFAMOUNTFOR,SUM(FCURWRITTENOFFAMOUNT) FCURWRITTENOFFAMOUNT FROM T_AR_RECMACTHLOGENTRY WHERE FSOURCEFROMID='AP_Payable' GROUP BY FSRCBILLNO,FSRCBILLID,FSRCROWID)) A GROUP BY FSRCBILLNO,FSRCBILLID,FSRCROWID ) C ON C.FSRCBILLNO=A.FBILLNO AND FSRCBILLID=A.FID AND FSRCROWID=B.FENTRYID WHERE A.FBILLNO IN (SELECT FSRCBILLNO FROM #TEMP1) AND FWRITTENOFFAMOUNTFOR<>ISNULL(C.FCURWRITTENOFFAMOUNTFOR,0) --3.2 修复应付单核销状态 A空/B部分/C完全 --3.2.1 修复计划付款核销状态 SELECT A.FID,A.FWRITTENOFFSTATUS 核销状态旧,CASE WHEN FWRITTENOFFAMOUNTFOR=FPAYAMOUNTFOR THEN 'C' WHEN FWRITTENOFFAMOUNTFOR=0 THEN 'A' ELSE 'B' END 核销状态新,FPAYAMOUNTFOR 应付金额,FWRITTENOFFAMOUNTFOR 已核销金额原币 --UPDATE A SET A.FWRITTENOFFSTATUS=CASE WHEN FWRITTENOFFAMOUNTFOR=FPAYAMOUNTFOR THEN 'C' WHEN FWRITTENOFFAMOUNTFOR=0 THEN 'A' ELSE 'B' END FROM T_AP_PAYABLEPLAN A WHERE CASE WHEN A.FWRITTENOFFSTATUS='' THEN 'A' ELSE FWRITTENOFFSTATUS END <>CASE WHEN FWRITTENOFFAMOUNTFOR=FPAYAMOUNTFOR AND FPAYAMOUNTFOR<>0 THEN 'C' WHEN FWRITTENOFFAMOUNTFOR=0 THEN 'A' ELSE 'B' END AND A.FPAYAMOUNTFOR<>0 AND A.FID IN (SELECT FSRCBILLID FROM #TEMP1) --3.2.2 修复单据头付款核销状态 SELECT A.FBILLNO 单据编号,A.FID,A.FWRITTENOFFSTATUS 核销状态旧,CASE WHEN NOT EXISTS(SELECT 1 FROM T_AP_PAYABLEPLAN WHERE FID=A.FID AND FWRITTENOFFSTATUS IN (' ','A','B')) THEN 'C' WHEN NOT EXISTS(SELECT 1 FROM T_AP_PAYABLEPLAN WHERE FID=A.FID AND FWRITTENOFFSTATUS IN ('C','B')) THEN 'A' ELSE 'B' END NEW --UPDATE A SET A.FWRITTENOFFSTATUS=CASE WHEN NOT EXISTS(SELECT 1 FROM T_AP_PAYABLEPLAN WHERE FID=A.FID AND FWRITTENOFFSTATUS IN (' ','A','B')) THEN 'C' WHEN NOT EXISTS(SELECT 1 FROM T_AP_PAYABLEPLAN WHERE FID=A.FID AND FWRITTENOFFSTATUS IN ('C','B')) THEN 'A' ELSE 'B' END FROM T_AP_PAYABLE A WHERE A.FALLAMOUNTFOR<>0 AND A.FWRITTENOFFSTATUS<>CASE WHEN NOT EXISTS(SELECT 1 FROM T_AP_PAYABLEPLAN WHERE FID=A.FID AND FWRITTENOFFSTATUS IN (' ','A','B')) THEN 'C' WHEN NOT EXISTS(SELECT 1 FROM T_AP_PAYABLEPLAN WHERE FID=A.FID AND FWRITTENOFFSTATUS IN ('C','B')) THEN 'A' ELSE 'B' END AND A.FDOCUMENTSTATUS<>'Z' AND A.FID IN (SELECT FSRCBILLID FROM #TEMP1)
注意:如果单据修改前后均参与过核销,那么修复数据后可能出现单据超额核销的情况,则参考1.3超额核销处理步骤处理。
1.3 单据超额核销
说明:单据已核销金额大于应付金额,一般来说单据不会超额核销,如果核销后通过二开改小金额或有上述1.2情况修复数据后会出现超额核销的数据
数据处理:查询超额核销的计划行,将最后一笔核销记录反核销
--1. 查询超额核销的应付单 并插入临时表 SELECT A.FBILLNO 单据编号,A.FDATE 业务日期,A.FSETACCOUNTTYPE 立账类型,A.FID,B.FENTRYID,B.FSEQ 计划序号,B.FPAYAMOUNTFOR 应付金额原币,B.FPAYAMOUNT 应付金额本位币,B.FWRITTENOFFAMOUNTFOR 已核销金额原币,B.FWRITTENOFFAMOUNT 已核销金额本位币,B.FNOTVERIFICATEAMOUNT 未核销金额,B.FRELATEHADPAYAMOUNT 付退款关联金额 INTO #TEMP1 FROM T_AP_PAYABLE A LEFT JOIN T_AP_PAYABLEPLAN B ON A.FID=B.FID WHERE B.FPAYAMOUNTFOR>0 AND B.FWRITTENOFFAMOUNTFOR>FPAYAMOUNTFOR OR B.FPAYAMOUNTFOR<0 AND B.FWRITTENOFFAMOUNTFOR<FPAYAMOUNTFOR --2. 查询最后一笔核销记录 SELECT * FROM ( SELECT ROW_NUMBER() OVER(PARTITION BY FSRCBILLID,FSRCROWID ORDER BY A.核销日期 DESC,A.核销序号 DESC) RN ,A.* FROM ( SELECT '应收收款核销记录' 核销类型, BB.FVERIFYDATE 核销日期,AA.FID 核销序号,AA.FENTRYID,AA.FSRCBILLID ,FSRCROWID,FSRCBILLNO 单据编号,FSOURCEFROMID 源单类型, FCURWRITTENOFFAMOUNTFOR 本次核销金额原币,FCURWRITTENOFFAMOUNT 本次核销金额本位币 FROM T_AR_RECMACTHLOGENTRY AA LEFT JOIN T_AR_RECMACTHLOG BB ON AA.FID=BB.FID WHERE FSOURCEFROMID='AP_Payable' UNION ALL SELECT '应付付款核销记录' FTYPE, BB.FVERIFYDATE, AA.FID,AA.FENTRYID,AA.FSRCBILLID,FSRCROWID,FSRCBILLNO,FSOURCEFROMID, FCURWRITTENOFFAMOUNTFOR,FCURWRITTENOFFAMOUNT FROM T_AP_PAYMATCHLOGENTRY AA LEFT JOIN T_AP_PAYMATCHLOG BB ON AA.FID=BB.FID WHERE FSOURCEFROMID='AP_Payable' ) A INNER JOIN #TEMP1 B ON A.FSRCBILLID=B.FID AND A.FSRCROWID=B.FENTRYID ) A WHERE RN=1 --3. 拿到核销序号前台操作反核销
注意:如果反核销操作报错应付单关联金额小于已核销金额,可用上述1.2情况中的3.1语句先对应付单已核销金额及关联金额做数据修复再操作反核销
1.4 包含暂估应付场景
以下数据修复均建议提单到金蝶总部处理
1.4.1 付款核销记录目标单据内码异常为0 或 与实际冲回单计划内码不匹配
数据修复方案:修复暂估单的目标单据内码
1.4.2 暂估已下推财务,但暂估冲回单单边核销了,暂估单没有付款核销记录
数据修复方案:补暂估单的核销记录
1.4.3 暂估冲回单的计划和暂估单计划出现多对一的情况(勾选仅包含计入成本金额场景)
数据修复方案:修复核销记录,将暂估单的核销记录拆分成多行
1.5 核销记录存在数据异常
1.5.1 核销记录有单据体,但是没有单据头数据
说明:可能是有误删除数据的情况
--查询有单据体但无单据头的核销记录 SELECT DISTINCT FID 核销序号 FROM T_AP_PAYMATCHLOGENTRY A WHERE NOT EXISTS (SELECT 1 FROM T_AP_PAYMATCHLOG WHERE FID=A.FID) --插入核销记录单据头 INSERT INTO T_AP_PAYMATCHLOG(FMATCHFIELDNAME,FBILLTYPEID,FISJOINMATCH,FBILLNO,FISACTIVATION,FID,FVERIFYSEQ,FVERIFIERID,FVERIFYDATE,FCOMPUTEID,FJOININFO,FISCLEARINNER,FREPORTDATE,FMATCHMETHODID,FBILLMATCHLOGID) SELECT DISTINCT 'FMatchAmount' FMATCHFIELDNAME ,'' FBILLTYPEID,0 FISJOINMATCH,A.FID FBILLNO,1 FISACTIVATION,A.FID FID,A.FID FVERIFYSEQ,(SELECT FUSERID FROM T_SEC_USER WHERE FNAME='核销人用户名称') FVERIFIERID,'核销日期' FVERIFYDATE, ' ' FCOMPUTEID,' ' FJOININFO,'F' FISCLEARINNER,(SELECT MAX(FSRCDATE) FROM T_AP_PAYMATCHLOGENTRY WHERE FID=A.FID ) FREPORTDATE,20 FMATCHMETHODID,0 FBILLMATCHLOGID FROM T_AP_PAYMATCHLOGENTRY A WHERE NOT EXISTS (SELECT 1 FROM T_AP_PAYMATCHLOG WHERE FID=A.FID) AND FID=100001
1.5.2 是否生效标识为否,需要更新为是
说明:暂未找出异常原因
--将未生效的核销记录更新为生效 UPDATE T_AP_PAYMATCHLOG SET FISACTIVATION=1 WHERE FISACTIVATION=0
2. 单据已下推付款单仍显示在报表
原因:已下推但未自动核销
参考原因及处理方案:应付单下推付款单未自动核销排查方向(附数据修复方案)
3. 余额和明细表不一致
排查思路:
(1) 定位到最早出现差异的期间或业务日期,按启用日期-当前日期,二分法方式查询余额,最好能定位到具体的日期,哪一天开始出现差异。
(2) 查询付款核销记录中“账龄取数用日期”为异常日期的核销记录,如果最多只能定位到异常期间,那就查那个期间的核销,看是否存在如下异常的数据。
3.1 单据已经被删除,核销记录还在
--付款单 SELECT FID 核销序号,FENTRYID,FSRCBILLNO 单据编号,FTARGETBILLNO 目标单据编码,FCURWRITTENOFFAMOUNTFOR 本次核销金额 FROM T_AP_PAYMATCHLOGENTRY A WHERE FSOURCEFROMID='AP_PAYBILL' AND NOT EXISTS (SELECT 1 FROM T_AP_PAYBILL WHERE FID=A.FSRCBILLID) --应付单 SELECT FID 核销序号,FENTRYID,FSRCBILLNO 单据编号,FTARGETBILLNO 目标单据编码,FCURWRITTENOFFAMOUNTFOR 本次核销金额 FROM T_AP_PAYMATCHLOGENTRY A WHERE FSOURCEFROMID='AP_Payable' AND NOT EXISTS (SELECT 1 FROM T_AP_PAYABLE WHERE FID=A.FSRCBILLID) --付款退款单 SELECT FID 核销序号,FENTRYID,FSRCBILLNO 单据编号,FTARGETBILLNO 目标单据编码,FCURWRITTENOFFAMOUNTFOR 本次核销金额 FROM T_AP_PAYMATCHLOGENTRY A WHERE FSOURCEFROMID='AP_REFUNDBILL' AND NOT EXISTS (SELECT 1 FROM T_AP_REFUNDBILL WHERE FID=A.FSRCBILLID) --其他应付单 SELECT FID 核销序号,FENTRYID,FSRCBILLNO 单据编号,FTARGETBILLNO 目标单据编码,FCURWRITTENOFFAMOUNTFOR 本次核销金额 FROM T_AP_PAYMATCHLOGENTRY A WHERE FSOURCEFROMID='AP_OtherPayable' AND NOT EXISTS (SELECT 1 FROM T_AP_OTHERPAYABLE WHERE FID=A.FSRCBILLID) --应付核销单 SELECT FID 核销序号,FENTRYID,FSRCBILLNO 单据编号,FTARGETBILLNO 目标单据编码,FCURWRITTENOFFAMOUNTFOR 本次核销金额 FROM T_AP_PAYMATCHLOGENTRY A WHERE FSOURCEFROMID='AP_Match' AND NOT EXISTS (SELECT 1 FROM T_AP_MATCK WHERE FID=A.FSRCBILLID)
处理方案:将异常核销记录反核销(由于有行分录单据已经不存在了,所以点击反核销可能会没反应或报错单据已经不存在)
3.2 单据付款计划金额和明细或单据头不匹配
批量查询sql:
--应付单 SELECT A.FBILLNO 单据编号,A.FALLAMOUNTFOR 单据头价税合计,B.FALLAMOUNTFOR 明细价税合计汇总,C.FPAYAMOUNTFOR 计划应付金额汇总 FROM T_AP_PAYABLE A LEFT JOIN (SELECT FID,SUM(FALLAMOUNTFOR) FALLAMOUNTFOR FROM T_AP_PAYABLEENTRY GROUP BY FID) B ON A.FID=B.FID LEFT JOIN (SELECT FID,SUM(FPAYAMOUNTFOR) FPAYAMOUNTFOR FROM T_AP_PAYABLEPLAN GROUP BY FID) C ON A.FID=C.FID WHERE A.FALLAMOUNTFOR<>B.FALLAMOUNTFOR OR A.FALLAMOUNTFOR<>C.FPAYAMOUNTFOR --其他应付单 SELECT A.FBILLNO 单据编号,A.FDATE 业务日期,A.FTOTALAMOUNTFOR 单据头总金额,A.FTOTALAMOUNT 单据头总金额本位币,FNOTSETTLEAMOUNTFOR 单据头未借款金额,FNOTSETTLEAMOUNT 单据头未借款金额本位币, FNOTAXAMOUNT 单据头不含税金额本位币,FTAXAMOUNT 单据头税额本位币, (SELECT SUM(FTOTALAMOUNTFOR) FROM T_AP_OTHERPAYABLEENTRY WHERE FID=A.FID) 明细总金额, (SELECT SUM(FTOTALAMOUNT) FROM T_AP_OTHERPAYABLEENTRY WHERE FID=A.FID) 明细总金额本位币, (SELECT SUM(FNOTSETTLEAMOUNTFOR) FROM T_AP_OTHERPAYABLEENTRY WHERE FID=A.FID) 明细未借款金额, (SELECT SUM(FNOTSETTLEAMOUNT) FROM T_AP_OTHERPAYABLEENTRY WHERE FID=A.FID) 明细未借款金额本位币, (SELECT SUM(FNOTAXAMOUNT) FROM T_AP_OTHERPAYABLEENTRY WHERE FID=A.FID) 明细不含税金额本位币, (SELECT SUM(FTAXAMOUNT) FROM T_AP_OTHERPAYABLEENTRY WHERE FID=A.FID) 明细税额本位币 FROM T_AP_OTHERPAYABLE A WHERE FTOTALAMOUNTFOR<>(SELECT SUM(FTOTALAMOUNTFOR) FROM T_AP_OTHERPAYABLEENTRY WHERE FID=A.FID) OR FTOTALAMOUNT<>(SELECT SUM(FTOTALAMOUNT) FROM T_AP_OTHERPAYABLEENTRY WHERE FID=A.FID)
处理方案:修复异常分录金额,包含原币和本位币字段,修复前要注意观察已核销金额字段,避免修复后出现超额核销的情况。
3.3 包含预付余额不一致
原因:应付单和付款单核销往来单位不一致
说明:往来单位不一致只能特殊核销,历史版本自动核销未校验单位是否一致,所以可能会出现往来单位不一致又自动核销的情况
处理方案:将异常核销记录反核销
自动核销记录反核销方法请参考:自动核销记录如何操作反核销?
批量查询此类核销记录sql:
SELECT T.FID 核销序号 FROM ( SELECT DISTINCT A.FID,A.FMASTERID FROM ( --SELECT A.FID 核销序号,A.FSRCBILLNO 单据编号,A.FTARGETBILLNO 目标单据编号,A.FCONTACTUNITTYPE 往来单位类型,A.FCONTACTUNIT 往来单位内码,A.FMASTERID,A.FSETTLEORGID 结算组织 SELECT A.FID,A.FENTRYID,A.FSRCBILLNO,A.FTARGETBILLNO,A.FCONTACTUNITTYPE,A.FCONTACTUNIT,V.FMASTERID,A.FSETTLEORGID FROM T_AP_PAYMATCHLOGENTRY A LEFT JOIN V_FIN_CONTACTTYPE V ON A.FCONTACTUNIT=V.FITEMID ) A LEFT JOIN T_AP_PAYMATCHLOG B ON A.FID=B.FID WHERE B.FMATCHMETHODID NOT IN (40,30,38) --核销方式不为转销/特殊核销/外部特殊核销 ) T GROUP BY T.FID HAVING COUNT(1)>1
3.4 不包含预付或仅显示预付 余额不一致
原因:付款单和退款单付款用途不一致,一个为预付款一个为采购付款,且未产生核销单
说明:采购付款和预付款核销需要产生核销单的,但标准产品预设未勾选产生核销单,需要手工修改下配置
是否产生核销单配置路径:
核销单据配置菜单发布参考:BOS设计器--菜单栏发布--发布到主控台--选择一个模块后点击新增--业务对象选择“核销单据配置”
处理方案:将异常核销记录反核销,配置产生核销单后重新手工核销
批量查询此类核销记录sql:
SELECT A.FID 核销序号,FENTRYID,A.FSETTLEORGID,A.FCONTACTUNIT,B.FNUMBER 供应商编码,FSOURCEFROMID 源单类型,A.FSRCBILLNO 源单编号,A.FSRCBILLID,A.FSRCROWID,A.FPURPOSEID 付款用途,A.FTARGETFROMID 目标单据类型,A.FTARGETBILLNO 目标单据编号,A.FTARGETBILLID ,FCURWRITTENOFFAMOUNTFOR 本次核销金额,C.FISJOINMATCH 是否关联核销 FROM T_AP_PAYMATCHLOGENTRY A LEFT JOIN T_BD_SUPPLIER B ON A.FCONTACTUNIT=B.FSUPPLIERID LEFT JOIN T_AP_PAYMATCHLOG C ON A.FID=C.FID WHERE A.FID IN( SELECT FID FROM T_AP_PAYMATCHLOGENTRY A WHERE UPPER(A.FSOURCEFROMID)='AP_PAYBILL' AND FPURPOSEID=20018 AND EXISTS (SELECT 1 FROM T_AP_PAYMATCHLOGENTRY WHERE FID=A.FID AND UPPER(FSOURCEFROMID)='AP_REFUNDBILL' AND FPURPOSEID=20017) OR UPPER(A.FSOURCEFROMID)='AP_PAYBILL' AND FPURPOSEID=20017 AND EXISTS (SELECT 1 FROM T_AP_PAYMATCHLOGENTRY WHERE FID=A.FID AND UPPER(FSOURCEFROMID)='AP_REFUNDBILL' AND FPURPOSEID=20018) )
3.5 核销关系不正确
说明:比如正数应收单和正数其他应收单核销,两个都是借方单据,无法核销
处理方案:将异常核销记录反核销
4. 暂估单未下推财务,勾选包含暂估应付且仅包含计入成本金额不显示,不勾选仅显示计入成本就正常显示
原因:单据计划和付款条件不匹配,比如付款条件为按物料明细付款,但付款计划未携带订单及物料等关键信息
数据分析:
数据修复方案:修复计划的订单号和订单分录内码与明细一致
SELECT * FROM T_AP_PAYABLE WHERE FBILLNO='AP00000123' --单据头 SELECT FID,FSEQ 序号,FORDERNUMBER 采购订单号,FORDERENTRYID 采购订单分录内码,FMATERIALID 物料内码,FALLAMOUNTFOR 价税合计 FROM T_AP_PAYABLEENTRY WHERE FID=100185 --明细 SELECT FID,FSEQ 序号,FPURCHASEORDERNO 采购订单号,FPAYABLEENTRYID 采购订单分录内码,FMATERIALID 物料内码,FPAYAMOUNTFOR 应付金额 FROM T_AP_PAYABLEPLAN WHERE FID=100185 --付款计划
应收/应付款账龄分析表问题汇总(附数据修复方案)-下
应收应付sql汇总.zip(6.89KB)
推荐阅读