瞎子摸象--年结

由于我对财务一窍不通,如果本文有贻笑大方的地方,还望各位AX财务高手不吝赐教。
业务背景
到年底了,也该清清财务账了,年结说复杂可以非常复杂,说简单也很简单,本文只涉及最简单的部分。
会计科目按其类型分类可以分为资产,负债,所有者权益,成本和损益类(2007年新的会计制度增加了 共同类,我暂时不知道这类科目是做什么用的,对于不懂的东西就不乱写了,等搞懂了再说)。
在年结的时候,逻辑其实很简单:
1.损益类科目的余额清零,余额转到本年利润科目,当年还有传说中的月结,什么表结法和账结法之类,国内习惯用账结法,国外的软件一般采用表结法,所谓的表结法就是月末什么都不做,账结法在每个月的月底把损益类科目的余额转到本年利润科目,其实在本质上是一回事。
2.其余类型的科目,资产,负债,所有者权益,成本把年底的余额转到下一年做为下一年的年初额。
综上所述,自然地把会计科目分为两类,损益类把余额放到本年利润,其余类型的科目余额直接转为自己的期初。
操作步骤:
下面介绍一下在AX里应该怎么做年结的动作:
1.设置总账参数
操作路径:
总账->设置->参数设置

选择 在结转期间删除年末结转交易记录 和 必须填写凭证号。这里暂时不介绍这几个参数是做什么用的,本文后面在介绍代码的时候会一一介绍这几个参数的作用。国内实施的时候一般是这么选择的,所以一般情况下这么选就OK了。
2.运行年结
当然年结是个很复杂的过程,要处理一些账面上的东西,这里只是简单的介绍在AX里的操作步骤而已,在操作这个之前先做好准备工作。当然AX的年结动作相当简单,并且是可以反复运行的,所以也没什么大碍。
总账->期间->会计年度关帐->期初交易记录

结束日期 选择 会计期间的最后一天,如果不是最后一天,系统会提示的。资产负债科目选择 结算->未结算,年结的结转科目 选择 本年利润,输入一个凭证号。如果想在完成后显示生成的交易,则选中 打印创建的交易记录。
选择完成后点击确定即可。
代码分析
接下来我们看一看,AX处理年结的代码。
由于业务本身的逻辑很简单,AX处理年结的代码也极其简单,只用了一个继承自RunbaseBatch的类LedgerTransferOpening来处理所有的事情。先介绍一下AX中跟年结有关的基本概念:
1.科目类型
会计科目对应的表LedgerTable的字段AccountPlType来表示科目类型,正如前面业务背景部分提到的,科目类型在年结的时候分成两种情况来处理,AX在实现的时候必然也要考虑这一点。AccountPlType的类型是枚举类型LedgerAccountType,该枚举类型共有如下几个值:
AccountOperations 损益
AccountRevenue 收入
AccountCost 成本
AccountStatus 所有者权益
AccountActive 资产
AccountLiable 负债
Common 共同
当然后面还有标题,页面标题,还有合计 等,这些科目由于并不发生交易,所以在年结的时候不会处理它们。在前面介绍会计科目类型的时候,并没有 收入 类型的科目,所以这个应该也不需要处理。对于损益类科目,前面介绍的,这些科目的余额应该过账到 本年利润。剩下的几个 成本,所有者权益,资产和负债应该直接转到下一年的年初。
2.期间代码
为了区别年结时生成的交易和正常发生的交易,AX用了一个枚举类型PeriodCode来不同的交易类型。这个枚举类型有如下值:
Opening 开始日期
这个翻译有些问题,不管怎么样翻译成开始日期总还是有些别扭,无所谓了,我们只要知道在什么情况下会生成这种类型的交易就可以了。前面介绍业务背景的时候提到过,要将余额转到下一年,这势必要生成一个期初交易凭证,OK,这个期初交易凭证的类型就是Opening的,只有在年结的时候才会生成这种类型的交易。
Regular 正常
这个就不用解释了,在年中生成的所有的交易,类型都是 正常 的。
Closing  结束日期
我们前面介绍参数设定的时候,有一个参数我们是没有选择的--在结转期间创建期末交易记录。这个参数在国内一般不使用。它会将本年的余额借贷相反冲掉,如果我们没有选择那个选项,当然也就不会有Closing类型的交易出现了。
3.转账方法
前面介绍年结的操作步骤的时候,其中有一个参数 转账方法 资产负债类科目,我们选择了 结算->未结算,对应一个枚举类型OpeningMethod,有两个选项:
Reset                         重置
ClosingToOpening        结算->未结算
这两个选项怎么解释那?通过看代码,我们可以看出来端倪:
Reset实际上就是要把自己的余额清零,然后把余额转移到其他科目上去,怎么算清零?很明显,对于某个科目,如果不把这个科目的余额结转到自己身上,而是转移到其他科目上,这就是清零了,因为在这个科目本身上没有生成Opening类型的交易,在下一年查询该科目的余额时,就查不到该科目上一年度的余额了,这个恰好就是损益类科目的逻辑。
ClosingToOpening的意思是把余额还转移到自己身上,对于非损益类科目,按照前面说的逻辑,应该选择这个选项。
对于损益类科目,AX是没有提供选项的,也就是说它都会过账到 本年利润科目。对于资产类科目,它提供了一个选择,可以把余额转到自己身上,也可以转到本年利润科目。但是很明显,我们一般也不会这么选择。
4.期初科目
会计科目表->常规(页签)有一个 期初科目的选项。

这个选项实际上提供了一种灵活性,虽然这种灵活性在大多数情况下并不使用。
我们在上一节介绍了Reset和ClosingToOpening,也介绍了它的使用方法,Reset把余额转移到其他科目,ClosingToOpening把余额转移到自己身上。这种分类是按照科目类型来的,损益类采用Reset,资产负债所有者权益成本类采用ClosingToOpening,如果某个科目想单独定义将余额过账到某个科目的话,就采用这个期初科目的选项。
OK,看代码吧。主要是LedgerTransferOpening的run方法:

ContractedBlock.gif ExpandedBlockStart.gif Code

                
/* Find where to place the opening amount. */
                
if (ledgerTable.AccountPlType <= LedgerAccountType::AccountCost)
                {
                    currentAccount 
= ledgerTable.Openingaccount ? ledgerTable.Openingaccount:
                                  methodOperations 
== OpeningMethod::Reset ? transferResult  : ledgerTable.AccountNum;
                }
                
else
                {
                    currentAccount 
= ledgerTable.Openingaccount ? ledgerTable.Openingaccount:
                                  methodStatus 
== OpeningMethod::Reset ? transferResult : ledgerTable.AccountNum;
                }
            }
这段代码就是决定要把余额过账到哪个科目的。
需要注意的是它把AX的科目分成了两类,小于或等于成本类科目,根据之前的介绍,包括 损益,收入和成本。但是我们成本类科目的余额是要过账到自己身上的,而这里把它等同于损益类科目了,也就是说它把成本类科目的余额转移到本年利润了。
有三个方法可以更正:
1.把成本类科目的类型改成资产类。成本类科目本来就是核算在制品的,本质上属于存货科目,所以改成资产类也无可厚非;
2.把成本类科目的期初科目都设置成自己,这样不管是Reset还是ClosingToOpening都转移到自己身上了;
3.该代码。这个有修改的代码可能就比较多了,AX的逻辑把损益,收入和成本都看成ProfitLoss科目了,所以可能要伤筋动骨。
综上所述,第一种方式应该是最合理的,我感觉AX的科目类型成本跟我们的会计科目类型 成本 应该是不同的。
从代码上看,如果没有选择 创建期末交易记录,1和2的代码路径是完全一样的,只是在创建期末交易记录的时候有所差异,国内一般不会创建期末交易记录,所以1和2两种方式也就没什么不同了,当然这只是一个财务门外汉的个人之见,不见得合理。
OK,就说写这么多了,更详细的内容,看一下run方法就可以了。

转载于:https://www.cnblogs.com/Farseer1215/archive/2009/03/01/1400745.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 要在Linux上安装xls2csv,可以使用以下命令: 1. 首先,确保你的系统已经安装了Python和pip软件包管理器。如果没有安装,可以使用以下命令安装: ``` sudo apt-get update sudo apt-get install python python-pip ``` 2. 安装xls2csv: ``` sudo pip install xls2csv ``` 3. 确认安装是否成功: ``` xls2csv --help ``` 这将显示xls2csv的使用帮助信息。如果成功安装,则可以开始使用xls2csv将Excel文件转换为CSV格式。 ### 回答2: 要在Linux系统上安装xls2csv程序,您可以按照以下步骤进行操作: 1. 打开终端窗口。 2. 使用以下命令安装xls2csv程序的依赖库: ``` sudo apt-get install catdoc ``` 这将安装catdoc程序,它是xls2csv程序的一个依赖项。 3. 下载xls2csv程序的源代码文件。您可以在xls2csv的官方网站或其他来源上找到源代码文件。 4. 解压下载的源代码文件。可以使用以下命令: ``` tar -zxvf xls2csv-<version>.tar.gz ``` <version>是您下载的源代码文件的版本号。 5. 进入解压后的目录: ``` cd xls2csv-<version> ``` 6. 编译并安装程序。可以使用以下命令进行编译和安装: ``` make sudo make install ``` 7. 现在,您已成功在Linux系统上安装了xls2csv程序。 请注意,以上步骤基于Debian或Ubuntu等基于Debian的Linux发行版。如果您使用的是其他Linux发行版,请适当修改命令和步骤。 ### 回答3: xls2csv是一种将Excel文件转换为CSV格式的工具,适用于Linux操作系统。以下是在Linux上安装xls2csv的步骤: 1. 打开终端,使用apt-get命令来安装xls2csv所依赖的库。输入以下命令并按下Enter键: ``` sudo apt-get install catdoc ``` 这将安装catdoc工具,它是xls2csv所需的一个依赖。 2. 安装完成后,我们需要下载并安装xls2csv软件本身。在终端中输入以下命令并按下Enter键: ``` wget http://www.hardtoc.com/downloads/xls2csv-1.06.tar.gz ``` 这将下载xls2csv的压缩包。 3. 解压缩刚刚下载的压缩包。输入以下命令并按下Enter键: ``` tar -zxvf xls2csv-1.06.tar.gz ``` 这将解压缩压缩包。 4. 进入解压缩后的文件夹。输入以下命令并按下Enter键: ``` cd xls2csv-1.06 ``` 5. 编译和安装xls2csv。输入以下命令并按下Enter键: ``` make sudo make install ``` 这将编译和安装xls2csv工具。 6. 现在,您可以在终端中使用xls2csv命令了。使用以下命令来将Excel文件转换为CSV格式: ``` xls2csv input.xls output.csv ``` 其中,input.xls是要转换的Excel文件的路径和文件名,output.csv是转换后的CSV文件的路径和文件名。 这样,您就成功地在Linux上安装了xls2csv工具,可以方便地将Excel文件转换为CSV格式了。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值