SAP FI 系列 008: 会计科目设置要点总结

在设置会计科目表的时候,对科目清单中的科目,需要有一个严谨的设计,既要考虑账务处理的要求,也要满足 SAP 技术上的要求。本篇总结会计科目在 SAP 技术上的一些要点。

会计科目设置时考虑因素

从技术上来说,要考虑如下因素:

  • 哪些科目需要设置未清项目管理 (open item manangement)
  • 哪些科目须设为自动过账科目
  • 字段状态码,为减少工作量,尽可能使用 SAP 标准字段状态码,比如 G045 - GR/IR,G067 - 统驭科目
  • 损益科目中,哪些科目需要设为成本要素?哪些科目不能设为成本要素科目?

重要科目说明

固定资产清理科目

SAP 要求固定资产清理科目( Fixed asset clearing) 为损益科目,但不能为成本要素。按中国会计科目体系,固定资产清理科目为资产负债表科目,与 SAP 系统的要求不一致。

解决办法:

  • 第一个方法:按 SAP 要求,将固定资产清理科目作为损益科目。这种方法有两个问题,一般情况下损益科目与资产类科目的编号范围不一致,这样固定资产清理科目放在损益科目中,与固定资产科目不在一起。第二个问题是,损益科目每年结转的时候,科目余额结转至留存收益。尽管固定资产清理是一个中间科目,但这也会导致问题。所以实务中并不多见。
  • 第二个方法:将固定资产清理科目作为资产负债表科目,但需要在创建科目钱,用 OBA5 将 AC305/ AC306 消息改为警告,创建完成之后再修改回去。

GR/IR

GR/IR 科目是 SAP 用于采购收货和发票校验的中间科目,该科目有如下要求:

  • 本位币余额
  • Open item management
  • 系统自动记账
  • SAP 提供了一个专门字段状态变式 G045

生产成本

西方会计为损益科目,中国一般设为资产负债表科目。

生产成本-在制品转出

SAP 生产成本科目是作为损益科目的,中国一般是作为存货类科目,作为存货的一部分。生产成本-在制品转出科目用于月末结转在制品,这个科目不能设成本要素,否则月结出现错误。

不必设为成本要素的损益科目

以下科目可考虑不设成本要素:

  • 主营业务成本: 主营业务成本科目以及主营业务成本差异科目,可以不设为成本要素
  • 营业税 / 消费税 / 城建税 / 教育费附加/ 资源税等一般不设为成本要素
  • 财务费用: 一般不设成本要素
  • 固定资产减值损失: 固定资产减值损失,固定资产处置损益可以不设成本要素

会计科目清单报表

为了方便对会计科目的字段属性进行检查,我编写了如下程序对科目的重要字段进行检查。也可用于展示科目表,可供参考。

REPORT  z_cocd_gl_list.

TABLES: ska1.

* For ALV
DATA: gr_salv_table TYPE REF TO cl_salv_table.

* ALV toolbar
DATA: gr_functions TYPE REF TO cl_salv_functions_list.

* Layout settings
DATA: gr_layout TYPE REF TO cl_salv_layout,
      layout_key TYPE salv_s_layout_key.

* AVL columns
DATA: gr_columns TYPE REF TO cl_salv_columns_table,
      gr_column  TYPE REF TO cl_salv_column_table.

* Define a structure representing Company code COA
TYPES: BEGIN OF ty_coa,
        ktopl  LIKE ska1-ktopl,       " Chart of account
        bukrs  LIKE skb1-bukrs,       " Company code
        saknr  LIKE ska1-saknr,       " G/L account number
        bilkt  LIKE ska1-bilkt,       " Group account number
        altkt  LIKE skb1-altkt,       " Alternative account number
        xbilk  LIKE ska1-xbilk,       " Is B/S account
        gvtyp  LIKE ska1-gvtyp,       " Is P/L account
        ktoks  LIKE ska1-ktoks,       " Account group
        mwskz  LIKE skb1-mwskz,       " Tax category
        xmwno  LIKE skb1-xmwno,       " Indicator: Tax code is not a required field
        fstag  LIKE skb1-fstag,       " Field status group
        mitkz  LIKE skb1-mitkz,       " Is recon. account
        waers  LIKE skb1-waers,       " Currency
        xsalh  LIKE skb1-xsalh,       " Only balances in local curreny
        xintb  LIKE skb1-xintb,       " Post systematically
        xkres  LIKE skb1-xkres,       " Display line items
        xopvw  LIKE skb1-xopvw,       " Open item management
        zuawa  LIKE skb1-zuawa,       " Sort key
        txt20c LIKE skat-txt20,       " Short text in Chinese
        txt50c LIKE skat-txt50,       " Text-Chinese
        txt20e LIKE skat-txt20,       " Short text in English
        txt50e LIKE skat-txt50,       " Text-English
      END OF ty_coa.

DATA: gt_coa TYPE STANDARD TABLE OF ty_coa,
      gs_coa LIKE LINE OF gt_coa.

* Selection screen
SELECTION-SCREEN BEGIN OF BLOCK b1 WITH FRAME.

PARAMETERS: p_bukrs LIKE t001-bukrs.  " company code
SELECT-OPTIONS:
  s_saknr FOR ska1-saknr.  " account number

SELECTION-SCREEN END OF BLOCK b1.

START-OF-SELECTION.
  PERFORM get_data.
  IF NOT gt_coa IS INITIAL.
    PERFORM disp_data.
  ELSE.
    WRITE 'No data is found.'.
  ENDIF.

FORM get_data.
  DATA: l_ktopl LIKE t001-ktopl.  " chart of account ID
  DATA: ls_cocd_detail LIKE bapi0002_2.

* Get chart of account from company code
  CALL FUNCTION 'BAPI_COMPANYCODE_GETDETAIL'
    EXPORTING
      companycodeid      = p_bukrs
    IMPORTING
      companycode_detail = ls_cocd_detail.

  IF sy-subrc = 0.
    l_ktopl = ls_cocd_detail-chrt_accts.
  ENDIF.

* Get chart of account for given company code
  SELECT * INTO CORRESPONDING FIELDS OF TABLE gt_coa
    FROM ska1
    INNER JOIN skb1 ON ska1~saknr = skb1~saknr
    WHERE ska1~ktopl = l_ktopl   " chart of account
    AND   skb1~bukrs = p_bukrs   " company code
    AND   ska1~saknr IN s_saknr. " account number

* Adding languages
  LOOP AT gt_coa INTO gs_coa.
    SELECT SINGLE txt20 txt50 INTO (gs_coa-txt20c, gs_coa-txt50c)
      FROM skat
      WHERE ktopl = l_ktopl        " chart of account
      AND   saknr = gs_coa-saknr   " account number
      AND   spras = '1'.           " language for Simplified Chinese

    SELECT SINGLE txt20 txt50 INTO (gs_coa-txt20e, gs_coa-txt50e)
      FROM skat
      WHERE ktopl = l_ktopl
      AND   saknr = gs_coa-saknr
      AND spras = 'E'.  " langugae for English

    MODIFY gt_coa FROM gs_coa.
    CLEAR gs_coa.
  ENDLOOP.
ENDFORM.                    "get_data

FORM disp_data.
*  TRY.
  CALL METHOD cl_salv_table=>factory
*    EXPORTING
*      LIST_DISPLAY   = IF_SALV_C_BOOL_SAP=>FALSE
*      R_CONTAINER    =
*      CONTAINER_NAME =
    IMPORTING
      r_salv_table   = gr_salv_table
    CHANGING
      t_table        = gt_coa .
*   CATCH CX_SALV_MSG .
*  ENDTRY.

* ALV toolbar
  gr_functions = gr_salv_table->get_functions( ).
  gr_functions->set_all( ).

* ALV layout settings
  gr_layout = gr_salv_table->get_layout( ).
  layout_key-report = sy-repid.
  gr_layout->set_key( layout_key ).

  gr_layout->set_save_restriction( cl_salv_layout=>restrict_none ).

* Set column description for languages
  gr_columns = gr_salv_table->get_columns( ).

* 设置科目描述(短文)-ZH
  gr_column ?= gr_columns->get_column( 'TXT20C' ).
  gr_column->set_long_text( '科目短文(中)' ).
  gr_column->set_medium_text( '科目短文(中)' ).
  gr_column->set_short_text( '科目短文(中)' ).

* 设置科目描述-ZH
  gr_column ?= gr_columns->get_column( 'TXT50C' ).
  gr_column->set_long_text( '科目中文' ).
  gr_column->set_medium_text( '科目中文' ).
  gr_column->set_short_text( '科目中文' ).

* 设置科目描述(短文)-EN
  gr_column ?= gr_columns->get_column( 'TXT20E' ).
  gr_column->set_long_text( '科目短文(英)' ).
  gr_column->set_medium_text( '科目短文(英)' ).
  gr_column->set_short_text( '科目短文(英)' ).

* 设置科目描述-ZH
  gr_column ?= gr_columns->get_column( 'TXT50E' ).
  gr_column->set_long_text( '科目英文' ).
  gr_column->set_medium_text( '科目英文' ).
  gr_column->set_short_text( '科目英文' ).

* 显示ALV
  gr_salv_table->display( ).

ENDFORM.  
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章