Créer des modèles d'écriture et leurs déclinaisons

Ce guide explique comment construire un modèle d'écriture réutilisable, le décliner pour vos cas concrets, puis l'utiliser au quotidien pour générer de vraies écritures comptables — sans jamais ressaisir les mêmes comptes.

  1. Onglet Modèle — la structure. Quels champs saisir, quelles lignes comptables produire, comment calculer les montants.
  2. Onglet Déclinaison — les valeurs par défaut. Une variante pré-remplie du modèle pour un cas précis : comptes habituels, libellé, notes.
  3. Onglet Générer des écritures — l'usage quotidien. On choisit la déclinaison, on complète le reste, et on génère la vraie écriture en compta.

Comprendre les trois onglets

L'écran “Modèles d'écriture” repose sur trois niveaux, du plus général au plus concret. Chacun dépend du précédent :

Onglet À quoi il sert Analogie
Modèle Définit la structure d'un type d'écriture récurrente : les champs à remplir, les lignes débit/crédit à produire, les formules de calcul. Un formulaire vierge
Déclinaison Une variante pré-remplie d'un modèle pour un cas précis : comptes habituels, libellé, notes explicatives. Le même formulaire, avec vos coordonnées déjà remplies
Générer des écritures L'écran d'usage quotidien : on choisit une déclinaison, on complète ce qu'il reste, et on produit la vraie écriture comptable. Le formulaire complété et envoyé
À RETENIR : Un modèle peut avoir plusieurs déclinaisons. Par exemple, un modèle “Facture fournisseur avec TVA” peut être décliné en une déclinaison par fournisseur régulier, chacune avec son propre compte de charge et son propre libellé par défaut.

1. Construire un modèle

Un modèle se construit dans l'onglet Modèle. Il porte un code (son identifiant, par exemple TYPE_RESTAURANT_2TVA), une liste de grandeurs (les champs) et une liste de lignes (les écritures débit/crédit qu'il va produire).

Les grandeurs : les champs de votre modèle

Chaque grandeur a un code (son nom technique, utilisé dans les formules — par exemple Montant_HT) et un type, qui détermine comment elle est remplie.

Type Description Exemple
SAISIE_MONTANT Un nombre saisi à la main lors de la génération (montant, taux, quantité…). Laissé vide, il vaut 0 dans les calculs — pratique pour un montant facultatif. Montant_HT, TauxTVA
SAISIE_COMPTE Un numéro de compte comptable, recherché dans le plan comptable. Peut être marqué obligatoire. Compte_paiement, Compte_TVA
SAISIE_TEXTE Un texte libre saisi lors de la génération. Reference_facture
SAISIE_TABLE Un tableau de plusieurs lignes saisies (ex: plusieurs postes d'une facture), avec des colonnes typées (compte / montant / texte) et un nombre minimum de lignes. Postes { compte, libelle, montant }
CALCULEE Une valeur calculée automatiquement par une formule, à partir des saisies et d'autres grandeurs calculées. Calculée avant que les lignes ne soient produites. TVA : TauxTVA * Montant_HT
CALCULEE_POST_LIGNES Une valeur calculée après la production des lignes, seule capable d'additionner les lignes déjà générées via somme_lignes(…). Total : somme_lignes('assiette')
PIÈGE — CALCULEE ou CALCULEE_POST_LIGNES ? : Utilisez CALCULEE par défaut. Ne passez en CALCULEE_POST_LIGNES que si votre formule utilise vraiment somme_lignes(…) pour additionner des lignes déjà générées.

Une grandeur classée à tort en CALCULEE_POST_LIGNES devient invisible dans l'aperçu en direct de l'écran “Générer des écritures” — et toute autre grandeur qui en dépend le devient aussi, même si elle est elle-même bien classée en CALCULEE (effet domino). C'est l'erreur la plus fréquente lors de la création d'un modèle.
PIÈGE — le code ne doit jamais contenir d'espace : Un code de grandeur doit être composé uniquement de lettres, chiffres et underscores (_) — jamais d'espace ni d'accent. L'écran corrige automatiquement un espace en _ à la saisie, mais autant bien nommer dès le départ : Compte_paiement, pas Compte paiement.

Écrire une formule

Les formules des grandeurs calculées et des montants de ligne utilisent les opérateurs habituels (+ - * /, parenthèses) et référencent directement le code des autres grandeurs :

TauxTVA * Montant_HT
(Montant_HT1 + Montant_HT2) * 1.0

Deux fonctions spéciales complètent la syntaxe :

Fonction Utilisable dans Ce qu'elle fait
somme(TABLE.colonne) CALCULEE Additionne une colonne d'une grandeur SAISIE_TABLE — ex: somme(Postes.montant).
somme_lignes('role') CALCULEE_POST_LIGNES uniquement Additionne le montant de toutes les lignes déjà générées portant le rôle indiqué (cf. colonne “role” des lignes ci-dessous).

Comment une grandeur saisie vide se comporte dans une formule. Un SAISIE_MONTANT laissé vide vaut 0 dans les formules — un deuxième taux de TVA facultatif non rempli ne fait donc pas échouer le calcul, il donne simplement 0. Un SAISIE_COMPTE ou SAISIE_TEXTE laissé vide reste en revanche “non renseigné” : s'il est marqué obligatoire, la génération est bloquée avec un message clair tant qu'il n'est pas rempli.

Les lignes comptables

Chaque ligne décrit une écriture débit ou crédit que le modèle va produire. Son montant est lui aussi une formule.

Champ Rôle
alias Nom interne de la ligne, pour la retrouver dans l'aperçu généré. Sans effet sur le calcul.
compte Le numéro de compte : fixe (“6257000001”) ou renvoyant vers une grandeur saisie avec ${Code_Grandeur}. Si le compte référencé est vide, la ligne est simplement omise — pratique pour une ligne facultative.
sens D (débit) ou C (crédit).
montant Une formule, comme pour les grandeurs calculées.
libelle Le texte de la ligne, peut aussi interpoler des ${Code_Grandeur}.
role Optionnel — une étiquette que somme_lignes('role') viendra chercher.
repetable + source Optionnel — génère une ligne par élément d'une grandeur SAISIE_TABLE (une ligne de charge par poste de facture, par exemple).
PIÈGE — le contrôle automatique ne couvre pas tout : Le bandeau “Erreurs de modélisation” détecte les codes invalides, les cycles de dépendance et les identifiants inconnus dans les formules des grandeurs calculées et des montants de ligne. Il ne vérifie en revanche pas les ${…} utilisés dans les champs compte et libellé des lignes : relisez-les à la main avant d'enregistrer.
ASTUCE : L'encart “Aperçu JSON” en bas de l'écran montre le modèle sous forme de texte, et peut être modifié directement : pratique pour dupliquer un modèle existant en le collant puis en changeant son code, ou pour le sauvegarder ailleurs avant un essai risqué.

2. Créer une déclinaison

Une déclinaison se construit dans l'onglet Déclinaison. Elle rattache un modèle à un cas d'usage concret, avec ses valeurs habituelles déjà remplies.

Choisir ou créer

Le champ “Profil” en haut de l'écran recherche parmi toutes les déclinaisons déjà enregistrées (par nom ou par description). Pour en créer une nouvelle, cliquez sur “Nouvelle déclinaison” — s'il n'y a pas encore de modèle déterminé, l'écran vous demande d'abord de le choisir.

À RETENIR : Le modèle d'une déclinaison déjà enregistrée est figé : il ne peut plus être changé après coup, puisqu'il détermine les champs disponibles. Pour créer une variante sur un autre modèle, utilisez “Nouvelle déclinaison” puis choisissez ce modèle.

Renseigner la déclinaison

Champ Utilité
Nom Identifie la déclinaison dans les recherches (ex: “Facture Prosoluce”).
Description Texte libre expliquant son usage — sert aussi à la recherche.
Libellé général de la multi-ligne Préfixera automatiquement chaque ligne générée à l'écran “Générer des écritures”.
Champs affichés en mode simple Une liste à cocher : quels champs (y compris calculés) apparaissent d'emblée dans l'écran de génération, sans avoir à cocher “Mode Tous les champs”. Par défaut, seuls les champs directement saisis sont cochés.
Valeurs par défaut Une valeur pré-remplie pour chaque champ saisissable, avec une note explicative optionnelle (utile pour se souvenir pourquoi tel compte a été choisi).
ASTUCE : Les notes explicatives saisies ici remplacent le code technique par un texte lisible dans l'écran “Générer des écritures” — Compte_TVA1 peut ainsi s'afficher “Compte de TVA à 10 %, utilisé pour la restauration sur place”.

3. Générer une écriture

C'est l'écran du quotidien, dans l'onglet Générer des écritures. On y choisit une déclinaison, on complète ce qui manque, et on produit la vraie écriture comptable.

Mode simple ou mode "Tous les champs"

Par défaut, seuls les champs choisis pour le “mode simple” de la déclinaison sont affichés. Cochez “Mode Tous les champs” pour voir absolument tout, y compris les montants calculés — utile pour les corriger à la main quand ils ne correspondent pas exactement à la facture réelle.

Les champs calculés

Un champ calculé affiche en fond sa valeur calculée en direct au fur et à mesure de la saisie, et reste modifiable : taper une valeur dedans la remplace définitivement par le calcul automatique, jusqu'à ce que vous l'effaciez (bouton de suppression du champ).

Ce que vous voyez Ce que ça signifie
calculé La formule décide — le champ est vide, la valeur affichée en fond (“Calculé : 260,00”) n'est qu'une indication.
forcé Vous avez tapé une valeur : elle remplace le calcul automatique tant que vous ne l'effacez pas.
Erreur de calcul : … La formule n'a pas pu s'évaluer (souvent : une saisie dont elle dépend est encore incomplète, ou une vraie erreur de modèle).

Le bouton “Recalculer”, à côté de la case “Mode Tous les champs”, force un rafraîchissement immédiat de tous les champs calculés — pratique si vous avez un doute sur l'état affiché.

Générer, puis enregistrer

Le bouton “Générer l'écriture” calcule un aperçu : le détail de chaque ligne (compte, sens, montant, libellé) et son statut.

Statut Signification
OK L'écriture est équilibrée (débit = crédit) et prête à être enregistrée.
DÉSÉQUILIBRÉE Le total débit ne correspond pas au total crédit — à corriger avant de générer en compta.
ERREUR_VALIDATION Un champ obligatoire manque, ou une saisie ne respecte pas une contrainte du modèle (ex: tableau vide).

Si le statut est OK, le bouton “Générer en compta” apparaît. Il demande confirmation puis enregistre réellement l'écriture — une action non réversible depuis cet écran. La date d'opération doit rester dans l'exercice comptable en cours.

Pièges courants et bonnes pratiques

Un pense-bête rapide, à consulter avant d'enregistrer un modèle.

  • Codes de grandeur sans espace. Uniquement lettres, chiffres et underscores — Compte_paiement, pas Compte paiement.
  • CALCULEE par défaut. CALCULEE_POST_LIGNES uniquement si la formule utilise réellement somme_lignes(…).
  • Un montant vide vaut 0. Pratique pour les champs facultatifs — mais vérifiez l'aperçu avant de générer en compta.
  • Un compte de ligne vide fait disparaître la ligne. Utilisez ${Code_Grandeur} pour un compte facultatif : la ligne n'apparaît que si le compte est renseigné.
  • Relisez les ${…} des champs compte/libellé. Le contrôle automatique du modèle ne les vérifie pas.
  • Vérifiez toujours l'équilibre avant “Générer en compta”. L'action n'est pas réversible depuis cet écran.

Exemple complet : restaurant à 2 taux de TVA

Un cas réel et concret : une facture de restaurant mêlant vente à consommer sur place (TVA à 10 %) et vente d'alcool (TVA à 20 %), avec un second taux facultatif.

1. Les grandeurs saisies

Un montant HT et un taux de TVA par catégorie, plus un compte de paiement obligatoire. Les deux comptes de TVA ne sont pas indispensables si vous postez toujours sur le même compte : ici, un seul compte de TVA fixe suffit pour les deux lignes.

{ "code": "Montant_HT1", "type": "SAISIE_MONTANT" }
{ "code": "TauxTVA1",   "type": "SAISIE_MONTANT" }
{ "code": "Montant_HT2", "type": "SAISIE_MONTANT" }
{ "code": "TauxTVA2",   "type": "SAISIE_MONTANT" }
{ "code": "Compte_paiement", "type": "SAISIE_COMPTE", "obligatoire": true }

2. Les grandeurs calculées

Aucune de ces formules n'additionne des lignes déjà générées : elles restent toutes en CALCULEE, jamais en CALCULEE_POST_LIGNES.

{ "code": "TVA1", "type": "CALCULEE", "formule": "TauxTVA1 * Montant_HT1" }
{ "code": "TVA2", "type": "CALCULEE", "formule": "TauxTVA2 * Montant_HT2" }
{ "code": "Total_HT", "type": "CALCULEE", "formule": "Montant_HT1 + Montant_HT2" }
{ "code": "Montant_Total_Paye", "type": "CALCULEE",
  "formule": "Montant_HT1 + Montant_HT2 + TVA1 + TVA2" }

3. Les lignes comptables

Trois lignes au débit (HT + les deux TVA) et une ligne au crédit (le paiement), qui s'équilibrent naturellement puisque Montant_Total_Paye additionne exactement les trois premières.

{ "alias": "Montant_HT", "compte": "6257000001", "sens": "D",
  "montant": "Total_HT", "libelle": "Montant HT" }
{ "alias": "TVA1", "compte": "4456600001", "sens": "D",
  "montant": "TVA1", "libelle": "TVA 10%" }
{ "alias": "TVA2", "compte": "4456600001", "sens": "D",
  "montant": "TVA2", "libelle": "TVA 20%" }
{ "alias": "Paiement", "compte": "${Compte_paiement}", "sens": "C",
  "montant": "Montant_Total_Paye", "libelle": "Paiement" }

4. À l'usage

Sur une addition sans alcool, on laisse simplement Montant_HT2 et TauxTVA2 vides : traités comme 0, la ligne “TVA2” sort à 0 € et n'apparaîtra pas dans l'écriture réellement postée. Aucune saisie superflue, aucun plantage.

POUR ALLER PLUS LOIN : Une fois le modèle enregistré, créez une déclinaison “Restaurant — service midi” avec le compte de paiement habituel déjà rempli, et cochez TVA1 et TVA2 dans “Champs affichés en mode simple” : les deux montants de TVA seront visibles et corrigibles dès l'ouverture de l'écran “Générer des écritures”, sans avoir à cocher “Mode Tous les champs”.

Modèles d'écriture et déclinaisons — Comptabilité LoGeAsWeb.