业务单据按科目映射表批量出凭证草稿,映射不上与金额异常一律进待办不硬造
voucher-batch-generateSKILL.md 为准。> **本地运行,零网络、免 API Key、数据不出电脑。** > 四项诚实承诺:① 算不出就说算不出,绝不编造数字;② 高危动作强制人工确认;③ 幂等断点,绝不重复副作用;④ 全程留痕可审计。 # 批量生成记账凭证草稿 手工一笔笔录凭证,是记账岗最耗时的环节。但批量生成有个真实风险:**映射规则写错,会批量造出一批错凭证,错误量放大一百倍**。 所以本包的设计是"草稿制": - 生成的**不是已过账凭证**,是待审核草稿,编号形如 `记-0001` - 映射不上科目的单据**进待办清单**,不硬造一张半对的凭证 - 金额异常的单据同样进待办,不参与生成 - 每条规则必须一借一贷,单边规则**一律拒生成** 你审核草稿的成本,远低于审一百张已过账凭证。 ## 输出四件套 | 文件 | 内容 | |---|---| | `vg_主表.csv` | 凭证草稿:凭证号 / 摘要 / 科目代码 / 科目名称 / 方向 / 金额 | | `vg_异常表.csv` | 未生成单据:行号 + 原因(无映射 / 金额异常) | | `vg_校验表.csv` | 判定口径、守恒四项、借贷预检规则 | | `fin-log.jsonl` | 处理日志(追加) | ## 环境准备 ```bash PY="<python 3.8+ 路径>" # 纯标准库 "$PY" <skill目录>/scripts/voucher_gen.py <业务单据表> <科目映射表> [参数] ``` ## 用法 ```bash voucher_gen.py 业务单据.xlsx 科目映射.xlsx voucher_gen.py 业务单据.xlsx 科目映射.xlsx --summary "9月" --execute ``` 真实输出: ``` 方案:业务单据 6 行 | 映射规则 6 条 | 前缀 记 --- 凭证草稿 --- 生成 5 张(分录 10 行)| 未生成 1 条(无映射 0 / 金额异常 1) 记-0001 9月BX001 660101 销售费用-差旅 1200.00 借 记-0001 9月BX001 100201 银行存款-基本户 1200.00 贷 记-0002 9月BX002 660103 销售费用-折旧 8800.00 借 ... --- 校验表 --- 单据输入合计 | 42800.0 已生成凭证金额 | 42800.0 未生成单据金额 | 0.0 单据守恒差异 | 0.0 ``` 常用参数: | 参数 | 默认 | 说明 | |---|---|---| | `--prefix` | `记` | 凭证号前缀 | | `--summary` | 空 | 摘要统一前缀,如 `9月` | | `--top` | 20 | 预览行数 | ## 两张输入表 **业务单据表**:只要有单据号、业务类型、金额三列就能跑。额外列按 `BIZ_EXTRA` 顺序取「费用类型 / 部门 / 项目 / 摘要」,两侧列顺序必须一致。 **科目映射表**:一行一条映射规则,形如 ``` 业务类型,费用类型,借方科目,借方名称,贷方科目,贷方名称 报销,差旅,660101,销售费用-差旅,100201,银行存款-基本户 ``` **映射规则匹配不到业务的,不会报错**——它会让那张单据落进「无映射」待办。这是有意的:宁可漏生成,不可错生成。 ## 安全与边界(拒绝权) - **默认预览**:不加 `--execute` 不写盘 - **不覆盖已有凭证号**:同一次运行内号码连续编号,不查历史账套 - **单边规则拒生成**:映射里只有借或只有贷的,整条规则不参与 - **金额异常进待办**:金额为空或非数字的,不参与生成 - **生成的是草稿不是过账凭证**:本包不写账套、不调账务接口 ## 金额守恒怎么算 一证多行,不能直接套「输入 = 主表 + 异常」。所以守恒式在校验表里**逐项列清**: ``` 单据输入合计 = 已生成凭证金额 + 未生成单据金额 + 守恒差异 ``` 上例 42800 = 42800 + 0 + 0,差异 0.0 才放行。 ## 人工复核(必读) - 每条草稿的**科目对应关系**要抽查,映射表错了草稿就是错的 - 未生成单据要人工补映射后重跑,**不要手动改草稿** - 本包不校验科目余额方向、不校验辅助核算,那些归 `accounting-entry-check` ## 相邻路线转交 | 用户要做的事 | 转交给 | |---|---| | 凭证生成后再查合法性 | `accounting-entry-check` | | 科目表标准化(源→目标) | `account-subject-map` | | 期末损益结转凭证 | `period-end-carry` | ## 可直接复制的说法 ```text 把这张业务单据表按科目映射表批量生成凭证草稿。 一张单据出一条借方、一条贷方,凭证号从 记-0001 开始。 映射不到科目的单据单独列进待办,不要硬造凭证。 摘要统一加「9月」前缀。生成前先预览,确认后我再让你写盘。 ``` ## 做完怎么算完成 - [ ] 未生成单据已逐条查明原因(无映射 / 金额异常) - [ ] 抽查至少 3 张草稿的科目对应关系无误 - [ ] 校验表里"单据守恒差异"为 0.0 --- 本 Skill 采用 BUSL-1.1 许可(源码可见,可自由使用)。 版权所有 © 2026 律令科技(深圳)有限公司(@lexord-technology)。 本技能由律令科技(深圳)有限公司开发,**财友云(caiyouyun.cn)**发布与展示。 允许个人及企业内部免费使用、复制、修改,包括内部生产环境。 未经书面许可,不得将本 Skill 或其修改版作为商业服务对外销售、转售或提供托管服务。 各版本发布之日起 4 年后自动转为 Apache License 2.0。详见随包 `LICENSE.md`。
借贷平衡、科目级次、辅助核算必填、红字方向、异常金额预警
多系统科目对照,模糊匹配 + 人工确认清单,输出映射表
两方明细按金额/日期/摘要模糊匹配,输出已勾对与单边差异
损益结转、折旧摊销计提、税金计提,输出凭证草稿
SHA256 清单 + 抽样恢复验证,防止备份是坏档
订单/回款/发票按主键优先、名称金额日期辅助,支持一对多与多对一,差异拆成未回款/少回款/未开票/超开票
对照月结清单检查完成证据、差异状态、责任人与风险等级,未对账/未计提/未摊销/凭证未审核直接标高风险
按发票号码+代码+金额+日期组合查重,拦住重复报销与重复入账
进销项发票台账,按月/客户/税率汇总,导出 CSV
多银行 CSV/Excel 流水归一化成统一字段与方向标记
流水与账面按金额+日期窗口匹配,输出已勾对/单边与余额调节表
40+ 指标(偿债/营运/盈利/成长)+ 多期趋势与同业占位
SKILL.md 为准。