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}}…).