■
筆者所在單位有一款財務核算軟件,后臺為SQL數據庫。前一段時間發現2013年度科目余額表上有幾個支出科目的余額為負數,表明支出結轉有問題。仔細觀察后發現,出問題的是“5010201財政撥款支出”科目掛接的輔助核算項目,如果按照正常的操作,在支出年終結轉過程中,輔助核算項目會自動進行結轉。為什么2013年度會出錯呢?那只有一種可能,輔助核算項目設置有問題。
在基礎數據設置中,找到“5010201”科目,終于找到問題所在,原來是操作人員在添加下一級明細科目時,沒有刪除上一級科目的輔助核算項目,而系統要求,非最底級科目嚴禁設置輔助核算,因此出現以上問題。
按理說,直接刪除上一級科目的輔助核算項目就行了,但由于財務軟件的特殊性,只要有數據發生就不允許修改基礎數據設置,現在可操作的辦法就是刪除所有與“5010201”科目相關的會計憑證再進行修改。由于財務核算軟件只能提供一步步反向操作,如果要跨年度刪除記賬憑證,將需要耗費非常大的工作量,而且還容易出錯。有沒有好的辦法取消上一級科目的輔助核算項目呢?本文試圖通過在后臺直接操作數據庫,來取消“5010201”科目的三個輔助核算項目。
先看前臺,與“5010201”相關的科目為“501經費支出-50102項目支出-5010201財政撥款支出-501020101其他支出”,在“財政撥款支出”上掛接了“項目分類”、“功能分類”、“經濟分類”等三個輔助核算項目,這個就是出錯的原因。再在SQL企業管理器中看后臺數據庫,發現表很多,由于沒有該財務軟件的數據字典,與輔助核算項目設置相關的數據存儲于哪個表還無法判斷。為解決以上問題,筆者試圖通過以下方法進行處理。
第一步,導出后臺數據庫為Excel 97-2000格式文件。通SQL企業管理器的導出數據功能,將該財務核算軟件后臺數據庫里的所有表導出成一個Excel文件,并取名為TEMP.XLS。
第二步,用Excel軟件打開TEMP.XLS,點擊“查找和替換”,打開“查找”的“選項”,選擇范圍“工作薄”,選中“單元格匹配”,查找內容中填入“5010201”(“財政撥款支出”的科目代碼),點擊查找全部。

圖1 查看結果

圖2 查找結果

圖 4 “VOUCHER_RESTRICT”表內容
第三步,點擊查找到的結果如圖1,從圖1可以看出,這只是一個科目設置的表,并不是有關輔助項目掛接的表,但可發現,“5010201”與“501002001”是相關聯的。
第四步,按照上面的方法,查找“501002001”,可以找到如圖2所示結果。
認真分析能查找到“501002001”的三個表,可發現,VOUCHER_RESTRICT表與科目加載輔助項目有關(如圖3)。
根據圖3,我們可以大膽地猜出,A列為ID號,B列中004040001為我們所用賬,-1為該財務軟件的標準賬,C列為年度,D列為我們用的科目號,E列為輔助核算項目表名,G列為相關字段。有了以上猜測,我們備份好數據庫,然后在查詢分析器中執行以下語句:

重新進入核算軟件前臺,查看相關基礎信息和科目余額表,出錯的問題都已解決。
從以上解決過程可以看出,常用業務軟件中很多棘手的問題,我們都可以靜下心來,仔細觀察,慢慢分析,最終通過我們比較熟悉的一些方式方法,找到解決問題的捷徑。
其實,如果我們對SQL的存儲過程比較熟悉的話,可以直接用SQL語句建一個全文查找的存儲過程,那么就可以直接在SQL查詢分析器中查找“5010201”和“501002001”,而不必借助Excel來操作了,至于存儲過程的編寫,在此就不一一贅述了,感興趣的朋友可以自己研究。