Aller au contenu
EN
Sur cette page

Variables et formules

Les variables insèrent des données dynamiques dans un template : elles sont remplacées à la génération par les valeurs saisies ou calculées. Les formules calculent des totaux, arrondis et conditions à partir de ces variables.

Écrire une variable

Deux syntaxes équivalentes dans un élément texte :

  • {{client.nom}} — accolades doubles ;
  • @client.nom — syntaxe courte.

Au moment de la génération, la valeur du champ du formulaire remplace la variable. Une variable non renseignée reste vide (le placeholder brut est nettoyé du rendu).

Variables réservées du système

Ces variables ne se saisissent pas au formulaire : elles sont résolues par le système.

Variable Contenu
{{DOCUMENT.num}} Numéro du document, attribué à l'émission par la numérotation
{{DOCUMENT.version}} Version du document dans sa chaîne de corrections (1 pour la première version), figée comme le numéro
{{COMPANY.NOM}} Raison sociale du profil émetteur (paramètres)
{{COMPANY.ADRESSE}} Adresse de l'émetteur
{{COMPANY.NIF}} Numéro d'identification fiscale
{{COMPANY.IBAN}} IBAN de l'émetteur
{{COMPANY.TELEPHONE}} Téléphone de l'émetteur
{{COMPANY.EMAIL}} E-mail de l'émetteur
{{COMPANY.MENTIONS}} Mentions légales configurées

La casse est indifférente ({{document.num}} est accepté), mais la convention des contenus est de citer ces variables réservées en majuscules.

Les types de variables

Le formulaire de génération déduit le type de chaque champ, ce qui règle le contrôle de saisie et l'affichage :

Type Usage Déduction
text Texte libre (défaut) Tout autre nom
date Sélecteur de date Le nom contient « date »
currency Montant monétaire « total », « ttc », « ht », « prix », « montant », « pu »
percent Pourcentage (TVA, remise) « tva », « remise »
number Nombre brut Réglage manuel
select Choix dans une liste Réglage manuel
image Image (signature, cachet) Élément image à variable
reference Fiche d'un registre Variable référencée par un registre

Un champ de type currency sans devise explicite est affiché avec la devise par défaut de l'espace (réglée dans les paramètres, onglet Préférences) ; des devises personnalisées (points fidélité, crédits…) peuvent y être ajoutées. Un champ qui déclare sa propre devise la conserve.

Les formules

Une formule commence par = et se place dans une cellule de tableau ou une variable :

={{prix_ht}} * 1.19
=SUM(Lignes.total_ht)
=IF(A1>10, "supérieur", "inférieur")
=WORDS({{total_ttc}}, "MGA", "fr")

Opérateurs disponibles : + - * / % ^ (arithmétique), & (concaténation), = <> < <= > >= (comparaisons). Les références de cellules (A1, B2:A8) et les clés de colonnes (total_ht, ou NomTable.colonne pour viser un autre tableau) s'utilisent directement.

Catalogue des fonctions

Fonction Rôle
SUM(x…) Somme des valeurs (plages et colonnes acceptées)
AVERAGE(x…) Moyenne
MIN(x…) / MAX(x…) Minimum / maximum
COUNT(x…) Nombre de valeurs
ROUND(x, d?) Arrondi à d décimales (0 par défaut)
ABS(x) Valeur absolue
INT(x) Partie entière
SQRT(x) Racine carrée
POWER(x, y) x puissance y
MOD(x, y) Reste de la division x / y
IF(cond, a, b?) Renvoie a si la condition est vraie, sinon b
AND(x…) / OR(x…) Conjonction / disjonction
NOT(x) Négation logique
CONCAT(x…) Concaténation de textes
LEN(x) Longueur du texte
UPPER(x) / LOWER(x) Majuscules / minuscules
WORDS(montant, devise?, langue?) Montant en lettres (fr/en) — ex. =WORDS(1250, "MGA", "fr")

Une erreur de formule s'affiche dans le rendu sous forme de code (#PARSE!, #DIV0!, #REF!, #NAME!, #NUM!) : elle signale la cellule à corriger.

Numérotation des documents

Le motif de numérotation du template assemble des jetons :

Jeton Signification
{TYPE} Préfixe du template
{SEQ} / {SEQ0} Compteur paddé sur 3 / non paddé (remise à zéro annuelle)
{SEQ:w} Compteur paddé sur w chiffres (1 à 8)
{SEQ:w:M} Compteur paddé sur w, remise à zéro mensuelle (A = annuelle, C = continue)
{MM} Mois sur 2 chiffres
{AA} / {AAAA} Année courte (26) / longue (2026)

Exemple : FA{SEQ:3:M}{MM}{AA} produit FA0010826 — le compteur 001 recommence chaque mois. Le compteur est réservé sous verrou : séquence sans trous ni doublons, même en émissions simultanées.

Les registries

Une variable peut pointer vers un registre : à la génération, le champ devient un choix parmi les fiches du registre (client, produit, …) et toutes les colonnes de la fiche sélectionnée sont injectées ({{client.nom}}, {{client.ville}}…).