版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、審計方法的編寫,房海濤2010-03-05,前言,根據自治區(qū)審計廳關于轉發(fā)《審計署辦公廳關于征集計算機審計方法的通知》的通知要求,在2010年6月1日至6月30日期間上報審計方法。征集的計算機審計方法要素包括方法代碼(填寫一級和二級分類碼)、方法名稱、目標功能、所需數據、分析步驟、流程圖、方法語言、適用法規(guī)、延伸建議、作者單位、時間、標志等12項內容。,審計方法編制要求,每個審計方法的電子資料應包括:方法正文WORD文檔,文件名格式
2、為“計算機審計方法名稱.doc”;方法語言AO導出文件,審計腳本語言(ASL)導出文件的文件名格式為“計算機審計方法名稱.func”,SQL語句導出文件的文件名格式為“計算機審計方法名稱.SQL”;電子數據AO導出文件,文件名格式為“計算機審計方法名稱.sjfx”。,審計方法編制要求,每個審計方法創(chuàng)建一個文件夾并將上報的電子資料保存在該文件夾內,文件夾名稱格式為“申報年份_申報單位_計算機審計方法名稱_作者”,如“2009_×
3、×省審計廳_×××計算機審計方法_張××”,建立審計方法的步驟,一、進入“審計分析”—“審計方法”—“審計方法管理”,在“審計師方法”下新增行業(yè)。二、右擊新增加的行業(yè)名稱,點擊“創(chuàng)建審計方法”后,填寫相關信息進行方法的建立。三、右擊新建立的方法,點擊“創(chuàng)建審計步驟”,在右側窗口可直接輸入該步驟對應的SQL語句和ASL程序。也可先創(chuàng)建SQL語句,然后再添加到該步驟中,具體方法
4、是:,建立審計方法的步驟,右擊新建的審計步驟,點擊“創(chuàng)建SQL語句”,在右側窗口中輸入SQL語句,然后在該審計步驟中將該SQL語句引入。四、右擊新建的審計方法,點擊“方法設置”,進行實例數據庫設置和方法說明文檔設置。五、如果有其他審計步驟,則可繼續(xù)新疆審計步驟。,舉例,方法名稱:銀行存款審計提示:與銀行對帳單進行核對,審查這些轉帳事項是否真實、合法。有無出租、出借帳戶、挪用公款,非法出借資金,隱瞞利息收入等問題。審計目標:注意
5、審查有無通過銀行存款一借一貸的會計處理進行出租、出借帳戶、挪用公款,非法出借資金等違紀問題。方法說明:篩選出“借:銀行存款,貸:銀行存款”的分錄。,舉例,SQL語句:SELECT DISTINCT 源憑證號 FROM 憑證庫 WHERE LEFT(科目編碼, 3) = '102' AND 借方金額 0 AND 源憑證號 IN (SELECT DISTINCT 源憑證號 FROM 憑證庫 WHERE LEFT(科目編碼
6、, 3) = '102' AND 貸方金額 0),方法的導入和導出,在審計方法管理界面下,直接點擊“方法導入”和“方法導出”即可進行方法的導入和導出。,審計腳本語言介紹,審計腳本語言(Audit script Language,ASL),是審計署基于PASCAL語言開發(fā)的一門專為審計人員書寫審計方法的編程語言。根據審計業(yè)務特征需要,審計人員可以將審計思路方法轉換成為計算機自動處理的命令語言,可以用ASL編寫程序存儲為
7、審計方法并編譯執(zhí)行。,語法規(guī)則,一、約束1.變量、標志符、函數及過程名稱一律使用英文字母開頭,可以使用英文和數字。2.變量、標志符、函數及過程名稱不區(qū)分大小寫。3.一段程序中變量、過程不能超過100個。4.數字最大位數為24位。5.過程嵌套不超過3層。6.一行程序不超過5000個字符。,語法規(guī)則,二、語法規(guī)則1.語法規(guī)則近似于Pascal語言。2.任何一段超過一行以上的程序需要使用begin…end語句約束,表明哪里是開
8、始,哪里是結束。3.每行程序以分號作為結束符。4.全程序以end作為結束。5.變量定義要在主程序的begin之前。6.賦值語句使用:=為運算符。,常用函數及運算符,一、運算符1.“:=” :等于號(賦值符、算術表達式)二、屆符1.“,” 變量界符。2.“;” 語句界符。用來作為每一行程序段的結束標志。三、系統(tǒng)保留字1.Var:變量定義基本字。舉例: var a,b;2.begin:程序開始基本字,一段
9、程序的開始標志。3.End:程序結束基本字,常用函數及運算符,4.if-then-else 判斷基本字。舉例:if a>0 then write(‘a是正數’); else write(‘a不是正數’),常用函數及運算符,5.repeat-until循環(huán)基本字。循環(huán)是直到until后的條件滿足循環(huán)就停止。例:i:=0; repea
10、t a:=i*i write(a); i:=i+1; until i>5,常用函數及運算符,四、數據庫函數1.CreateQ(‘SQL語句’,查詢變量)描述:創(chuàng)建查詢函數。執(zhí)行SQL語句,返回該SQL語句的執(zhí)行結果。第一個參數是查詢的SQL語句,第二個參數的值可是是-1或者已經存在的數據變量。例:a:=CreateQ(‘select * from 憑證庫’,-1),常用函數及運
11、算符,2.Qeof(查詢變量)描述:查詢判空函數。判斷查詢變量當前指向的記錄是否為空,如果為空,則函數返回值為1.3.Qmov(查詢變量,移動方向)描述:查詢移動函數。用于移動查詢游標、重新定位當前查詢變量記錄,返回成功與否。移動方向參數可以設置為1或-1,1表示向后移動查詢游標,即將查詢游標移到下一條記錄;-1表示相反方向移動。,常用函數及運算符,4.QFDValue(查詢變量,‘字段名稱’)描述:查詢取值函數。返回當前查詢變
12、量當前記錄的指定字段的值。例:i:=qfdvalue(a,'源憑證號');5.CreateTempTable(‘新表名’,‘SQL語句’)描述:生成臨時表函數,SQL語句應有返回結果集。將SQL語句執(zhí)行的結果以審計人員輸入的新表名存儲在數據庫中。例: CreateTempTable(‘現金明細賬’,‘select * from 憑證庫 where 科目編碼=“”101’),常用函數及運算符,6.AddVouRsl
13、t(源憑證號)描述:輸出財務數據疑點函數。將源憑證號輸出到疑點庫中,該源憑證號對應的憑證將被定義為未落實疑點。7.AddtransRslt(查詢變量,‘疑點說明’)描述:輸出業(yè)務數據疑點函數。將查詢變量的當前記錄附加疑點說明作為未落實疑點輸出到臨時疑點庫中。,常用函數及運算符,8.TransBatch(查詢變量,’批量疑點說明’)描述:輸出業(yè)務數據疑點函數。將臨時疑點庫中保存的已落實疑點和未落實疑點附加批量疑點說明正式輸出為業(yè)務
14、輸出疑點,并清空臨時庫中相應的數據。,實例語句說明,var a,b,i; //定義三個變量Begin //程序開始字 a:=createq(‘SELECT DISTINCT 源憑證號 FROM 憑證庫 WHERE LEFT(科目編碼, 3) = ’‘102’‘ AND 借方金額 0 AND 源憑證號 IN (SELECT DISTINCT 源憑證號 FROM 憑證庫 WHERE LEFT(科目編碼, 3
15、) = ’‘102’‘ AND 貸方金額 0)’, -1); //利用SQL語句讀取憑證記錄,創(chuàng)建數據集,初始情況下查詢游標定位在數據集的第一條紀錄,將結果賦給a。,b:=qeof(a); //判斷是否為空,并將值賦給b if b#1 then //如果結果不為空,則執(zhí)行下面的語句 begin //程序段超過1行以上,必須使用begin repeat //循環(huán)基本字
16、 i:=qfdvalue(a,‘源憑證號’);//取第一條記錄的源憑證號賦值給i addvourslt(i); //將該憑證號對應的憑證被定義為未落實疑點。 b:=qmov(a,1); //記錄下移一行 b:=qeof(a); //判斷是否為空 until b=1; //當記錄為空時,停止 end;end.,練習1,方法名稱:暫存款問題審計提示:注意有無隱瞞收入問題。審計目標
17、:審查有無隱瞞轉移收入問題等。方法說明:篩選出“借:收入類(4**)科目,貸:203”的所有記錄。,,SQL語句:SELECT DISTINCT 源憑證號 FROM 憑證庫 WHERE 源憑證號 IN (SELECT DISTINCT 源憑證號 FROM 憑證庫 WHERE LEFT(科目編碼, 3) = '203' AND 貸方金額 0) AND LEFT(科目編碼, 1) = '4' AND
18、 借方金額 0,ASL語句:var a,b,i;begin a:=createq('SELECT DISTINCT 源憑證號 FROM 憑證庫 WHERE 源憑證號 IN (SELECT DISTINCT 源憑證號 FROM 憑證庫 WHERE LEFT(科目編碼, 3) = ''203'' AND 貸方金額 0) AND LEFT(科目編碼, 1) = ''4&
19、#39;' AND 借方金額 0', -1); b:=qeof(a); if b#1 then begin repeat i:=qfdvalue(a,'源憑證號'); addvourslt(i); b:=qmov(a,1); b:=qeof(a); until b=1; end;end.,練習2,方法名稱:航空企業(yè)常旅客
20、營銷系統(tǒng)免票情況審計提示:各航空為了穩(wěn)定客源,推出了各種各樣的消費獎勵措施,其中一種普遍采用的是常旅客免票制度,即一名旅客在乘坐該航空公司飛機累計達到一定的里程數后,可享受免費機票。通過調查,我們發(fā)現對于常旅客的免票,航空公司未作收入,也沒有交納相應的營業(yè)稅。按照相關的法規(guī),該部分免票應視同銷售,繳納相應的營業(yè)稅。,審計步驟1:構建消費明細_里程明細表,將里程明細表與常旅客消費明細表建立關聯,計算出每張免票所對應的里程數。SQL語句
21、:select [業(yè)務_消費明細表].[流水號],[業(yè)務_消費明細表].[航班日期],[業(yè)務_消費明細表].[消費品編號],[業(yè)務_消費明細表].[票號],[業(yè)務_消費明細表].[承運人],[業(yè)務_消費明細表].[航班號],[業(yè)務_消費明細表].[航班起飛地],[業(yè)務_消費明細表].[到達地],IIF([業(yè)務_消費明細表].[來回程標志]='N',1,2) as 來回程,[業(yè)務_里程明細表].標準公里數 from [業(yè)務
22、_消費明細表] inner join [業(yè)務_里程明細表] on [業(yè)務_消費明細表].航班起飛地=[業(yè)務_里程明細表].起飛地 and [業(yè)務_消費明細表].到達地=[業(yè)務_里程明細表].到達地,ASL語言:var CXYJ; //定義變量 CXYJ:查詢語句beginCXYJ:='select [業(yè)務_消費明細表].[流水號],[業(yè)務_消費明細表].[航班日期],[業(yè)務_消費明細表].[消費品編號],[業(yè)務_消費明細
23、表].[票號],[業(yè)務_消費明細表].[承運人],[業(yè)務_消費明細表].[航班號],[業(yè)務_消費明細表].[航班起飛地],[業(yè)務_消費明細表].[到達地],IIF([業(yè)務_消費明細表].[來回程標志]=''N'',1,2) as 來回程,[業(yè)務_里程明細表].標準公里數 from [業(yè)務_消費明細表] inner join [業(yè)務_里程明細表] on [業(yè)務_消費明細表].航班起飛地=[業(yè)務_里程明細表]
24、.起飛地 and [業(yè)務_消費明細表].到達地=[業(yè)務_里程明細表].到達地';CreateTempTable('消費明細_里程明細表',CXYJ);end. //程序結束,,步驟2:統(tǒng)計審計年度所有旅客享受免票的里程數(從經濟倉升為頭等倉的旅客消費數不作統(tǒng)計,“消費品編號”字段為T)SQL語句為:select sum(來回程 * 標準公里數) as 總免票里程 from 消費明細_里程明細表 where
25、 year(航班日期)=2004 and mid(消費品編號,3,1)='T',ASL語言:var CXYJ,cxjg,IsEmpty; //定義變量 CXYJ:查詢語句,cxjg:查詢結果begin CXYJ:='select sum(來回程 * 標準公里數) as 總免票里程 from 消費明細_里程明細表 where year(航班日期)=2004 and mid(消費品編號,3,1)='
26、39;T'''; cxjg:=CreateQ(cxyj,-1); //查詢結果集是否為空 IsEmpty:=qeof(cxjg); if IsEmpty#1 then begin //利用循環(huán)將查詢結果放入業(yè)務臨時庫,repeat AddTransRslt(cxjg,'統(tǒng)計審計年度所有旅客享受免票的里程數'); IsEmpty:=qmov(
27、cxjg,1); IsEmpty:=qeof(cxjg); until IsEmpty=1; //將臨時庫結果集放入疑點庫 TransBatch(cxjg,'航空企業(yè)常旅客營銷系統(tǒng)免票情況'); end else begin ShowMsg('沒有符合條件的記錄'); end; end. //程序結束,測試1,方法名稱:暫存款方法2審計提示
28、:注意有無虛列支出、多計成本費用問題等。審查有無虛列支出、多計成本費用問題等。方法說明:篩選出“借:支出類科目(5**),貸:203”的所有記錄。,ASL語句:var a,b,i;begin a:=createq('SELECT DISTINCT 源憑證號 FROM 憑證庫 WHERE 源憑證號 IN (SELECT DISTINCT 源憑證號 FROM 憑證庫 WHERE LEFT(科目編碼, 3) =
29、9;'203'' AND 貸方金額 0) AND LEFT(科目編碼, 1) = ''5'' AND 借方金額 0', -1); b:=qeof(a); if b#1 then begin repeat i:=qfdvalue(a,'源憑證號'); addvourslt(i); b:=qmov(
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
評論
0/150
提交評論