主讲人:周燕新时间:2020年4月K/3WISE数据结构及案例分析财务篇目录基础资料数据结构凭证和余额表数据结构初始化流程账表取数流程期末结账流程案例分析基础资料数据结构T_currency币别表T_unitgroup计量单位组表T_measureunit计量单位表T_account科目表T_itemclass核算项目类别表T_item核算项目表T_itemdetail核算项目横表T_itemdetailv核算项目纵表T_currency币别表概述:主要存储币别信息,包括本位币和外币的代码,名称,汇率等。常用字段介绍:Fcurrencyid:币别内码,系统默认帐套记帐本位的FcurrencyID值为1。外币内码从1000起,依次加1。该表还包含一条0记录。Fname:币别名称;Fnumber:币别代码;FExchangeRate:汇率;fsale:小数位数Fdeleted:禁用状态1表示禁用0表示未禁用;T_exchangerate汇率体系头表概述:主要记录汇率数据,汇率后台表分为汇率体系头表T_exchangerate和汇率体系明细表T_exchangerateentry常用字段介绍:汇率体系表T_exchangerateFid:汇率内码,该字段与汇率体系明细表T_exchangerateentry的字段fid关联Fnumber:编码,这里记录了汇率体系类别的名称,同时对于新增的某个时间段的汇率,通过【汇率体系编码.币别名称.汇率开始时间】的形式存储.Fdigits:汇率精度;FDiscontinued:是否禁用;Fparentid:所属汇率体系,与自身T_exchangerate的字段fid关联T_exchangerateentry汇率体系体表汇率体系明细表T_exchangerateentryFnumber:编码,该字段与T_exchangerate对应的相同字段Fnumber关联,fname、fid亦同Fcyto:币别内码,与币别表t_currency关联;FBegDate:生效日期fenddate:失效日期;FExchangeRate:汇率币别表汇率表表间关联关系T_unitgroup计量单位组表概述:记录计量单位组的信息常用字段:Funitgroupid:内码FDefaultUnitID:默认基本计量单位内码,它等同一个计量单位组下默认单位的内码,由程序自动反写。当计量单位组还未添加计量单位时,该字段值为0,该单位组的默认计量单位被添加后,计量单位内码会被反写到这个字段。T_measureunit计量单位表概述:记录计量单位的信息常用字段:Fmeasureunitid:计量单位内码;Funitgroupid:计量单位组内码,与表T_unitgroup的Funitgroupid关联Fstanrdard:是否该计量组下的默认计量单位,1表示默认,0不是;Fitemid:核算项目内码,与核算项目表t_item的fitemid关联。T_account科目表概述:科目信息涉及到的表有t_acctgroup(科目类别表)和t_account(科目表),这里我们主要对科目进行说明。下面特设几个科目情形来进行科目表结构的说明:1、现金科目和银行科目2、带明细的科目3、数量金额核算科目4、核算外币科目5、挂核算项目科目科目表中的现金科目和银行科目常用字段:Faccountid:科目内码;Fnumber:科目编码;Fname:科目名称;Fiscash:是否现金科目;Fisbank:是否银行科目科目表中的现金科目和银行科目表结构:下挂明细的科目常用字段:Flevel:科目级次;Fdetail:是否明细,1代表明细科目0非明细;Fparentid:父级ID,即上级科目内码,当科目本身是明细科目则为0;Frootid:根ID,即一级科内码,如果一级科目就是最明细科目,则该内码是它本身的内码下挂明细的科目表结构:数量金额核算科目常用字段:Fquantities:是否数量金额核算,1是,0否;Funitgroupid:计量单位组ID;Fmeasureunitid:计量单位ID;数量金额核算科目与计量单位表关联关系为:t_account.Funitgroupid=t_unitgroup.Funitgroupid;t_account.fmeasureunitid=t_measureunit.fmeasureunitid核算外币科目常用字段:Fcurrencyid:币别内码,如果是核算单一币别,则该字段为t_currency中对应的具体币别的内码;如果是核算所有币别,则该字段为0,不核算,则为1代表本位币;Fadjustrateid:是否期末调汇,1是,0否核算单一币别科目科目表与币别表间的关联关系:T_account.fcurrencyid=t_currency.Fcurrencyid挂核算项目科目常用字段:Fdetailid:核算项目使用状况内码,这个字段的值与核算项目横表t_itemdetail中Fdetailid字段值相关联。当科目中新增核算项目后在对应的横表t_itemdetail,纵表t_itemdetailv中插入以F开头的字段值为“-1”记录。挂核算项目科目表结构:T_itemclass核算项目类别表概述:主要存储核算项目的类别信息,不存储隶属该类别的核算项目明细信息。常用字段:Fitemclassid:核算项目类别内码,自定义核算项目类别的Fitemclassid从3001开始,依次递增1。在3001之前的Fitemclassid是系统预设的,系统预设的信息最好不要修改。FSQLTablename:核算项目类别的具体明细信息表,对于自定义核算项目类别,如果没有在类别的“属性维护“中增加自定义字段,则它为NULL;否则它等于t_item_Fitemclassid,如t_item_3002,表中记录的是最明细的核算项目信息,它不记录非明细项目的信息。这里“客户”,“部门”,“职员”等核算项目类别对应的表都是系统预设的。T_itemclass核算项目类别表图例T_itemclass核算项目类别表表结构:T_itemclass核算项目类别表在test2类别下新增一核算项目name1:T_itemclass核算项目类别表表结构:t_item_3002表中的F_101,F_102字段是随着该核算项目类别自定义属性项的增加而动态递增的。T_item核算项目表概述:核算项目表t_item存放详细的核算项目明细资料,不包括核算项目类别信息。常用字段:Fitemid:核算项目IDFitemclassid:核算项目类别ID,关联表t_itemclass.fitemclassidFnumber:核算项目代码Fname:核算项目名称T_item核算项目表表结构:T_itemdetail核算项目横表概述:存储核算项目方案组合情况.常用字段:Fdetailid:核算项目使用状况内码FdetailCount:一个Fdetailid对应的核算项目类别个数,它的值必须是实际的Fn组合个数之和Fn列:由F+数字表示,分别对应核算项目类别表的fitemclassiD,比如客户在核算项目类别表的fitemclassiD为1,那么在核算项目横表对应列名就为F1;注意:1、Fn列的默认值=02,Fn组合=-1所对应的Fdetailid值,只能被科目表t_account.Fdetailid所使用,不能出现在其他数据表中。Fn组合>0所对应的Fdetailid值,(被凭证表和科目余额表引用)不能被科目表t_account.Fdetailid所使用。如果存在,应该将t_account.Fdetailid修改为该列为-1对应的Fdetailid值。在使用核算项目时,系统会检查用户所用的Fdetailid对应的Fn组合是否存在,如果不存在,则自动增加一组新的Fdetailid值。T_itemdetail核算项目横表1、为科目下挂核算项目:T_itemdetail核算项目横表表结构(科目):T_itemdetail核算项目横表2、为凭证科目下挂核算项目:T_itemdetail核算项目横表表结构(凭证):T_itemdetailv核算项目纵表概述:核算项目使用详情纵表是根据t_itemdetail横表中的记录生成的。T_itemdetailv表必须存在一条FDETAILid=0的特殊记录,这个表中只记录Fdetailid,Fitemclassid,fitemid三个字段,它是t_itemdetail表的简单化反映。只反映t_itemdetail表中的有效值,去掉了F列为0的信息。常用字段:Fdetailid:核算项目使用状况内码,与t_itemDetail.Fdetailid的关联Fitemclassid:核算项目类别ID,与t_item.Fitemclassid关联Fitemid:核算项目ID,与t_item.Fitemid关联T_itemdetailv核算项目纵表表结构:凭证与余额表数据结构T_voucher凭证头表T_voucherentry凭证体表t_VoucherBlankOut作废凭证表T_balance科目余额表t_quantitybalance数量余额表t_profitandloss损益类科目实际发生额表凭证凭证相关的表有:t_vouchergroup凭证字表;t_voucher凭证分录头表t_voucherentry凭证分录体表;t_VoucherBlankOut作废凭证表t_vouchergroup凭证字表概述:主要存储凭证字信息。常用字段:FgroupID:凭证字内码t_voucher凭证分录头表概述:主要存储凭证的会计年度、会计期间、凭证字、凭证序号、凭证日期、业务日期、摘要、附件张数、借贷方金额合计、是否过账、审核、分录数等信息。常用字段:Fvoucherid:凭证内码;Fyear:会计年度;Fperiod:会计期间;Fnumber:凭证号:Fgroupid:凭证字内码关联t_vouchergroup.FgroupID;Fexplanation:凭证摘要t_voucherentry凭证分录体表概述:主要存储凭证借贷方科目内码、金额、核算项目、分录号、币别、汇率、余额方向、摘要、数量、单价等信息。常用字段:Fvoucherid:凭证内码,关联凭证头t_voucher.fvoucheridFDC:科目的余额方向,1表示借方,0表示贷方t_voucherentry凭证分录体表表结构t_VoucherBlankOut作废凭证表功能记录作废的凭证信息.当作废一张凭证时,该凭证在凭证表t_voucher中的记录被自动清除,该记录被记入本表。常用字段Fvoucherid:凭证内码凭证录入图例凭证录入表结构凭证表头保存凭证中的一些共有信息,比如凭证年份,期间,分录数,借贷方总发生额,制单人,审核人等信息。凭证表内码凭证日期凭证字内码贷方总金额凭证号摘要借方总金额序号业务日期凭证录入表结构凭证表体的数据基本是与凭证录入时候的分录界面一一对应的,对于进行外币核算的分录特点是该表中的fcurrencyid会对应上具体的币别内码。科目代码原币金额本位币金额数量单位代码单价对方科目代码汇率类型结算方式代码结算号往来业务编号币别汇率借贷方向凭证审核流程系统会将凭证头表t_voucher中的fchecked更新为1,代表已经审核(0代表未审核),而fcheckid中则保存审核人的内码(未审核时是-1).凭证过账凭证过账时,在选定的凭证范围内按照期间、凭证字、凭证号、分录号处理凭证分录(不按顺序排列):(1)检查凭证是否在本会计年度、期间。(2)根据帐套选项的“凭证过账前必须审核”,检查凭证是否已经审核。(3)检查科目、核算项目的合法性。(4)检查凭证号是否连续。凭证过账(5)将分录中的借或贷方发生额登记至余额表,分三步完成:A、登记科目的原币、原币折合本位币发生额。B、登记核算项目的原币、原币折合本位币发生额。C、若是非明细科目,则汇总其所有上级科目的发生数。以上三步操作中数据库中数据会发生变化的有表t_Balance中的FdebitFor,FcreditFor,FytdDebitFor,FytdCreditFor,FEndBalanceFor,FDebit,FCredit,FytdDebit,FYtdCredit,FendBalance十个字段。(6)若科目属于损益类科目(t_Account中FGroupID值大于500),且凭证分录中的FinternalInd字段值不为“TransferPL”(结转损益)、“McLdgNoCal”(自动转账产生),则将分录中的借或贷方发生额登记至表t_ProfitAndLoss中,分三步完成:A、登记损益类科目的原币、原币折合本位币发生额。B、登记核算项目的原币、原币折合本位币发生额。C、若是非明细科目,则汇总其所有上级科目的发生数。以上三步操作中数据库中数据会发生变化的有表t_ProfitAndLoss中的FamountFor,FytdAmountFor,Famount,FytdAmount四个字段。凭证过账(7)若科目或核算项目设有数量辅助核算,则更新表t_QuantityBalance,发生变化的字段有FDebitQty,FCreditQty,FYtdDebitQty,FytdCreditQty,FEndQty五个字段。(8)过账后,更新表t_Voucher的对应字段Fposted=1,FpostID=过账人(未过账时Fposted=0,FpostID=-1)三、余额总账帐簿报表都是从余额表取数。后台余额表主要包括以下三个余额表:1、科目余额表:t_balance2、数量余额表:t_quantitybalance3、损益类科目实际发生额表:t_profitandloss这三个余额表是在初始化和凭证过账时,同时写入数据。t_balance科目余额表概述:存储会计年度、会计期间,并按“核算项目”和“币别”来反映科目的期初余额、本期发生额,本年累计、期末余额数据。常用字段:FYear:会计年度Fdetailid:核算项目IDFaccountid:科目IDFPeriod:会计期间Fcurrencyid:币别IDFDebitFor、FDebit:本期借方发生额FBeginBalanceFor、FBeginBalance:原币、本币期初余额FCreditFor、FCredit:本期贷方发生额FYtdDebitFor、FYtdDebit:本年借方发生额FYtdCreditFor、FYtdCredit:本年贷方发生额FEndBalanceFor、FEndBalance:期末余额Fbeginbalancefor,Fbeginbalance,Fendbalancefor,Fendbalance:期末期初是没有借贷方的,在同一数据项中用正负来区别,正表示借方,负表示贷方t_balance科目余额表1、”普通科目--带外币科目”在科目余额表中的存放情况:Fdetailid=0andFcurrencyid=0:科目所有的核算项目使用组合的综合本位币的数据(不管科目是否管理核算项目和外币,都有这一组数据)Fcurrencyid=0这一行的数据,等于指定科目下所有Fcurrencyid<>0各币别金额之和Fdetailid=0andFcurrencyid=1这一行的数据,等于指定科目下所有Fdetailid<>0andFcurrencyid=1的本位币的数据之和Fdetailid=0andFcurrencyid>1这一行的数据,等于指定科目下所有Fdetailid<>0andFcurrencyid>1的外币的数据之和科目管理了多少种外币,就有多少行数据;如果没有管理外币,则没有这种数据)t_balance科目余额表2、带核算项目的科目在科目余额表中的存放情况:Fdetailid<>0andFcurrencyid=0:科目指定的核算项目使用组合的综合本位币的数据,当科目使用了核算项目管理时才有这种数据组合Fdetailid<>0andFcurrencyid=1:科目指定的核算项目使用组合的指定本位币的数据(不管科目是否管理核算项目和外币,都有这一组数据)Fdetailid<>0andFcurrencyid>1:科目指定的核算项目使用组合的指定币别的数据,当科目使用了核算项目管理时才有这种数据组合任何一个科目,都有一组Fdetailid=0andFcurrencyid=0和Fdetailid=0andFcurrencyid=1的数据。--如果Fcurrencyid>1,则是外币。t_quantitybalance数量余额表概述:在初始化和凭证过账时写数据,只记科目属性中设置了数量辅助核算的科目数据,为数量金额类账薄提供数量余额。常用字段:FYear:会计年度FBeginQty:期初数量FPeriod:会计期间FDebitQty:收入数量FAccountID:科目IDFCreditQty:发出数量FDetailID:核算项目IDFYtdDebitQty:本年收入数量FCurrencyID:币别IDFYtdCreditQty:本年发出数量FEndQty:期末数量t_profitandloss损益类科目实际发生额表概述:存储损益类科目的实际损益发生额,在初始化和凭证过账时写数据,为报表取损益类数据提供依据。t_balance不记录初始化录入的损益类科目实际发生额,只保存科目记录。当结转损益到本年利润时,损益类科目从t_balance取得余额转出,t_profitandloss不产生影响。常用字段:FYear:会计年度FPeriod:会计期间FAccountID:科目IDFDetailID:核算项目IDFCurrencyID:币别IDFAmountFor、FAmount:原币、本币本期发生额FYtdAmountFor、FYtdAmount:原币、本币本年发生额t_profitandloss损益类科目实际发生额表t_balance表中不记录初始化录入的损益类科目实际发生额,初始化损益类科目的实际发生额只记录在t_profitandloss表中。日常业务中损益科目发生额在两个表中都有记录,区别在于t_balanace只记录借贷方发生额合计以及期初期末余额,t_profitandloss只记录实际的发生额而不是分借贷方分别计算。结转损益时从t_balance表中取得期末余额数据转出,结转后t_balance表中损益类科目余额变为0。1、t_balance中的数据存放情况:t_profitandloss损益类科目实际发生额表2、t_profitandloss中的数据存放情况:初始化流程初始化录入结束初始化初始数据录入流程初始化时,涉及到的表主要是t_balance(金额余额表),t_quantitybalance(数量余额表)和t_profitandloss(损益类科目实际发生额情况表);如果有录入往来科目,还涉及到t_transinitblance(初始数据往来表)和t_lastcontactdate(往来初始化日期表)。初始化结束的过程中,会更新系统参数表T_systemprofile。保存规则1、如果在年初进行初始化时,余额表和数量余额表中都只有第一期的数据,且没有本年累计数据和损益数据,即在两张余额表中,累计数字段的值为零和在损益类科目实际发生额表中没有记录。2、如果在年中进行初始化时,假如在第3期进行初始化,则t_profitandloss有记录,另外两张余额表中会存在第1期和第3期两期的数据。结束初始化1、系统将自动更新表t_Subsys(新增或更新一条记录),同时更新系统参数表t_SystemProfile中Fcategory=GL,Fkey=InitClosed对应的Fvalue=1,表示初始化完成,如下图为t_Subsys中新增的第三期记录,即启用之后的期间记录.2、系统更新表t_Systemprofile表的Fvalue的值信息。账簿与报表取数流程账簿与报表取数原理账簿与报表取数总账取数原理涉及的表有下面这些:t_Group,t_User,t_SystemProfile,t_Balance,t_Account,t_Voucher,t_VoucherEntry,t_Itemdetail,t_Item。当过滤条件中不选“包含本期未过帐凭证”和“显示核算项目明细”时,系统直接取t_Balance表中的数据;当过滤条件中选上“包含本期未过帐凭证”时,系统还会从t_Voucher,t_VoucherEntry两表中取出借贷方未过帐的数据进行汇总,再与t_Balance表中的借贷方本期全合计数相加,而得出“包含本期未过帐凭证”的本期发生合计数,再计算出余额;当过滤条件中选上“显示核算项目明细”时,系统还会联接t_Itemdetail,t_Item两表,而得出科目所带核算项目的数据。期末处理期末调汇结转损益自动转账期末结转期末反结账多调整期期末调汇概述:期末调汇是根据在会计科目中的科目属性来进行的,只有在会计科目中设定为期末调汇的科目才会进行期末调汇处理。调汇科目的期末原币乘以期末汇率是否与此科目调汇前余额表中的综合本位币有差异,如果有差异,就生成调汇凭证。期末调汇流程1、此凭证与一般凭证不同点在于后台数据库凭证表t_voucher中,机制凭证字段FInternalind的值为“RateAdjust“,即表示期末调汇所生成的凭证,普通凭证都为NULL。2、调汇的过程除了生成调汇凭证外,还会同时更新币别表中对应外币的汇率。期末调汇3、另外还会在汇率调整表t_rateadjust,汇率表t_currencyrate中写入记录。t_rateadjust表记录了调汇涉及的科目的原币余额与本币余额,以及本币的调整额。t_currencyrate汇率表则记录每次调汇前后的汇率变化,由上图可知,此次调汇将汇率由8.706调为了8.0。结转损益流程1、先检测系统参数(t_Systemprofile表中Fcategory=“GL”,Fkey=“EarnAccount”的记录)中有无本年利润科目(Fvalue的值),若无则退出;再检测系统中有无结转损益的凭证(t_Voucher表中本期有无FInternalInd='TransferPL'的记录),若有则提示是删还是过帐结转损益的凭证,若是选过帐,则系统把结转损益的凭证过帐,若是选删除,则把结转损益的凭证删除,再进入到下一步。2、从科目表中把所有损益类科目列出(t_Account表中FgroupID>500的记录),并更新科目表中损益类科目对应的本年利润科目(FearnAccountID字段)的值为系统参数中设置的本年利润科目的科目ID。结转损益3、从系统参数表(t_Systemprofile)中取出一系列的参数值,如果这些参数值没有错误,则再从余额表(t_Balance)和数量余额表(t_QuantityBalance)取出所有最明细损益科目包括所有币别和核算项目的期末余额(也即损益类科目实际发生额),另外再对照损益类科目设置的项目核算,分别从t_Account、t_ItemDetailV和t_ItemClass表中进行验证科目对应的FdetailID值的正确性,若无错误,最后再往t_Voucher,t_VoucherEntry表中插入相应的记录。4、我们可以看到结转损益生成的凭证在凭证表中的标志如下:自动转账1、首先点击自动转账,做一个制造费用科目转入生产成本科目的自动转账方案自动转账2、其次我们为其设置公式如下:自动转账3、自动转帐方案表保存在自动转账方案头表t_AutoTransfer与自动转账方案体表t_AutoTransferentry表中,两表通过Ftransferid来关联。4、我们做一张凭证用来自动转账。自动转账5、将该凭证过账之后再进行自动转账,生成凭证如下:6、需要注意的是:在建立自动转账方案的时候有机制凭证的选择,如果选择“否”,那么凭证表中机制凭证对应的字段值就是‘null’;如果选择“自动转帐”就是‘AutoTrans’;如果选择“结转损益”,“期末调汇”则对应各自的凭证标志。期末结账流程1、系统在期末结帐的时候首先会检查是否完成初始化以及本期是否还有未过帐的凭证,如果损益类科目月底需要结平,则还需要检查本期损益类科目余额是否结平,如果未结平则不能结帐。2、检查T-SubSys表中要求与总帐同步(Fperiodsynch=1)的子系统是否已经结帐。3、检查通过后系统会将t_Balance、t_ProfitAndLoss、t_QuantityBalance表中所有本期期末数据复制为下一期期初数据,本年累计数据累计到下一期,发生额为0。4、期末处理管理表t_SubSYS将本期数据设为已结帐Fcheckout=1,增加一条下一期Fcheckout=0的记录5、更新t_systemprofile表的当前年度及当前期间信息期末反结账流程1、删除表t_Balance中所有本期记录。2、删除表t_ProfitAndLoss中所有本期记录。3、删除表t_QuantityBalance中所有本期记录。4、期末处理管理表t_SubSYS当前期和上期记录设为未结帐Fcheckout=0。5、更新t_systemprofile表的当前年度及当前期间信息。多调整期功能主要是为了方便审计调账设置的。年审完成后通常企业已经结账到三、四月份,若此时调账则需反结账到上一年度才能调整报表年初数,而多调整期功能将调账的业务放在调整期处理,无需反结账即可实现调整报表年初数。多调整期流程1、首先,在总账系统参数中勾选【启用多调整期】参数,并设置调整期间,如图:多调整期此时,系统参数设置保存后,将写入T_GlAdjustperiod表中。内码说明调整期间名称多调整期2、接着,进入【调整期间管理】界面,将多调整期打开,如图:多调整期打开多调整期,主要涉及t_gladjustperiodentry表,如图:多调整期3、打开调整期后才能录入调整期凭证,如图:多调整期此时,凭证头记录写入后台t_VoucherAdjust表中,而凭证体记录仍写入t_voucherentry表中。多调整期4、调整期凭证过账的过程与标准凭证类似,在T_GlAdjustperiodentry表中自动新增下年的调整期记录,同时更新表t_VoucherAdjust表中对应字段Fposted=1,FpostID=“过账人”。多调整期5、过账的凭证信息将根据凭证中科目属性分别写入t_balance、t_quantitybalance、t_profitandloss三大余额表中,对应字段Fperiod>12且FIsAdjustPeriod=1。多调整期6、账簿和报表支持多调整期的查询多调整期7、调整期凭证过账后才能关闭调整期,调整期一旦关闭则无法继续录入调整期间内凭证信息。t_Accountt_Balancet_quantitybalancet_profitandloss总帐数据表关系汇总t_ItemDetailt_Itemclasst_ItemDetailvt_Itemfvoucheridt_VoucherEntryt_Voucher三表关联字段faccountid,fdetailid,fyear,fperiod,fcurrencyidfaccountidfitemclassidfdetailidfitemidfitemidFnfdetailid补充知识T_identity表(自动编码步长表)K/3系统中的基础资料表和大部分单据的内码值都源于自动编码步长表。自动编码步长表结构如下:涉及到的字段:Fname--对应的表名Fnext--表内码Fstep--步长值当K/3系统中的基础资料表增加一项时,会从”t_identity”获取内码,即Fnext的值,该值是由本表的最大内码值加1获得。案例分析案例-新增科目报错案例-凭证查询显示空白行案例-新增科目报错分析步骤:报重复键错误要分析步长表t_identity,查询科目表在步长表的数据,已经科目表当前内码的最大值:修复语句:将步长表t_identity中科目表t_account的fnext字段修改成科目表最大码加1updatet_IdentitysetFNext=(selectMAX(FAccountID)+1fromt_Account)whereFName='t_account'案例-新增科目报错新增科目报错版本:所有版本问题描述:新增科目时提示“定义的应用程序或对象错误”;问题重现,如下图所示:案例-凭证查询显示空白行版本:K/315.0问题描述:凭证序时簿界面显示空白行问题重现:打开凭证会计序时簿,过滤全部凭证,出现空白行如下图所示:案例-凭证查询显示空白行分析步骤一:用SQLServer事件探查器跟踪,凭证序时簿查询的取数过程,将文件-导出-提取SQLserver事件-提取Transact-SQL事件,将SQL脚本导出后放到数据库中执行:案例-凭证查询显示空白行分析步骤二:对执行的结果进行分析,注意导出来的SQL脚本有些是无效语句,忽略即可,只需要执行有效语句,将SQL脚本查询的结果与前台界面查询出来的结果进行分析,可以看到后台有7条记录,但是前台只有6条,于是分析没有正常显示的第7条:案例-凭证查询显示空白行解决方法:经过分析,是因为存在凭证内码为6的凭证,在凭证头表存在,但是在凭证体表中不存在,将这个异常记录删除,由于凭证异常可能导致科目余额表数据异常,建议反结账到前一期间然后重新结账到当期,反结账之前务必先备份账套:deletefromt_VoucherwhereFVoucherIDnotin(selectFVoucherIDfromt_VoucherEntry)分析步骤三:查询步骤二显示的第七条异常记录对应的凭证表信息(fvoucherid=6),排查凭证表异常:自学助手select*fromt_tabledescriptionwhereftablename='t_balance‘select*fromt_fielddescriptionwhereftableid=10004select*fromt_tabledescriptionwherefdescriptionlike‘%凭证%’各表的字段详细描述安装路径下C:\ProgramFiles(x86)\Kingdee\K3ERP\KDSDK\Doc的文档,里面有详细的数据表和字段描述文件Thanksterimakasih感謝谢谢ありがとうขอบคุณ