【正文】
步(Fperiodsynch=1)的子系統(tǒng)是否已經結賬E 將t_Balance、t_ProfitAndLoss、t_QuantityBalance表中所有本期期末數(shù)據(jù)復制為下一期期初數(shù)據(jù),本年累計數(shù)據(jù)累計到下一期,發(fā)生額為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。D 期末處理管理表t_SubSYS刪除當前期的記錄,上期數(shù)據(jù)設為未結賬Fcheckout=0。系統(tǒng)先從t_Balance表中取出期初數(shù),然后再從t_Voucher,t_VoucherEntry表中取出每筆明細發(fā)生數(shù)據(jù),最后再算出本期合計數(shù)、本年累計數(shù)和期末余額。當過濾條件不選擇包含未過賬賃證時,系統(tǒng)主要是從t_Balance表中取數(shù),不取核算項目記錄(即FdetailID值為0),把t_Balance表中正數(shù)做為借方余額,負數(shù)做為貸方余額,并生成一張臨時表,這種取數(shù)使得最底下的借貸方合計數(shù)有可能與手工相加借貸方余額不等;當過濾條件選擇包含未過賬賃證時,系統(tǒng)也是先從t_Balance表中取出數(shù)據(jù)生成一張臨時表,再從t_Voucher,t_VoucherEntry表中取出本期未過賬的數(shù)據(jù),并依據(jù)這些數(shù)據(jù)更新臨時表中的數(shù)據(jù),使臨時表中的數(shù)據(jù)相當于過賬后的余額數(shù)據(jù),再從臨時表中把數(shù)據(jù)取到科目余額表界面上。當過濾條件中不選“包含本期未過賬憑證”時,系統(tǒng)就是直接取t_Balance表中的數(shù)據(jù);當過濾條件中選上“包含本期未過賬憑證”時,系統(tǒng)還會從t_Voucher,t_VoucherEntry兩表中取出借貸方未過賬的數(shù)據(jù)進行匯總,再與t_Balance表中的借貸方本期全合計數(shù)相加,而得出“包含本期未過賬憑證”的本期發(fā)生合計數(shù),再計算出余額。查詢核算項目余額表時,要指定一個會計科目,當不選擇“包括未過賬憑證”時,系統(tǒng)就是從余額表(t_Balance)關聯(lián)核算項目表(t_Item)、核算項目縱表(t_ItemDetailV)、科目表(t_Account)來按科目、父級科目、核算項目來歸類匯總,取得核算項目余額表的數(shù)據(jù);再匯總前面得出的數(shù)據(jù)形成最后的合計數(shù)據(jù)。③ 最后再檢查各個項目的取數(shù)公式設置是否有誤,一般的資產負債表取的都是各個科目的期初期末余額,關鍵是對照總賬中的科目余額表,一一檢查各個項目對應科目的余額數(shù)據(jù),看是否是取數(shù)科目設置為誤還是取數(shù)項目有誤(如取期末余額時取成了期初余額或本期發(fā)生額)等。 分析:在錄入初始數(shù)據(jù)時,系統(tǒng)會把最明細科目的數(shù)據(jù)逐級進行匯總,如果明細科目設置了外幣核算,而其上級科目卻沒有設置核算處幣,則錄入數(shù)據(jù)進行保存時,系統(tǒng)肯定會出錯了。后來發(fā)現(xiàn)是丟失了科目全名觸發(fā)器所導致的,解決方法是把科目全名的觸發(fā)器給補上即可(有相關的補丁SQL語句)。請問是什么原因造成的? 分析:查詢核算項目余額表時,系統(tǒng)是要按照核算項目的級次分級進行匯總的,匯總的依據(jù)并不是按照核算項目的代碼來進行的,而是按照各個核算項目的父級代碼來進行匯總的,如果核算項目對應的父級代碼不正確,系統(tǒng)就找不到匯總依據(jù),則就會以“*”號來代替了,因此,出現(xiàn)這種情況只要查找核算項目的基礎資料中的父級代碼是否正確,把不正確的父級代碼改正確即可解決問題。SQL語句如下:檢查期初余額是否平衡Select Fdc,SUM(FBeginBalanceFor) FBeginBalanceFor, SUM(FBeginBalance) FBeginBalance FROM t_balance bal,t_Account a WHERE =0 AND = and =1 And 600 And FPeriod = 1 And FYear=2003 And = 0 Group By FDC order by FDC檢查累計發(fā)生數(shù)是否平衡Select ISNULL(sum(FYtdDebitFor),0) FYtdDebitFor, ISNULL(sum(FYtdCreditFor),0) FYtdCreditFor, ISNULL(sum(FYtdDebit),0) FYtdDebit, ISNULL(sum(FYtdCredit),0) FYtdCredit From t_balance bal,t_Account a Where =0 AND = and =1 and 600 And FPeriod = 1 And FYear=2003 And = 0此賬套也正是客戶自已手工錄入了一些科目的累計發(fā)生數(shù),但是累計發(fā)生數(shù)不平衡,從而產生了問題。案例七:有一賬套以前月份數(shù)據(jù)都很正常,但是在本期憑證過賬后,發(fā)現(xiàn)試算平衡表中的數(shù)據(jù)不平,而把憑證反過賬后,試算平衡表(包括未過賬憑證)卻是平的,不知是怎么回事?分析:憑證未過賬時,試算平衡表是平的,說明余額表中期初余額是正確的;憑證過賬后,試算平衡表不平,說明憑證過賬后形成的余額表中發(fā)生額是不正確的。分析:這又是一個憑證過賬的問題,憑證在過賬時,系統(tǒng)會把憑證上的科目,幣別,核算項目等信息記錄到余額表中,在記錄這些信息的時候,系統(tǒng)要核對這些信息在相應的基礎資料中是否存在,如果憑證上的一些信息不存在,則系統(tǒng)就不會把這些信息記錄到余額表中,就會造成憑證過賬后的數(shù)據(jù)與憑證過賬前的數(shù)據(jù)在查詢一些賬表時會產生不對。查出了丟失的FDetailID后,該怎樣把這些記錄給補上呢?第一種方法就是查核算項目縱表(t_ItemDetailV)中是否還存在這些丟失的FDetailID(在很多情況下,縱表中都會存在這些記錄),如果存在的話,就可以根據(jù)縱表的信息把這些記錄插回核算項目橫表中了。”再進行結轉損益后,出現(xiàn)如下憑證: 借:321 本年利潤 貸: 管理費用計提福利費/B003織帶部 (紅字) 管理費用計提福利費/B004繡花部 (紅字) 管理費用計提福利費/B003織帶部 管理費用計提福利費/B004繡花部 查看有關明細賬發(fā)現(xiàn)其其實是結平的,將該憑證審核過賬后,再進行結賬,系統(tǒng)還是提示本期損益類科目余額沒結平。這時該如何處理呢?肯定是要把其中重復的數(shù)據(jù)刪除一個。解決方法有下面幾種:在做憑證時,手工指定多借多貸的現(xiàn)金類科目的憑證的現(xiàn)金流量項目;把所有的多借多貸現(xiàn)金類科目憑證拆分成一借多貸或一貸多借的憑證。怎樣來判定憑證中對方科目的數(shù)據(jù)是錯誤的呢,這就需要寫很多的SQL語句來查找到,對于一借一貸的憑證,借方記錄的對方科目就是貸方記錄的科目,反過來貸方記錄的對方科目就是借方記錄的科目;對于一借多貸的憑證,借方記錄的對方科目只能是貸方第一條記錄的科目,;對于多借一貸的憑證,貸方對方科目只能是借方第一條記錄的科目;在此排除多借多貸的憑證。首先,在假設系統(tǒng)提取的憑證沒有錯誤的前提下,分析t_FlowCashBal表,系統(tǒng)提取的憑證數(shù)據(jù)全部都是放在此表中,在沒有指定任何現(xiàn)金流量項目之前,所有的數(shù)據(jù)都應該是平的,如果不平,則是t_FlowCashBal表的FitemID和FsubItemID字段的值不正常,可以先把它們清除,再重新指定過應該就會數(shù)據(jù)平衡。案例十:總賬系統(tǒng)中的現(xiàn)金流量表,在T型賬戶中非現(xiàn)金科目下的流量和附表中的流量全部都指定過了,但現(xiàn)金流量表做出來數(shù)字卻是不對的,主表中經營活動產生的現(xiàn)金流量凈額與附表中經營活動產生的現(xiàn)金流量凈額兩個數(shù)字不相等,主表中現(xiàn)金及現(xiàn)金等價物的凈增加額與附表中現(xiàn)金及現(xiàn)金等價物的凈增加額兩個數(shù)字不相等。正確情況下,t_ItemDetail表中的不同的FDetailID值在FdetailCount值相等的情況下對應的各字段的值是不能重復的,如果有重復的數(shù)據(jù),則表示某個核算項目有重復的數(shù)據(jù)了。核算項目數(shù)據(jù)丟失的問題在總賬中有時比較普遍,一般都是賬套升級時會產生如此情況,平時較少發(fā)生,但是有一種情況,即核算項目橫表中的零記錄,有時會經常丟失,丟失零記錄時,憑證過賬后大部分的科目的余額數(shù)據(jù)都會不正確,以后碰到此種情況即可查找是否是核算項目橫表零記錄丟失造成的。要知道哪些核算項目丟失了,首先要清楚系統(tǒng)中有核算項目橫表(t_ItemDetail)和核算項目縱表(t_ItemDetailV),一般以核算項目橫表為主要目標,此表中的數(shù)據(jù)都是在做憑證或科目掛核算項目時自動生成的,核算項目的丟失,主要就是核算項目橫表中的數(shù)據(jù)丟失。問題原因找出來了,但是怎樣去查找出哪些科目的父級代碼出錯呢?這時我們可以通過科目余額表來查找,先是查找出最明細科目的數(shù)據(jù)并按科目進行匯總,生成到一個臨時表中,再查找出一級科目的數(shù)據(jù),生成到另一個臨時表中,再對這兩個臨時表的數(shù)據(jù)進行比較,就可以查出哪些科目數(shù)據(jù)不對,也就是那些科目的父級代碼不正確。既然反復核對過每個科目的數(shù)據(jù),那么幣別內碼不等于零的記錄的數(shù)據(jù)應該沒有問題,問題應該在于幣別內碼為零的記錄中,此賬套的問題在于借方幣別內碼等于零的記錄中FBeginBalanceFor數(shù)據(jù)不等于FBeginBalance的數(shù)據(jù)。分析:因為是年初做初始化,系統(tǒng)在進行試算平衡時,只是檢查期初余額是否平衡,但在結束初始化時,系統(tǒng)還需要檢查累計發(fā)生數(shù)是否平衡,如果不平衡,系統(tǒng)也不充許結否初始化。 分析:查數(shù)量金額明細賬時,涉及到的基礎資料肯定少不了計量單位表(t_MeasureUnit),在查“原材料”二級明細科目的明細賬時,沒有出現(xiàn)錯誤,證明此科目的科目表基礎資料無誤;那么就要查此科目對應的計量單位表了,檢查計量單位表(t_MeasureUnit)時,發(fā)現(xiàn)計量單位表(t_MeasureUnit)的名稱字段(Fname)的值有英文狀態(tài)下的單引號,把它改成中文狀態(tài)下的雙引號后,查數(shù)量金額明細賬正常。 案例二:有一賬套從K3V882升到931以后,在錄入憑證時只能顯示最明細的會計科目,并不能顯示全稱;在查明細賬時也只是顯示科目最明細的名稱,而不能顯示這個科目的全稱。1.8.2 損益表 損益表的檢查步驟與資產負債表是一樣,只不過損益表的取數(shù)方式有兩種情況,一種是取損益類科目的借方或貸方發(fā)生額,一種是取損益類科目的實際發(fā)生額,如果取某個損益類科目數(shù)據(jù)取錯了的話,應該先看看這個科目是取哪種數(shù)據(jù),如果是取損益類實際發(fā)生額的話,系統(tǒng)是取t_ProfitAndLoss表中對應科目的數(shù)據(jù),可以到t_ProfitAndLoss表中查看這個科目的數(shù)據(jù),與取出的數(shù)據(jù)是否相等,如果是取借方或貸方發(fā)生額的話,則對照總賬的科目余額表,看取出的數(shù)據(jù)是否與科目余額表中此科目的借方或貸方發(fā)生額一致。1.8 報表與總賬對賬1.8.1 資產負債表 在資產負債表做完后,重要的工作就是看資產與負債和所有者權益三者之間是否平衡,如果出現(xiàn)不平衡,這時,應該從哪個方面去檢查,這可以參考從以下幾個方面去考濾:① 首先考濾報表本身的各個項目是否都設置了取數(shù)公式,有小計合計這樣的欄目的公式是否設計有誤。 查核算項目明細賬時,要先確定一個科目,再查此科目下掛的核算項目的數(shù)據(jù),系統(tǒng)先從憑證表(t_Voucher,t_VoucherEntry)中匯總取出此科目下某一個核算項目未過賬的借貸方數(shù)據(jù),形成一個臨時表;再從余額表(t_Balance)聯(lián)接(Union)剛才生成的臨時表,取出此科目這個核算項目的期初余額,本期發(fā)生