开始¶
部分企业从开业之初便使用 Odoo,但很多企业需要从其他旧版财务软件迁移至 Odoo。直接启用 Odoo 的企业流程会简单很多,但仍需完成以下步骤:
迁移至 Odoo 的企业除上述步骤以外,还需要:ref:导入初始分录 <accounting/get_started/open-entries> 。
执行时机 |
通用类别 |
具体待办事项 |
|---|---|---|
财税本地化 |
校验本地化配置 |
|
公司信息
纳税申报表周期
税额舍入与价格含税设置
默认账户
财政年度结束日期
文档排序
|
||
注解
从旧软件系统迁移至 Odoo 会计模块流程较为复杂,不同企业之间差异较大。本文档提供基础操作步骤,Odoo 的服务包<https://www.odoo.com/pricing-packs>_可为您提供个性化指引,适配企业自身业务需求。高级用户可将本文作为迁移参考,但请注意部分个性化需求本文并未覆盖。
小技巧
建议在测试数据库演练整套流程,同时并行沿用原有会计工作流程,规避故障风险。
数据库 / 公司创建阶段¶
:doc:`财税本地化包 <../fiscal_localizations>`为国家专属模块,会在数据库中预配置税种、财税位置、会计科目表以及法定报表。同时会计应用会新增部分附加功能,例如特定证书配置,以满足财税监管机构要求。
创建数据库时,系统会根据所选国家自动安装对应的财税本地化包。部分国家针对不同业务类型提供多个本地化包,请务必确认已安装正确套件。操作路径:,在 :guilabel:`财税本地化`板块的:guilabel:`套件`字段核对当前启用的本地化包。
警告
仅在尚未过账任何会计分录的前提下,才允许切换其他本地化套件。
实施前期¶
会计主数据¶
主数据是其他业务记录所依赖的基础数据。例如开具发票需要客户信息,客户(联系人)即为主数据。由于其他记录依赖主数据,无论手动录入还是导入,会计数据导入 Odoo 的先后顺序至关重要。
科目表¶
:doc:`会计科目表 <get_started/chart_of_accounts>`是全部会计记录的基础,因此必须在录入其他数据库记录之前完成配置。每套财税本地化包都会附带一套标准会计科目表,但多数企业拥有自定义科目表。部分企业科目与 Odoo 标准科目用途一致,只是科目名称或编码不同;还有部分科目在 Odoo 标准科目表中没有对应科目。两类科目需要区分处理:
对于企业科目表中与 Odoo 标准科目用途对应的科目,直接修改 Odoo 标准科目的名称或编码,与企业自身保持一致即可。
对于企业科目表中无对应 Odoo 标准科目的科目,手动新建或者 导入。
小技巧
同一套科目表内科目编码必须唯一,请确保新建或导入的科目编码不与已有科目重复。
危险
部分标准科目被用作产品、产品分类、联系人以及会计设置中多个字段的默认科目,删除或修改其科目类型会导致开发票等基础业务流程异常。请勿直接删除 Odoo 标准科目,建议修改名称与编码复用。
其他资料
币种¶
如果企业需要财税本地化包默认之外的其他 币种,启用对应币种。可在会计设置的 :guilabel:`币种`板块配置汇率自动更新。
日记账¶
系统默认会生成 日记账,例如销售日记账、采购日记账、银行日记账等。也可新建日记账适配不同业务场景,包括:
使用多个销售日记账区分收入来源
多个银行账户分别配置独立日记账
通过杂项日记账管理贷款、税务申报、薪酬管理等业务
在银行、现金以及信用卡日记账中记录付款时,是否生成会计分录取决于日记账配置。系统默认不会为付款生成分录。如需让日记账生成付款分录,请在该日记账的付款方式上设置 待收付款科目。
财务规则¶
财务规则 <taxes/fiscal_positions>`可根据客户或供应商,为产品配置不同收入、费用科目并套用不同 :doc::税种 <taxes>`。也可设置依据客户或供应商地址自动匹配财税位置。安装 财税本地化包 会自带默认财务规则,既可以修改现有配置,也可以手动新建财务规则。
税¶
税种`会作用于会计多个业务环节,包括 :doc:`财务规则、:ref:`会计科目 <taxes/definition-tab>`以及产品。安装 :doc:`财税本地化包 <../fiscal_localizations>`会自带默认税种,可修改现有税种,也可手动新增税种。
付款条款¶
:doc:`付款条款 <customer_invoices/payment_terms>`用于定义销售订单、采购订单、客户发票、供应商账单等单据的付款条件,还可以设置分期方案,实现单据分多期收款付款。
付款条款与到期日均用于规定付款到期时间,二者互斥,一张单据只能选用其中一种。
其他主数据¶
产品与产品分类¶
:doc:`导入产品 <../../sales/sales/products_prices/products/import>`和产品分类,也可手动创建。产品分类表单包含多项会计相关字段,包括:
产品默认会继承所属产品分类的 收入科目`与 :guilabel:`费用科目,也可在单个产品记录上覆盖该科目设置。产品表单还有其他会计相关字段,包括:
小技巧
请先导入产品分类,再导入产品,这样导入产品时就可以指定对应的产品分类。
往来银行以及银行账户¶
向供应商付款(例如通过 :ref:`SEPA贷记转账 <accounting/sepa_payments/sct>`或者 :doc:`NACHA <../fiscal_localizations/united_states>`文件),以及通过 :ref:`SEPA直接扣款 <accounting/sepa_payments/sdd>`向客户收款时,必须在联系人档案中维护客户或供应商的银行账户信息
导入,也可以手动新建。
联系人¶
会计配置¶
以下核心会计配置对会计档案初始化至关重要。大部分配置位于会计设置页面,路径:。
实施阶段¶
期初分录¶
迁移至 Odoo 的企业,如果已有科目余额、未结清发票与供应商账单、期初盘点库存,需要在 Odoo 数据库录入期初分录,保证数据准确体现。
导入 期初试算平衡表 的流程存在风险,操作不当会造成金额重复。
Example
某企业应收账款当前余额为 1000 美元,对应未结清发票的待收款项 1000 美元。
如果直接在 Odoo 同时录入这批未结清发票以及应收账款科目余额,应收账款会错误显示余额 2000 美元:
来自应收账款期初试算平衡表的 1000 美元
来自 Odoo 内新建未结清发票产生的 1000 美元
该逻辑同样适用于未结清供应商账单与应付账款。
为避免该错误,请使用*过渡清算科目*,这类科目用于临时存放金额,后续再完成轧平(即 “清算”)。
迁移时机¶
将会计工作流程迁移至 Odoo 共有三种时机可选:
会计年度末:该方案最简单,需要迁移的数据量最少。
报税周期末:此模式下,可以选择过账上一周期全部分录,或仅录入周期末各科目余额。
报税周期中途:不推荐该方案,会增加额外工作量与复杂度。同一报税周期拆分在旧系统与 Odoo 两套系统,需要合并两套系统数据,报税流程会变得繁琐。
请从旧系统准备以下文档:
科目期初余额
未结清(未付款)发票与贷项通知单
未结清(未付款)供应商账单与退款单据
期初库存盘点数据
注解
如果系统启用自动存货计价,并且已经通过开票应用或库存移动生成过会计分录,请使用会计设置里的 :guilabel:`开票切换阈值`能,撤销指定日期之前的全部分录,获得干净的总账初始状态。另外,请在每个银行日记账的第一期对账单录入正确期初余额,与实际银行账户余额保持一致。
警告
在 Odoo 中录入期初分录之前,请核对数据满足以下要求:
全部应收科目期初试算余额之和,必须等于未结清客户发票总额减去贷项通知单总额。
全部应付科目期初试算余额之和,必须等于未结清供应商账单总额减去退款单据总额。
product quantity for each product and summing them together).全部存货科目期初试算余额之和,必须等于库存总价值(每件产品成本乘以库存数量,再汇总求和)。
期初试算平衡表本身借贷必须平衡。
未结清发票与供应商账单¶
迁移至 Odoo 的企业,需要导入或手动录入未结清(即已有但尚未完全结清)的客户发票、供应商账单(含贷项通知单、退款单据),避免迁移过程丢失单据。发票与账单的导入流程大体一致,分为三步:
注解
为简化操作,建议导入单据时只录入到期总金额,不要录入每一行明细。可以避免同一笔单据造成税种科目重复记账等常见问题。
准备发票与供应商账单数据¶
使用 Odoo 提供的导入模板准备未结清发票和账单数据。获取导入模板操作路径:
处理发票与贷项通知单:进入:menuselection:
会计 ‑‑> 客户 ‑‑> 发票,点击 )图标,再点击 导入记录。点击 :guilabel:`发票导入模板`下载模板。处理供应商账单与退款单据:进入 ,点击:icon:
fa-cog`(:guilabel:`操作)图标,再点击 导入记录。点击 :guilabel:`账单导入模板`下载模板。
请准备以下字段:
字段 |
描述 |
|---|---|
合作伙伴 |
客户名称(必须与 Odoo 内的联系人记录完全一致) |
编号 |
发票编号(例如:BILL/2026/00001):该编号**不得**已存在于当前数据库,否则需要执行 重新编号 |
参考号 |
(选填)发票参考号,即生成该发票的原始单据名称 |
发票账单日期 |
发票的创建日期。请保证 :guilabel:`单据编号`中的年份与本字段年份保持一致,避免报错。 |
到期日 |
发票 / 账单的付款到期日期。每张单据只能填写到期日或者付款条款,二者不可同时使用。 |
付款条款 |
发票 / 账单的 付款条款。每张单据只能填写到期日或者付款条款,二者不可同时使用。仅当未结清发票 / 账单涉及分期收款时,才建议使用付款条款。 |
日记账 |
(选填)日记账名称,适用于存在多个销售日记账或采购日记账的场景 |
发票行 / 标签 |
发票标签(例如: |
发票行 / 科目 |
应收过渡清算科目 |
发票行 / 单价 |
发票到期总金额。如已发生部分付款,则填写剩余待付金额(总金额减去已部分付款)。 |
币种 |
发票开具币种(与公司本位币不一致时填写)。如果导入多币种未结清发票,导入前需要为每一笔外币发票维护 历史汇率。 |
校验发票与账单¶
对未结清发票、供应商账单、贷项通知单、退款单据校验以下内容:
未结清供应商账单总额减去未结清退款单据总额,应当等于期初试算平衡表中的应付账款余额。
未结清发票总额减去未结清贷项通知单总额,应当等于期初试算平衡表中的应收账款余额。
检查负金额发票与账单:
如果存在负金额发票,该类单据属于贷项通知单,需要在 修改为`RINV/YEAR/NUMBER`,可(选填)将:guilabel:`参考号`改为冲销单据:[发票编号]。
同理,如果存在负金额供应商账单,该类单据属于退款单据,需要在 会计 ‑‑> 供应商 ‑‑> 退款单据`菜单下,以正数数值单独导入。将 :guilabel:`单据编号`由 `BILL/YEAR/NUMBER`修改为`RBILL/YEAR/NUMBER,可(选填)将 参考号`改为`冲销单据:[账单编号]。
多币种检查:如果导入不同币种的期初应收 / 应付单据,请为每一笔非本位币的发票或账单,按其创建日期创建对应的:历史汇率。
导入发票与账单¶
在对应菜单下:导入:
客户发票:进入:menuselection:
会计 --> 客户 --> 发票。供应商账单:进入 。
贷记单:进入 。
供应商退款单:进入 。
所有记录均以草稿状态导入。在生成的列表视图中,选中导入的草稿记录,点击 操作,再点击 确认分录。
对每一类单据(发票、账单、贷记单、退款单)重复上述操作。
期初库存¶
期初库存导入分为三步:
准备库存数据¶
如果创建产品时未录入产品成本,请进行更新:可在产品表单的 :guilabel:`成本`字段手动录入,也可通过 :ref:`导入更新 <essentials/update-data>`完成。
小技巧
对于采用 :abbr:`FIFO(先进先出)`成本计价法、存在多批次不同成本库存的产品:先在产品表单设置对应成本,再导入该成本下的库存数量。不同成本需分别执行一次该操作,按需重复。
使用 Odoo 自带导入模板准备期初库存盘点数据。获取模板路径:进入 ,点击 )图标,点击 导入记录,再点击 :guilabel:`库存调整`导入模板下载模板。
请准备以下字段:
字段 |
描述 |
|---|---|
产品 |
产品名称或内部参考编号。如果使用 产品变体,识别逻辑会更复杂,多个变体可能共用同一个产品名称。此种场景建议使用 外部ID <export_import_data/different-ids>`定位产品,并将列名修改为`产品 / 外部ID。 |
盘点数量 |
期初库存盘点的产品数量 |
库位 |
若设置中已开启 :guilabel:`库位`功能,则必须填写每一行期初库存对应的存放库位。 |
批次 / 序列号 |
如果产品启用批次或序列号管理,请在此填写对应批次或序列号;每个独立批次、序列号需要单独占一行。 |
校验库存数据¶
核对所有库存科目期初试算平衡余额之和,应当等于库存总价值。库存总价值计算方式:每行记录的产品成本 × 产品数量,再全部累加。
Example
产品 |
盘点数量 |
产品成本 |
总价值 |
|---|---|---|---|
桌子 |
10 |
$250 |
$2500 |
桌子 |
8 |
$350 |
$2800 |
椅子 |
15 |
$50 |
$750 |
全部库存合计为 6050 美元(2500 + 2800 + 750)。试算平衡表中的库存科目余额必须等于 6050 美元;若存在多个库存科目,则各科目余额之和应为 6050 美元。
导入库存数据¶
前往 。
:ref:`导入 <essentials/export_import_data/import-data>`库存数据。
导入的记录全部为草稿状态。在生成的列表视图中点击 全部应用。
填写 库存原因`(例如:期初库存)以及 :guilabel:`盘点日期。
点击 更新数量。
期初试算平衡表¶
试算平衡表是所有科目及其当前余额的完整清单。务必将该数据录入 Odoo,以保证后续科目余额准确。
导入期初试算平衡表分为三步:
准备期初试算平衡表¶
从旧系统软件导出试算平衡表。试算平衡表应列出科目表下全部科目,每个科目分别填列借方余额或贷方余额。
将旧系统的数据填入 Odoo 提供的会计分录导入模板,完成期初试算平衡表准备。打开会计分录导入模板:进入菜单 ,点击 )图标,再点击 导入记录。点击 :guilabel:`其他业务导入模板`下载模板。
请在模板中录入试算平衡表数据,使用以下字段:
字段 |
描述 |
|---|---|
参考号 |
用于标识该笔会计分录的参考编号(例如:期初试算平衡表或类似标识) |
日期 |
该笔会计分录的日期 |
日记账 |
该分录归属的日记账。建议使用默认的杂项日记账。 |
分录行 / 科目 |
科目编码和 / 或科目名称 |
分录行 / 借方 |
以公司本位币填写科目的借方金额。若该行是贷方,则此字段留空,请勿填写0.00或负数。 |
分录行 / 贷方 |
以公司本位币填写科目的贷方金额。若该行是借方,则此字段留空,请勿填写0.00或负数。 |
分录行 / 备注 |
(选填)用于标识该条试算平衡表分录行的备注 |
重要
参考编号、日期、:guilabel:`日记账`这三列作用于整笔会计分录。因此仅需在第一行填写,系统将生成一笔包含全部分录行的会计分录。
每一行仅可在 分录行/借方 或 分录行/贷方 其中一列录入金额,该行另一列保持为空。所有列均不要填写 0.00 或负数。
编辑期初试算平衡表表格,使用过渡科目替换以下科目:
应收账款 –> 应收过渡科目(类型 = 流动资产)
应付账款 –> 应付过渡科目(类型 = 流动资产)
注解
在:ref:
最终校验步骤 <accounting/get_started/validation>`中,过渡科目的类型会被修改为 :guilabel:`表外科目,因此科目类型无需严格限定。如果存在多个应收账款或多个应付账款科目,可以将其合并至同一个过渡科目。
Example
参考号 |
日期 |
日记账 |
分录行 / 科目 |
分录行 / 借方 |
分录行 / 贷方 |
|---|---|---|---|---|---|
期初试算平衡表 |
01/01/2026 |
杂项 |
101404 银行 |
10,000 |
|
110100 库存估值 |
30,000 |
||||
777777 AR Clearing |
5,000 |
||||
131000 Tax Paid |
2,000 |
||||
888888 AP Clearing |
4,000 |
||||
220000 Credit Card |
8,000 |
||||
251000 Tax Received |
6,000 |
||||
400000 Product Sales |
24,000 |
||||
690000 Miscellaneous Expenses |
5,000 |
Validate the opening trial balance¶
请确认试算表符合以下要求:
全部应收科目期初试算余额之和,必须等于未结清客户发票总额减去贷项通知单总额。
全部应付科目期初试算余额之和,必须等于未结清供应商账单总额减去退款单据总额。
product quantity for each product and summing them together).全部存货科目期初试算余额之和,必须等于库存总价值(每件产品成本乘以库存数量,再汇总求和)。
期初试算平衡表本身借贷必须平衡。
导入期初试算表¶
导入 中的:ref:预设字段 <accounting/get_started/prep-tb> 。
试算表将作为草稿导入。在生成的列表视图中,打开该草稿条目,进行审核,然后点击 发布。
开户及信用卡交易¶
对于银行、信用卡和现金账户,务必核实日记账期初余额表中的期初余额是否已更新,以反映账户的实际价值:
添加首批交易记录后(无论是手动添加、通过导入还是通过银行同步),请创建期初对账单:ref:` <accounting/transactions/statements>` ,其中可包含任意数量的交易记录。将:guilabel:期初余额 设置为第一笔交易发生前该银行账户的正确余额。
注解
当 同步 银行和信用卡账户时,请删除试算表日期之前的任何交易,以确保账户余额准确无误。
对每个银行、现金或信用分录重复此过程。
最终验证¶
为完成向 Odoo 的过渡,请确认所有抵销账户现已收支平衡,并在导入后将其 账户类型 更改为:guilabel:表外科目( ),以将其从报表中移除。