Odoo 单据编号如何按年/月/日重置?完整解析序列(Sequence)自动编号机制

全面解析 Odoo 单据编号的重置机制,包括如何通过序列(Sequence)设置按年、月、日重新编号,如何修改前缀、填充位数,以及为何某些模块(如发票)在 UI 中看不到编号设置。本指南适用于 Odoo 17,帮助企业正确规划编号规则,满足审计、财务和业务管理需求。

Odoo 的单据编号到底能不能按年、月、日重新开始?我来一探究竟

​在企业管理系统里,单据编号往往不仅是识别编码,还常常承载着流程管理、财务核对、审计追踪等作用。

那么问题来了:在 Odoo 里,我们能不能让单据编号每年、每月、甚至每天自动重新编号?

​很多第一次接触 Odoo 的人常常会问:

    • 销售订单(SO)能不能每年重新编号,从 SO/2025/001 开始?
    • 发票(Invoice)编号可不可以按月份重置?
    • 有没有办法做到每天从 1 开始编号,来实现某些行业的流水号需求?
    • Odoo 17 到底支持哪些模式?是不是还需要写代码?

​这些疑问在社区、论坛中反复出现,所以我决定针对 Odoo 17 整理一篇完整解读。

Odoo 能按年 / 月 / 日重置编号吗?

​答案是 可以!并且完全内置,无需开发!

​Odoo 中所有编号的核心机制都是 Sequence(序列)

​只要打开开发者模式,就能找到这些序列,并且序列本身支持以下重置周期:​

    • Yearly(按年)
    • Monthly(按月)
    • Daily(按日)
    • No reset(不重置)

​也就是说,Odoo 原生就能做到:

    • 每年从 1 重新开始编号
    • 每月从 1 重新开始编号
    • 每天从 1 重新开始编号
    • 永不重置,连续累计增长

​那是不是所有单据都能这样操作呢?

那为什么在某些界面,比如发票,看不到编号设置?

这里很多人都会困惑:

“销售订单我好像能找到序列,那发票的序列在哪?怎么 UI 里没有?”

其实原因是:

  • Odoo 不会把序列放在单据界面给你改
  • 但所有单据的编号都依然来自序列(ir.sequence)

所以发票、账单、会计分录虽然前端没有入口,但底层仍然是用同样的序列机制控制的。

换句话说:

​找不到序列,并不代表它不存在。

​找不到 UI 入口,并不代表不能修改。

​只要进入开发者模式 →「设置 → 技术 → 序列」,就能找到所有单据的编号规则。

使用序列还能做到什么?

很多人不知道 Odoo 的序列其实非常强大,它不仅能重置,还能通过变量自定义编号格式。

​比如你可以设置前缀为:

    • SO/%(year)s/
    • INV/%(year)s/%(month)s/
    • WH/%(year)s/%(month)s/%(day)s/
    • %(company_id)s/%(year)s/%(month)s/N°

​甚至还可以自定义数字长度,例如:

    • 001、0001、000001

​这样便能构建严谨、兼容审计且具有辨识度的编号体系。

需要注意的几个坑

1. 修改序列不会影响历史单据

如果业务上希望“重新整理历史编号”,那几乎都是不推荐甚至不允许的(尤其会计模块)。

2. 多公司环境中,每家公司序列独立

你需要分别调整。

3. 某些模块修改编号可能有法律影响

例如发票在某些国家法规严格限制,不允许随意变更编号格式。

那么,Odoo 的单据编号应该怎么规划?

这是企业落地时最常出现的疑惑之一:

  • 是否要按年度重置?
  • 是否需要带月份?
  • 是否每个业务类型(如国内 vs 国外订单)要分序列?
  • 是否需要加入公司代码?

这些都要结合业务场景、审计规则和跨公司流程来决定。

结语:Odoo 的序列非常强大,但你需要正确使用它

如果你正在规划 Odoo 的编号体系,不妨问问自己:

  • 我们的编号真的需要每年重置吗?
  • 是否有会计合规要求?
  • 业务人员是否需要从编号推断时间?
  • 多公司情况下是否要统一格式?

想清楚这些问题,再利用 Odoo 序列的灵活性,你几乎能实现任何编号规则。

关于我们

​我们致力于帮助中小企业实现数字化转型,我们的团队由一群充满激情和创新思维的专业人士组成,他们具备丰富的行业经验和技术专长。

扫一扫获取顾问以及手册

归档
登录 留下评论
Odoo 19 首次登录自动创建数据库方案:自动生成 Demo 库的最佳实践