业务财务一体化,一文讲透
作为 IT 技术人员或者系统分析员,要帮助企业实现业务财务一体化,首先须要了解一个公司的日常财务工作是如何开展的,具体操作有哪些,同时了解公司相关业务跟财务之间的关系,才能进一步以此为基础作出明确的需求分析和系统概要设计,实现业财一体化。所以本文将按如下目录逐步讲解相关概念和实现业财一体化的过程:
目录
一、传统会计如何手工做账?
二、什么是财务系统?
三、什么是业务系统?
四、业财一体化要解决什么问题?
五、市面上有哪些业财一体化产品?
六、无远开发平台能做什么?
附、业务财务一体化 DEMO
一、传统财务会计如何手工做账?
没有财务系统(软件)时公司会计用手工记账,流程包括:
- 建立总账;首先建立账簿,登记会计账簿时,应当将会计凭证日期、编号、业务内容摘要、金额和其他有关资料逐项计入账内,做到数字准确、摘要清楚、登记及时、字迹工整。如【图 1-1】:
- 建立银行存款日记账、现金日记账;如【图 1-2】:
图 1-2
- 建立各明细分类账;
应收账款;其他应收款;预付账款;存货(包括原材料、辅助材料、周转材料、库存商品、在产品等),固定资产(含累计折旧);短期借款;应付账款;其他应付款;应交税费等。如【图 1-3】:
图 1-3
-
填制记账凭证;根据原始凭证登记记账凭证,再根据收款凭证和付款凭证登记银行存款日记账和库存现金日记账。如【图 1-4】:
图 1-4 -
将发生的经济业务内容,按明细分类在对应账户的本期发生额登记各分类账,并结出余额;如【图 1-5】:
-
将发生的经济业务内容,按汇总的金额分别登记相对应账户的本期发生额,结出余额,即 科目汇总表。即完成了账套的初始化(建账)。如【图 1-6】:
图 1-6 -
试算平衡、记完总账进行对账和结账。
-
编制财务报表:资产负债表、利润表、现金流量表等。
由上可知,财务会计的核心工作目标就是周期性(按月、季度、年)地产出财务报表(资产负债表、利润表、现金流量表)。
二、什么是财务系统?
财务系统是提供给财会人员进行财务工作的操作系统, 以替代或帮助其完成核心的财务工作目标,通常包括以下模块:
- 选择会计准则,新建账套。
- 初始化:设置科目、设置科目初始余额,保证试算平衡(即手记账时初始的总账)、设置凭证字、设置币别等。
-
凭证:凭证录入、查询、汇总;凭证录入即手记账(4)的根据原始凭证登记记账凭证;凭证录入时可选择凭证字,来区分收款凭证,付款凭证,转账凭证,数量凭证,外币凭证等。
4.账簿:根据科目初始余额和凭证,自动生成账簿:总账,明细账,现金日记账,银行日记账,数量账,往来账、多栏账等。 - 科目余额表:自动生成科目余额表,即手记账(6)科目汇总表。
- 结账:结转损益。
-
报表:设置报表公式,生成资产负债表、利润表、现金流量表。
2-1.png
相比于手工记账,财务系统将纸质化搬到了电脑上,替代大部分人工核算工作,提高了效率、准确度。区别如下表:
会计主要工作 | 手记账 | 财务软件 | 优势 |
---|---|---|---|
建账 | 手动建账簿 | 选择会计准则、自动建账套;同时设置科目初始余额 | 快捷 |
录凭证 | 手动制订凭证 | 选择科目、电脑录入 | 避免差错 |
查凭证 | 手动去查找 | 多角度自动查找 | 快速准确 |
凭证汇总 | 手动汇总 | 自动汇总 | 快速准确 |
制作明细账 | 手动核算、制订 | 自动生成 | 快速准确 |
制作总账 | 手动核算、制订 | 自动生成 | 快速准确 |
制作科目余额表 | 手动核算、制订 | 自动生成 | 快速准确 |
制作资产负债表 | 手动核算、制订 | 设置好公式后自动生成 | 快速准确 |
制作利润表 | 手动核算、制订 | 设置好公式后自动生成 | 快速准确 |
制作现金流量表 | 手动核算、制订 | 设置编制规则后自动生成 | 快速准确 |
结账 | 手动核算、试算平衡 | 结转损益、自动试算平衡 | 快速准确 |
由此可见,会计使用财务系统后,主要的工作量在于【凭证录入】。其它账簿、报表基本都是自动生成,快速且准确。在整个财务系统中,【凭证录入】是最关键的部分。
三、什么是业务系统?
业务系统即进行业务管理的信息系统。如下图,合同管理系统【图 3-1】:
图 3-1
常见的业务系统有:
- 流程管理(请假、报销、审批、考勤)
- 客户管理(跟进、拜访、留存、合同)
- 供应链和企业制造SCM(采购、合同、生产)
- 订单管理(上下架、库存、下单)
- 仓库管理(入库、出库、调拨)
- 固定资产管理(领用、退还、盘点、出借)
等等。
四、业财一体化要解决什么问题?
在没有业财一体化时,一个公司的业务员和会计是这样工作的,如【图 4-1】:
图 4-1在上图中,采购(销售)人员采购(销售)完成后,将数据录入到业务系统中;会计拿到原始凭证(采购、销售凭证后),将凭证录入到财务系统中。 此时,业务系统和财务系统是独立的,财会人员的工作即是:
- 首先需要按照规则将业务内容转换成跟财务系统严格对应的科目。
- 手工录入凭证。
由此两步操作可见,当一个公司日常的业务凭证量非常大时(比如一所上万人的全日制普通高校,一年的凭证数量在1000万以上),此两步操作且效率低且容易出错。另外会计无法对于已经录入到财务系统中的科目,反向跟踪业务发生源头,进行相关财务分析,控制业务和财务风险。
在有业财一体化时,业务和财务的工作,如【图 4-2】:
图 4-2在上图中,采购(销售)人员采购(销售)完成后,将数据录入到业务系统中,同时自动生成凭证,将业务数据同步到财务系统中;财务不需要手动转化原始凭证并录入。
业财一体化,即系统将公司各类业务和财务系统打通实现 记账自动化,业务数据自动生成财务(凭证)信息,提高信息录入效率,降低差错率,增强业务、财务分析和管控能力。业财一体化除了解放原来财务人员相关机械工作的同时,也对财务人员提出了更高的要求。业财一体化中,财务人员不再是简单的等着收单据和日常的财务记账工作,而是和业务关联度增强,跟踪和优化业务流程。把财务管理工作往前端移,把事后监督改成事前事中管控。管理层可以随时查看业务和财务数据,提升决策效率。由此产生出新的岗位管理会计、财务BP岗位等等。比如,一个管理会计,负责车间低值易耗品节约项目。可以通过分析账簿和报表,及时发现生成环节的成本问题,下车间跟班组长讨论采购策略、标准消耗,领用流程,管控方法和节约方案。提出优化方案,指导业务改进。
业务财务一体化的难点
由于业务种类繁多,即便是同样的业务,不同的公司,也会因为上下文情景不同,流程执行不同,导致业务系统的实现不同。所以,业务系统很难像财务系统一样,有一个标准化的实现。进而业务财务一体化也很难有一种标准化的方式实现。而要定制化实现业务系统以及业务财务一体化,周期长,风险大,执行难,其成本往往会大大高于纯人工记账成本。
业务财务一体化的关键点
业财一体化的关键在于,明确各种业务和会计科目的对应关系,以及在业务发生后(如销售收款),在适当时机自动生成一张包含此业务科目的凭证。这样业务数据就及时同步到了财务系统中。而明确业务和凭证(科目)的对应关系,建立在财务人员对业务足够熟悉的基础上。
五、市面业财一体化产品
六、无远开发平台能做什么
前文提到,业务系统品类繁多,有的通用模块(比如仓库管理)可以抽象普遍适用,而有的场景不可以。所以大部分企业采购市面软件时,遇到的问题可能有:
- 业务系统模块多余,有些功能不需要。
- 业务系统不符合实际流程,定制、迭代成本高、周期长。
- 业务和财务无法打通。
无远开发平台凭借其强大、便利的业务系统实现能力,通过复用模板、组件,以超低成本、超快速度实现符合自身需要的各种业务系统需求。同时保留高度灵活性,按需定制实现跟财务系统的对接和对相关费用的生命周期管控。
附、无远业务财务一体化 DEMO
本例演示合同管理系统和财务系统打通的过程,其中合同管理系统和财务系统为已经实现的系统,读者可以在模板库中获得。
-
录入一个新合同,如【图 附-1】:
图 附-1 -
确认收款时,生成凭证 。
在合同确认收款时,调用接口,自动生成一张包含 库存现金(1001)、应收票据(1121)的凭证,金额和合同金额一致。如【图 附-2】:
凭证如【图 附-3】:
图 附-3
【参考】核心实现步骤:
- 实现业务系统(以合同管理为例),找到需要转化成凭证的关键业务点,本例中为合同确认收款操作。
- 对接财务接口,从合同管理系统中在【确认收款】按钮后台JS过程中对财务系统接口发起 POST 请求:
// 财务凭证添加接口地址。
var url = 'https://xxx.com/custom-interface/add-voucher';
// 财务凭证添加接口要去的数据内容,通过查看系统对接文档取得。
var data = {
"user_id": @1-USER_ID@, // 用户id
"account_id": @1-account_id@, // 账套id
"date": @13-ACTUAL_DATE@, // 凭证日期
"ch_display_name": '记', // 凭证号
"items": [{ // 凭证明细
"abstract": "xxx", // 摘要
"code": "1001", // 科目代码
"debit": @13-AMOUNT_ACTUAL@, // 借方金额
"credit": null // 贷方金额
}, {
"abstract": "xxx",
"code": "1121",
"debit": null,
"credit": @13-AMOUNT_ACTUAL@
}]
};
var axios = require('axios');
// 发起 post 请求。
axios.post(url, data)
.then(function(res) {
...
})
.catch(function() {
...
})