■
筆者所在單位有一款財務(wù)核算軟件,后臺為SQL數(shù)據(jù)庫。前一段時間發(fā)現(xiàn)2013年度科目余額表上有幾個支出科目的余額為負數(shù),表明支出結(jié)轉(zhuǎn)有問題。仔細觀察后發(fā)現(xiàn),出問題的是“5010201財政撥款支出”科目掛接的輔助核算項目,如果按照正常的操作,在支出年終結(jié)轉(zhuǎn)過程中,輔助核算項目會自動進行結(jié)轉(zhuǎn)。為什么2013年度會出錯呢?那只有一種可能,輔助核算項目設(shè)置有問題。
在基礎(chǔ)數(shù)據(jù)設(shè)置中,找到“5010201”科目,終于找到問題所在,原來是操作人員在添加下一級明細科目時,沒有刪除上一級科目的輔助核算項目,而系統(tǒng)要求,非最底級科目嚴禁設(shè)置輔助核算,因此出現(xiàn)以上問題。
按理說,直接刪除上一級科目的輔助核算項目就行了,但由于財務(wù)軟件的特殊性,只要有數(shù)據(jù)發(fā)生就不允許修改基礎(chǔ)數(shù)據(jù)設(shè)置,現(xiàn)在可操作的辦法就是刪除所有與“5010201”科目相關(guān)的會計憑證再進行修改。由于財務(wù)核算軟件只能提供一步步反向操作,如果要跨年度刪除記賬憑證,將需要耗費非常大的工作量,而且還容易出錯。有沒有好的辦法取消上一級科目的輔助核算項目呢?本文試圖通過在后臺直接操作數(shù)據(jù)庫,來取消“5010201”科目的三個輔助核算項目。
先看前臺,與“5010201”相關(guān)的科目為“501經(jīng)費支出-50102項目支出-5010201財政撥款支出-501020101其他支出”,在“財政撥款支出”上掛接了“項目分類”、“功能分類”、“經(jīng)濟分類”等三個輔助核算項目,這個就是出錯的原因。再在SQL企業(yè)管理器中看后臺數(shù)據(jù)庫,發(fā)現(xiàn)表很多,由于沒有該財務(wù)軟件的數(shù)據(jù)字典,與輔助核算項目設(shè)置相關(guān)的數(shù)據(jù)存儲于哪個表還無法判斷。為解決以上問題,筆者試圖通過以下方法進行處理。
第一步,導(dǎo)出后臺數(shù)據(jù)庫為Excel 97-2000格式文件。通SQL企業(yè)管理器的導(dǎo)出數(shù)據(jù)功能,將該財務(wù)核算軟件后臺數(shù)據(jù)庫里的所有表導(dǎo)出成一個Excel文件,并取名為TEMP.XLS。
第二步,用Excel軟件打開TEMP.XLS,點擊“查找和替換”,打開“查找”的“選項”,選擇范圍“工作薄”,選中“單元格匹配”,查找內(nèi)容中填入“5010201”(“財政撥款支出”的科目代碼),點擊查找全部。
圖1 查看結(jié)果
圖2 查找結(jié)果
圖 4 “VOUCHER_RESTRICT”表內(nèi)容
第三步,點擊查找到的結(jié)果如圖1,從圖1可以看出,這只是一個科目設(shè)置的表,并不是有關(guān)輔助項目掛接的表,但可發(fā)現(xiàn),“5010201”與“501002001”是相關(guān)聯(lián)的。
第四步,按照上面的方法,查找“501002001”,可以找到如圖2所示結(jié)果。
認真分析能查找到“501002001”的三個表,可發(fā)現(xiàn),VOUCHER_RESTRICT表與科目加載輔助項目有關(guān)(如圖3)。
根據(jù)圖3,我們可以大膽地猜出,A列為ID號,B列中004040001為我們所用賬,-1為該財務(wù)軟件的標準賬,C列為年度,D列為我們用的科目號,E列為輔助核算項目表名,G列為相關(guān)字段。有了以上猜測,我們備份好數(shù)據(jù)庫,然后在查詢分析器中執(zhí)行以下語句:
重新進入核算軟件前臺,查看相關(guān)基礎(chǔ)信息和科目余額表,出錯的問題都已解決。
從以上解決過程可以看出,常用業(yè)務(wù)軟件中很多棘手的問題,我們都可以靜下心來,仔細觀察,慢慢分析,最終通過我們比較熟悉的一些方式方法,找到解決問題的捷徑。
其實,如果我們對SQL的存儲過程比較熟悉的話,可以直接用SQL語句建一個全文查找的存儲過程,那么就可以直接在SQL查詢分析器中查找“5010201”和“501002001”,而不必借助Excel來操作了,至于存儲過程的編寫,在此就不一一贅述了,感興趣的朋友可以自己研究。