法国

FEC - 会计凭证文件

一个 FEC 会计凭证文件 审计文件包含某一财年中所有会计账簿记录的所有会计数据和凭证。该文件中的凭证必须按时间顺序排列。

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

FEC 导入

为了使新用户的入门更加容易,Odoo Enterprise 的法国 财务本地化包 包含了 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。

  • 分隔符:以下任意一种:;|,TAB

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

  • 日期格式: %Y%m%d

字段描述和用途

#

字段名称

描述

使用

格式

01

凭证代码

凭证代码

如果未提供 JournalLib,则使用 journal.codejournal.name

字母数字

02

日记账库

凭证标签

日记账名称

字母数字

03

凭证编号

每张凭证的特定编号序列号

分录.name

字母数字

04

记录日期

会计凭证日期

分录.日期

日期(yyyyMMdd)

05

账户编号

账号

会计科目

字母数字

06

科目账

账户标签

科目.名称

字母数字

07

辅助编号

二级账户编号(接受空值)

业务伙伴.参考

字母数字

08

CompAuxLib

辅助账户标签(接受空值)

业务伙伴.名称

字母数字

09

单据编号

文档引用

如果未提供 EcritureNum,则使用 move.refmove.name

字母数字

10

日期

文档日期

分录.日期

日期(yyyyMMdd)

11

分录摘要

会计分录标签

移动行名称

字母数字

12

借方

借方金额

移动行.借方

浮点数

13

信用

贷方金额(字段名 “Crédit” 不允许)

移动行.贷方

浮点数

14

分录

会计凭证交叉引用(接受空值)

移动行. fec匹配编号

字母数字

15

日期

会计凭证日期(接受空值)

未使用

日期(yyyyMMdd)

16

有效日期

会计凭证验证日期

未使用

日期(yyyyMMdd)

17

货币金额

货币金额(接受空值)

移动行的货币金额

浮点数

18

Idevise

货币标识符(接受 null)

货币名称

字母数字

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

12

金额

金额

分录行.借方分录行.贷方

浮点数

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

采购 -> FEC-采购

The journals are not archived, the user is entitled to handle them as he wishes.

日记账类型确定

日记账类型在格式中也未指定(根据账户),因此最初会使用默认类型 通用 进行创建。

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

  • bank: 在这些日记账中,每笔分录总是有一行(借方或贷方)影响流动性账户。
    现金 / 银行 可以互换使用,因此在满足此条件时,系统中将统一设置为 银行
  • 销售: 这些日记账中的分录通常在应收款账户上有借方记录,在税费收入账户上有贷方记录。
    销售退款的会计分录方向被颠倒了。
  • 采购:这些科目中的凭证大多在应付账款账户上有贷方分录,在费用账户上有借方分录。
    采购退款的会计分录方向被颠倒了。
  • 通用:用于其他所有情况。

注解

  • 进行凭证类型识别至少需要三次操作。

  • 必须有 70% 的操作对应于某一标准,才能确定日记账类型。

Example

假设我们正在分析具有特定 journal_id 的移动记录。

移动

数量

百分比

具有销售会计分录且无采购会计分录的条目

0

0

具有采购会计分录且无销售会计分录的条目

1

25%

具有流动资金账户行的项目

3

75%

总计

4

100%

日记账的 type 将为 bank,因为银行交易比例(75%)超过了阈值(70%)。

伙伴

每个业务伙伴从字段 CompAuxNum 中保留其 参考编号

注解

这些字段是可搜索的,符合会计专家在财务/审计目的上的以往FEC导入情况。

小技巧

用户可以通过数据清理应用合并业务伙伴,用户可以合并供应商和客户或类似的业务伙伴条目,系统会通过按相似条目分组来协助用户。

移动

凭证在提交后立即过账并进行对账,使用 EcritureLet 字段在凭证之间进行匹配。

EcritureNum 字段表示分录的名称。我们注意到有时该字段可能未被填写。在这种情况下,将使用字段 PieceRef

四舍五入问题

该科目存在与货币相关精度的四舍五入容差(即 EUR 的 0.01)。在该容差范围内,将向分录中添加一行,名为 导入四舍五入差异,对应科目为:

  • 658000 其他日常管理费用,用于增加借方

  • 758000 其他日常管理产品,用于增加信用额度

缺失的移动名称

如果未填写 EcritureNum,也有可能 PieceRef 字段不适合用于确定分录名称(它可能被用作会计分录行的参考),从而无法确定哪些行应归入同一笔分录,进而妨碍平衡分录的创建。

最后一次尝试是将同一凭证和日期的所有行进行分组(JournalLibEcritureDate)。如果这种分组生成了平衡的分录(sum(credit) - sum(debit) = 0),则每个不同的凭证和日期组合都会生成一个新的分录。

Example

ACH + 2021/05/01 –> 在科目表 ACH 中创建新的会计分录,名称为 20210501

如果此次尝试失败,用户将收到一条错误消息,其中包含所有据称不平衡的分录行。

业务伙伴信息

如果某一行指定了合作伙伴信息,则当目标日记账的类型为 应付应收 时,该信息会复制到会计分录本身中。

导出

如果已安装法国 财政本地化包装,您应该能够下载 FEC。为此,请转到 会计 ‣ 报告 ‣ 法国 ‣ FEC

小技巧

如果您看不到子菜单 FEC,请转到 应用,移除 应用 筛选器,然后搜索名为 法国-FEC 的模块,并确保已安装。

法国会计报表

如果您已安装法国会计模块,您将可以访问一些适用于法国的会计报表:

  • 财务报表

  • 损益表

  • 法国税计划

通过 Odoo 获取增值税反欺诈认证

自2018年1月1日起,法国及其海外领地(DOM-TOM)将实施一项新的反欺诈法规。该法规规定了有关销售数据不可更改性、安全性、存储和归档的一些具体要求。这些法律要求通过一个模块和一份可下载的符合性证书在Odoo 9及更高版本中得以实现。

我的公司是否必须使用防欺诈软件?

如果您的公司需要使用类似 Odoo 的防欺诈收银软件(根据 CGI 第 286 条第 I. 3° bis 款),则需满足以下条件:

  • 您在法国或任何海外省(DOM-TOM)需要缴税(非增值税免税)

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

此规则适用于任何规模的公司。自雇人士免征增值税,因此不受此规则影响。

通过 Odoo 获得认证

与Odoo保持合规非常简单。

您的公司被税务机关要求提供一份符合性证书,证明您的软件符合反欺诈法规。该证书由 Odoo SA 授予 Odoo 企业版用户,您可以在 此处 获取。如果您使用的是 Odoo 社区版,您应该 升级到 Odoo 企业版 或联系您的 Odoo 服务提供商。

如出现不符合规定的情况,您的公司可能面临7,500欧元的罚款。

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

  • If you use Odoo Point of Sale, install the France - VAT Anti-Fraud Certification for Point of Sale (CGI 286 I-3 bis) module by going to Apps, removing the Apps filter, then searching for l10n_fr_pos_cert, and installing the module.

  • 请确保在您的公司设置中指定了国家,否则您的凭证将无法进行不可更改性检查的加密。要编辑公司的数据,请转到:设置 ‣ 用户与公司 ‣ 公司。从列表中选择一个国家;不要创建新的国家。

  • 请在此处下载由 Odoo SA 发行的强制性符合性证书 here

注解

  • 要在2017年12月18日之前创建的任何系统中安装该模块,您需要更新模块列表。要做到这一点,请启用 开发者模式。然后进入 应用 菜单,并在顶部菜单中点击 更新模块列表

  • 如果您在本地部署(on-premise)中运行 Odoo,请先更新您的安装并重启服务器。

  • 如果您已安装反欺诈模块的初始版本(2017年12月18日之前),则需要对其进行更新。该模块的名称为 法国 - 财务 - 认证的CGI 286 I-3 bis。在更新模块列表后,在 应用 中搜索更新后的模块,选择它并点击 升级。最后,请确保已安装以下模块 l10n_fr_sale_closing

反欺诈功能

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

  • 不可更改性:禁用所有取消或修改销售点(POS)订单、发票和会计分录的关键数据的方式;

  • 安全: 用于验证不可篡改性的链式算法;

  • 存储:自动销售关闭,并计算期间总和和累计总和(每日、每月、每年)。

不可更改性

如果公司位于法国或任何DOM-TOM地区,则所有取消和修改已支付POS订单、已确认发票和会计分录的关键数据的方式都将被停用。

注解

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

安全

为确保不可篡改性,每张订单或凭证在验证时都会被加密。此数字(或哈希值)是根据文档的关键数据以及前序文档的哈希值计算得出的。

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

具有 Manager 访问权限的用户可以启动不可更改性检查。对于 POS 订单,请转至:销售点 ‣ 报表 ‣ 法国报表。对于发票或会计分录,请转至:发票/会计 ‣ 报表 ‣ 法国报表

存储

系统还会按日、月和年定期处理自动销售结账。此类结账能够明确计算出该期间的销售总额,以及从系统中记录的第一笔销售开始的累计总销售额。

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

注解

  • 结账功能用于计算销售日记账(日记账类型 = 销售)的分录总计。

  • 在多公司环境中,此类结账操作由各公司分别执行。

  • POS 订单会在 POS 会话结束时作为分录记入账簿。可以随时结束 POS 会话。为了提示用户每天进行一次操作,该模块会阻止恢复超过 24 小时前开启的会话。在再次销售之前,必须先关闭此类会话。

  • 该期间的总计是根据所有在相同类型上一次结账之后入账的日记账条目计算的,而不论其入账日期如何。如果您对一个已结账的期间记录新的销售交易,该交易将被计入下一个结账周期中。

小技巧

  • 出于测试和审计目的,此类结账操作可以在 开发者模式 中手动生成。

  • Then go to Settings ‣ Technical ‣ Automation ‣ Scheduled Actions.

职责

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

用户需对其 Odoo 实例负责,并应谨慎使用。不得修改源代码,以确保数据的不可更改性。

Odoo 在因第三方应用程序(未经过 Odoo 认证)导致模块功能发生变化的情况下,不承担任何责任。

更多信息

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