程式資訊
- 程式 ID:
TUTAX - 所屬子系統:P.發票管理
- 狀態:stable
統一發票進銷項媒體申報轉檔¶
功能簡介¶
「統一發票進銷項媒體申報轉檔」把指定所屬年月(雙月期)的銷項、進項、退回、零稅率發票資料,依財政部媒體申報格式整理成定長文字檔(SDF),供營業稅 401 申報上傳使用。會計或稅務人員在每期申報前用它一鍵產生申報媒體檔。
它在發票流程中位於最末端——前面 銷項發票、進項發票、銷項退回、零稅率明細 都登錄完成後,本表單只讀取這些資料、按格式重組欄位,不會修改任何發票。
提供兩種轉檔模式:
- 進銷項:產出一般進銷項申報媒體檔(含銷項、銷項退回、進項、以及由零稅率補出的銷項)。畫面會顯示重組後的明細格線,再按
匯出寫成文字檔。 - 零稅率:產出零稅率銷售額清單媒體檔,按
查詢即直接寫出文字檔。
與 401 稅額試算的差異
本表單只負責「產生申報媒體檔」。要在畫面上試算當期應納/溢付營業稅額(進項、銷項彙總、上期累積留抵等),請用 401 稅額試算。兩者在程式內共用同一個 ProgramClass.TUTAX,但是不同表單、不同用途。
前置需求¶
- 權限:P.發票 →
P-060的瀏覽權限。 - 基礎資料:轉檔結果完全來自下列已登錄的發票與公司主檔——
| 資料 | 影響的結果 |
|---|---|
| 公司主檔(統一編號、稅籍號碼、公司地點) | 申報檔的銷售人統編/稅籍編號;零稅率檔的銷售人縣市別(由公司地點推算) |
| 銷項發票 | 進銷項檔的銷項明細列 |
| 銷項退回 | 進銷項檔的銷項退回列 |
| 進項發票 | 進銷項檔的進項明細列 |
| 零稅率明細 | 零稅率媒體檔;進銷項檔中「未對應到銷項發票」的零稅率補列 |
發票種類對照(sk_taxtype) |
進項各憑證的 P1/P2/P3 組法(其他憑證 vs 一般發票) |
所屬年月一定要有資料
本表單以所屬年月為唯一查詢條件去呼叫資料庫程序(TWORK_TUR_TICK,查詢別 4)。若該期沒有任何已登錄發票,查回的明細會是空的,格線無資料、也無法匯出。
操作步驟¶
整個流程是「選條件 → 查詢 → 匯出」三步:

步驟① 設定條件¶
- 選擇轉檔模式:
進銷項(預設):產生一般進銷項申報媒體檔,查詢後在右側格線檢視。零稅率:產生零稅率銷售額清單,按查詢直接寫檔。
- 選擇 公司代碼:預設
1。下拉選單列出公司代碼,右側唯讀欄位顯示對應的公司全名。 - 輸入 所屬年月:預設帶當期雙月(例如 9 月開啟會帶
當年-09-10,遮罩格式yyyy-MM-dd)。這個值就是申報期別,必須與發票登錄時的所屬年月一致。
「是否合併」目前不可用
舊版 VFP 有「是否合併」勾選(合併同一稅籍下多家公司)。新版程式保留了此參數,但畫面上的勾選控件已停用(註解隱藏),目前一律以「依公司代碼」過濾。需要合併申報時請先洽系統管理。
步驟② 查詢¶
按工具列的 查詢:
- 模式為 進銷項 時,系統呼叫資料庫程序取回該期的銷項、銷項退回、進項、零稅率四組明細,依申報格式重組後顯示在格線(見 欄位說明)。
- 模式為 零稅率 時,系統取回零稅率主檔、彙總後直接寫出文字檔並跳出「已匯出資料---<路徑>」訊息,不在格線顯示。

步驟③ 匯出(進銷項模式)¶
確認格線資料無誤後,按格線上方的 匯出:
- 系統把格線每一列依固定欄寬串成一行,整份寫成 UTF-8 文字檔。
- 檔名為
<本公司統一編號>.txt(取登入環境本公司的統一編號,非畫面所選公司代碼),存到系統暫存目錄(ERPIO.TempsRoot)。 - 完成後跳出「已匯出資料---<完整路徑>」訊息,依該路徑取檔上傳申報。
沒有資料不能匯出
若格線是空的(尚未查詢、或該期無資料),按 匯出 會跳「無資料」提示並中止。請先完成步驟②。
欄位說明¶
查詢條件¶
| 欄位 | 必填 | 說明/格式/預設 |
|---|---|---|
| 模式(進銷項/零稅率) | ✔ | 單選,預設 進銷項 |
| 公司代碼 | ✔ | 下拉選公司代碼,預設 1;右側唯讀欄帶出公司全名 |
| 所屬年月 | ✔ | 遮罩 yyyy-MM-dd,預設當期雙月(單月份起算,例 2026-09-10) |
進銷項結果格線¶
格線每一列即申報媒體檔的一筆記錄,欄位都是已格式化的定長字串(補零、補空白),方便逐欄核對:
| 欄位 | 說明 |
|---|---|
| 流水號 | 7 碼,自 1 起算,整份檔連號 |
| 格式代號 | 憑證類別代碼(如 31/32/34/36/21/22 等) |
| 資料年月 | 民國年月 5 碼(年3碼+月2碼);零稅率銷項與部分進項憑證改用實際發票日期月份 |
| 稅籍編號 | 公司稅籍號碼前 9 碼 |
| P1 | 申報格式第一段:依憑證/彙加註記放買受人統編或發票迄號 |
| P2 | 申報格式第二段:銷售人統編+發票號碼/其他憑證號(依格式代號 34/36 等規則) |
| P3 | 金額段,12 碼補零(含稅或未稅依憑證類別決定) |
| 課稅別 | 1 應稅/2 零稅/3 免稅,非此三者填 D |
| 營業稅額 | 10 碼補零;課稅別為 D 時填 0 |
| 空白 | 5 碼空白(格式保留欄) |
| 扣抵代號 | 進項扣抵區分(取自進項「類別」首碼);銷項為空白 |
| 特種稅額稅率 | 1 碼,預設空白 |
| 彙加註記 | 來源彙加註記為 Y 時填 A,否則空白 |
| 通關方式註記 | 零稅率銷項:經海關填 2、未經海關填 1;其餘空白 |
格線欄位都是格式化字串
這些欄位是為了輸出檔而預先補滿位數的字串(例如金額「000001234500」),不是可運算的數值;用途是讓你在匯出前比對檔案內容,不要拿來加總。
欄位連動與附加功能¶
這一節把「選了什麼、按了什麼,系統會做什麼」逐條說明,全部對應實際程式行為。
開窗預設值¶
- 開啟表單時,所屬年月自動帶當期雙月。算法是取系統當月:若為偶數月則退一個月(湊成單月起算的雙月期),組成
當年-起月-起月+1(例如 6 月開啟帶2026-05-06、9 月開啟帶2026-09-10)。 - 公司代碼預設
1,下拉清單由公司主檔載入;選定後右側欄位即時顯示該公司全名。 - 模式預設
進銷項。
按「查詢」時¶
- 系統以
所屬年月 = '<所選年月>'為條件、查詢別4,呼叫資料庫程序TWORK_TUR_TICK,一次取回五組結果:銷項發票明細、銷項退回明細、零稅率主檔、進項發票明細、公司主檔(codata)。 - 公司資料檢核:若公司代碼為 0(未選)或查不到公司主檔,跳「公司資料錯誤」並中止——這時格線不會有資料。
- 從公司主檔取稅籍號碼前 9 碼當稅籍編號、取統一編號當銷售人統編,套到每一筆記錄。
進銷項模式接著依序組出四種來源的列(共用同一張 營業人進銷資料檔):
- 銷項發票明細:每筆給流水號,組 P1/P2/P3、營業稅額。
- 當你的銷項課稅別為零稅(2),系統會用發票實際月份覆寫資料年月;並比對零稅率主檔,經海關的把通關方式註記設
2、未經海關設1。 - 憑證類別
34/36時 P2 改放「其他憑證」而非發票號碼;彙加註記Y的 P1 改放發票迄號。
- 當你的銷項課稅別為零稅(2),系統會用發票實際月份覆寫資料年月;並比對零稅率主檔,經海關的把通關方式註記設
- 銷項退回明細:規則同銷項,金額與稅額相加進 P3。
- 進項發票明細:
- 憑證類別
28/29(海關代徵營業稅繳納證)走專屬組法,P2 放其他憑證。 - 其餘依發票種類(查
sk_taxtype)分「其他憑證(Z)」與「一般發票」兩路,再依憑證類別22/24/27決定 P3 是否含稅、營業稅額是否歸 0。 - 扣抵代號取進項「類別」首碼(1 進貨及費用/2 固定資產)。
- 憑證類別
21/22/25時資料年月改用發票日期月份。
- 憑證類別
- 零稅率補銷項:把零稅率主檔中找不到對應銷項發票(字軌號碼 不在 銷項發票「發票號碼前8碼+序號」清單)的那幾筆,補成課稅別
2的銷項列,經海關填通關方式註記2、否則1。
零稅率模式則改走另一條:把零稅率主檔依憑證類別/字軌號碼/發票日期等鍵分組彙總(數量、經海關金額、非海關金額分開加總),逐筆換算成民國年月、報單號碼(出口報單號以 / 切段重組)、買受人統編(外銷方式 4 才帶統編)後,直接組出固定欄寬的「進銷項資料」字串並寫檔,不顯示格線。
零稅率的銷售人縣市別來自公司地點
零稅率媒體檔需要「銷售人縣市別」1 碼代碼,系統由登入環境本公司的公司地點字串比對縣市名稱推得(例如含「台北市」→ A、「新北市/台北縣」→ F、「高雄市」→ E 等)。若公司地點未維護或無法對應,這碼會是空白。
按「匯出」時(進銷項模式)¶
- 先檢查格線是否有資料,無資料則跳「無資料」中止。
- 把每一列用各欄固定寬度(格式代號2/稅籍編號9/流水號7/資料年月5/P1=8/P2=18/P3=12/課稅別1/營業稅額10/扣抵代號1/空白5/特種稅額稅率1/彙加註記1/通關方式註記1)串成定長文字行。
- 整份以 UTF-8 寫到
ERPIO.TempsRoot下的<本公司統一編號>.txt(登入環境本公司統一編號),並跳出含完整路徑的完成訊息。
零稅率寫檔位置¶
零稅率模式的檔名為 零稅率<本公司統一編號>.txt(同樣取登入環境本公司統一編號),同樣寫到系統暫存目錄,按 查詢 當下即完成並提示路徑。
規劃中/尚未提供
舊版 VFP 另有「鈞寶」「銓育」等客戶專屬的進銷項轉檔變體與 .T02 副檔輸出,新版尚未移植。目前僅提供標準「進銷項」與「零稅率」兩種 .txt 輸出。
常見問題¶
按了查詢,格線完全沒有資料?
請依序確認:(1) 所屬年月是否與發票登錄的期別一致;(2) 該期是否真的有銷項/進項發票登錄;(3) 公司代碼是否選到正確公司。若跳出「公司資料錯誤」,表示公司主檔查不到該代碼的稅籍/統編資料。
P3(金額)或營業稅額看起來像一串 0 又補零,是壞掉嗎?
不是。媒體申報格式要求定長補零,所以金額會顯示成 12 碼、營業稅額 10 碼的補零字串(例如 000001234500)。這是正確的輸出格式,不是可運算數值,請勿拿來加總比對。詳見欄位連動與附加功能。
找不到匯出的檔案?檔名是什麼?
進銷項模式檔名為 <本公司統一編號>.txt、零稅率模式為 零稅率<本公司統一編號>.txt(統一編號取自登入環境的本公司,與畫面所選公司代碼無關),都寫在系統暫存目錄(ERPIO.TempsRoot)。完成訊息「已匯出資料---」後面就是完整路徑,依該路徑取檔即可。
選了「零稅率」按查詢卻沒看到格線?
這是正常的。零稅率模式不在畫面顯示明細,按 查詢 當下就直接把媒體檔寫出並提示路徑。要在畫面檢視明細的只有「進銷項」模式。
我要的是當期「應納或溢付營業稅額」,這裡看不到?
本表單只產生申報媒體檔,不做稅額試算。請改用 401 稅額試算 查看進銷項彙總與本期應納/留抵稅額。
「是否合併」勾不到?
新版畫面上的合併勾選目前停用,一律以所選公司代碼過濾。需要跨公司合併申報請洽系統管理。
相關功能¶
需補截圖清單
以下截圖待功能 runtime 驗收後補拍(放 docs/P-Invoice/images/):
tutax-step1.png— 條件面板(模式單選、公司代碼、所屬年月)tutax-step2.png— 進銷項查詢後的結果格線(含 P1/P2/P3 等定長欄位)