本文详述了外币报表的折算方法,包括资产负债科目、损益类科目和权益类科目的汇率应用,现金流量表三大现金流量净额及现金及现金等价物的折算方式。同时,对折算产生的差额处理进行了说明,包括在资产负债表和现金流量表中的具体列示及计算公式,并提供了系统处理方案的示例代码,用于计算和设置折算差额。
一、报表科目折算汇率
科目 | 外币报表折算方法 |
资产负债科目 | 使用期末汇率折算 |
损益类科目 | 方法一:损益类科目以当期发生额乘以当期平均汇率进行折算,折算后的累计数等于当期折算数加上上月累计折算数。 方法二:使用累计数乘以平均再平均汇率(每月平均汇率的平均)进行折算 (系统中维护计算后的平均汇率进行折算) |
权益类科目 | 使用历史汇率进行折算,直接在系统中维护折算后的历史数据 |
现金流量表 | 三大现金流量净额使用平均汇率进行折算; 期初现金及现金等价物不折算,取上年年末现金及现金等价物余额 期末现金及现金等价物余额使用期末汇率进行折算 |
折算差额处理 | 1)按照上述折算产生的资产负债表折算差额,在所有者权益项目下“其他综合收益-外币报表折算差额”列示; 2)产生的现金流量表折算差额在“汇率变动对现金的影响”单独列示 |
二、折算差额系统处理方案
1、资产负债表折算差额
资产负债表折算差额是由于资产负债类科目适用期末汇率折算,而权益类科目适用历史汇率折算,因此会产生折算差额,差额项在【其他综合收益-外币报表折算差额】。可使用系统标准的折算差公式进行设置。系统路径:系统配置——折算差设置
公式:其他综合收益-外币报表折算差额=资产总计-负债总计-权益类科目(折算后)
示例:
2、现金流量表折算差额
现金流量表折算差额是由于三大现金流量净额适用平均汇率折算,期末现金及现金等价物适用期末汇率折算,因此会产生折算差额,差额在【汇率变动对现金及现金等价物的影响】。由于期末现金及现金等价物既存在聚合关系,又需按照期末汇率计算折算差,需要配合业务规则计算折算差。
公式:汇率变动对现金及现金等价物的影响=期末现金及现金等价物-期初现金及现金等价物-经营活动产生的现金流量净额-投资活动产生的现金流量净额-筹资活动产生的现金流量净额(折算后)
示例:
①科目设置:设置期末现金及现金等价物科目,赋值用于折算
“CF1000 六、期末现金及现金等价物余额”设置不折算;
“CF1000”赋值”CF2000 期末现金及现金等价物余额”,设置期末汇率折算。
(CI04\CI05均设置不折算)
②”CF1000”赋值规则(仅示例,具体情况需根据维度调整)
let ctxScenario=ctx.S.number;
let ctxProcess=ctx.Process;
let CF00 = scope(MultiGAAP.in("PRCGAAP"),
C1.in("C1None"),C2.in("C2None"),C3.in("C3None"),C4.in("C4None"),C5.in("C5None"));
if(ctxScenario=='KRpt' )
{
runs(CF00,
"v('Account@CF2000,ChangeType@YTD,InternalCompany@ICNone,AuditTrail@EntityInput')=v('Account@CF1000,ChangeType@YTD,InternalCompany@ICNone,Process@EIRpt,AuditTrail@ATTotal')"
);
}
③折算差计算规则(仅示例,具体情况需根据维度调整)
let ctxScenario=ctx.S.number;
let ctxProcess=ctx.Process;
let CTX_EC_CODE = ctx.E.EC;
let CTX_PC_CODE = ctx.E.PC;
let CTX_BP_CODE = ctx.BP.number;
let CF2 = scope(MultiGAAP.in("PRCGAAP"),
C1.in("C1None"),C2.in("C2None"),C3.in("C3None"),C4.in("C4None"),C5.in("C5None"));
if(CTX_BP_CODE == "IRpt" && CTX_EC_CODE != CTX_PC_CODE )
{
runs(CF2,
"v('Account@CI04')=null", "v('Account@CI04,ChangeType@YTD,InternalCompany@ICNone,AuditTrail@TraDif')=v('Account@CF2000,ChangeType@YTD,InternalCompany@ICNone,AuditTrail@EntityInput,Process@IRpt')-v('Account@CI05,ChangeType@YTD,InternalCompany@ICNone,AuditTrail@EntityInput,Process@IRpt')-v('Account@CI01,ChangeType@YTD,InternalCompany@InternalCompany,AuditTrail@ATTotal,Process@IRpt')-v('Account@CI02,ChangeType@YTD,InternalCompany@InternalCompany,AuditTrail@ATTotal,Process@IRpt')-v('Account@CI03,ChangeType@YTD,InternalCompany@InternalCompany,AuditTrail@ATTotal,Process@IRpt')"
);
}
推荐阅读