ERPNext v16 入门笔记:从登录到跑通第一笔采购
很多人第一次打开 ERPNext 会被菜单数量吓到。其实只要抓住「主数据 → 单据 → 库存/财务」这条线, 先跑通一笔采购,后面的销售、生产、报表都会顺很多。
ERPNext 是一套开源的企业管理软件,覆盖采购、销售、库存、生产、财务、人事等模块。 它的好处是模块之间共用同一套主数据和单据流,坏处也是:一旦主数据没建对, 后面的单据就会处处报错。所以这篇笔记不从「功能列表」开始,而是从一条能跑通的最小路径开始。
一、先理解单据流
在 ERPNext 中,DocType 是数据模型,也是界面上的「单据类型」。 一张单据通常经历「草稿 → 提交 → 完成」几个状态。提交后,系统会写入库存流水或会计凭证; 如果发现填错,标准做法是「取消(Cancel)→ 修订(Amend)」,而不是直接改已提交的单据。
| 业务环节 | 常见单据 | 提交后影响 |
|---|---|---|
| 采购 | 采购订单 → 采购收货 → 采购发票 → 付款 | 库存增加、应付增加、银行/现金减少 |
| 销售 | 销售订单 → 销售出库 → 销售发票 → 收款 | 库存减少、应收增加、银行/现金增加 |
| 库存 | 库存调拨、库存调整、盘点 | 库位数量变化,写入库存流水 |
| 生产 | BOM → 生产订单 → 领料 → 生产入库 | 原材料减少、成品增加、生产成本归集 |
这张表建议先抄下来。后面看到任何菜单,都先问自己:它属于哪条链路?提交后会影响库存还是财务? 这样就不会在几十个菜单里迷路。
二、初始化顺序:不要一上来就录单
新系统第一次使用,建议按下面的顺序配置。每一步都依赖前一步,跳步很容易出现「选了仓库却没有库位」 「有物料但没有单位」这类问题。
- 公司(Company):填写公司名称、默认币种、国家/地区。系统会据此生成会计科目表。
- 财年(Fiscal Year):确认当前财年,后续单据的过账日期必须落在有效财年内。
- 会计科目(Chart of Accounts):先用默认模板,跑通流程后再按需要增删,不要一开始就大改。
- 仓库(Warehouse):至少建一个原料仓和一个成品仓;需要库位管理时再启用库位。
- 物料(Item):先建少量测试物料,设置单位、物料组、默认仓库;需要序列号/批次的物料要提前勾选。
- 客户与供应商:各建一个测试记录即可,先跑通流程,再批量导入。
- 税与价格:确认默认税率、价格表;如果暂时没有,可先用零税率测试。
三、采购到入库:跑通第一笔
下面以「买 10 个测试物料,先收货后开票」为例。每一步都先保存,再提交。 提交前检查日期、公司、仓库、数量、单价这五项。
- 新建采购订单(Purchase Order):选择供应商、日期、物料、数量、单价。 采购订单本身不改变库存,它只是「向供应商下的需求」。
- 由采购订单生成采购收货(Purchase Receipt):在订单右上角点「创建 → 采购收货」。 确认收货仓库和数量,提交后库存增加。
- 由收货单生成采购发票(Purchase Invoice):核对供应商、金额、税率。 提交后应付账款增加。
- 登记付款(Payment Entry):选择付款账户和供应商,核销对应的采购发票。 提交后银行/现金减少,应付减少。
如果只需要记录库存、不涉及财务,可以只做到收货单;但正式使用时建议把发票和付款也走完, 否则应付报表和总账会对不上。
# 常用检查路径(界面操作,不是命令)
采购 → 采购订单 → 采购收货 → 采购发票 → 付款
库存 → 库存流水(Stock Ledger)→ 筛选物料/仓库
会计 → 总账(General Ledger)→ 筛选供应商/科目
四、销售到出库:反向再走一遍
销售流程和采购对称:先有销售订单,再有出库,最后开票和收款。区别在于库存是减少, 应收是增加。第一次练习时,可以用同一个测试物料,先把采购的 10 个入库,再卖 2 个。
- 销售订单(Sales Order):选择客户、物料、数量、价格、交期。
- 销售出库(Delivery Note):由订单生成,确认出库仓库。提交后库存减少。
- 销售发票(Sales Invoice):由出库单生成,确认金额和税率。提交后应收增加。
- 收款(Payment Entry):选择收款账户,核销发票。提交后银行/现金增加。
五、库存、批次与序列号
库存相关的操作主要集中在「库存」模块。最常用的是库存调拨、库存调整和盘点。 所有库存变化都会写入库存流水(Stock Ledger),这张表是排查库存问题的第一入口。
| 操作 | 适用场景 | 注意点 |
|---|---|---|
| 库存调拨(Stock Entry - Material Transfer) | 仓库之间、库位之间移动 | 源仓库和目标仓库不能相同 |
| 库存调整(Stock Reconciliation) | 期初库存、盘盈盘亏 | 按数量或金额调整,提交后生成差异凭证 |
| 盘点(Stock Reconciliation / 盘点单) | 定期核对实物 | 先冻结库存或选非营业时间,避免边盘边动 |
如果物料启用了批次(Batch)或序列号(Serial No), 收货和出库时就必须指定批次/序列号。序列号适合一物一码的设备、电子产品; 批次适合有保质期或生产批次的物料。启用后再取消比较麻烦,建物料时想清楚。
六、生产制造:BOM 到生产入库
生产模块的核心是 BOM(物料清单)。先建好成品和原材料,再建成品的 BOM, 然后才能下生产订单。一个最小流程是:
- 建 BOM:成品、原材料、用量、工序(可选)。
- 生产订单(Work Order):选择成品、数量、计划日期。
- 领料(Material Transfer for Manufacture):把原材料从仓库转到车间。
- 生产入库(Manufacture):成品入库,系统按 BOM 扣减原材料。
如果只是简单组装、不跟踪工序,可以只用生产订单和领料/入库; 如果需要报工、工序卡、产能排程,再启用 Job Card 和 Workstation。
七、财务与报表:先看三张表
财务模块看起来复杂,但日常先盯住三张表就够了:
- 总账(General Ledger):所有会计凭证的明细,排查某笔金额去了哪里。
- 应收/应付账龄(Accounts Receivable/Payable):谁欠你、你欠谁、逾期多久。
- 利润表 / 资产负债表(Profit and Loss / Balance Sheet):阶段经营结果和期末财务状况。
如果报表数字不对,不要先改报表。回到单据和凭证,检查日期、公司、科目、成本中心是否一致。 ERP 的报表是结果,单据才是原因。
八、用户、角色与权限
ERPNext 的权限由「角色(Role)」和「用户权限(User Permission)」共同决定。 角色控制「能看哪些单据、能做哪些操作」,用户权限进一步限制「只能看哪个仓库/公司/成本中心」。
- 先建角色,例如「采购员」「仓管员」「财务」「只读管理员」。
- 再建用户,分配角色;不要直接给普通用户 System Manager。
- 需要按仓库隔离时,给用户加 Warehouse 的 User Permission。
- 上线前用普通账号实际点一遍菜单,确认看不到不该看的数据。
九、备份与升级:先备份再动手
无论使用 Docker 还是 bench 部署,升级前都要备份数据库和站点文件。 以常见的 bench 部署为例:
# 进入 bench 目录后执行
bench --site your-site.local backup --with-files
# 查看备份文件
ls -lh sites/your-site.local/private/backups/
# 升级前记录当前版本
bench version
Docker 部署则至少备份数据库卷和站点文件卷。升级后先检查登录、单据列表、库存流水和财务报表, 再开放给其他人使用。不要在生产环境直接试新版本。
十、新手常见问题
1. 单据提交后为什么不能改?
已提交的单据已经产生库存或会计影响,系统不允许直接改。正确做法是取消(Cancel), 再点「修订(Amend)」生成一张新单据。取消也会留下记录,方便审计。
2. 收货了,为什么库存没变化?
先确认收货单是否已提交(草稿不会过账),再检查仓库、物料、过账日期。 然后去「库存流水」筛选该物料,看看有没有对应的入账记录。
3. 发票和付款对不上怎么办?
检查付款单是否核销了正确的发票,金额是否一致,是否有预付款或部分付款。 应付账龄报表能看到每张发票的未结金额。
4. 日期或时区不对?
检查 System Settings 中的时区,以及用户自己的时区设置。 单据的过账日期和系统时间不是一回事,报表按过账日期统计。
5. 打印格式在哪里改?
在「打印格式(Print Format)」中复制一份标准格式再修改,不要直接改系统自带格式。 改完后用不同角色实际打印一次,确认字段和排版。
十一、延伸阅读
这篇笔记只覆盖最小主线。完整的部门操作手册(采购、销售、库存、生产、财务、人事等) 已经整理成一份独立 HTML,可以在这里继续看:
官方资料:
注:不同 v16 小版本的菜单名称可能略有差异;本文以标准 Desk 界面为准。