ERPNext 上线清单 — 从准备到切换
ERPNext 上线清单 — 从准备到切换
这份文档解决一个问题:你装好了 ERPNext,里面是空的。怎么把你的公司从旧方式(Excel/手工账)安全地、不丢数据地、业务不中断地切换到 ERPNext。
目录
- 上线前必须理解的三件事
- 阶段一:数据准备(上线前 2-4 周)
- 阶段二:数据导入(上线前 1-2 周)
- 阶段三:期初余额(上线前 3-7 天)
- 阶段四:用户权限设置(上线前 3-7 天)
- 阶段五:切换周末(D-Day)
- 阶段六:上线第一周
- 灾难恢复演习
- 附录:各行业基础科目补充表
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 第一天:陪跑
周一上午,所有员工登录系统。你需要:
- 给每个人一份"我每天要点的 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— 怎么出文件- 本指南 — 怎么把公司迁移到新系统上