1、会计凭证配置会计凭证配置例2业务范围(Business Area) 一ERP工程师死后,上帝数落对他的不满:那么多企业的ERP全被你们这些人弄的一塌糊涂,弄的现在大家都管ERP叫Enhancement&Repair Project了,天天修修补补这个那个洞洞的,太可恶了,你下地狱吧.ERP工程师甚是不服,找到阎王老兄历陈实施ERP的好处,说以前的过错完全应归咎于企业领导的对ERP的错误认识,他有办法让地府的管理更上一层楼.总之,据称后来地狱实施了ERP系统管理还真的大有改观.这下阎王高兴了到处吹嘘自己管理水平如何高明.某天李天王参观地狱,阎王醉后又在李天王面前吹,老李听了,煞是羡慕,心想天宫要
2、是也弄个ERP多好,于是他想让阎王把那ERP工程师给调到天庭上去. 阎老大当然不愿意放走人才.老李火了:说,老阎,你不答应,等俺上天后再找你算帐,俺到玉帝面前告你去.阎王咧嘴笑了:老李,你啥时开始学会瞎咋呼了,少来这套,我又不是吓大的.这年头,春风吹,战鼓擂,大家兄弟谁怕谁?我告诉你,所有的会计师都呆在俺家十八层地狱,你找谁跟俺算帐?所有的律师们也在俺这,你找谁告俺?年度变式(Fiscal Year)Tcode:OB29|OB37SAP提供了非常灵活的会计年度变式定制,比如国内企业,我们可以直接使用K4,这时候可和日历(公历)相关的变式,这个变式简单使用公历的月份做期间,12期间加4个额外的调
3、整期间,一般的说法是,对于上市公式年报未公步后可以在未来的四期间进行审计或税务等方面调整.1.调整如下操作,你输入上年第12期间的任何一天,通常可采用最后一天,然后手工输入13-16期间,注意一下,月份并不等于期间虽然在你企业可能是同一概念,比如你使用了K4,对多数外资公司似乎喜欢采用所谓的”445”之类的会计年度变式,如接下来的Z1和WL就是实例.2.有的用户希望有这样的效果,就是1-3period我希望调整项能做在13period,即4季度调整 对应13-16 period,起码我知道SAP默认似乎是不允许的,记住,调整的posting date只能是上年最后一period的某日.接下来举
4、两个比较特殊的变式,WL分53 period(一period即一周),这个period将用在销售预测和PA块等,我们需要按周做销售预测(关于销售预测详细请参考本书相关实例) 为此我们在物料的MRP3 view的Forecase requirements中,我们选择period indictor是W,Fiscal year variant是ZL.图2中的WL是跨年度的,从2006/07/02就是2007年的第1周了(这和接下来的图3,会计计帐用的年度变式相对应)如图312变式Z1确2006年的period设置,Z1是个年度相关的变式,这就是说你需要为每年设置期间的日期范围,公历2006/1/28
5、是2006年第7期间的最后一天,注意month+day表示该period的最后一天,比如2006/2/25是2006第8期间的最后一天,那从2006/01/29到2006/2/25之间的日期都属于2006年第8个期间以此类推.Z1同时又是垮年的变式,如图3-3,2006/01/01是2006年最后一个期间(第12 period)的最后一天,也就是说,从表面上看2006/07/02开始就是会计年度2007年第1期间的第一天,就想上面所说的,2006/07/29是第1期间的最后一天,我们注意到Year shift是+1 .1. SE37你可使用函数DETERMINE_PERIOD决定某日属于某个变
6、式的某个期间,如图4,测试函数(SE37初始画面的第三个图标)DATE输入2007/02/2006,VERSION即变式(你也可输入图3的Z1,多选几个DATE测试一下),我们看到period/year是001/2007.2. ZL变式用在KEPM时非常奇怪,我做的sales forecase比如是从017/2006-020/2006,可是保存在PA计划表CE2*(*是Operating concern名称)表中却成了030/2006-033/2006了,因为Z1是不是公历2005年7月就是2006会计年度的第1 period, 公历2006/07/02就是会计年度2007年第1 period
7、,所以它加上了13 week,什么玩意,系统玩这样的逻辑?3. 一般地,我们在一般总帐中多使用12+4期间,如果需要你可定义比如一个会计年度使用24个期间,这时可能需要使用所谓的扩展总帐,SAP是你可以在扩展总帐中使用不当365个期间,相信没有企业这样玩法,使用24期间你可以自定义SPL完成GL-SPL的期间映射(请参考本书的SPL部分).我突然想到一个问题,就是SAP系统的日历弄到了哪年,9999年之后,年份5位.哎,讨论这些没有意义,干咱P事,9999年咱都不知轮回了千百回,法国有位路易老大说的经典我死之后哪管TMD洪水滔天,Yeah,做人当如斯”洒脱”.上面实例我们知道SAP可以非常灵活
8、地定作各种BT的会计年度变式,接下来我们只要使用OB37将Z1分配给公司代码就可以,通常一个集团所有的公司代码最好使用同一个年度变式.会计凭证(Document)过帐期间设置(Posting Period)Tcode:SE16: V_T010O|OB52|SE16: V_001_R在此步,我们使用SE16:V_T010O定义过帐期间变式(Variant这鬼东西在SAP我们到处都可碰到),从权限和控制的角度,推荐的做法是,集团有多少个公司代码,通常我们就定义最好和公司代码同名的多少个变式,然后我们使用SE16:V_001_R将公司代码和变式一一对应.然后我们就可使用OB52对过帐期间进行控制(打
9、开或关闭)如图1-4,是过帐期间的变式名称(和公司代码同名)并分配给了公司代码,控制过帐期间变式的过帐期间也就控制了公司代码的记帐.如果你静下来仔细考虑,为什么SAP不直接就指定公司代码的过帐期间而要使用一个中间的过帐变式. 我认为这样做的目的是可以更灵活控制过帐期间,比如某集团亚太多个公司可以使用同一变式统一管理,如此而已.图1-1表示Account type,+表示所有的account type,选中的这行似乎表示公司代码5100(因为variant5100已经分配给唯一的公司代码5100了)允许所有的科目类型都允许在2005/12和2006/01期间过帐,一般的做法是为了安全只允许在当前
10、期间做帐,在月结未完成时的头几天才允许需要在上期间做调整,出了月报后立即关闭上期间.图1-3的AuGr表示授权组5100,你PFCG将OB52打开关会计期间的权限加给授权用户,同时,将change,delete等activity从一些用户组拿掉,这些用户我们只让他们有display会计期间开关情况的权限,我们只将可以真正打开和关闭期间的用户包括在授权组5100里面,使用授权对象F_BKPF_BUP可以轻易做到.并非你打开了+就真的允许了所有(SAP所有的科目除了包括我们一般意义上的总帐科目外,物料,客户,固定资产和供应商等都被看成是相关明细科目,比如原材料会计科目是总帐会计科目,所有的实际原材
11、料被当成了物料的明显科目)的科目过帐目,你做好还需要加入ADMKS Account type的允许过帐期间.以上讨论的是一般意义上的会计期间控制,SAP有这么些期间概念,物料期间(MMPV/MMPR/MMRV/OMSY),CO期间(以年为单位,OKP1|OKEQN),SPL期间等.如果物料移动显示期间错误,你需要同时检查物料和会计期间.集团公司可以设定各公司的会计期间开关只能有该公司的相关授权财务用户.会计凭证编号(Number range)FBN1定义会计凭证编号范围,注意编号有所谓的年度相关(每个会计年度都要设置编号,这样每年的编号范围可以从头开始,比如凭证类型SA的凭证编号每年度都从10
12、0000001开始)和年度无关(就是YEAR你设置一个YEAR 9999,SA凭证2005年最后一个号是100199999,2006继续下一号码是100200000)的概念,后者免去你需要每年去设置凭证编号,你可以选择使用哪种编号方式.图1-2表示当前凭证号,图1-3表示外部给号,这种编号范围在SAP也随处可见.为了节省工作量,通常期初时我比较喜欢使用OBH1 从company code 0001 copy某年的编号范围,然后使用OBH2在公司间的不同年份copy.你在上线时可能会专门使用一些自定义的凭证类型处理期初数据,可以设置和凭证编号相同的一些特殊编号范围比如ZA(Doc type ZA
13、,Number ZA是用来转科目余额的,这些number range只在当年设置就好了,以后就不再为其设置年度编号了,这样,在以后年度你错误选择ZA因为无该年的编号都过不了帐).会计凭证页头(Document Header)图1-1:Define document type(tcode:OBA7)何时我们还需要自定义doc. Type呢?我们知道doc type的一个作用就是区别凭证的用途,我注意到某些国内ERP系统只是简单地将FI doc type分个记帐转帐付帐凭证而已, 而SAP是为我们提供了足够多的doc type,通常我们可以为导入期初财务数据产生的凭证自定义类型如图2-1,ZA-Z
14、F是用来导入期初数据的.图2-3:授权组,假设doc type SA使用了授权组SA,然后我们可以根据该授权组限制某些用户只能使用某些凭证,请看接下来的实例使用授权组限制凭证类型使用,为达到目的我们将所有的凭证类型都在此设置一个比如和凭证类型相同的授权组(Authorization Group).图2-4:表示凭证用于哪些Account type,我们来假设这样一个场景,客户同时是你的供应商,你在F-53付款时同时对清一些vendor和customer的未清项,此时假设凭证类型KZ(F-53默认类型)如不允许Customer(Account type D),是清不了Customer未清项的(关
15、于vendor和customer的未清项对清请参考本书的相关实例).图2-5典型的比如doc type AF,资产折旧的选上了它就只能后台使用了.图2-6为空表示该凭证类型默认的汇率转换类型是M,你可以测试一下,OB07|OB08定义一个exch. Rate type比如Y,在此设置Y,这样外币转换就使用exch. Rate type Y了.图2-7表示该凭证类型(SA)允许公司间直接过帐,我们知道FB50的默认凭证是SA,你在FB50测试一下,Dr:company code 5100记笔费用, Cr行项目公司代码手工输入4100,付笔现金,这就叫公司间过帐,为此你必须首先使用OBYA设置公司
16、间清帐的科目才能过帐,关于公司间清帐请参考本书相关部分.图2-8除了使用凭证的validation外,我们还可以直接设置某种凭证类型过帐时必须输入Reference 字段和document header文本,不大建议如此做法,因为它是doc. Type级的,可能集团公司的某些公司代码我并不需要此功能,你不能强行就给整上去.图1-2:Validation and Substitution(Tcode:OB28|OBBH)假设你公司代码是四位数字表示,各公司代码的成本中心的前两位是参考公司代码建立的,比如company code 5100的成本中心是51*,company code 4100的co
17、st center是41*,为了防止用户在5100做成本中心消耗时输入成本中心41*或其它,我们就可以使用一个确定(validation)来防止这些错误.关于确定和退代请参考本书相关实例部分,使用GGB0|GGB1你可以看到SAP相关模块使用的所有确定和退代.你使用GCT0传输你自定的确定和退代代码.图1-3:Define Text IDs for Documents(Tcode:OBT8)在此你定义凭证header的文本ID,这个ID和line item ID(SE16: V_T053)有所不同,我们知道在记帐比如FB50,我们line item输入ID,然后会自动带出ID表示的文本来,这个
18、header ID似乎不是这么回事,SAP说这些ID在Correspondence和Payment advice info可以调用.图1-4: Document Change Rules, Document HeaderSAP默认财务凭证header字段BKPF-BKTXT和蔼BKPF-XBLNR两个字段内容是可以更改的(比如使用FB02),接下来我们也可设置凭证行项目某些字段内容是否允许修改.我们记住,并不是某些字段你在次设置了它们可以修改你就真的能修改它们的,在本篇中附送了一个可以修改绝大部分字段内容的程序.图1-5: Maximum Exchange Rate Difference某企业
19、需求,不允许财务用户在记帐时手工修改汇率,用户是这样做的,假设是FB50,跳到Details tab页,手工输入exch. Rate,或者F-02,外币记帐,直接输入汇率,然后开始记帐,就使用了手工输入的汇率了,现在需要禁止财务人员这样搞法(你说这什么世道,这样故意搞错汇率的帐也记的出来,不过话又说回来,这个世界不做点假帐的会计也不算会计了),你就可以将根据公司代码和外币类型设置最大的汇率差是0,不能有汇率差异,然后OBA5将消息F5 212设置成Error ,Ok,用户手工输入汇率不管用了,如果输入汇率和OB08定义的汇率不同就有F5 212的错误.现在的问题是,公司(本位币RMB)刚收到一
20、笔100000USD的投资款,按双方协商的汇率是8RMB=1USD,即等于增加投资800000RMB,而现在的汇率变成7.9RMB = 1USD,Ok,你限定了不能有汇率差异,手工输入汇率出现错误,哎,你又要将F5 212给折腾成警告什么的.我个人很反对不改善操作流程而滥用系统的做法.使用授权组限制凭证类型使用用户需求:财务部们做AP的用户只能使用某些凭证类型,做AR的只能使用应收相关的另一些凭证类型等,为此我们可以在所有相关的会计凭证类型中设置授权组(Tcode:OBA7,如图2-3,我为凭证类型SA定义了一授权组也叫SA(你最好不要给WE,WA,WL,因为通常你不给财务部们用户物体料相关T
21、code MB1A,MB1B,MB1C,MIGO,VL02N等就可以了.).即限制不同财务用户只能使用特定的doc type.如图3,假设我想让用户STONEF只能使用FB50和doc type SA记记帐,我们这样做(1)OBA7给一些手工记帐用的Document type比如AB加入授权组AB,KR加入KR,总之,自动过 帐的doc type WA,WL,WE的我们不加授权组.(2)PFCG建立一role,用户STONEF被加入该role(3)加入记帐用的Tcode FB50|F-02等,然后我们选择图3-2的Authorization for Document Types后在Author
22、izatoin group中输入SA到SA,现在用户STONEF就只能使用Doc type SA了.注意:SAP的权限检查的逻辑无非是使用下面的代码:authority-check object F_BKPF_BLA “凭证类型的授权对象 id ACTVT field _actvt “Activity用来限制用户的行为比如是否可新建修改删除 id BRGRU field i_brgru. ”这个就是传说中的授权组回到第1步,OBA7给所有手工可能使用的doc type加上授权组,这步是关键.假设只有Doc type SA加了授权组SA,然后在图3-3加入的doc. Type的授权组是From
23、SA to SA,很好,F-02你可以使用所有的凭证类型,因为其它的凭证都没有设置授权组,上面的authority-check代码返回是成功的,你测试一下,给doc type AB加入一授权组AB,Ok,现在STONEF F-02时不能使用Doc type AB了.你为需要的doc type都加入授权组(推荐和doc type同名),然后在PFCG中分别加入document type的授权组,该用户就只能使用被授权使用的凭证类型了.SAP中设置权限其实非常简单,也就那些东西,并且,尽管authority-check这东西SAP不允许我们debug,我们依旧知道实际上授权对象不过是写在表USRB
24、F2中而已,如有debug权限,SAP的权限设置不过是摆设而已.凭证行项目(Line Item)图1-1:Define posting Keys(Tcode:OB41)一般地,我们不需要自定义过帐码,如果可能,最好你记住几个常用的PK码以显示你对FICO是多么的Professional.关于记帐码,有两点值一提:(1)第一点是PK码00,表示Account assignment model,我们使用FKMT定义所谓的Account assignment model,然后我们在记帐时比如F-02时可以使用它, account assignment 是一个你预定义的line item集合可以方便地
25、实际记帐时插入凭证,为此你只要选择记帐码00就行.本篇接下来会详细介绍FKMT(Acct. assignment),FBD1(Recurring Entry Document)和F-01(Sample document)在FI模块的应用.(2)第2点是记帐码的字段状态组,SAP在记帐时会要求记帐码会计科目物料移动类型(物料移动相关比如MIGO 101收货产生会计凭证,当然对于FI直接记帐和movement type就无关了)三者的字段状态组相同,否则过帐时就有错误提示.图1-23:Define Field Status Variants and Assingn to company codeT
26、code: OBC4|SE16: V_001_POBC4简单地从SAP里copy field status variant到Z001然后简单地分配给所有的集团公司代码就可以,SAP配置不就是简单地拷来拷去吗?我们知道FS00建立科目主数据时时我们会选择字段状态组,根据实际业务需要,你可能需要更改默认的字段状态组,比如你实施了Business area,相关科目在记帐时要将Business area这个Account assignment 字段显示出来你就需要OBC4更改字段状态.图1-4: Maintain Subscreens for Coding Blocks(Tcode:OXK1|OXK
27、2|OKX3)详细请参考本篇实例Field status和Coding block subscreen. 图1-5: Define Tolerance Groups(SE16: V_T043T| SE16:V_T043)你必须为SE16: V_T043T每个公司定义一个记帐Tol. Gr,否则记帐时会提示F5013的警告和F5103的错误,图3中为company code 5100设置了一Tol gr,这个用户每次最大的记帐金额是1000 RMB,并被分配给user STONEF(如图3-2),这样在company code 5100中,STONEF最大的记帐金额是1000 RMB .如有需要
28、,你可定义不同的TOl. Gr定义不同的最大记帐金额并分配给不同层次的财务人员.问题:同一个用户比如STONEF,如何设置其在不同公司的不同的最大记帐金额,比如在company code5100允许最大记帐金额是1000HKD,在5300是5000HKD等等.Field status和Coding block subscreen业务背景:用户希望在记帐时成本费用类科目(Field status group: G004)能使用自定义的Coding block字段ZZCB1(Tcode:OXK3),因为尽管使用了cost center和statistical internal order用户认为还
29、不能详细反应费用的用途.其实很简单,你只要保证OBC4,OMJJ(主要针对material account with Field status group G006),OB41(PK)码字段状态必须一致.一个实例就是MIGO收货将产生类似Dr:(PK 89)INVCr(PK:96) GR/IR的凭证,你就必须保证PK码96,字段状态组G006还有Mvtype 101的字段状态相同,对普通G/L当然就不需要考虑OMJJ的字段状态了.*关于OXK3的使用请参考本书的SPL配置相关章节.(1) 字段状态组的配置一.会计科目字段状态组的设置Tcode:OBC4(OB14),OBC5你不要问俺怎么知道t
30、code,你们不知道俺知道,谁让俺是天下独一无二的SAP屠夫呢?我不会告诉你们如何找tcode的,最近SAP AG那帮鸟人越来越给咱们一个SPRO敷衍了事了,反正我跟你们又不很熟悉,我也不会告诉你们,我还最善于在SPRO下自挂几个IMG tree玩.OBC4选取G004后,将ZZCB1,functional area,profit center等字段设置为必输(Re1.Entry)或可选(Opt. Entry),需要注意的是最好OBC4,OB41,OMJJ保持完全一致,一个实例某account assignment字段是OBC4是可选,OB41是必选,即使你输入了内容依旧有错误提示.OBC5你
31、将这field status group分配给你的公司代码.由于只是费用类科目只要再考虑PK码的字段状态就可以.*OBD4定义会计科目组的field status,OB26定义transaction的field status都只是针对会计科目操作(FS00,FSP0)的,和本主题没有关系.二.定义PK码的字段状态Tcode:OB41在此步你需要的是将PK40,50 additional account assignment的ZZCB1,Functional area,profit center设成可选.三 手工记帐(Tcode:F-02|FB50)随便选一Tcode记帐,如使用FB50,你必须
32、双击相应行项目才能看到account assignment屏幕(关于此屏幕的意思请参考本书的SPL配置篇章节)至此,ZZCB1字段就已经出现了, 你可能看到的画面如图例2-3,可惜ZZCB1字段没有default显示出来,你可能需要Click图例2-3-1的More|Mehr按钮才能弹出该字段,这时你就需要OXK1.1.什么是字段状态组?我觉得从设计上最好解释这个问题,在SPL配置里我已经说过Account assignment屏幕的作用,什么是字段状态组,简单地说就是反应科目记帐的详细情况,其实一般的财务软件都有类似功能,只是SAP高度集成着MM,SD,HR等模块,如将所有的字段都显示出来,用户界面
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1