ERPNext 上线清单 — 从准备到切换

ERPNext 上线清单 — 从准备到切换

这份文档解决一个问题:你装好了 ERPNext,里面是空的。怎么把你的公司从旧方式(Excel/手工账)安全地、不丢数据地、业务不中断地切换到 ERPNext。


目录

  1. 上线前必须理解的三件事
  2. 阶段一:数据准备(上线前 2-4 周)
  3. 阶段二:数据导入(上线前 1-2 周)
  4. 阶段三:期初余额(上线前 3-7 天)
  5. 阶段四:用户权限设置(上线前 3-7 天)
  6. 阶段五:切换周末(D-Day)
  7. 阶段六:上线第一周
  8. 灾难恢复演习
  9. 附录:各行业基础科目补充表

1. 上线前必须理解的三件事

1.1 "上线"不是"装好了就能用"

装好 ERPNext(你已完成)
    ≠
公司可以用了

中间还差:
  ① 把你的客户、供应商、物料、价格表等 Excel 数据导进系统(数据导入)
  ② 把你的库存数量、银行余额、应收应付等"当前状态"录入系统(期初余额)
  ③ 设定谁可以做什么(用户权限)
  ④ 让同事学会用(员工培训)
  ⑤ 新旧系统并行验证(确保数据准确)

1.2 为什么切换时间点很重要?

切换系统就像搬家——你不能住着一半搬一半。财务系统尤其如此:

  • 必须在月初或年初切换:因为财务报表按月生成,月中切换会导致当月数据一半在旧系统一半在新系统,对不上
  • 必须有一个"冻结期":旧系统停止录入 → 导出最终数据 → 导入新系统。这个冻结期通常在周末完成
  • 建议并行运行 1-2 个月:新旧系统同时记账,月底对比结果。确认新系统准确后,再关掉旧系统

1.3 核心原则

宁可多准备一周,不要仓促上线。

期初余额错一元钱 → 所有财务报表从第一天就错 → 以后每次都要调
客户资料少一个 → 这个客户的订单永远进不了系统 → 丢单
库存数量录入错误 → 卖了多少、还剩多少全是错的 → 可能超卖或断货

上线只有一次。做对了就对了,做错了后患无穷。

2. 阶段一:数据准备(上线前 2-4 周)

2.1 你需要准备的数据清单

打开你现在的 Excel 账本,按以下类别逐一整理。每一类数据都要整理成一个干净的 Excel 表,表头固定、没有合并单元格、没有空行:

数据类别 最少需要哪些列 大约需要多久整理
客户资料 客户名称、联系人、电话、地址、税号 半天
供应商资料 供应商名称、联系人、电话、地址、税号 半天
物料/产品 物料编码、物料名称、单位、销售价格、采购价格 1-2 天
服务项目 服务名称、描述、默认费率 半天
价格表 哪个物料、卖给谁、单价多少 半天
会计科目(如果需要补充) 科目编码、科目名称、类型 咨询会计,1 天
银行账户 开户行、账号、币种 半小时
仓库列表 仓库名称、地址 半小时

2.2 数据整理规范

每张表必须遵守的规则(不遵守就导不进去):

1. 第一行必须是表头(列名),不能有标题行
   错误:  "客户清单"  ← 这是标题,删掉
          客户名称, 电话, 地址
   正确:  客户名称, 电话, 地址  ← 表头是第一行

2. 不要合并单元格
   错误:  |  华东地区  | 张三  |
           |    ↑     | 李四  |
           (两个客户共享一个"华东地区",ERPNext 不认)
   正确:  | 华东地区 | 张三 |
           | 华东地区 | 李四 |  ← 每行都写全

3. 每列的数据类型要统一
   错误:  价格列里有的写 100,有的写 "一百元",有的写 "面议"
   正确:  价格列全是数字 100、200、150

4. 关键字段不能为空
   错误:  客户名称那行空着
   正确:  每一行都有客户名称

2.3 确定"基准日期"

你需要选定一个日期作为"系统数据的起点"。这一天之前的所有业务在旧系统里,这一天及之后的所有业务在新系统里。

原则:

  • 选在月初第一天(如 7 月 1 日)
  • 给切换留 2-4 周准备时间
  • 基准日期的前一天(如 6 月 30 日)下班后,冻结旧系统

2.4 物料编码体系

如果你们公司以前没有统一的物料编码(这在 Excel 管理的公司里很常见),需要在上线前建立一套:

编码原则: 纯数字或字母+数字,不要用中文或特殊符号,有规律一看就知道是什么,长度统一方便排序。

示例:

原材料:    RM-0001, RM-0002, RM-0003...  (RM = Raw Material)
成品:      FG-0001, FG-0002, FG-0003...  (FG = Finished Goods)
半成品:    SF-0001, SF-0002, SF-0003...  (SF = Semi-Finished)
服务项目:  SV-0001, SV-0002, SV-0003...  (SV = Service)

3. 阶段二:数据导入(上线前 1-2 周)

3.1 导入方式

ERPNext 有两种导入方式。对 Excel 用户来说,用界面操作最安全:

方式一(推荐):Data Import 界面

1. 把整理好的 Excel 另存为 CSV 格式(文件 → 另存为 → 选择 "CSV UTF-8")
2. 登录 ERPNext → 搜索 "Data Import"
3. 点击 New
4. 选择你要导入的 DocType(比如 Customer)
5. 上传你的 CSV 文件
6. 系统会自动匹配列名和字段名
7. 预览确认 → 导入

3.2 导入顺序很重要

不是随便哪个先导都行,因为数据之间有依赖关系:

第 1 步:导基础数据(没有依赖)
  ├── 会计科目表
  ├── 仓库列表
  ├── 币种
  └── 计量单位

第 2 步:导业务主体(依赖第 1 步)
  ├── 客户
  ├── 供应商
  └── 公司资料完善

第 3 步:导物料和服务(依赖第 1 步的计量单位)
  ├── 物料/产品
  ├── 服务项目
  └── BOM(物料清单,如果有的话)

第 4 步:导价格(依赖第 2、3 步)
  └── 价格表

第 5 步:导交易数据(最后导入,依赖前面所有)
  ├── 期初库存
  ├── 期初应收应付
  └── 期初总账余额

3.3 导入后必须做的验证

验证 1:数量对得上吗?
  → 搜索 Customer → 看列表页显示的记录数
  → 跟你 Excel 里的行数对比,应该一致

验证 2:有没有导入失败的记录?
  → Data Import 页面会显示导入结果:成功 xx 条,失败 xx 条,跳过 xx 条
  → 如果有失败的,点进去看具体原因

验证 3:抽查几笔
  → 打开一个导入的客户,核对税号、地址、联系方式是否和 Excel 里一致

4. 阶段三:期初余额(上线前 3-7 天)

4.1 期初余额是什么?

期初余额就是你从旧系统切换到新系统那一刻,每个科目"当前剩多少钱"。

类比: 你接手管理一家店的账本。前任会计给了你一本账。你不能从空白开始记——你得先在第一行写上"承接自上任:现金 50,000 元,银行存款 200,000 元,张三还欠我们 30,000 元…"。这就是期初余额。

4.2 需要录入期初余额的所有东西

□ 每个银行账户的当前余额
□ 每个现金账户的当前余额
□ 每个客户的应收账款(谁欠你多少钱)
□ 每个供应商的应付账款(你欠谁多少钱)
□ 每个仓库的物料数量和金额
□ 固定资产的原值、累计折旧
□ 应交税费的当前余额
□ 实收资本、未分配利润
□ 短期借款、长期借款的当前余额

4.3 录入之前必须做的事:试算平衡

把所有科目的期初余额列在一张表上,确保:

资产类合计 = 负债类合计 + 所有者权益类合计

如果两边不等,说明你从旧系统取的数据有问题。 绝对不能带着不平衡的金额上线。这个时候应该找会计帮忙看。

用 Excel 做一张简单的试算平衡表:

| 科目编码 | 科目名称       | 借方余额  | 贷方余额 |
|---------|---------------|----------|----------|
| 1001    | 库存现金       | 50000    |          |
| 1002    | 银行存款       | 200000   |          |
| 1122    | 应收账款       | 80000    |          |
| 1403    | 原材料         | 60000    |          |
| 1601    | 固定资产       | 300000   |          |
| 2001    | 短期借款       |          | 100000   |
| 2202    | 应付账款       |          | 50000    |
| 4001    | 实收资本       |          | 500000   |
| 4103    | 未分配利润     |          | 40000    |
|=========|===============|==========|==========|
| 合计    |               | 690000   | 690000   |  ← 必须相等!

4.4 在 ERPNext 中录入期初余额

期初库存:

1. 搜索 "Stock Reconciliation" → New
2. 逐行添加物料、仓库、数量、单价
3. 系统自动计算库存金额
4. Save → Submit

期初应收应付:

给每个有欠款的客户和供应商创建期初发票:

1. 给有欠款的客户创建 Sales Invoice
   日期:基准日期前一天 → 金额:当前欠款 → 备注:"期初应收"
2. 给有欠款的供应商创建 Purchase Invoice(同理)

期初总账余额(最核心的一步):

1. 搜索 "Journal Entry" → New
2. 日期:基准日期前一天
3. 把试算平衡表中的所有科目都录入
   资产类走借方,负债/权益类走贷方,借 = 贷(跟你试算平衡表一样)
4. 仔细核对借方合计 = 贷方合计
5. Save → Submit

5. 阶段四:用户权限设置(上线前 3-7 天)

5.1 别用 Administrator 给所有人用

Administrator 账号拥有最高权限——能删数据、能改任何东西、能看工资和利润。普通员工不应该用这个账号。

5.2 角色权限规划

角色 通俗解释 设给谁
Accounts Manager 能看所有财务数据、能做报表、能审批付款 你自己(老板/财务负责人)
Accounts User 能录入发票、收款、付款,不能改别人的单据 普通财务人员
Sales Manager 能看销售数据、能审批报价 销售主管
Sales User 能创建报价、订单,不能看成本 普通销售员
Purchase Manager 能审批采购订单 采购主管
Purchase User 能创建采购单,不看供应商成本汇总 普通采购员
Stock Manager 能管理入库、出库、盘点 仓库主管
Stock User 能操作日常收发货 仓库员工
Employee Self Service 能提交请假、报销,只能看自己的数据 所有员工
System Manager 系统全权限 只给你自己

设置路径:搜索 "Role Permissions Manager" → 精细控制每个角色对每种单据的权限(Read/Write/Create/Submit/Delete)。

原则:普通用户给到 Submit 就行,Amend(修改已提交单据)和 Cancel(作废)只给主管。


6. 阶段五:切换周末(D-Day)

6.1 切换时间表

假设基准日期是 7 月 1 日(周一):

周五下午 5:00  → 通知全公司:5 点后停止在旧系统录入任何数据
周五下午 6:00  → 从旧系统导出最终数据(最后一次备份旧系统)
周五晚上      → 在 ERPNext 中录入期初余额(按第 4 节操作)
周六上午      → 验证期初余额借贷平衡
周六下午      → 创建所有用户账号、设置权限
周日上午      → 验证:试着在系统里走一遍完整业务流程
周日下午      → 数据备份(这是"Day 0"第一次正式备份,保留好)
周一早上 8:30 → 员工培训(第 7 节)
周一上午 9:00 → 正式启用,第一笔业务在新系统录入!

6.2 D-Day 验证清单

每一项都通过才能启用:

□ 能正常登录,用户名/密码没问题
□ 客户列表中有你的所有客户,抽查 5 个确认信息正确
□ 供应商列表同上
□ 物料/产品列表同上
□ 能创建一张 Sales Order → 选客户、物料、输入数量和价格 → Save
□ 能基于 Sales Order 创建 Delivery Note(发货单)
□ 能基于 Delivery Note 创建 Sales Invoice(销售发票)
□ 能创建 Purchase Order → Purchase Receipt → Purchase Invoice
□ 能创建 Payment Entry(收款/付款)
□ 总账报表有数据,科目余额跟你的试算平衡表一致
□ Print Format 打印出来的 PDF 格式正确,中文不乱码
□ 备份能正常运行
□ (最关键)用普通员工的账号登录:能看到该看的,看不到不该看的

6.3 万一验证通不过

验证不通过 → 不要强行上线 → 把基准日期推迟到下个月 1 日

推迟不是失败。带着错误上线才是失败。

7. 阶段六:上线第一周

7.1 第一天:陪跑

周一上午,所有员工登录系统。你需要:

  1. 给每个人一份"我每天要点的 3 个按钮"卡片——只教他们工作需要的操作
  2. 第一笔业务你来演示,第二笔看着他们做,第三笔让他们独立做
  3. 所有人在操作时遇到任何问题,立刻叫你,当场解决

7.2 第一周:每日检查

每天早上:
  □ 检查昨晚的备份是否成功
  □ 检查队列有没有积压任务
  □ 随机抽查 2-3 笔昨天录入的单据,确认数据正确

每天晚上:
  □ 导出当天所有新增单据的列表(留一份在 Excel 里做对照)
  □ 确认所有用户都能正常使用

7.3 员工速成卡片模板

给销售员(贴在显示器旁边):

我每天要做的三件事:

1. 接到客户询价
   → 打开 Sales Order → New → 填客户、物料、数量、价格
   → Save → Submit → 打印发给客户

2. 客户说可以发货了
   → 在 Sales Order 上点击 Create → Delivery Note
   → 确认数量 → Save → Submit

3. 发完货要开发票
   → 在 Delivery Note 上点击 Create → Sales Invoice
   → 确认金额 → Save → Submit → 打印发给客户

有问题叫我:张工 138xxxx

给仓管、采购、财务写类似的 3-5 条。

7.4 并行运行期间的对照

第一个月新旧系统同时记账。月底做对照:

1. 在新系统中导出:总账、应收账款明细、应付账款明细、库存数量
2. 和旧系统的数据逐项对比
3. 发现不一致 → 追查原因 → 修正 → 再对比
4. 连续两个月两边数据一致 → 正式关闭旧系统

8. 灾难恢复演习

8.1 为什么必须演习?

你按照部署指南配置了自动备份,但这不等于你能恢复。备份文件可能有以下问题而不自知:

  • 文件是坏的(磁盘坏道导致)
  • 备份内容不全(某个关键表没备到)
  • 恢复后数据库连不上(权限问题)
  • 恢复后站点认不出数据

这些不在演习中发现,就会在真故障时发现。

8.2 恢复演习步骤

找一台不用的电脑(或临时在你的 M3 Mac 上),完全模拟灾难恢复:

# 第一步:在这台机器上也装好 Docker 和 frappe_docker
git clone https://github.com/frappe/frappe_docker.git
cd frappe_docker
cp example.env .env

# 第二步:启动一个干净的系统(没有你的数据)
docker compose \
  -f compose.yaml \
  -f overrides/compose.mariadb.yaml \
  -f overrides/compose.redis.yaml \
  -f overrides/compose.noproxy.yaml \
  up -d

# 第三步:创建同名站点(空壳)
docker compose exec backend bench new-site mysite \
  --mariadb-root-password 你的密码 --admin-password admin --db-host db

# 第四步:把备份文件复制进去
docker compose cp backup_20260701.tar.gz backend:/home/frappe/frappe-bench/sites/

# 第五步:执行恢复
docker compose exec backend bench --site mysite restore backup_20260701.tar.gz

# 第六步:更新数据库结构
docker compose exec backend bench --site mysite migrate

# 第七步:验证
# 打开浏览器,登录后检查:客户数据在不在?发票记录在不在?总账余额对不对?

全部验证通过,你的备份才算有效。 建议每 3 个月做一次恢复演习。

8.3 真出故障时的应急流程

系统挂了,打不开了
    ↓
判断:预计多久能修好?
    ├── 1 小时内能修好 → 通知全员暂停操作,加紧修复
    └── 1 小时内修不好 → 启动应急:
         ├── 销售/开单 → 用手写单据或 Excel,事后补录
         ├── 仓库/发货 → 用纸质出库单,事后补录
         ├── 财务/付款 → 暂停对外付款(宁愿晚付也别付错)
         └── 所有人员 → 保留好纸质单据,系统恢复后统一补录

系统恢复 → 从最新备份恢复数据 → 补录应急期间的单据 → 验证 → 恢复正常

9. 附录:各行业基础科目补充表

内置中国 COA 只有 274 个科目,以下按行业补充:

制造业

5001  生产成本
500101  直接材料
500102  直接人工
500103  制造费用
1405   自制半成品
1406   周转材料
1471   存货跌价准备
5101   制造费用
510101  车间管理人员工资
510102  折旧费
510103  水电费
510104  机物料消耗

贸易/零售业

1405   库存商品
140501  库存商品 - A仓库
140502  库存商品 - B仓库
6403   商品销售成本

服务业

6001   主营业务收入
600101  服务收入
600102  咨询收入
6401   主营业务成本
640101  人工成本
640102  项目直接费用

餐饮业

1405   库存商品
140501  原材料 - 食材
140502  原材料 - 酒水
140503  物料及低值易耗品
6401   主营业务成本
640101  食材成本
640102  酒水成本

最后更新:2026-05-10 适用版本:ERPNext v16.x

配套文档:

  • ERPNext部署指南_从零到生产.md — 怎么装系统
  • ERPNext运维进阶与本地化指南.md — 怎么管系统
  • ERPNext打印模板定制指南_从零到客户交付.md — 怎么出文件
  • 本指南 — 怎么把公司迁移到新系统上