程式資訊
- 程式 ID:
TKTURNS - 所屬子系統:P.發票管理
- 狀態:stable
應收帳款轉銷項發票¶
功能簡介¶
「應收帳款轉銷項發票」是銷項發票上 轉入 按鈕背後的彈出視窗。它把應收帳款裡已經開立發票號碼的應收明細(系統控制類別=AR+),依照你指定的發票字軌+起訖號碼,一次整批產生成當期的銷項發票主檔與明細,讓會計/開立發票人員不必逐本手動登錄。
它的核心動作是「依號碼補本」:在你給的起訖號碼之間,每 50 聯為一本展開,能對應到 AR 發票資料的聯帶入金額、課稅別、統一編號、部門等;對應不到的聯預設為 4.作廢,整本都沒資料的書尾自動帶「以下空白」。轉完之後,這些資料就跟手動登錄的銷項發票一樣,是日後 401 申報 的來源。
這是一個對話視窗,不是獨立單據表單
本頁描述的是一個整批轉換的彈出視窗,只有「儲存(執行轉換)」與「離開」兩個動作,沒有自己的瀏覽、修改、刪除、列印。轉出來的發票要事後檢視或修改,請回到銷項發票表單操作。退項(銷退、折讓)對應的是另一支應收帳款轉銷貨退回及折讓。
前置需求¶
- 權限:P.發票 → 銷項發票 的瀏覽權限,並具「轉單」權限才能在
瀏覽模式下按轉入開啟本視窗。 - 基礎資料/參數:
| 資料 | 影響的結果 |
|---|---|
應收帳款已開立發票(系統控制類別 AR+,且已填發票號碼) |
轉入的唯一資料來源;沒有此資料會出現「無資料」 |
| 公司主檔 | 視窗上方公司代碼下拉與其簡稱顯示 |
| 發票字軌設定(你手上的當期空白發票本) | 視窗要填的電子/三聯式/二聯式字軌與起訖號碼 |
作廢發票檔(Twork_inv_vw_ticka_m,課稅別=4.作廢) |
轉入時用來保留既有作廢號碼,避免被覆蓋成空白 |
操作步驟¶
本視窗從銷項發票表單在 瀏覽 模式下按 轉入 開啟。

- 確認公司代碼(預設帶
1,右側顯示公司簡稱)。 - 確認或修改所屬年月:預設自動帶入「目前的雙月申報期」(見所屬年月預設值)。格式錯誤或空白都會被擋下。
- 依手上的空白發票本,填入要轉的各類發票區間:
- 電子發票:字軌(2 碼)、起始發票號碼、截止發票號碼。
- 手寫三聯式:字軌、起始、截止號碼。
- 手寫二聯式:字軌、起始、截止號碼。
- 三類不一定都要填;沒有的那一類字軌/號碼留空即可,系統會自動略過。
- 按
儲存執行轉換。系統會先逐項檢核(末兩碼、號碼區間、是否重複),通過後在畫面下方顯示「處理銷項發票,⋯」的進度訊息,整批寫入後關閉視窗並回到銷項發票主畫面、定位到轉入的第一本發票。 - 若不轉換,按
離開直接關閉視窗。
起訖號碼一次別開太大
每一類發票的「截止號碼 − 起始號碼」不可超過 1000,否則會被擋下要求縮小區間。請分批轉,避免一次產生大量空白/作廢聯。
欄位說明¶
| 欄位 | 必填 | 說明/格式/預設 |
|---|---|---|
| 公司代碼 | ✔ | 下拉(公司主檔),預設 1;右側唯讀框顯示該公司簡稱 |
| 所屬年月 | ✔ | 申報期別,格式遮罩 InvoiceYearMonth;預設=目前雙月申報期 |
| 電子發票字軌 | — | 2 碼英數,對應憑證類別 35(電子發票) |
| 電子發票起始號碼/截止號碼 | — | 8 碼數字;末兩碼須為 00 或 50 |
| 三聯式發票字軌 | — | 2 碼,對應憑證類別 31(手寫三聯式) |
| 三聯式發票起始號碼/截止號碼 | — | 8 碼數字;末兩碼須為 00 或 50 |
| 二聯式發票字軌 | — | 2 碼,對應憑證類別 32(手寫二聯式) |
| 二聯式發票起始號碼/截止號碼 | — | 8 碼數字;末兩碼須為 00 或 50 |
| 訊息列(畫面下方) | 系統 | 轉換進度文字,例如「處理銷項發票,⋯」 |
字軌+號碼=完整發票號碼
系統把字軌(2 碼)+號碼(8 碼) 組成 10 碼的完整發票號碼來比對與寫入。三類發票各自獨立,可只填其中一兩類。
欄位連動與附加功能¶
這一節說明「填了什麼/按了 儲存 之後,系統會做什麼」,全部依實際程式行為整理。
開窗時的預設值¶
- 開窗時系統自動帶入公司代碼=
1,並由公司主檔載入公司下拉清單。 - 所屬年月自動帶入「目前的雙月申報期」,推算規則為:取今天的年、月,若月份是偶數就退一個月變成單數月,組成「
年-單數起始月-偶數結束月」。例如今天在 6 月,會帶2026-05-06;在 5 月也帶2026-05-06。多數情況不必再改。
按 儲存 時的逐項檢核(任何一項不過就停在視窗)¶
- 所屬年月不得空白:空白或遮罩殘留值(
- -)會被擋。 - 所屬年月格式檢核:不符發票年月格式會以對應訊息擋下。
- 末兩碼須為 00 或 50:六個號碼欄(三類各起訖)的末兩碼只要不是
00或50,就跳出「起始號碼及截止號碼 末兩碼 需為00或50 !!!」。(每 50 聯為一本,故號碼必須落在本的開頭。) - 截止號碼勿超過 1000:任一類的「截止 − 起始」大於 1000,跳「請縮小截止號碼勿超過1000 !!!」。
- 發票號碼不可重複:系統逐本(每次 +50)比對該號碼是否已存在於銷項發票,若有,跳「發票號碼重複:⋯,請刪除再轉單」,要先把重複的本刪掉再轉。
抓取應收帳款來源資料¶
- 通過檢核後,系統用三類發票的字軌+起訖號碼組成查詢區間,呼叫
TWORK_TUR_TICK取出應收帳款中:- 系統控制類別=
AR+、 - 發票號碼非空、
- 發票日期(或無發票日期時的立帳日期)落在所屬年月對應月份、
- 發票號碼落在你給的任一字軌區間內
- 系統控制類別=
的明細。同一張發票(憑證類別+發票號碼)的多筆明細會彙總:銷售金額、稅額各自加總,合計金額=銷售金額+稅額。 - 若這段抓不到任何資料,跳「無資料!!!」並停止——通常代表 AR 端該區間還沒開立發票,或字軌/年月填錯。
整本展開與課稅別判定(核心邏輯)¶
按 儲存 後,系統對電子(35)→三聯(31)→二聯(32)依序處理,每一類:
- 從起始號碼到截止號碼,每次 +50 產生一本發票主檔(發票鍵值=所屬年月+憑證類別+發票號碼)。
- 每本展開成 50 聯明細(序號
00~49或50~99,視該本是上半本或下半本)。每一聯預設課稅別=4.作廢。 - 能對應到 AR 來源(發票鍵值+序號相符)的聯,帶入該聯的發票日期、部門代號/簡稱、統一編號、銷售金額、課稅別、稅額、合計金額、單號。
- 同一字軌的整段處理完後,系統判斷「以下空白」:
- 整本都沒有非作廢聯(最後幾本常見)→ 整本課稅別改成空白,第一聯備註標「以下空白」。
- 本內有資料的,從尾端往前找到第一個銷售金額為 0、且不是已作廢的聯,改成空白並在序號落在
00/50處標「以下空白」。
- 轉入備註自動寫入「使用者帳號,轉發票」。
保留既有作廢發票¶
- 轉入前系統會另抓作廢發票檔(課稅別=
4.作廢、發票日期在同月份)。展開判定「以下空白」時,已在作廢檔的號碼會被保留為作廢,不會被覆蓋成空白,避免把先前作廢的號碼洗掉。
整批寫入與回主畫面¶
沒有手動逐聯編輯
本視窗是「依號碼整批補本」,不提供逐聯輸入金額。轉完後若某些聯要校正課稅別、金額,回銷項發票表單修改即可。
常見問題¶
按 儲存 後一直跳「末兩碼 需為00或50」?
每本發票固定 50 聯,所以起始與截止號碼的末兩碼必須是 00(上半本)或 50(下半本)。請對齊你手上空白發票本的起號,例如 ...00 或 ...50,不要填中間的號碼。
顯示「無資料!!!」轉不出東西?
來源是應收帳款中系統控制類別=AR+、已填發票號碼、且發票(或立帳)日期落在所屬年月、號碼落在你給字軌區間內的明細。請確認:AR 端該期已開立發票、字軌與起訖號碼正確、所屬年月對應到正確月份。
跳「發票號碼重複:⋯,請刪除再轉單」?
你要轉的號碼區間裡,已經有相同號碼的銷項發票存在了。請先到銷項發票把那幾本重複的發票刪掉,再重新執行轉入。
為什麼轉出來一堆「作廢」「以下空白」的聯?
這是正常的。系統會把整段號碼區間每 50 聯補滿,對應不到 AR 資料的聯預設為 4.作廢,整本沒資料的書尾標「以下空白」。若作廢/空白太多,多半是起訖區間開得比實際開立的發票大很多——可把區間縮小、分批轉(單類一次不可超過 1000)。
所屬年月預設的月份對嗎?怎麼算的?
預設帶「目前的雙月申報期」:取今天年月,月份為偶數就退一個月,組成「年-單數起始月-偶數結束月」。例如 5 月或 6 月都會得到 2026-05-06。若你要轉的是其他期別,直接改這個欄位即可。
電子、三聯式、二聯式一定要三類都填嗎?
不用。沒有的那一類把字軌/號碼留空,系統會自動略過該類;只填你這次實際要轉的發票本即可。
相關功能¶
需補截圖清單
以下截圖待功能 runtime 驗收後補拍(放 docs/P-Invoice/images/):
tkturns-step1.png— 「應收帳款轉銷項發票」視窗全貌(含公司代碼、所屬年月、三類發票字軌與起訖號碼)