背景:公司上线时货币配置错误,产生的凭证缺失了集团利润中心的货币金额,虽然后来配置维护正确,但是错误配置下产生的凭证,系统在清账时却报错了。原因推断是系统计算时该货币金额借贷不平。
进入F-51,点击未清项
选择凭证编号,Enter
输入凭证编号,点击“处理未清项目”
此时未分配是零
点击凭证>>模拟
凭证本币金额是USD,借贷是零
发现:两张凭证,其中一张原币是VND,另一账原币是USD,此时应付账款暂估冲账是本币。
如果两张凭证原币相同,借贷方是会有金额的。
点击“选择货币”
“本币”是USD,借贷金额与“凭证货币”一致,都是零
点击“集团货币”,发现金额是平的。
内表:ITEM_TAB 的值,可以发现应付暂估科目的金额被合并了
CURTP | WAERS | ISTAT | WRBTR |
30 | CNY |
| XX.83 |
30 | CNY |
| -XX.74 |
30 | CNY |
| 0.00 |
30 | CNY |
| 0.00 |
30 | CNY |
| XX.21 |
30 | CNY |
| -XX.30 |
点击“组货币/利润中心估价”,此时发现,货币都是CNY,但是集团利润中心评估的金额居然与集团法人的金额不一致。
虽然模拟借贷是平的,但是内表ITEM_TAB,借贷不平,差异是XX.53
CURTP | WAERS | ISTAT | WRBTR |
32 | CNY |
| XX.83 |
32 | CNY |
| 0.00 |
32 | CNY |
| XX.09 |
32 | CNY |
| -XX.09 |
32 | CNY |
| 0.00 |
32 | CNY |
| -XX.30 |
点击“重置”
点击“处理未清项”
点击“模拟总分类账”,这个相当于模拟凭证的过账
提示错误,点击 “调试器”
是提醒了个消息
F-51 清账DEBUG:
程序:SAPDF05X ,屏幕:3100 , 行数:13 代码:MODULE FUSSZEILE_BEARBEITEN_3100.
程序:SAPDF05X ,包含:DF05XI00 , 行数:1536 代码:PERFORM pai_fusszeile_bearbeiten_3100.
程序:SAPDF05X ,包含:DF05XI00 , 行数:1557 代码:PERFORM fcode_bearbeitung_3100.
程序:SAPDF05X ,包含:DF05XF02 , 行数:100(模拟凭证过账时) 代码:PERFORM open_fi_00000940.
程序:SAPDF05X ,包含:DF05XF02 , 行数:1300 代码:perform deco_LEAVE.
程序:SAPDF05X ,包含:FIN_UI_DECO_INCLUDE , 行数:309 代码:LEAVE.
程序:SAPMF05A ,屏幕:719 , 行数:79 代码:MODULE SEL_PRUEFEN.
点F7返回,从PAI跳到PBO
程序:SAPMF05A ,屏幕:700 , 行数:49 代码:MODULE FUSSZEILE_BEARBEITEN.(//PBO将要结束的地点)
程序:SAPMF05A ,包含:MF05AI00_FUSSZEILE_BEARBEITEN , 行数:8 代码:PERFORM PAI_fusszeile_bearbeiten.
程序:SAPMF05A ,包含:MF05AI00_FUSSZEILE_BEARBEITEN , 行数:67 代码:PERFORM fusszeile_verarbeiten.
程序:SAPMF05A ,包含:MF05AFF0_FUSSZEILE_VERARBEITEN , 行数:169 代码:PERFORM fcode_bearbeitung.
程序:SAPMF05A ,包含:MF05AFF0_FCODE_BEARBEITUNG , 行数:1483 代码:CALL FUNCTION 'FI_DOCUMENT_PROCESS'
程序:SAPMF05A ,包含:MF05AFF0_FCODE_BEARBEITUNG , 行数:1483 代码:CALL FUNCTION 'FI_DOCUMENT_PROCESS'
函数:FI_DOCUMENT_PROCESS , 行数:47 , 代码:PERFORM process_project.
函数:FI_DOCUMENT_PROCESS , 行数:234 ,代码: PERFORM call_splitter.
函数:FI_DOCUMENT_PROCESS , 行数:827 ,代码: CALL FUNCTION 'FAGL_RWIN_SPLIT'
函数:GL_RWIN_SPLIT , 行数:319 ,代码: CALL FUNCTION 'G_BEB_SPLIT_DOCUMENT'
函数:G_BEB_SPLIT_DOCUMENT , 行数:882 ,代码: CALL FUNCTION 'G_BEB_SPLIT_DOCUMENT_CALC'
函数:G_BEB_SPLIT_DOCUMENT_CALC , 行数:533 ,代码:PERFORM balance_document
函数组:GLT0 , 包含:LGLT0F52 ,行数: 316 , 代码:PERFORM balance_ccode
此时,传递的内表balance_tab,CURPT 显示值是 32 (集团货币,利润中心评估),WRBTR 显示值不为零
函数组:GLT0 , 包含:LGLT0F64 ,行数: 172 , 代码:PERFORM internal_error USING 'BALANCE_CCODE'.
查看内表BALANCE_TAB
货币“32集团货币,利润中心评估”时计算汇兑损益时借贷不平,
INDEX | BALANCE | SPL_PAR | CURTP | WAERS | WRBTR | HKONT | RBUKRS | SBUKRS |
1 |
|
| 30 | CNY | 0.00 |
|
|
|
2 |
|
| 32 | CNY | XX.53 |
|
|
|
3 |
|
| 00 | USD | 0.00 |
|
|
|
4 |
|
| 10 | USD | 0.00 |
|
|
|
5 |
|
| 12 | USD | 0.00 |
|
|
|
正常的凭证,此处的金额都是零。
查看配置:
进入DEV,集团100,是配置区
进入T-code,FINSC_LEDGER
点击“变更日志”
选择比较久远的开始日期
选择:FINSV_LD_CMP
可以看到“货币头寸OSL”是3,维护时间是2023年12月27号
会计凭证,过账日期是2023年12月20日
点击附加数据,可以看到缺了货币32的金额
正确的凭证应该是会有32货币的,“GC/PC 估价金额”
SE11查询视图FINSV_LD_CMP,的字段CURPOSO 对应的底表FINSC_LD_CMP
如果修改底表,FINSC_LD_CMP,把3删去
则可以抛凭证。
此时如果模拟凭证的话,“组货币/利润中心估价”会没有,这样的话借贷就不会不平,可以成功抛凭证。
抛的凭证(此处显示的是其他科目的清账,与上诉例子不完全一样)
此时抛的凭证,与原凭证一样都没有货币32的金额。