[摘 要] 隨著計(jì)算機(jī)技術(shù)、網(wǎng)絡(luò)通信技術(shù)和數(shù)據(jù)庫技術(shù)在財(cái)務(wù)會(huì)計(jì)工作中應(yīng)用的不斷深入和發(fā)展,會(huì)計(jì)電算化系統(tǒng)在應(yīng)用效率和準(zhǔn)確性方面得到了很大提高,一些典型的算法也應(yīng)運(yùn)而生。本文以《資產(chǎn)負(fù)債表》和《固定資產(chǎn)投資表》為例,分析了報(bào)表內(nèi)關(guān)系的構(gòu)成和報(bào)表間關(guān)系的構(gòu)成,畫出了其相關(guān)的運(yùn)算關(guān)系樹;設(shè)計(jì)了會(huì)計(jì)電算化系統(tǒng)的報(bào)表處理過程中具有普遍意義的數(shù)據(jù)調(diào)整并自動(dòng)平衡的流程圖和算法RAA,并從理論上證明了其正確性;總結(jié)了算法RAA的應(yīng)用方法和效果,展望了算法RAA在人力資源管理等其他領(lǐng)域應(yīng)用的前景。
[關(guān)鍵詞] 會(huì)計(jì)電算化;關(guān)系樹;數(shù)據(jù)調(diào)整;算法RAA
doi : 10 . 3969 / j . issn . 1673 - 0194 . 2010 . 04 . 004
[中圖分類號(hào)]F232 [文獻(xiàn)標(biāo)識(shí)碼]A [文章編號(hào)]1673 - 0194(2010)04 - 0011 - 05
1 問題的提出
會(huì)計(jì)報(bào)表是反映企事業(yè)單位的資金運(yùn)行狀況、經(jīng)濟(jì)成本效益等方面的一種表現(xiàn)形式,各個(gè)報(bào)表內(nèi)部的會(huì)計(jì)科目之間存在一些平衡關(guān)系,有些報(bào)表與報(bào)表的相關(guān)會(huì)計(jì)科目之間存在一些平衡關(guān)系。在每個(gè)期末制作會(huì)計(jì)報(bào)表時(shí),都要檢驗(yàn)這些平衡關(guān)系,必須做到報(bào)表內(nèi)部、相關(guān)報(bào)表之間的勾稽關(guān)系平衡,報(bào)表才是合格的。由于產(chǎn)生報(bào)表的數(shù)據(jù)絕大部分來源于會(huì)計(jì)記賬憑證,所以報(bào)表數(shù)據(jù)的金額單位確定為“元”,小數(shù)有兩位“角”和“分”。然而,在向上級(jí)部門報(bào)出報(bào)表時(shí),往往要求報(bào)表的金額單位為“千元”或“萬元”,數(shù)據(jù)為四舍五入的整數(shù)。由于進(jìn)行了四舍五入后的運(yùn)算,上級(jí)部門(如集團(tuán)公司)所提供的會(huì)計(jì)信息往往是近似計(jì)量結(jié)果,而非精確計(jì)量,所以會(huì)造成數(shù)據(jù)誤差,致使報(bào)表內(nèi)的勾稽關(guān)系、報(bào)表間的勾稽關(guān)系不平衡。因此必須進(jìn)行數(shù)據(jù)的金額單位升位后的調(diào)整。
在人工進(jìn)行報(bào)表處理時(shí),只有通過反復(fù)試驗(yàn),才能將報(bào)表金額單位升位后的數(shù)據(jù)調(diào)整平衡,工作量大,也十分煩瑣。這樣做不僅浪費(fèi)了時(shí)間,而且被調(diào)整的數(shù)據(jù)往往并不是確切的,不能準(zhǔn)確地反映被調(diào)整數(shù)據(jù)的財(cái)務(wù)狀況。本文設(shè)計(jì)了會(huì)計(jì)電算化系統(tǒng)中的數(shù)據(jù)金額單位升位后的調(diào)整算法(RAA),很好地解決了這一問題。
2 問題的分析與解決
2.1 問題的分析
在會(huì)計(jì)報(bào)表系列中,《資產(chǎn)負(fù)債表》是反映企業(yè)的資產(chǎn)、負(fù)債及所有者權(quán)益等重要情況的資料,是會(huì)計(jì)報(bào)表中的龍頭,統(tǒng)馭了其他的一系列報(bào)表。對(duì)于賬戶式《資產(chǎn)負(fù)債表》來說,它又是一份結(jié)構(gòu)典型、具有代表性的報(bào)表,它的“資產(chǎn)總計(jì)”方與“負(fù)債和所有者權(quán)益總計(jì)”方分別代表兩個(gè)獨(dú)立的報(bào)表單元;而這兩方共存于一份報(bào)表中使報(bào)表具有了表內(nèi)勾稽關(guān)系和表間勾稽關(guān)系的特色。因此,本文分別以《資產(chǎn)負(fù)債表》和《固定資產(chǎn)投資表》為例進(jìn)行分析、討論。
《資產(chǎn)負(fù)債表》的平衡要求是:
第一,“資產(chǎn)總計(jì)”=“負(fù)債和所有者權(quán)益總計(jì)”
即報(bào)表上的“年初數(shù)”、“期末數(shù)”的“第53行”=“第129行”,這是表間的平衡關(guān)系(在下面的敘述中,將用“行”號(hào)來表示等式關(guān)系)。
第二,“資產(chǎn)總計(jì)”
“67”=“31”+“38”+“50”+“60”+“61”,這是表內(nèi)平衡關(guān)系。
第三,“負(fù)債和所有者權(quán)益總計(jì)”
“135”=“100”+“110”+“114”+“122”,這也是表內(nèi)平衡關(guān)系。
第四,表內(nèi)各分項(xiàng)的平衡關(guān)系
這里試舉2個(gè)平衡關(guān)系,其余可類推。
“50”=“39”+“40”+“41”-“42”+“43”+“44”+“45”+“46”;
“110”=“101”+“102”+“103”+“106”+“108”。
在第一個(gè)等式中,減號(hào)“-”的作用相當(dāng)于加上一個(gè)“負(fù)數(shù)”。
在會(huì)計(jì)核算過程中,差旅費(fèi)的報(bào)銷、工資的核算、工程費(fèi)用、成本核算等全部會(huì)計(jì)數(shù)據(jù)都是以“元”為單位進(jìn)行核算,包括兩位小數(shù),即“角”和“分”。通過匯總等計(jì)算,生成了《資產(chǎn)負(fù)債表》及相關(guān)報(bào)表,即以“元”為單位的平衡表。但是,工程項(xiàng)目發(fā)生的金額一般比較大,常有上億元的項(xiàng)目。例如某乙烯工程一期工程的累計(jì)投資高達(dá) 7 679 400 000.00元人民幣,現(xiàn)在每年還有3億~5億元的技改項(xiàng)目投資,這樣,報(bào)表數(shù)據(jù)字長(zhǎng)就達(dá)到13位(包括兩位小數(shù)和小數(shù)點(diǎn))。而上級(jí)管理部門從宏觀管理的角度出發(fā),所生成的報(bào)表以“千元”為單位,且要求下屬各單位上報(bào)的報(bào)表也要以“千元”為單位,相關(guān)金額數(shù)據(jù)(尤其總計(jì)數(shù)據(jù))必須與上級(jí)部門有關(guān)報(bào)表上的金額數(shù)據(jù)相等,即表間勾稽關(guān)系平衡而不能有誤差。
基于這個(gè)要求,《資產(chǎn)負(fù)債表》得到了以“元”為單位的平衡數(shù)據(jù)后,它的各項(xiàng)數(shù)據(jù)分別除以1 000,再四舍五入取整便得到了以“千元”為單位的數(shù)據(jù),但這樣的“總計(jì)”往往與各分項(xiàng)之和不相等。而“總計(jì)”不能被調(diào)整,否則會(huì)與上級(jí)部門的數(shù)據(jù)不合,因此只能調(diào)整各分項(xiàng)數(shù)據(jù)來滿足總計(jì),且要調(diào)整得合理。下面是《資產(chǎn)負(fù)債表》部分欄目的關(guān)系運(yùn)算結(jié)果:
第67行“資產(chǎn)總計(jì)”:
以“元”為單位的金額是:3 595 729 723.22元;
以“千元”為單位的金額是:3 595 730千元。
而它的分項(xiàng),以“千元”為單位的金額分別如下:
第31行“流動(dòng)資產(chǎn)合計(jì)” 460 536千元;
第38行“長(zhǎng)期投資合計(jì)” 3 063 511千元;
第50行“固定資產(chǎn)合計(jì)” 2 638千元;
第60行“無形資產(chǎn)及其他資產(chǎn)合計(jì)” 11 113千元;
第61行“遞延稅款借項(xiàng)” 57 931千元;
一些行的本期數(shù)據(jù)為零,故不羅列。這些分項(xiàng)的和計(jì)算如下:
460 536+3 063 517+2 638+11 113+57 931=3 595 729
這個(gè)數(shù)與3 595 730不相等而相差了1。如果從最明細(xì)項(xiàng)的數(shù)據(jù)開始逐項(xiàng)除以1 000,再四舍五入取整后計(jì)算,它們相差的會(huì)更大些。
同樣,“負(fù)債和所有者權(quán)益總計(jì)”方用上述方法計(jì)算的話,“總計(jì)”與分項(xiàng)之和也不相等,必然存在誤差。并且,“資產(chǎn)總計(jì)”與“負(fù)債和所有者權(quán)益總計(jì)”也不相等,與上級(jí)部門報(bào)表的相關(guān)數(shù)據(jù)也必然不相等。這樣的報(bào)表是不合格的,上級(jí)部門也是不接受的。
過去,人工處理這類問題時(shí),先采用上述方法計(jì)算,再人為地加或減幾個(gè)數(shù),使報(bào)表平衡。這樣做,報(bào)表反映的數(shù)據(jù)準(zhǔn)確性不夠,還要硬性地調(diào)整一些關(guān)聯(lián)賬冊(cè)的數(shù)據(jù),工作量增加了很多。也有些單位可能會(huì)利用會(huì)計(jì)軟件系統(tǒng)中的賬務(wù)函數(shù)做一些信息處理,但這種粗放型的處理方法往往不能一步到位,結(jié)果多需要手工調(diào)整,而一旦“擺不平”,便會(huì)“巧妙地”利用“其他”項(xiàng)目將表軋平[1]。
2.2報(bào)表關(guān)系的構(gòu)成
以《資產(chǎn)負(fù)債表》為例,構(gòu)造報(bào)表的關(guān)系。
在資產(chǎn)方:“第67行資產(chǎn)總計(jì)”=第31行“流動(dòng)資產(chǎn)合計(jì)”+第38行“長(zhǎng)期投資合計(jì)”+第50行“固定資產(chǎn)合計(jì)”+第60行“無形資產(chǎn)及其他資產(chǎn)合計(jì)”+第61行“遞延稅款借項(xiàng)”,可用一棵樹表示,如圖1所示(說明:本圖及其他圖中圓圈中的數(shù)字代表報(bào)表的行號(hào))。

其中,各合計(jì)欄目下面還有若干個(gè)分項(xiàng),例如第60行“無形資產(chǎn)及其他資產(chǎn)合計(jì)”=第51行“無形資產(chǎn)”+第52行“長(zhǎng)期待攤費(fèi)用”+第53行“其他長(zhǎng)期資產(chǎn)”。可用關(guān)系樹表示,如圖2所示。

由此可清楚地看到《資產(chǎn)負(fù)債表》中“資產(chǎn)總計(jì)”的平衡關(guān)系實(shí)質(zhì)上就是一棵具有層次結(jié)構(gòu)的關(guān)系樹。同樣,“負(fù)債和所有者權(quán)益總計(jì)”的平衡關(guān)系也是一棵具有層次結(jié)構(gòu)的關(guān)系樹。《資產(chǎn)負(fù)債表》整個(gè)表的平衡關(guān)系可構(gòu)成兩棵根內(nèi)容相等的關(guān)系樹。因此,其他具有表內(nèi)或表間勾稽關(guān)系的會(huì)計(jì)報(bào)表都可以用關(guān)系樹來表示。
為了便于直觀地理解,下面畫出《固定資產(chǎn)投資表》的一棵完整的運(yùn)算關(guān)系樹,如圖3所示。

圖3共分4個(gè)層次。“總計(jì)”是父節(jié)點(diǎn),而“一”至“八”則都是它的子節(jié)點(diǎn);“一”至“八”又可以看成是第三層節(jié)點(diǎn)的父節(jié)點(diǎn),只是“一”至“八”分別擁有的子節(jié)點(diǎn)的個(gè)數(shù)不盡相同而已,“一”和“三”分別有5個(gè)節(jié)點(diǎn),“二”和“六”沒有子節(jié)點(diǎn),“四”、“七”、“八”分別有2個(gè)子節(jié)點(diǎn),“五”有6個(gè)子節(jié)點(diǎn);其子節(jié)點(diǎn),“一”中的“5”中也有自己的6個(gè)子節(jié)點(diǎn)“(1)”至“(6)”。
在關(guān)系樹中,第n(n≥2)層上的節(jié)點(diǎn)必然是它的上一層(第n-1層)對(duì)應(yīng)節(jié)點(diǎn)的子節(jié)點(diǎn)。而第n-1層上的這個(gè)節(jié)點(diǎn)則是第n層子節(jié)點(diǎn)的父節(jié)點(diǎn)。例如在圖3中,第四層(n=4)上的節(jié)點(diǎn)“(1)”至“(6)”是它上一層(第三層,n-1=3)上對(duì)應(yīng)節(jié)點(diǎn)“5”的子節(jié)點(diǎn),即“5”是“(1)”至“(6)”的父節(jié)點(diǎn)。在報(bào)表中反映的關(guān)系就是父節(jié)點(diǎn)的內(nèi)容等于所有子節(jié)點(diǎn)的內(nèi)容之和。
2.3 問題的解決
通過上述分析,可以找到解決問題的方法:以父節(jié)點(diǎn)的內(nèi)容為準(zhǔn),調(diào)整其相應(yīng)子節(jié)點(diǎn)的內(nèi)容。數(shù)據(jù)調(diào)整前,要確定調(diào)整為哪種單位金額(十元,百元,千元,萬元或億元)。若以“千元”為單位,那么就將每個(gè)數(shù)據(jù)項(xiàng)除以1 000后再四舍五入取整數(shù);然后調(diào)整尾數(shù)。
2.3.1 數(shù)據(jù)調(diào)整算法流程
數(shù)據(jù)調(diào)整算法的流程如圖4所示。

2.3.2 報(bào)表數(shù)據(jù)調(diào)整的算法
算法RAA數(shù)據(jù)調(diào)整的步驟如下:
(1)將每個(gè)數(shù)據(jù)分別除以W(W的用途同圖4的說明)后,四舍五入取整送回各節(jié)點(diǎn)存儲(chǔ)器內(nèi),同時(shí)將其小數(shù)部分送到相應(yīng)的存儲(chǔ)器內(nèi)(在數(shù)據(jù)庫中用一個(gè)相應(yīng)的字段存小數(shù)值)。
(2)確定當(dāng)前層次為最高層,即第一層。
(3)從該層的第1個(gè)節(jié)點(diǎn)開始:
①該節(jié)點(diǎn)有子節(jié)點(diǎn)嗎?如果有,即轉(zhuǎn)到步驟②,否則,轉(zhuǎn)到步驟⑥;
②求該節(jié)點(diǎn)的和(記為T2),其相應(yīng)的父節(jié)點(diǎn)的內(nèi)容記為T1;
③如果T1=T2,那么不必調(diào)整,轉(zhuǎn)到步驟⑥;
④如果T1>T2,那么就在其對(duì)應(yīng)的子節(jié)點(diǎn)中尋找小數(shù)值小于0.5且與0.5距離最近的那個(gè)節(jié)點(diǎn),將其加上1,同時(shí)將其存儲(chǔ)器值即小數(shù)值置為0,即該節(jié)點(diǎn)下次就不再參與調(diào)整了,轉(zhuǎn)到步驟③;
⑤如果T1 ⑥該層上還有節(jié)點(diǎn)嗎?如果有,那么下一個(gè)節(jié)點(diǎn)定為當(dāng)前節(jié)點(diǎn),轉(zhuǎn)到步驟2,否則,轉(zhuǎn)到步驟(4)。 (4)層次到了最低層,報(bào)表關(guān)系達(dá)到了平衡,結(jié)束調(diào)整;否則,下一層次定為當(dāng)前層,轉(zhuǎn)到步驟(3)。 2.3.3 算法RAA的討論 (1)樹形結(jié)構(gòu)的遍歷。對(duì)于樹形結(jié)構(gòu)的遍歷,一般的方法有“先根次序”、“中根次序”和“后根次序”3種[2],根據(jù)不同的處理對(duì)象選用不同的方法。我們根據(jù)會(huì)計(jì)報(bào)表的實(shí)際要求,構(gòu)造的關(guān)系樹是一棵多叉樹或叫做“森林”,而“根”是每次數(shù)據(jù)調(diào)整的基準(zhǔn),因此,在RAA算法中采用了“先根次序”遍歷各個(gè)節(jié)點(diǎn)。即在處理數(shù)據(jù)時(shí),先訪問的是“根”節(jié)點(diǎn),后訪問的是“自左到右”(從圖3上看)的相應(yīng)的子節(jié)點(diǎn);如果某一“根”或叫做“父節(jié)點(diǎn)”為空,即實(shí)際報(bào)表上這一欄數(shù)據(jù)為0,則對(duì)于這棵就不再遍歷了。 (2)對(duì)RAA算法正確性的證明: 1)設(shè)會(huì)計(jì)報(bào)表構(gòu)成的關(guān)系樹有N層: 第一層:R1(1個(gè)節(jié)點(diǎn)) 第二層:每個(gè)節(jié)點(diǎn)可表示為R2h(h=1,2,3,…) 第三層: 對(duì)應(yīng)于第二層各個(gè)節(jié)點(diǎn)的節(jié)點(diǎn)可表示為: R 3 i f (i=1,2,3,…;f=1,2,3,…)個(gè)節(jié)點(diǎn)。 例如:第二層上第5個(gè)(h=5)節(jié)點(diǎn)R25在第三層上的子節(jié)點(diǎn)有R35f(f=1,2,3,…)。 第n-1層對(duì)應(yīng)于第n-2層各個(gè)節(jié)點(diǎn)的節(jié)點(diǎn)可表示為: R(n-1)jp (n=2,3,4,…;j=1,2,3,…;p=1,2,3,…) 第n層有對(duì)應(yīng)于第n-1層各個(gè)節(jié)點(diǎn)分別有: R n k m (n=2,3,4,…;k=1,2,3,…;m=1,2,3,…)。 n表示第幾層;k表示對(duì)應(yīng)于上層第幾個(gè)節(jié)點(diǎn);m表示對(duì)應(yīng)于上層k節(jié)點(diǎn)在n層中第幾個(gè)節(jié)點(diǎn)。 2)第一層R1為調(diào)整基準(zhǔn): 證明(數(shù)學(xué)歸納法): ①當(dāng)n=1時(shí),報(bào)表數(shù)據(jù)關(guān)系只有一層,在RAA算法中只要順次執(zhí)行一遍(1)至(4)的各個(gè)步驟就行了。即當(dāng)n=1時(shí)算法RAA為真。 ②首先考察一下算法中的關(guān)系樹層次為n時(shí),在關(guān)系樹上已是最低一層了,該層n個(gè)節(jié)點(diǎn)都沒有子節(jié)點(diǎn)了,所以層次為n時(shí)沒有節(jié)點(diǎn)需要調(diào)整。如圖3,第四層上的各個(gè)節(jié)點(diǎn)和第三層上的除第一個(gè)⑤節(jié)點(diǎn)以外的各個(gè)節(jié)點(diǎn)都不要調(diào)整。設(shè)關(guān)系樹層次為n-2(n>2)時(shí)的算法RAA已為真,那么只要證明層次為n-1時(shí)算法RAA亦真即可。 其次,令任意的n=2,即得到層次為2的平衡樹S2,即當(dāng)n=2時(shí),報(bào)表數(shù)據(jù)有兩層,算法RAA每一步驟順次執(zhí)行一遍后再反復(fù)執(zhí)行步驟(3)可得到; R1=R21+R22+R23+…+R2(h-1)+R2h 這時(shí)算法RAA為真;該關(guān)系樹S2平衡。 第三,定義關(guān)系樹層次為n-2(n>2)時(shí)已為真的樹為S; 定義S的任一子樹(子節(jié)點(diǎn)構(gòu)成的樹)為S1,那么,S1只有兩層(如圖3,第三層上的⑤下面只有一層,包括本身共兩層),根據(jù)本證明中前一個(gè)步驟的結(jié)果證明,當(dāng)n=2時(shí),關(guān)系樹S2平衡。 又因?yàn)镾2是S的一個(gè)子樹或一個(gè)子節(jié)點(diǎn),所以,將S2鏈到樹S上即可。 這樣,在第n-1層中,任意第p個(gè)節(jié)點(diǎn)有: R(n-1)jp=Rnp1+Rnp2+Rnp3+…+Rnp(m-1)+Rnpm 所以當(dāng)層次為n-1時(shí)算法RAA亦為真。 綜合上述①和②可得到結(jié)論:當(dāng)關(guān)系樹層次為任意層時(shí),算法RAA亦為真。證畢。 2.3.4 算法RAA的應(yīng)用 在圖3中,首先調(diào)整第一層以“總計(jì)”為準(zhǔn),而調(diào)整“一”至“八”,使“總計(jì)”等于“一”至“八”之和;接下來調(diào)整第二層,分別以“一”至“八”為準(zhǔn),而調(diào)整相應(yīng)的子節(jié)點(diǎn)的內(nèi)容,使父節(jié)點(diǎn)的內(nèi)容等于其所有子節(jié)點(diǎn)的內(nèi)容。在同一層中各個(gè)節(jié)點(diǎn)分別作為父節(jié)點(diǎn)調(diào)整時(shí),每個(gè)節(jié)點(diǎn)分別調(diào)整平衡就行了。最后調(diào)整的是第三層,這一層數(shù)據(jù)平衡了,那么被調(diào)整的報(bào)表就滿足要求了。 3 結(jié)論 (1)在會(huì)計(jì)電算化系統(tǒng)的數(shù)據(jù)調(diào)整中,最重要的是將報(bào)表平衡關(guān)系建立起關(guān)系樹。既便于直觀理解,又反映了報(bào)表數(shù)據(jù)層次遞進(jìn)的所屬關(guān)系,報(bào)表結(jié)構(gòu)十分清晰。 (2)在構(gòu)造報(bào)表關(guān)系時(shí)要有一定的靈活性,比如前面提到的《資產(chǎn)負(fù)債表》可以分別以“資產(chǎn)總計(jì)”和“負(fù)債和所有者權(quán)益總計(jì)”構(gòu)造兩棵關(guān)系樹。又比如有些報(bào)表中反映了縱橫都要同時(shí)平衡的關(guān)系,如《固定資產(chǎn)投資表》等,可以采取以縱(或橫)一方構(gòu)建報(bào)表關(guān)系樹的辦法。 (3)在實(shí)際工作中,根據(jù)上述數(shù)據(jù)調(diào)整方法編制了計(jì)算機(jī)程序,成功地解決了某石化企業(yè)財(cái)務(wù)報(bào)表中的數(shù)據(jù)調(diào)整問題,使用效果很好。 (4)構(gòu)建報(bào)表關(guān)系樹的方法,可以推廣到計(jì)劃管理信息系統(tǒng)、統(tǒng)計(jì)管理信息系統(tǒng)、人力資源信息管理系統(tǒng)等領(lǐng)域。例如,某人力資源管理報(bào)表的要求與上述“資產(chǎn)總計(jì)”的要求相似,總數(shù)是個(gè)大數(shù),上報(bào)人數(shù)的計(jì)量單位要求是“千人”,“總計(jì)”是除以1 000再四舍五入后的整數(shù),而分項(xiàng)中出現(xiàn)了零點(diǎn)幾個(gè)人的現(xiàn)象,這就必須調(diào)整。其調(diào)整方法也只能從最高層到最低層,自頂向下逐層調(diào)整,這正是本算法的獨(dú)特之處。 主要參考文獻(xiàn) [1] 呂志明. 信息化環(huán)境下編制會(huì)計(jì)報(bào)表若干問題分析[J]. 中國(guó)管理信息化,2008(2). [2] 嚴(yán)蔚敏. 數(shù)據(jù)結(jié)構(gòu)[M]. 北京:清華大學(xué)出版社,1997.