K3技术(总账部分)_第1页
K3技术(总账部分)_第2页
K3技术(总账部分)_第3页
K3技术(总账部分)_第4页
K3技术(总账部分)_第5页
已阅读5页,还剩19页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、k/3技术总账部分QQ: 361473427免责声明:此文档旨在促进阅读者提高对金蝶软件的技术认知能力,阅读者可以根据文档中的技术参考意见进行自我学习。 金蝶软件(中国)公司不对本文档的有效性作出承诺,亦不对因本文档所产生的任何后果承担法律责任。文档内容可能因产品的版本更新或技术的变更作出修改,欲浏览最新版本,请通过因特网访问金蝶软件(中国) 公司网站如您是金蝶公司正式产品用户且需要技术支持,请与金蝶软件(中国)公司各分支机构或授权服务伙伴联系,联 系方式请浏览以上网站。目录第一篇k3 系统原理及数据结构分析41、总账系统411基础资料4111 科目4112 币别5113 凭证字6114 计量

2、单位6115 核算项目6116 部门7117 职员7118 现金流量项目712 初始化7121 初始化7122 试算平衡8123 结束初始化813 凭证处理9131 多项目核算9132 凭证过账10133 凭证反过账1114 现金流量12141 凭证录入与保存时有关现金流量的处理12142 现金流量表的平衡关系1215 往来处理13151 往来业务核销13152 往来对账单13153 账龄分析1316 期末处理14161 期末调汇原理14162 结转损益15163 自动转账15164 期末结账与反结账1617 账薄17171 总账取数原理17172 明细账取数原理17173 科目余额表取数原理

3、17174 核算项目分类总账取数原理18175 核算项目明细账取数原理18176 核算项目余额取数原理1818 报表与总账对账19帮 助顾客 成功 - 9 -k/3 总 账技术 支持手 册181 资产负债表19182 损益表19第二篇典型案例分析20第一篇 k3 系统原理及数据结构分析1、总账系统11基础资料111 科目涉及的表为 t_account(科目表),常用到的字段为 fitemid(科目内码),ffullname(科目全名),fquantity(是 否数量金额辅助核算), FmeasureUnitID(计量单位内码),fdetailid(核算项目内码)等等。fitemid(科目内码)

4、:一个新增加的科目,在初始数据中录入数据,后来把此科目的数据删除了,或录入了 一张此科目的凭证,又把此凭证删除了,然后想把此新增科目删除;或者是结转新账套之后,想把一些没有余额 的科目删除。这时系统提示科目已有业务发生,不能删除。其实这涉及到很多数据库表引用了 t_account(科目 表)的 Fitemid 字段,这些表总账系统中有 t_balance(余额表),t_quantitybalance(数量余额表), t_voucherentry(凭证体表),t_profitandloss(损益科目实际发生额表);固定资产系统中有 t_faexpense(费 用分配表),t_fabalexpen

5、se(用于折旧计算的费用分配表),t_facard(固定资产卡片表),t_fabalcard(卡片 变动表);工业物流中有 t_icitem(物料明细资料表);商业物流中有 com_item(商品明细资料表)。只要在这些 表中存在记录,那么相对应的科目就不能在界面中删除。Ffullname(科目全名):这个字段主要是在录入凭证,查看账薄时用到。如果在录入凭证,查看账薄时,系 统只显示科目的最明细一级的名称,那就是因为科目全名字段中的值不正确。这个问题有个相关的补丁可以解决, 补丁名叫 Repare_FullName.sql。fquantity(是否数量金额辅助核算):此字段主要是标识此科目是否

6、需要数量金额辅助核算,一般此字段与 FmeasureUnitID(计量单位内码)一起使用,当 fquantity 字段的值为 1 时,FmeasureUnitID 字段中一定也要 有相应的值,且此值与 t_measureunit 表中的 FmeasureUnitID 字段值相对应。Fdetailid(核算项目内码):这个字段的值与 t_itemdetail(核算项目横表)中的 Fdetailid 字段值相关联, 且这个值在 t_itemdetail 表中对应的以 F 开头的字段的值为“-1”。例如:113(应收账款)科目,带部门及客 户两个核算项目,假设在 t_account 表中对应的 Fd

7、etailid 字段的值为 1,那么在 t_itemdetail 表中,一定要 有 Fdetailid 值为 1 的记录,且 F1,F2 两个字段的值都为“-1”。详细讲解见凭证处理这节科目表(t_account)如图 1 所示:(图 1)核算项目横表(t_itemdetail)如图 2 所示:(图 2)112 币别涉及的表为 t_currency(币别表),常用到的字段为 FcurrencyID(币别内码),FfixRate(换算率),Fscale(小数位数)等等。FcurrencyID(币别内码):系统默认账套记账本位的 FcurrencyID 值为 1。 Fscale(小数位数):在中间

8、层账套管理中,有个地方设置本位币小数点位数,就是 FcurrencyID 值为 1 的记录对应的 Fscale 值,可以在此改动币别对应的小数位数。 注意币别表中有一条默认的零记录,此记录不能丢失,如果丢失,会导致数据错误或在操作时出现莫名其妙的错误(一般是在做凭证时不能保存,查询凭证,账表时数据不正确)。113 凭证字涉及的表为 t_vouchgroup(凭证字表),常用的字段为 FgroupID(凭证字内码),一般被 t_voucher(凭证表) 引用。114 计量单位涉及的表为 t_measureunit(计量单位表),t_unitgroup(计量单位组表),常用的字段为 Fmeasur

9、eunitid(计量单位内码),Funitgroupid(计量单位组内码),Fstandard(是否基本计量单位)。 计量单位表中有一条默认的零记录,此记录不能丢失,如果丢失,会导致数据错误在操作时出现莫名其妙的错误(一般是在做凭证时不能保存,查询凭证,账表时数据不正确)。 在一个计量单位组内,只能有一个基本计量单位,即 Funitgroupid 字段值相同的记录,只能有一条记录的Fstandard 字段值为 1。115 核算项目涉及的表为 t_item(核算项目表),t_itemclass(核算项目类别表),常用的字段为 Fitemid(核算项目内码), Fitemclassid(核算项目类

10、别内码)。在 t_item 表中,按 Fitemclassid 字段的值,把核算项目分为很多类:1 为客户,2 为部门,3 为职员,4 为物料,5 为仓库,6 为备注,7 为计量单位,8 为供应商,9 为现金流量项目。, 如果是自定义的核算项目,一般 Fitemclassid 字段的值都比较大,在对应的 t_itemclass 表中,有一个 FsqlTableName 字段,它表示每个核算项目对应的详细情况表名称。核算项目类别表(t_itemclass)如图 3 所示:(图 3)116 部门涉及的表为 t_item(核算项目表),t_department(部门详细情况表), t_item 表中

11、 fitemclassid 字段值为 “2”的所有记录,都是部门记录,在 t_department 表中记录的是最明细一级的部门信息,这两张表之间依靠 fitemid 字段相关联。117 职员涉及的表为 t_item(核算项目表), t_Emp(职员详细情况表),t_item 表中 fitemclassid 字段值为“3”的 所有记录,都是职员记录,在 t_emp 表中记录的是最明细一级的职员信息,这两张表之间依靠 fitemid 字段相关 联。118 现金流量项目涉及的表为 t_item(核算项目表),fitemclassid 字段值为“9”的所有记录,都是现金流量项目,在凭证录 入时,录入

12、现金流量项目时,就是取此表的数据。12 初始化121 初始化初始化时,涉及到的表主要是 t_balance(金额余额表),t_quantitybalance(数量余额表)和 t_profitandloss(损益类科目实际发生额情况表)。当在年初进行初始化时,余额表和数量余额表中都只有第一期的数据,且没 有本年累计数据和损益数据,即在两张余额表中,累计数字段的值为零和在损益类实际发生额表中没有记录。当 在年中进行初始化时,假如在第 6 期进行初始化,则在两张余额表中会存在第 1 期和第 6 期两期的数据,累计数 字段有数据,损益类实际发生额表中有记录。在上面所讲的三张表中,都有币别(Fcurre

13、ncyid)这个字段,假如科目带有外币核算,且外币有余额或发生 额,则在这三张表中都由币别 ID 来识别,一个科目的余额之和是由这个科目的几个币种余额之和而得;在余额 表中币别字段(Fcurrencyid)的值为零,就表示是此科目的综合本位币记录。一个科目下所有币别余额之和等 于此科目币别字段为零值的记录的余额,所有币别发生额字段之和等于币别字段为零值的记录的发生额。在上面所讲的三张表中,也都有核算项目(Fdetailid)这个字段,如果某个科目下挂核算项目,且核算项目 有余额或发生额,那么在这三张表中都由 Fdetailid 字段的值来反映。Fdetailid 字段的值为 0,则是此科目所

14、有核算项目之和的记录。(如图 4)第一条记录 Fdetailid,Fcurrencyid 字段的值都为 0,表示这条记录是此科目所有币别所有核算项目之和的 记录,第二条记录 Fdetailid 字段值为 0,Fcurrencyid 字段值为 1,表示是所有币别为本位币的所有核算项目 的之和的记录,依次类推。(图 4)122 试算平衡平衡的标准是:当前期间的综合本位币科目借方余额合计等于贷方余额合计,借方累计发生合计等于贷方累 计发生额合计,即汇总 t_Balance 表中 FcurrencyID=0 的启用期间数据。下面这段 SQL 语句是检查余额表中的余 额是否平衡:select b.fdc

15、,sum(a.fbeginbalance) from t_balance a join t_account b on a.faccountid=b.faccountid where a.fdetailid=0 and a.fcurrencyid=0 and b.fdetail=1 group by b.fdc123 结束初始化由于月末处理需要,结束初始化后,系统将自动更新表 t_Subsys(新增或更新一条记录),同时更新 t_SystemProfile 表中 Fcategory = GL, Fkey = InitClosed 对应的 Fvalue=1,初始化完成。13 凭证处理131 多项目

16、核算 在讲凭证处理之前,先来讲一下多项目核算,即一个科目带一个核算项目或带多个核算项目时,数据是怎样形成的。 多核算项目在科目中的应用 在基础资料维护中需要下设核算项目的科目中设置核算项目类别,科目下设了核算项目类别将会在表t_Account 中 FDetailID 有相应的代码 ,同时在 t_ItemDetailt 和 t_ItemDetailV 中有按 FdetailID 对应 的记录。例如:113(应收账寺)科目,带部门及客户两个核算项目,假设 FDetailID 的值为 1,那么在 t_ItemDeail 中有一条记录 FDetail = 1 ,FdetaiCount=2 (表示下设两

17、个核算项目类别),F1= -1 ,F2 = -1, F3 = 0,F4=0,F8=0 等(以“F”开头 + “数字”的字段是根据 t_ItemClass 中核算项目类别代码 FitemClassID 的值得来的,1 和 2 在 t_ItemClass 中分别代表客户和部门,由于此科目下设核算项目类别为“客户” 和 “部门”,所以只有 F1,F2 字段的值是 1,其他则为 0 表示在此类别不参与核算),可以参考图 1 和图 2。 在 t_ItemDetailV 中有对应 FdetailID = 1 的两条记录,FitemClassID 对应 t_ItemClass 表中 FitemClassID

18、 的值,分别为 1 和 2 ,FitemID = -1(表示此类别参与核算)。 多核算项目在凭证中的应用在录入凭证时科目下设核算项目则提示输入核算项目,输入核算项目后,在表 t_VoucherEntry 中 FDetailID 有相应的代码,在表 t_ItemDetailt 和 t_ItemDetailV 中有按 FdetailID 对应的记录,更新的 规则是在 t_ItemDetail 中“F”开头 + “数字”的字段值和 t_ItemDetailV 中 FitemID 字段值是录入的核 算项目对应表 t_Item 中 FitemID 的值。例如:做一张收款凭证,借:银行存款,贷:应收账款(

19、下挂客户和部门核算),客户为 A 客户,部门为 B 部门;在 t_Item 个表中,A 客户对应的 FitemID 的值假设为 20,B 部门对应的 FitemID 值为 30,那么, 在保存完这张凭证后,t_VoucherEntry 表中 FdetailID 的值假设为 4,在 t_ItemDetail 表中相对应有一条 FdetailID=4,FdetaiCount=2 的记录,其 F1=20,F2=30,其他以 F 开头的字段的值如 F3=0,F4=0,F8=0 等等,这里面的 F1 和 F2 的值就是 A 客户和 B 部门在 t_Item 表中对应的 FitemID 的值。在 t_It

20、emDetailV有两条相应的记录,表现如下:FDetailID=4,FitemClassID=1,FitemID=20;FDetailID=4,FitemClassID=2, FitemID=30。在录入模式凭证时,与录入凭证时一样,表 t_VoucherEntrytemplate 中 FDetailID 有相应的代码,在 t_ItemDetailt 和 t_ItemDetailV 表中都有相应的记录生成。 核算项目横表和纵表:核算项目横表为 t_ItemDetailt,核算项目纵表为 t_ItemDetailtV。核算项目纵表是由核算项目横表来 生成的,可以用 SP_CleanItemDe

21、tailV 这个存储过程来生成。系统一般是在查询一些账表时用到核算项目纵 表,比如查明细账,如果查出来的核算项目窜户,则可以运行 EXEC SP_CleanItemDetailV 来重新生成过核 算项目纵表,这样查明细账时数据就正常了。而有时也会出现核算项目横表丢失记录,而在核算项目纵表中 却保存完好,这时就可以写 SQL 语句从核算项目纵表中把丢失的记录插回核算项目横表中了。 多项目核算如图 5 所示:(图 5)132 凭证过账在过账前,系统会检查总账是否已完成初始化、检查当前期间是否有未过账凭证,若未完成初始化或没有未帮 助顾客 成功 册 k/3 总 账技术 支持手 - 19 -检查凭证是

22、否在本会计年度、期间。根据账套选项的“凭证过账前必须审核”,检查凭证是否已经审核。检查科目、核算项目的合法性。检查凭证号是否连续。将分录中的借或贷方发生额登记至 t_Balance,分三步完成:A、登记科目的原币、原币折合本位币发生额。B、登记核算项目的原币、原币折合本位币发生额。C、若是非明细科目,则汇总其所有上级科目的发生数。以 上 三 步 操 作 中 数 据 库 中 数 据 会 发 生 变 化 的 有 表t_Balance中 的过账凭证,则退出过账过程否则进入下一步。 凭证过账时,在选定的凭证范围内按照期间、凭证字、凭证号、分录号的顺序逐条处理凭证分录:FdebitFor,Fcredit

23、For,FytdDebitFor, FytdCreditFor,FEndBalanceFor,FDebit,FCredit,FytdDebit,FYtdCredit,FendBalance 十个字段。 检查是否机制损益类凭证,如是结转机制凭证(FinternalInd=“TransferPL”、“RateAdjust”),则不更 新余额表数据。 若科目属于损益类科目(t_Account 中 FGroupID 值大于 500),且凭证分录中的 FinternalInd 字段值为 “TransferPL”(自动结转),则将分录中的借或贷方发生额登记至表 t_ProfitAndLoss 中,分三步完

24、成: A、 登记损益类科目的原币、原币折合本位币发生额。 B、登记核算项目的原币、原币折合本位币发生额。 C、若是非明细科目,则汇总其所有上级科目的发生数。以 上 三 步 操 作 中 数 据 库 中 数 据 会 发 生 变 化 的 有 表 t_ProfitAndLoss 中 的 FamountFor, FytdAmountFor,Famount,FytdAmount 四个字段。 若科目或核算项目设有数量辅助核算,则更新表 t_QuantityBalance,发生变化的字段有 FDebitQty , FCreditQty ,FYtdDebitQty ,FytdCreditQty,FEndQty

25、五个字段。 表 t_Voucher 的对应字段 Fposted=1,FpostID=过账人,加上过账标记。133 凭证反过账 检查本期有没有已过账的凭证,若没有,则退出反过账过程。 更新 t_Balance 本期发生、本年累计及期末余额字段,使其数值去除当前反过账凭证的发生额: 如反过账凭证分录为借方:注以下:Vch.FamountFor、Vch.Famount、Vch.FQuantity 为凭证分录金额及数量 FDebitFor:= FdebitFor Vch.FAmountForFYtdDebitFor= FytdDebitFor Vch.FAmountFor FEndBalanceFor

26、= FBeginBalanceFor + DebitFor CreditFor FDebit= Fdebit Vch.FAmountFYtdDebit= FytdDebit Vch.FAmount FEndBalance= FBeginBalance + Debit Credit 损益类科目更新 t_ProfitAndLoss 本期发生及本年累计字段: FamountFor= FamountFor Vch.FAmountFor FytdAmountFor= FytdAmountFor Vch.FAmountForFamount= Famount Vch. FAmount FytdAmount=

27、 FytdAmount Vch.Famount 更新 t_QuantityBalance 本期发生、本年累计及期末余额字段,使其恢复至期初状态: 如反过账凭证分录为借方:FdebitQty= FdebitQty Vch.Fquantity FytdDebitQty= FytdDebitQty Vch.Fquantity FendQty= FbeginQty+DebitQty CreditQty 表 t_Voucher 的对应字段 Fposted=0,FpostID= -1 修改为未过账标记。14 现金流量141 凭证录入与保存时有关现金流量的处理总账系统中的现金流量表最关键的表就是 t_Cas

28、hFlowBal 和 t_VoucherEntry 这两张表,在做凭证时,如果 某条分录指定了现金流量项目,则在 t_CashFlowBal 表中插入一条记录,在 t_VoucherEntry 表中,现金类科目 的分录记录的 FcashFlowItem 字段的值为 1。t_CashFlowBal 表结构如下:FvoucherID:凭证内码(与 t_VoucherEntry 表中的 FvoucherID 相对应) FentryID:凭证分录号(与 t_VoucherEntry 表中的 FentryID 相对应) FcashAccountID: 现金流量科目内码(即凭证中对方科目的内码)Fitem

29、ID:现金流量项目内码(与 t_Item 表中的 FitemID 相对应) FsubItemID:现金流量附表项目内码 (与 t_Item 表中的 FitemID 相对应) FcurrencyID:币别内码(与 t_VoucherEntry 表中的 FcurrencyID 相对应) FamountFor:原币金额(与 t_VoucherEntry 表中的 FamountFor 相对应) Famount:本位币金额(与 t_VoucherEntry 表中的 Famount 相对应)当做凭证时,没有指定现金流量项目,而是通过 T 型账户来指定现金流量项目时,系统会把所有现金类科目 的凭证分录(整张

30、凭证的分录)都提取到 t_CashFlowBal 表中;在没有指定流量项目和附表项目之前, t_CashFlowBal 表中的 FitemID 与 FsubItemID 字段的值分另为-1 和 0;当指定了流量表项目和附表项目时,则 更新 t_CashFlowBal 表中相应记录的 FitemID 和 FsubItemID 字段的值。142 现金流量表的平衡关系在 T 型账中,有一些对应关系:现金类科目的借贷发生额一定要相等,非现金类科目的借贷发生额不一定相 等;借方现金类科目与非现金类科目发生额合计等于过滤期间的总账的现金类科目的借方发生额,相应的贷方现 金类科目与非现金类科目发生额合计等于

31、过滤期间的总账的现金类科目的贷方发生额。这是提取数据最关键的一 步,如果在这个地方数据就与总账不对,那么以下的对应关系就没有依据了。满足上面的对应关系后,就是现金流量表本身的平衡关系了,第一、现金流量的净增加额与补充资料项目中 的现金及现金等价物的净增加额相等;第二、补充资料项目中的净利润与利表中的净利润数相等;第三、补充资 料项目中的净利润加上附表二的总数等于主表中经营活动产生的现金流量净发生额。15 往来处理151 往来业务核销 涉及到的表:t_Voucher,t_VoucherEntry,t_TransCheckInfo,t_Account,t_Item,t_MeasureUnit,t_

32、VoucherGroup,t_Currency,T_AcctGroup,t_ItemDetailV,t_TransInitBalance。 进行往来业务核的前提条件是系统参数中设定“启用往来业务核销”,往来科目一定要设置“往来业务核 算”,所有的凭证全部都要过账。 以“应收账款”科目为例,系统先从 t_TransInitBalance,t_VoucherEntry 两个表中取出“应收账款” 初始化期间没有核销或没有核销完的数据和凭证表中“应收账款”科目借方发生的没有核销或没有核销 完的记录(与 t_TransCheckInfo 表相比较而得出没有核销或没有核销完的数据),再从 t_Vouche

33、rEntry 表中取出“应收账款”科目贷方发生的没有核销或没有核销完的记录(也是与 t_TransCheckInfo 表相比 较而得出没有核销或没有核销完的数据),分别列在上下两个窗口中。窗口上半部分是需要进行核销的记 录,下半部分是收款或是付款业务,如果是资产类科目,则借方行发生额在上面,贷方发生额在下面; 如果是负债类科目,则是贷方发生额在上面,借方发生额在下面。在此客户可进行自动或手工核销。 核销完后,系统会在 t_TransCheckInfo 表中记录核销的记录。152 往来对账单 往来对账单是用来过滤查询某个往来科目的某个核算项目的借贷余数据情况: 当过滤条件选择“全部”时,涉及的表

34、有下面这些:t_Balance,t_Voucher,t_VoucherEntry, t_ItemDetailV,t_Account ,系统先从 t_Balance 表中取出期初余额,再从 t_Voucher,t_VoucherEntry 两表中取出本期借贷方发生数据,最后计算得出余额。 当过滤条件选择“未核销”时,涉及的表有下面这些:t_Balance,t_TransCheckInfo, t_Voucher,t_VoucherEntry, t_ItemDetailV,t_Account ,系统先从 t_Balance,t_TransCheckInfo 两 表中取出期初余额,再从 t_Vouch

35、er,t_VoucherEntry 两表中取出本期借贷方发生数据,最后计算得出余 额。153 账龄分析 账龄分析主要是用来对设置为往来核算科目的往来款项余额的时间分布进行分析,系统自动把设置往来的会计科目的科目余额属性方向(如应收账款为借方)的最后一笔业务发生时间为账龄起算点,所有业务自动从凭证 中提取,自动出龄分析表。在账龄分析表中,系统只提供单核算的账龄分析表,不提供组合情况的账龄分析表。 目前系统的过滤项中的核算项目的选项实际上是无效的,把往来核算的科目下所设置的所有的核算项目都列示出 来。涉及的表有下面这些:t_TransInitBalance,t_Balance,t_LastCont

36、actDate,t_VoucherEntry,t_Voucher, t_TransCheckInfo , t_itemdetail。 系统分别从 t_TransInitBalance , t_Balance , t_LastContactDate , t_VoucherEntry 这些表中取出期初,本期借方发生,本期贷方发生的数据与 t_TransCheckInfo 表中的核销数据 相减而得出未核销的数据,按时间的分布把这些数据分别归类到具体的时间中而形成账龄分析表。16 期末处理161 期末调汇原理 系统执行此功能时,是根据在会计科目中的科目属性来进行的,只有在会计科目中设定为期末调汇的科目

37、才会进行期末调汇处理。 调汇原理:某个科目的期末原币乘以期末汇率是否与此科目调汇前余额表中的综合本位币有差异,如果有差异,就生成调汇凭证。 期末汇率:用户输入。调汇前余额表中的综合本位币:期初综合本位币(即上期期末调汇后的余额)与本期业务发生综合本位币之和。本期业务发生综合本位币:做凭证时原币乘以月初汇率或原币乘以业务发生日的汇率 就得出业务发生的综合本位币调汇计算: 算出此科目在调汇前余额表中的期末综合本位币 A(一般都是把凭证过账即可) 算出原币余额乘以期末汇率得出期末综合本位币的余额 B,B 作为本期期末的综本位币余额,也是下 期期初的综合本位币余额。 算出 B 与 A 的差 C(B-A

38、),其中 C 即为要调汇所产生差异。把 C 记入汇兑损益,是正是负根据 C 的正负以 及科目的借贷方决定。例如对应收账款调汇,C 为正则记入应收账款正数(借方),记入汇兑损益科目贷 方正数。涉及的表有下面这些:t_User,t_Voucher,t_VoucherEntry,t_VoucherGroup,t_Currency,t_Account, t_Systemprofile,t_RP_SystemProfile,t_Balance,t_RateAdjust,t_ItemDetailV,t_ItemClass,t_rp_Contact, t_RP_BillNumber,t_RP_ARPBill

39、,t_RP_Contactbal。处理步骤如下: 系统首先检查有没有未过账的凭证,如果有,则退出,没有则进行下一步,检查本期是否有调汇凭证, 有则退出,没有则进行下一步; 接着系统把期末汇率更新到 t_Currency 表中相应外币的汇率字段中,再取出汇兑损益科目,如果没有, 则要手工录入,并把此科目填入系统参数表中,以便下次能够使用;再接着取出生成汇兑损益凭证的凭 证字、凭证日期和摘要; 系统从 t_Balance 表中取出科目的期末原币和期末本位币(调汇前的本位币),并计算期末原币*期末汇 率减去期末本位币(调汇前的本位币)而得到需要调整的差额,如果差额为零,则提示本期不需要调汇, 否则生

40、成一张调汇凭证。 从应收系统的 t_rp_Contact(往来业务列表)中取出期初客户(供应商)外币和本位币的未核销余额与 本期客户(供应商)的发生数据核销后剩余原币和本位币金额进行汇总,得出客户(供应商)的期末原 币和本位币余额,并计算期末原币*期末汇率减去期末本位币而得到需要调整的差额,然后生成一张调汇 的其他应收(付)单,这张单据的凭证内码指向第三步生成的调汇凭证内码,且这张单据的状态为完全核销状态,(向 t_RP_ARPBill,t_rp_Contact 插入相应的记录),并更新应收应付余额(更新 t_RP_Contactbal 表中的数据)。162 结转损益 此功能是将所有损益类科目

41、的本期实际发生额全部自动转入本年利润科目,并可根据用户的需要生成收益凭证与损失凭证。损益类科目的实际发生额:损益类科目的实际发生额实际上就是该科目在期末结转损益之前的余额。 涉及的表有下面这些:t_User,t_Group,t_Systemprofile,t_Voucher,t_VoucherEntry,t_Account,t_AcctGroup, t_VoucherGroup,t_DataTypeInfo,t_Currency,t_MeasureUnit,t_UnitGroup,t_Balance,t_QuantityBalance, t_ItemDetailV,t_ItemClass 等。

42、处理步骤如下: 先检测系统参数(t_Systemprofile 表中 Fcategory=“GL”,Fkey=“EarnAccount”的记录)中有无本年 利润科目(Fvalue 的值),若无则退出;再检测系统中有无结转损益的凭证(t_Voucher 表中本期有无 FInternalInd='TransferPL'的记录),若有则提示是删还是过账结转损益的凭证,若是选过账,则系统 把结转损益的凭证过账,若是选删除,则把结转损益的凭证删除,再进入到下一步。 从科目表中把所有损益类科目列出(t_Account 表中 FgroupID>501 的记录),并更新科目表中损益类科

43、目对应本年利润科目(FearnAccountID 字段)的值为系统参数中设置的本年利润科目的科目 ID。 从系统参数表(t_Systemprofile)中取出一系列的参数值,如果这些参数值没有错误,则再从余额表(t_Balance)和数量余额表(t_QuantityBalance)取出所有最明细损益科目包括所有币别和核算项目 的期末余额(也即损益类科目实际发生额),另外再对照损益类科目设置的项目核算,分别从 t_Account、 t_ItemDetailV 和 t_ItemClass 表中进行验证科目对应的 FdetailID 值的正确性,若无错误,最后再往 t_Voucher,t_Vouch

44、erEntry 表中插入相应的记录。163 自动转账 自动转账功能用于自动生成可按比例转出指定科目的“发生额”、“余额”、“最新发生额”、“最新余额”等项数值的会计业务。 本位币金额公式:该条分录的科目必须为最明细科目,如明细科目下设了核算项目,还必须输入核算项目代码,在输入科目及核算项目后,还须录入币别。根据科目是否下设外币及数量,可以录入原币取数公式、本位币 取数公式、数量取数公式。公式的语法与自定义报表完全相同,通过取数公式可取到账上任意的数据。另外,在 公式中还可录入常数。(“本位币金额公式”即“数据来源公式”)自动转账公式:其实就是 ACCT 函数,在这里没有取核算项目的地方,但是可

45、以依照报表中 ACCT 函数的格式 来设置。比如取应收账款(113)科目下从客户 001 到客户 100 的本期期末余额的数据,公式可以这样来定义: ACCT("113|客户|001:100","Y","",0,0,0,"")。各个 ACCT 函数之间可以进行加减乘除的运算,也可以直接录入 一个常量来当做公式。涉及的表主要有下面这些: t_Currency, t_AutoTransfer , t_AutoTransferEntry , t_SystemProfile , t_ItemDetailv, t_item

46、, t_Account , t_ItemClass, t_Balance 等。 在做自动 转账时, 主 要是检 查 t_AutoTransferEntry 表中转账科目对应的核算项目是否正确,也即 t_AutoTransferEntry 表中 FaccountID 的 值在 t_Account 表是否存在,是否带核算项目,如果带核算项目,则 t_AutoTransferEntry 表中 FdetailID 字段的值对应的在 t_ItemDetailV 表中是否存在,其 FitemClassID 的值是否与科目所带的核算项目类别相匹配,如 果这些都检测通过,则接下来就是公式取数的事了。通过公式取

47、到数之后,系统再检查按照转账凭证设置的借贷 方计算取到的数是否平衡,如果平衡,则生成转账凭证。164 期末结账与反结账 期末结账:涉及的表有下面这些:t_Account,t_AcctGroup,t_Balance,t_Currency,t_Department, t_Item, t_ItemClass,t_MeasureUnit,t_Organization,t_Personnel,t_ProfitAndLoss,t_QuantityBalance, t_RateAdjust,t_UnitGroup,t_Voucher,t_VoucherEntry,t_VoucherGroup,t_Syste

48、mProfile。 处理流程:A> 检查是否完成初始化。B> 检查本期是否还有未过账的凭证C> 如果需要-检查本期损益类科目余额是否结平,如果不平不能结账。D> 检查 T-SubSys 表看是否其他要求与总账同步(Fperiodsynch=1)的子系统是否已经结账E> 将 t_Balance、t_ProfitAndLoss、t_QuantityBalance 表中所有本期期末数据复制为下一期期初数 据,本年累计数据累计到下一期,发生额为 0。F> 删 除 表 t_ItemDetail、 t_ItemDetailV 中 一 些 在 t_Balance 、 t_

49、ProfitAndLoss 、 t_QuantityBalance、t_VoucherEntry、 t_Account 中都不存在的核算项目多余数据。G> 更新表 t_SystemProfile 当前期间加到下一期间 如果 Fperiod= PeriodPerYear 则更新Fkey= CurrentYear ,Fvalue=Fvalue+1;Fkey= CurrentPeriod,Fvalue=1否则更新 Fkey= CurrentPeriod,Fvalue=Fvalue+1H> 期末处理管理表 t_SubSYS 将本期数据设为已结账 Fcheckout=1,增加一条下一期 Fc

50、heckout=0 的记 录。 反结账:涉及的表有下面这些:t_Account,t_AcctGroup,t_Balance,t_Currency,t_Department,t_Item, t_ItemClass, t_MeasureUnit,t_Organization,t_Personnel,t_ProfitAndLoss,t_QuantityBalance, t_RateAdjust,t_UnitGroup,t_Voucher,t_VoucherEntry,t_VoucherGroup,t_SystemProfile。 处理流程:A> 删除表 t_Balance 中所有本期记录。B&

51、gt; 删除表 t_ProfitAndLoss 中所有本期记录。C> 删除表 t_QuantityBalance 中所有本期记录。D> 期末处理管理表 t_SubSYS 删除当前期的记录,上期数据设为未结账 Fcheckout=0。17 账薄171 总账取数原理 涉及的表有下面这些:t_Group,t_User,t_SystemProfile,t_Balance,t_Account,t_Voucher,t_VoucherEntry,t_Itemdetail,t_Item。当过滤条件中不选“包含本期未过账凭证”和“显示核算项目明细” 时,系统就是直接取 t_Balance 表中的数据

52、;当过滤条件中选上“包含本期未过账凭证”时,系统还会从 t_Voucher, t_VoucherEntry 两表中取出借贷方未过账的数据进行汇总,再与 t_Balance 表中的借贷方本期全合计数相加, 而得出“包含本期未过账凭证”的本期发生合计数,再计算出余额;当过滤条件中选上“显示核算项目明细”时, 系统还会联接 t_Itemdetail,t_Item 两表,而得出科目所带核算项目的数据。172 明细账取数原理 不包括核算项目时,涉及的表有:t_Group,t_user,t_systemprofile,t_account,t_currency,t_Voucher, t_VoucherGro

53、up,t_VoucherTplType,t_VoucherEntry,t_Settle,t_Balance。系统先从 t_Balance 表中取出期初数,然后再从 t_Voucher,t_VoucherEntry 表中取出每笔明细发生数 据,最后再算出本期合计数、本年累计数和期末余额。 包括核算项目时,涉及的表有:t_Group,t_user,t_systemprofile,t_account,t_currency,t_Voucher, t_VoucherGroup,t_VoucherTplType,t_VoucherEntry,t_Settle,t_Balance,t_Item,t_Item

54、DetailV。 系统先从 t_account,t_Balance,t_Voucher,t_VoucherEntry,t_Item,t_ItemDetailV 这几个表中取 出过滤条件中所选科目的核算项,再从 t_Balance 表中取出核算项目对应的期初余额,再从 t_Voucher, t_VoucherEntry 表中取出核算项目每笔明细发生数据,最后再算出本期合计数、本年累计数和期末余额。173 科目余额表取数原理 不包括核算项目时,涉及的表有:t_Group,t_user,t_systemprofile,t_account,t_Balance,t_Voucher, t_VoucherE

55、ntry。当过滤条件不选择包含未过账赁证时,系统主要是从 t_Balance 表中取数,不取核算 项目记录(即 FdetailID 值为 0),把 t_Balance 表中正数做为借方余额,负数做为贷方余额,并生成一 张临时表,这种取数使得最底下的借贷方合计数有可能与手工相加借贷方余额不等;当过滤条件选择包 含未过账赁证时,系统也是先从 t_Balance 表中取出数据生成一张临时表,再从 t_Voucher, t_VoucherEntry 表中取出本期未过账的数据,并依据这些数据更新临时表中的数据,使临时表中的数据 相当于过账后的余额数据,再从临时表中把数据取到科目余额表界面上。 包括核算项目时,涉及的表有:t_Group,t_user,t_systemprofile,t_account,t_Balance,t_Voucher, t_VoucherEntry,t_ItemDetail,t_Itemclass。与前面一样,系统先从 t_Balance 表中取出数据生成一 张临时表,再从 t_Voucher,t_VoucherEntry 表中取出本期未过账的数据,这时需要把核算项目的值也 取出来,并依据这些

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论