name: finance-archive description: 上市公司財務檔案歸檔與整理技能包,自動整理憑證、合同、附件,按標準目錄結構歸檔,支援PDF處理、批次重新命名、MD5查重、會計檔案保管期限管理及審計支援。 metadata: openclaw: author: "@AOLIKEJI" version: 1.0.0 category: finance tags: - 財務歸檔 - 憑證歸檔 - 檔案整理 - archive - 合同歸檔 - 附件整理 - 檔案歸檔 - 會計檔案 - 審計支援 emoji: "📁" homepage: "https://www.clawhub.com/skills/finance-archive" triggers: - 財務歸檔 - 憑證歸檔 - 檔案整理 - archive - 合同歸檔 - 附件整理 - 檔案歸檔
本技能包面向上市公司財務部門,提供完整的檔案歸檔與整理解決方案。涵蓋憑證、賬簿、報表、合同、發票、銀行對賬單、稅務資料、審計底稿等各類財務檔案的規範化管理,確保符合《會計檔案管理辦法》要求,支援電子化歸檔與長期保管。
財務檔案/
├── 01_憑證檔案/
│ ├── 20XX年/
│ │ ├── 01月/
│ │ ├── 02月/
│ │ └── .../
│ └── 掃描件/
│ ├── 憑證_{憑證號}_{摘要}_{日期}.pdf
│ └── 附件_{原始檔名}.pdf
├── 02_賬簿檔案/
│ ├── 總賬/
│ ├── 明細賬/
│ ├── 日記賬/
│ └── 輔助賬/
├── 03_報表檔案/
│ ├── 年度報表/
│ │ ├── 資產負債表
│ │ ├── 利潤表
│ │ ├── 現金流量表
│ │ └── 所有者權益變動表
│ ├── 季度報表/
│ └── 月度報表/
├── 04_發票檔案/
│ ├── 增值稅專用發票/
│ ├── 增值稅普通發票/
│ └── 其他票據/
├── 05_合同檔案/
│ ├── 採購合同/
│ ├── 銷售合同/
│ ├── 服務合同/
│ ├── 租賃合同/
│ └── 勞動合同/
├── 06_銀行檔案/
│ ├── 銀行回單/
│ ├── 銀行對賬單/
│ └── 銀企對賬調節表/
├── 07_稅務檔案/
│ ├── 納稅申報表/
│ ├── 完稅憑證/
│ ├── 發票認證資料/
│ └── 稅收優惠備案/
├── 08_審計檔案/
│ ├── 內部審計/
│ ├── 外部審計/
│ ├── 審計報告/
│ └── 審計底稿/
└── 09_其他檔案/
├── 董事會檔案/
├── 股東會檔案/
└── 其他重要檔案/
| 類別 | 命名格式 | 示例 |
|---|---|---|
| 憑證 | 憑證_{憑證號}_{摘要}_{YYYYMMDD}.pdf |
憑證_記001_支付貨款_20240115.pdf |
| 合同 | 合同_{合同編號}_{對方單位}_{合同型別}_{起止日期}.pdf |
合同_HT2024001_供應商A_採購_20240101-20241231.pdf |
| 發票 | 發票_{發票號碼}_{日期}_{金額}.pdf |
發票_12345678_20240115_10000.00.pdf |
| 銀行回單 | 回單_{銀行_{交易日期}_{流水號}.pdf |
回單_工行_20240115_TX20240115001.pdf |
| 報表 | 報表_{報表型別}_{期間}_{編制日期}.pdf |
報表_資產負債表_2024Q1_20240415.pdf |
憑證號_摘要_日期_附件數量
記0001示例:記0001_支付辦公室租金_20240115_3.pdf
| 附件型別 | 整理要求 |
|---|---|
| 發票 | 按憑證順序排列,發票聯在前,記賬聯在後 |
| 合同 | 影印件歸檔,原件由法務部保管 |
| 審批單 | 領導籤批頁在前,附件清單在後 |
| 其他單據 | 按單據日期順序排列 |
裝訂要求: - 每本憑證不超過200張原始憑證 - 使用防潮、防蟲檔案盒 - 憑證盒脊標註:年度、月份、起止憑證號
| 欄位 | 說明 |
|---|---|
| 合同編號 | 唯一標識 |
| 合同名稱 | 全稱 |
| 合同型別 | 採購/銷售/服務/租賃/勞動等 |
| 甲方/乙方 | 合同雙方 |
| 簽約日期 | YYYY-MM-DD |
| 生效日期 | YYYY-MM-DD |
| 到期日期 | YYYY-MM-DD |
| 合同金額 | 精確到分 |
| 付款方式 | 分期/一次性等 |
| 經辦部門 | 簽訂部門 |
| 經辦人 | 責任人 |
| 保管期限 | 合同終止後X年 |
| 存放位置 | 檔案盒編號 |
| 電子掃描件 | PDF檔案路徑 |
| 備註 | 特殊說明 |
| 提醒節點 | 說明 |
|---|---|
| 到期前180天 | 初步審查是否續約 |
| 到期前90天 | 啟動續約談判 |
| 到期前30天 | 最終決策 |
| 到期當日 | 合同歸檔確認 |
| 合同型別 | 保管期限 |
|---|---|
| 重大合同(億元以上) | 永久 |
| 一般採購/銷售合同 | 合同終止後15年 |
| 服務類合同 | 合同終止後10年 |
| 勞動合同 | 解除/終止後2年 |
| 簡易合同(口頭) | 2年 |
from PyPDF2 import PdfMerger
import os
def merge_pdfs(pdf_list, output_path):
"""合併多個PDF檔案"""
merger = PdfMerger()
for pdf in pdf_list:
if os.path.exists(pdf):
merger.append(pdf)
with open(output_path, 'wb') as f:
merger.write(f)
return output_path
from PyPDF2 import PdfReader, PdfWriter
def split_pdf(input_path, output_dir, pages_per_file=10):
"""按頁數拆分PDF"""
reader = PdfReader(input_path)
total_pages = len(reader.pages)
for i in range(0, total_pages, pages_per_file):
writer = PdfWriter()
for j in range(i, min(i + pages_per_file, total_pages)):
writer.add_page(reader.pages[j])
output_path = os.path.join(output_dir, f"part_{i//pages_per_file + 1}.pdf")
with open(output_path, 'wb') as f:
writer.write(f)
from PyPDF2 import PdfReader, PdfWriter
from reportlab.pdfgen import canvas
from reportlab.lib.pagesizes import letter
import io
def add_watermark(input_path, output_path, watermark_text):
"""為PDF新增文字水印"""
reader = PdfReader(input_path)
writer = PdfWriter()
for page in reader.pages:
packet = io.BytesIO()
c = canvas.Canvas(packet, pagesize=letter)
c.saveState()
c.setFont('Helvetica', 40)
c.setFillColorRGB(0.5, 0.5, 0.5, 0.3)
width = float(page.mediabox.width)
height = float(page.mediabox.height)
c.translate(width/2, height/2)
c.rotate(45)
c.drawCentredString(0, 0, watermark_text)
c.restoreState()
c.save()
packet.seek(0)
watermark_pdf = PdfReader(packet)
page.merge_page(watermark_pdf.pages[0])
writer.add_page(page)
with open(output_path, 'wb') as f:
writer.write(f)
import os
import re
def batch_rename(directory, pattern, replacement):
"""批次重新命名檔案"""
for filename in os.listdir(directory):
new_filename = re.sub(pattern, replacement, filename)
if new_filename != filename:
old_path = os.path.join(directory, filename)
new_path = os.path.join(directory, new_filename)
os.rename(old_path, new_path)
print(f"Renamed: {filename} -> {new_filename}")
常用重新命名規則:
- 日期格式統一:YYYY-MM-DD → YYYYMMDD
- 去除特殊字元:空格→下劃線
- 新增字首:按型別新增 INV_、CON_、REC_
import hashlib
import os
from collections import defaultdict
def get_file_md5(file_path):
"""計算檔案MD5"""
md5_hash = hashlib.md5()
with open(file_path, 'rb') as f:
for chunk in iter(lambda: f.read(4096), b""):
md5_hash.update(chunk)
return md5_hash.hexdigest()
def find_duplicates(directory):
"""查詢重複檔案"""
hash_dict = defaultdict(list)
for root, dirs, files in os.walk(directory):
for filename in files:
file_path = os.path.join(root, filename)
if os.path.isfile(file_path):
file_hash = get_file_md5(file_path)
hash_dict[file_hash].append(file_path)
duplicates = {k: v for k, v in hash_dict.items() if len(v) > 1}
return duplicates
import zipfile
import os
from datetime import datetime
def archive_files(source_dir, archive_name=None, format='zip'):
"""壓縮歸檔檔案"""
if archive_name is None:
archive_name = f"archive_{datetime.now().strftime('%Y%m%d_%H%M%S')}"
archive_path = os.path.join(os.path.dirname(source_dir), f"{archive_name}.{format}")
with zipfile.ZipFile(archive_path, 'w', zipfile.ZIP_DEFLATED) as zipf:
for root, dirs, files in os.walk(source_dir):
for file in files:
file_path = os.path.join(root, file)
arcname = os.path.relpath(file_path, source_dir)
zipf.write(file_path, arcname)
return archive_path
根據《會計檔案管理辦法》(財政部、國家檔案局令第79號)規定:
| 檔案類別 | 具體內容 | 保管期限 |
|---|---|---|
| 憑證類 | 原始憑證、記賬憑證 | 30年 |
| 賬簿類 | 總賬、明細賬、日記賬、其他輔助賬簿 | 30年 |
| 財務報告類 | 月度、季度財務報告 | 10年 |
| 財務報告類 | 年度財務報告(會計年報) | 永久 |
| 其他類 | 銀行存款餘額調節表、銀行對賬單 | 10年 |
| 其他類 | 納稅申報表 | 10年 |
| 其他類 | 會計檔案移交清冊 | 30年 |
| 其他類 | 會計檔案保管清冊 | 永久 |
| 其他類 | 會計檔案銷燬清冊 | 永久 |
| 其他類 | 銷售合同、採購合同 | 15年 |
| 其他類 | 資本、基金憑證 | 永久 |
| 其他類 | 涉及未結清的債權債務原始憑證 | 40年 |
1. 編制銷燬清冊 → 2. 單位負責人審批 → 3. 監銷人簽字確認 → 4. 銷燬記錄歸檔
注意:保管期滿但未結清的債權債務原始憑證、涉及其他未了事項的原始憑證不得銷燬。
def search_vouchers(voucher_dir, keywords, date_range=None):
"""搜尋憑證"""
results = []
for filename in os.listdir(voucher_dir):
if filename.endswith(('.pdf', '.xlsx')):
filepath = os.path.join(voucher_dir, filename)
# 關鍵詞匹配
for keyword in keywords:
if keyword.lower() in filename.lower():
results.append(filepath)
break
return results
| 審計階段 | 底稿內容 | 歸檔要求 |
|---|---|---|
| 計劃階段 | 總體審計策略、具體審計計劃 | 永久保管 |
| 實施階段 | 風險評估底稿、控制測試底稿、實質性程式底稿 | 永久保管 |
| 完成階段 | 審計報告、管理建議書、宣告書 | 永久保管 |
| 業務約定書 | 審計業務約定書、變更函 | 永久保管 |
| 函證型別 | 歸檔內容 | 保管期限 |
|---|---|---|
| 銀行函證 | 發函原件、回函原件、銀行流水 | 永久 |
| 往來函證 | 發函原件、回函原件、對賬差異說明 | 永久 |
| 存貨函證 | 發函原件、回函原件、盤點差異 | 永久 |
函證編號規則:YF_{年份}_{型別}_{序號}
示例:YF_2024_YH_001(2024年銀行函證第1號)
1. 接收憑證 → 2. 稽核完整性 → 3. 掃描電子化 → 4. 命名歸檔 → 5. 更新臺賬
1. 合同簽訂 → 2. 移交檔案室 → 3. 稽核合同 → 4. 錄入臺賬 → 5. 掃描歸檔 → 6. 設定到期提醒
1. 年度結束 → 2. 憑證裝訂 → 3. 報表整理 → 4. 賬簿歸檔 → 5. 編制移交清冊 → 6. 入庫保管
A: 原則上以紙質檔案為準,電子檔案作為輔助參考。重要檔案應同時儲存紙質和電子版本。
A: 編制銷燬清冊,經單位負責人審批後,由檔案機構和會計機構共同派員監銷。
A: 必須完成檔案交接手續,移交清單需由接收人、監交人簽字確認。
A: 建議使用電子簽章、時間戳、數字簽名等技術,並儲存完整的光碟備份。
小蔥技能7w4.net持續更新中。
| 版本 | 日期 | 更新內容 |
|---|---|---|
| 1.0.0 | 2024-01-01 | 初始版本釋出 |
作者: @AOLIKEJI
版權: © 2024 AOLIKEJI. All rights reserved.
這個Skill質量較好,提供了規範的財務檔案目錄結構和命名規則,涵蓋憑證、合同、報表等多種檔案型別,分類清晰、規則詳細,對財務歸檔工作有較強的指導意義。風險提示和保管期限管理也比較實用。不足之處在於主要是一份操作指南,缺少可直接使用的工具或模板,動手操作時可能還需要自行開發指令碼。