Les erreurs comptables coûteuses ne sont presque jamais des erreurs de raisonnement : ce sont des erreurs de saisie. Une facture fournisseur payée deux fois, un numéro d'écriture qui saute, une facture validée hors ordre chronologique.
Quatre modules communautaires les empêchent, chacun par un contrôle bloquant au moment de la comptabilisation. Trois s'activent par une case ; le quatrième doit être réglé avant la première écriture, et c'est celui qui demande le plus d'attention.
Résumé
Quatre modules bloquent les erreurs de saisie avant comptabilisation : la numérotation par séquence, la chronologie des factures, l'unicité du numéro de facture fournisseur et le total de vérification.
L'ordre d'activation n'est pas indifférent. La numérotation se règle avant la première écriture — sinon la rupture se corrige journal par journal. Les trois autres sont désactivés par défaut, et la chronologie activée trop tôt produit des blocages que l'équipe vit mal.
L'essentiel
account_move_name_sequence: la numérotation des écritures par séquence rattachée au journal, comme avant Odoo 14. À régler avant les premières écritures.account_invoice_constraint_chronology: bloque la validation d'une facture qui romprait l'ordre chronologique du journal.account_invoice_supplier_ref_unique: refuse un numéro de facture fournisseur déjà enregistré pour ce fournisseur.account_invoice_check_total: bloque la validation si le total saisi d'après le document papier ne correspond pas au calcul d'Odoo.- Les trois derniers sont désactivés par défaut : ils ne font rien tant qu'on ne les active pas.
Ce que les quatre modules ajoutent à l'instance
_name_sequence | _chronology | _ref_unique | _check_total | |
|---|---|---|---|---|
| Modèles créés | 0 | 0 | 0 | 0 |
| Modèles étendus | 3 | 2 | 3 | 2 |
| Champs ajoutés | 14 | 5 | 4 | 5 |
| Menus | 0 | 0 | 0 | 0 |
| Groupes de droits | 0 | 0 | 0 | 1 |
| Version | 18.0.2.0.2 | 18.0.1.0.1 | 18.0.1.0.0 | 18.0.1.0.0 |
| Dépôt | account-financial-tools | account-financial-tools | account-invoicing | account-invoicing |
Aucun modèle créé, aucun menu : ce sont des contrôles, pas des fonctionnalités. Ils s'insèrent dans des écrans que vous connaissez déjà, et leur effet se constate au moment où ils refusent une validation.
C'est aussi ce qui les rend peu risqués à installer et faciles à retirer — à une exception près, la numérotation, qui laisse une trace dans vos séquences.
La numérotation : à régler avant la première écriture
Odoo 14 a changé la façon de numéroter les écritures comptables : au lieu d'une séquence configurée, le numéro suivant est déduit du dernier numéro saisi. Le résultat est ambigu, mal géré en concurrence, et impossible à configurer à l'avance.
account_move_name_sequence rétablit le mécanisme antérieur : une séquence Odoo classique (ir.sequence) rattachée explicitement à chaque journal.
| Ce que le module ajoute | Où |
|---|---|
| Entry Sequence (obligatoire) | Sur chaque fiche de journal |
| Dedicated Credit Note Sequence (case) | Journaux de vente et d'achat |
| Credit Note Entry Sequence | Si la case ci-dessus est cochée |
| Numéro d'écriture calculé, non éditable | Sur la pièce, une fois attribué |
À l'installation, un hook attribue automatiquement une séquence à tous les journaux qui n'en ont pas, en tenant compte des écritures déjà présentes pour éviter une rupture de numérotation. C'est bien fait, et cela ne dispense pas de vérifier.
- Facturation ▸ Configuration ▸ Journaux, ouvrir chaque journal utilisé.
- Vérifier l'Entry Sequence générée : préfixe, remplissage (padding), et surtout numéro de départ.
- Pour un journal de vente ou d'achat, vérifier la séquence d'avoir si la case dédiée est cochée.
Le numéro de départ est le point critique sur une instance déjà utilisée : s'il ne correspond pas à la numérotation existante, vous créez une rupture — et une rupture de numérotation dans un journal de vente est exactement ce qu'un contrôle fiscal regarde.
Le module retire par ailleurs l'accès à l'assistant de reséquencement d'Odoo. C'est cohérent — on ne reséquence pas une séquence — mais il faut le savoir si vous vous appuyiez dessus.
La chronologie : un contrôle par journal
account_invoice_constraint_chronology répond à une exigence comptable classique : la numérotation des factures doit suivre l'ordre chronologique des dates.
Il ajoute un champ Check Chronology sur la fiche du journal, visible uniquement pour les types Ventes et Achats, et automatiquement remis à faux si on change le type du journal.
Quand il est coché, la comptabilisation d'une facture ou d'un avoir est bloquée si une autre pièce du même journal, encore en brouillon, porte une date antérieure à celle qu'on tente de valider. Il faut valider les brouillons plus anciens d'abord.
- Facturation ▸ Configuration ▸ Comptabilité ▸ Journaux.
- Ouvrir un journal de type Ventes ou Achats.
- Cocher Check Chronology, juste après le champ Code.
- Enregistrer.
Une précision documentaire qui évite une fausse certitude : le fichier de configuration du module indique que cette option serait déjà active par défaut sur les journaux de vente et d'avoir de vente après installation. Nous n'avons pas pu le confirmer dans le code source relevé pour cette version — aucune valeur par défaut sur le champ, aucun hook d'installation, aucun fichier de données en ce sens.
Conclusion pratique : vérifiez la case journal par journal plutôt que de supposer qu'elle est cochée.
L'unicité du numéro fournisseur, et le total de vérification
Ces deux-là visent le même risque — payer deux fois, ou payer le mauvais montant — par deux mécanismes différents.
Unicité du numéro de facture fournisseur
account_invoice_supplier_ref_unique ajoute un champ Vendor invoice number, distinct du champ Reference standard, et refuse l'enregistrement si un autre document porte le même numéro pour le même fournisseur.
- Le contrôle est insensible à la casse.
- Il ignore les copies et les contre-passations, pour éviter les faux doublons.
- Il s'active par société, dans Facturation ▸ Configuration ▸ Paramètres, section « Factures fournisseurs » : Check Unicity on Supplier Invoice Number.
- Il est décoché par défaut — sans cette case, le comportement standard d'Odoo s'applique, sans aucun contrôle.
Une fois actif, il faut saisir systématiquement le Vendor invoice number : le contrôle ne porte pas sur le champ Reference. C'est une habitude à installer dans l'équipe, et la seule contrainte réelle de ce module.
Total de vérification
account_invoice_check_total prend le problème par l'autre bout : on saisit d'abord le total TTC tel qu'imprimé sur le document reçu, avant même de détailler les lignes.
- Activer Check Total on Vendor Bills dans Facturation ▸ Configuration ▸ Paramètres, section « Vendor Payments » — ou attribuer directement le groupe
account_invoice_check_total.group_supplier_inv_check_total. - Sur une facture fournisseur en brouillon, saisir le champ Verification Total.
- Saisir les lignes : le champ Total Difference affiche en continu l'écart avec le total calculé par Odoo.
- À la validation, un écart au-delà de la précision d'arrondi de la devise bloque la comptabilisation.
Le champ Total Difference n'apparaît que si un montant de vérification a été saisi, et son remplissage n'est pas obligatoire : le contrôle ne s'applique qu'aux factures où quelqu'un a pris la peine de saisir le total. C'est un choix raisonnable, qui laisse passer les factures saisies sans vérification.
Dans quel ordre les activer
| Ordre | Module | Quand | Risque si on attend |
|---|---|---|---|
| 1 | account_move_name_sequence | Avant la première écriture | Rupture de numérotation à corriger journal par journal |
| 2 | account_invoice_supplier_ref_unique | Dès le démarrage | Doublons déjà en base, à repérer à la main |
| 3 | account_invoice_check_total | Quand l'équipe est formée | Aucun — le contrôle est volontaire |
| 4 | account_invoice_constraint_chronology | Après une période d'observation | Aucun, mais blocages surprenants si activé trop tôt |
Le quatrième mérite son rang : activer la chronologie sur une équipe qui laisse traîner des brouillons produit des blocages incompréhensibles — « pourquoi ne puis-je pas valider cette facture ? » Il faut d'abord installer l'habitude de ne pas accumuler les brouillons, puis cocher la case.
Les quatre font partie de notre socle commun : installés partout, mais pas tous activés par défaut.
Limites connues
Aucun des quatre dépôts ne répertorie de défaut sur ces modules. Quatre limites d'usage, en revanche, méritent d'être connues.
- La numérotation laisse une trace : les séquences créées restent après désinstallation. C'est le seul des quatre qui ne se retire pas sans conséquence.
- La chronologie ne contrôle que les brouillons du même journal. Elle ne dit rien d'une pièce d'un autre journal, ni d'une date de comptabilisation différente de la date de facture.
- L'unicité porte sur un champ dédié, pas sur la Reference standard. Une équipe qui continue de saisir dans Reference n'est pas protégée, et rien ne le signale.
- Le total de vérification est volontaire. Une facture saisie sans total de vérification passe sans contrôle : le module réduit les erreurs, il ne les supprime pas.
La troisième est celle que nous rencontrons le plus : le module est installé, la case est cochée, et personne n'utilise le bon champ. Un contrôle qu'on croit actif et qui ne l'est pas est plus dangereux qu'un contrôle absent.
Identité technique
| Module | Dépôt OCA | Version | Licence |
|---|---|---|---|
account_move_name_sequence | account-financial-tools | 18.0.2.0.2 | AGPL-3 |
account_invoice_constraint_chronology | account-financial-tools | 18.0.1.0.1 | AGPL-3 |
account_invoice_supplier_ref_unique | account-invoicing | 18.0.1.0.0 | AGPL-3 |
account_invoice_check_total | account-invoicing | 18.0.1.0.0 | AGPL-3 |
Les quatre ne dépendent que d'account, branche 18.0.
Questions fréquentes
Pourquoi remplacer la numérotation standard d'Odoo ?
Parce que depuis Odoo 14, le numéro suivant est déduit du dernier numéro saisi plutôt que tiré d'une séquence : c'est ambigu, mal géré quand plusieurs personnes valident en même temps, et impossible à configurer à l'avance. account_move_name_sequence rétablit une séquence rattachée au journal.
Puis-je installer le module de numérotation sur une instance déjà utilisée ?
Oui, un hook d'installation attribue une séquence à chaque journal en tenant compte des écritures déjà présentes. Mais vérifiez le numéro de départ journal par journal : s'il ne correspond pas à la numérotation existante, vous créez une rupture — et c'est précisément ce qu'un contrôle fiscal regarde.
Le contrôle de chronologie est-il actif par défaut ?
Le fichier de configuration du module l'affirme pour les journaux de vente, mais nous n'avons pas pu le confirmer dans le code source de cette version : aucune valeur par défaut, aucun hook, aucun fichier de données en ce sens. Vérifiez la case Check Chronology journal par journal plutôt que de le supposer.
Pourquoi le contrôle d'unicité ne détecte-t-il pas mes doublons ?
Probablement parce que l'équipe saisit le numéro du fournisseur dans le champ Reference standard, alors que le contrôle porte sur le champ dédié Vendor invoice number. C'est l'erreur la plus fréquente, et rien ne la signale : le contrôle paraît actif et ne protège rien.
Ces contrôles ralentissent-ils la saisie ?
Marginalement, et ils la ralentissent là où c'est utile : le total de vérification ajoute un champ à remplir avant les lignes, et la chronologie impose de traiter les brouillons dans l'ordre. En échange, une facture payée deux fois coûte bien plus que les secondes gagnées.
Se faire accompagner
Trois de ces quatre contrôles sont désactivés par défaut, et le quatrième — la numérotation — doit être réglé avant la première écriture. L'ordre d'activation n'est pas indifférent : la chronologie activée trop tôt produit des blocages que l'équipe vit mal.
Nous posons ces contrôles au paramétrage comptable, dans le bon ordre, avec votre expert-comptable pour les séquences — et nous formons l'équipe au champ Vendor invoice number, sans quoi le contrôle d'unicité ne protège rien. Voir les prestations d'Atalios Consulting ou demander un rappel.
Pour aller plus loin
- Le socle commun : les 57 modules de chaque instance
- account_invoice_import : importer les factures fournisseurs
- Ce qui s'automatise vraiment en comptabilité avec Odoo
En résumé
Quatre contrôles bloquants, zéro menu, zéro modèle créé. Réglez la numérotation avant la première écriture, activez l'unicité du numéro fournisseur dès le démarrage, le total de vérification quand l'équipe est prête, et la chronologie en dernier. Et vérifiez que l'équipe saisit dans le bon champ. Parlons de votre paramétrage comptable.