法国

FEC - 会计分录文件

一个 FEC Fichier des Écritures Comptables 审计文件包含了一个财政年度中所有会计数据和记录在所有会计日志中的分录。文件中的分录必须按照时间顺序排列。

自2014年1月1日起,每家法国公司都必须在税务机关要求进行审计时制作并传输此文件。

FEC 导入

为了使新用户的入职更加容易,Odoo企业版的法国 财务本地化包 包括 FEC导入 功能(模块名称: l10n_fr_fec_import ),可以从旧软件中导入现有的FEC文件。

要启用此功能,请转到 会计 ‣ 配置 ‣ 设置 ‣ 会计导入,启用 FEC 导入,然后 保存

接下来,转到 会计 ‣ 配置 ‣ FEC 导入,上传您的 FEC 文件,并点击 导入

注解

导入来自不同年份的FEC文件不需要任何特殊操作或计算。
如果多个文件包含任何具有年初余额的“新报告”(RAN),您可能需要在用户界面中取消这些条目。Odoo 使这些条目(RAN)无用。

文件格式

FEC文件只能使用CSV格式,不支持XML格式。

注解

FEC CSV文件采用纯文本格式表示数据表,第一行是标题,定义了每个条目的字段列表,每个后续行表示一个会计分录,没有预定顺序。

我们的模块期望文件符合以下技术规范:

  • 编码:UTF-8,UTF-8-SIG 和 iso8859_15。

  • Separator: any of these: ; or | or , or TAB.

  • 行终止符:支持CR+LF (\r\n)和LF (\n)字符组。

  • Date format: %Y%m%d

字段描述和用途

字段名称

描述

使用

格式

01

日志代码

日记账代码

journal.codejournal.name 如果没有提供 JournalLib

字母数字

02

日志库

日志标签

journal.name

字母数字

03

EcritureNum

每个日志序列号的分录都有特定的编号

move.name

字母数字

04

记账日期

会计分录日期

move.date

日期(yyyyMMdd)

05

账户号码

账号

account.code

字母数字

06

账户名称

账户标签

account.name

字母数字

07

辅助帐户号码

次要账户号码(可为空)

partner.ref

字母数字

08

CompAuxLib

次要账户标签(可为空)

partner.name

字母数字

09

单据参考

文件参考

move.refmove.name 如果未提供 EcritureNum

字母数字

10

日期

文件日期

move.date

日期(yyyyMMdd)

11

EcritureLib

账户条目标签

move_line.name

字母数字

12

借方

借方金额

move_line.debit

浮点数

13

贷方

信用金额(不允许使用字段名“Crédit”)

move_line.credit

浮点数

14

EcritureLet

会计分录交叉引用(可接受空值)

move_line.fec_matching_number

字母数字

15

日期文字

会计分录日期(可为空)

未使用的

日期(yyyyMMdd)

16

有效日期

会计分录验证日期

未使用的

日期(yyyyMMdd)

17

货币金额

货币金额(可接受空值)

move_line.amount_currency

浮点数

18

Idevise

货币标识符(可接受空值)

currency.name

字母数字

这两个字段可以在上述情况下代替其他字段。

12

金额

金额

move_line.debitmove_line.credit

浮点数

13

方向

可以是”C”表示贷方或”D”表示借方

确定 move_line.debitmove_line.credit

字符

实施细节

以下会计实体从FEC文件中导入: 账户,日记账,合作伙伴凭证

我们的模块确定了文件中使用的编码、行终止符和分隔符。

然后检查每行是否有与标题对应的正确字段数。

如果检查通过,则完整读取文件并保存在内存中进行扫描。会按照以下顺序逐个导入会计实体。

账户

每个会计分录都与一个账户相关联,该账户应由字段 CompteNum 确定。

代码匹配

如果系统中已经存在类似的账户代码,则使用现有的账户代码而不是创建新的。

Odoo中的账户通常具有默认的数字,适用于财务本地化。由于FEC模块与法国本地化相关,因此相关数字的默认数量为6。

这意味着会将账户代码的尾部零右侧截断,并且在FEC文件中的账户代码与Odoo中已存在的账户代码之间的比较仅在代码的前六位数字上执行。

Example

文件中的账户代码 65800000 与Odoo中现有的 658000 账户匹配,因此使用该账户而不是创建新账户。

可对账标志

如果第一行填写了 EcritureLet 字段,则技术上将账户标记为 可对账 ,因为此标志意味着会将会计分录与另一个分录对账。

注解

如果该行未填写此字段,但该条目仍需与尚未记录的付款进行对账,则无论如何都不会有问题;只要导入移动行需要对其进行对账,该账户就会被标记为可对账。

账户类型和模板匹配

由于FEC格式中未指定帐户的 类型 ,因此使用默认类型 流动资产 创建 帐户,然后在导入过程结束时将它们与已安装的会计科目模板进行匹配。此外, 对账 标志也是这样计算的。

匹配是从最左边的数字开始进行的,首先使用所有数字,然后是3,然后是2。

Example

名称

代码

完整比较

三位数字比较

两位数字比较

模板

400000

400000

400

40

账户号码

40100000

40100000

401

40

结果

找到 匹配项

然后,根据账户模板,该账户的类型被标记为 应付可对账

日记账

还会检查日记账是否已经存在于Odoo中,以避免重复,即使是多个FEC文件导入的情况下也是如此。

如果系统中已经存在类似的日志代码,则使用现有的日志代码而不是创建新的。

新的账簿名称以字符串 FEC- 作为前缀。

Example

ACHATS -> FEC-ACHATS

账簿 被归档,用户可以按照自己的意愿处理它们。

日志类型确定

账簿类型在格式中也没有指定(根据账户),因此首先使用默认类型 general 创建。

在导入过程结束时,根据相关的账户和账户移动,按照以下规则确定类型:

  • bank: Moves in these journals always have a line (debit or credit) impacting a liquidity account.
    cash / bank can be interchanged, so bank is set everywhere when this condition is met.
  • sale: Moves in these journals mostly have debit lines on receivable accounts and credit lines on tax income accounts.
    销售退款日记账项目的借贷方向相反。
  • purchase: Moves in these journals mostly have credit lines on payable accounts and debit lines on expense accounts.
    采购退款日记账项目的借贷方向相反。
  • general: for everything else.

注解

  • 至少需要三个分录以识别日记账类型。

  • 必须有70%的凭证符合某个日记账类型的标准,才能确定该日记账类型。

Example

假设我们正在分析共享某个 journal_id 的移动。

移动

计数

百分比

具有销售账户行但没有采购账户行的

0

0

具有采购账户行但没有销售账户行的

1

25%

具有流动性账户行的

3

75%

总计

4

100%

日志 type 将是 bank,因为银行移动百分比(75%)超过了阈值(70%)。

合作伙伴

每个合作伙伴都从字段 CompAuxNum 中保留其 Reference

注解

这些字段可搜索,符合会计专家在财务/审计目的上以前的FEC导入要求。

小技巧

用户可以使用数据清理应用程序合并合作伙伴,其中供应商和客户或类似的合作伙伴条目可以由用户合并,系统会根据相似条目对它们进行分组并提供帮助。

移动

提交后,条目将立即发布并进行对账,使用 EcritureLet 字段来匹配条目本身。

字段 EcritureNum 代表了凭证的名称。我们注意到有时它可能没有填写。在这种情况下,字段 PieceRef 会被使用。

四舍五入问题

有一个与货币相关的精度的舍入公差,适用于借方和贷方(即,对于欧元为0.01)。在此公差下,会向凭证中添加一行新的明细,名为 导入舍入差异 ,目标账户为:

  • 658000 Charges diverses de gestion courante, for added debits

  • 758000 Produits divers de gestion courante, for added credits

缺少移动名称

如果未填写 EcritureNum ,也可能发生 PieceRef 字段不适合确定移动名称的情况(它可能被用作会计移动行参考),从而无法找到哪些行应该在一个移动中分组,实际上阻碍了平衡移动的创建。

One last attempt is made, grouping all lines from the same journal and date (JournalLib, EcritureDate). Should this grouping generate balanced moves (sum(credit) - sum(debit) = 0), then each different combination of journal and date creates a new move.

Example

ACH + 2021/05/01 –> 新的移动在日志 ACH 上,名称为 20210501

如果尝试失败,用户将收到一个错误消息,其中包含所有被认为不平衡的移动行。

合作伙伴信息

如果一行指定了合作伙伴信息,则该信息将复制到会计凭证本身,如果目标日记账是 应付应收 类型。

导出

如果您已安装了法国的 财务本地化包 ,您应该能够下载FEC。要这样做,请转到 会计 ‣ 报告 ‣ 法国 ‣ FEC

小技巧

如果您没有看到子菜单 FEC,请转到 应用程序,移除 应用程序 过滤器,然后搜索名为 France-FEC 的模块,并确保已安装。

法国会计报告

如果您已安装了法国会计,您将可以访问一些特定于法国的会计报告:

  • 会计资产负债表

  • 损益表

  • 法国税务计划

使用Odoo获得增值税反欺诈认证

自2018年1月1日起,法国和海外省属地区(DOM-TOM)实施了新的反欺诈法规。这些新法规规定了有关销售数据的不可篡改性、安全性、存储和归档的某些标准。这些法律要求在Odoo 9及以上版本中通过一个模块和一个符合性证书来实现。

我的公司是否需要使用反欺诈软件?

如果您的公司需要使用反欺诈收银软件,例如Odoo(CGI art. 286,I. 3° bis),则必须使用。

  • 您在法国或任何海外省属地区是应税的(不免征增值税),

  • 您的一些客户是个人(B2C)。

此规则适用于任何公司规模。自由职业者免除增值税,因此不受影响。

与Odoo一起获得认证

使用Odoo变得合规非常容易。

税务管理部门要求您的公司提供一份符合要求的证明书,证明您的软件符合反欺诈法规。这个证书由Odoo SA授予Odoo企业版用户 这里 <https://www.odoo.com/my/contract/french-certification/> _。如果您使用Odoo社区版,您应该 升级到Odoo企业版 或联系您的Odoo服务提供商。

如果不符合规定,您的公司将面临7500欧元的罚款。

要获得认证,只需按照以下步骤操作:

  • 如果您使用 Odoo Point of Sale ,请通过转到 Apps ,移除 Apps 过滤器,然后搜索 l10n_fr_pos_cert 并安装模块, 安装 France - VAT Anti-Fraud Certification for Point of Sale (CGI 286 I-3 bis) 模块。

  • 确保在您的公司上设置了一个国家,否则您的条目将不会被加密以进行不可更改性检查。要编辑您的公司数据,请转到: 设置 ‣ 用户和公司 ‣ 公司 。从列表中选择一个国家;不要创建新的国家。

  • 下载由Odoo SA提供的强制符合证书 这里.

注解

  • 要在2017年12月18日之前创建的任何系统中安装模块,您应该更新模块列表。要这样做,请激活 developer mode。然后转到 Apps 菜单并按 Update Modules List 顶部菜单中的按钮。

  • 如果您在本地运行Odoo,则需要事先更新您的安装并重新启动服务器。

  • 如果您已安装了反欺诈模块的初始版本(2017年12月18日之前),您需要更新它。模块的名称是 France - Accounting - Certified CGI 286 I-3 bis 。在模块列表更新后,在 应用程序 中搜索更新的模块,选择它并点击 升级 。最后,请确保以下模块 l10n_fr_sale_closing 已安装。

反欺诈功能

反欺诈模块引入了以下功能:

  • 不可更改性:禁用所有取消或修改POS订单、发票和日记账条目关键数据的方式;

  • 安全性:链接算法以验证不可更改性;

  • 存储: 自动销售结算,计算周期和累计总额(每日,每月,每年)。

不可更改性

如果公司位于法国或任何海外省属地区,所有取消和修改已支付POS订单、确认发票和日记账条目的关键数据的可能途径都将被禁用。

注解

如果您运行的是多公司环境,则只有这些公司的文档会受到影响。

安全性

为确保不可更改性,每个订单或日志条目在验证时都会进行加密。该数字(或哈希)是从文档的关键数据以及先前文档的哈希计算出来的。

该模块引入了一个接口来测试数据的不可变性。如果在文档验证后修改了任何信息,则测试将失败。算法会重新计算所有哈希值并将其与初始哈希值进行比较。如果失败,系统将指出系统中记录的第一个损坏的文档。

具有 经理 访问权限的用户可以启动不可变性检查。对于POS订单,请转到: 销售点 ‣ 报告 ‣ 法国报表 。对于发票或日记帐条目,请转到 发票/会计 ‣ 报告 ‣ 法国报表

存储

系统还会按照日、月、年的频率自动进行销售结算。这些结算会明确计算出该时期的销售总额以及从系统记录的第一笔销售记录开始的累计总额。

结账可以在销售点、发票和会计应用程序的 法国报表 菜单中找到。

注解

  • 结账会计处理销售日记账(日记账类型=销售)的总计。

  • 对于多公司环境,这样的结账是按公司进行的。

  • POS订单在POS会话结束时作为日记账分录发布。可以随时关闭POS会话。为了促使用户每天关闭会话,该模块防止恢复超过24小时的已打开会话。在再次销售之前必须关闭此类会话。

  • 一个期间的总额是从上一个相同类型的结账之后发布的所有日记账分录计算出来的,不考虑它们的发布日期。如果您在已经关闭的期间记录了新的销售交易,它将在下一个结账中计算。

小技巧

  • 对于测试和审计目的,这样的结账可以在 开发者模式 中手动生成。

  • 然后转到 设置 ‣ 技术 ‣ 自动化 ‣ 计划动作.

职责

请勿卸载该模块!如果这样做,哈希值将被重置,您过去的数据将不再被保证为不可更改。

用户应对其Odoo实例负责,并必须谨慎使用。不允许修改源代码,以保证数据的不可变性。

Odoo不对第三方未经Odoo认证的应用程序所造成的模块功能变化承担任何责任。

更多信息

您可以在以下官方文件中找到有关此立法的更多信息。