Paramétrage >  Comptabilité >  Interface comptabilité >  Pièces automatiques  

Afficher tout Masquer tout

Cette fonction permet de définir la structure des pièces devant être passées en validation comptable (toutes les fonctions de passage en comptabilité d'écritures liées à une pièce, quel qu'en soit le module : par exemple, le passage en comptabilité d'une écriture de facture de vente ou d'achat, de dotation aux amortissements,  de règlement, d'extourne automatique, etc.).

Chaque module est susceptible de générer ainsi des écritures à la validation comptable. Ce passage se fait par un sous-programme standard, en lui passant un code caractéristique de l'opération (par exemple, la validation de factures tiers client fait appel au code BPCIN).
Les programmes applicatifs sont maîtres du code utilisé et du moment de l'appel au sous-programme de génération.

Principe de paramétrage et d'agrégation des lignes

Le paramétrage des pièces automatiques se fait en donnant ce code en tête de l'écran, et en définissant les caractéristiques détaillées du jeu d'écritures à passer.

En version 140, il n'y a plus de paramétrage dédié pour les pièces comptables liées aux règlements : ce sont devenues des pièces standard. Par contre, comme le processus de règlement, complexe, passe par plusieurs pièces qui se chaînent, une notion complémentaire est définie : celle de groupe de pièces qui permet de définir un ensemble de pièces automatiques générées simultanément, avec une description des écritures à lettrer ensemble.

La définition d'une écriture automatique se fait en précisant les caractéristiques de l'en-tête de l'écriture, puis les caractéristiques des lignes par le biais d'une série de définition de lignes associées.
SEEINFO Une définition de ligne peut donner lieu à la création d'un ensemble de lignes d'écriture. En effet, le types des lignes peut être unique, répétitive, ou sur table liée : les deux derniers cas provoquent potentiellement la création d'un ensemble de lignes.

A l'inverse, des lignes peuvent être automatiquement regroupées, dès lors que les critères suivants sont identiques sur les lignes concernées :

  • le compte général,
  • le tiers (si le compte général est un collectif),
  • le site,
  • la nature,
  • le libellé de la ligne,
  • le code taxe,
  • la clé de répartition (si une clé de répartition existe sur la ligne ; s'il s'agit d'une section, le fait d'avoir des sections différentes n'empêchera pas le regroupement des lignes, une répartition analytique étant alors créée),
  • le sens si l'indicateur Compensation débit/crédit n'est pas coché.

Définition des pièces en devises

Une pièce en devises se définit en indiquant la devise de l'écriture dans les champs de l'en-tête.
A ce stade, la gestion des cours de devises pour déterminer les montants en devise de comptabilisation et de reporting se fait de la façon suivante :

  • on impose à la fois les montants en devise et ceux dans les autres devises pour toutes les lignes d'écriture (en définissant des formules pour les champs Montant société et Montant reporting). Ceci suppose que les montants calculés sont effectivement équilibrés dans toutes les devises, sinon une erreur de type Pièce déséquilibrée en devise … se produira.
    Dans tous les autres cas (ie. si au moins un montant société et reporting est calculé), on passera automatiquement des lignes d'écart de conversion si l'ensemble n'est pas équilibré en devise de reporting ou en devise société,
  • si les montants reporting et société ne sont pas définis sur certaines lignes, on utilise les formules définies pour les champs Cours et Cours reporting  définies dans l'en-tête de la pièce : on calcule alors les montants non définis en appliquant les cours,
  • si on se trouve dans le cas précédent, mais sans formule pour les champs Cours et/ou Cours reporting, on utilise la valeur du champ Type de cours pour déterminer le cours à la date comptable de passage de l'écriture,
  • à défaut, on utilisera le type de cours associé au type de pièce pour déterminer le cours appliqué pour calculer les montants manquants.

Ecritures analytiques pures

La définition d'une OD analytique est identique à celle d'une pièce générale, sauf qu'un type de pièce adapté est imposé, et seulement les natures et les sections concernées sont renseignées (elles deviennent alors obligatoires).

Pré-requis

Codes activité

Les codes activités suivants (classés par type) peuvent avoir une influence sur le comportement de la fonction :

  KRU :  Localisation russe

Habilitations

Cette fonction est de type objet. Les opérations de création, modification, et suppression de fiche peuvent être activées ou désactivées pour un utilisateur donné. Des filtres par rôles peuvent également être mis en place sur cette fonction.

Autres pré-requis

Tables à renseigner

Les tables suivantes sont utilisées par la fonction. Leur contenu doit donc être éventuellement mis à jour :

Table

Intitulé Table

GTYPACCENT [GTE]

Type de pièces

GJOURNAL [JOU]

Journaux comptables

GACCOUNT [GAC]

Comptes

CACCE [CCE]

Sections

TABFOR [TFO]

Table des formules

Gestion de l'écran

La définition du jeu d'écritures se fait sur deux écrans qui s'enchaînent par l'intermédiaire d'un bouton :

  • le premier écran permet de définir le mode de génération et les caractéristiques de l'en-tête de pièce comptable sur un onglet,
  • le deuxième écran permet de définir les lignes d'écritures à générer sur trois onglets.

Ecran de saisie

Présentation

Ce premier écran permet de définir la structure de l'en-tête de l'écriture.
En quittant l'onglet de définition des lignes pour passer sur le premier onglet après avoir quitté l'onglet de définition des lignes, un traitement automatique pour le passage des écritures est effectué.

Outre des caractéristiques générales (code, intitulés, etc.), le premier onglet permet de définir les informations suivantes :

Le tableau des tables liées à l'en-tête

On définit dans ce tableau une liste de tables liées à la table déclenchante, ce qui permet d'utiliser des champs de ces tables dans les formules de calcul du tableau précédent. Ainsi, par exemple, on peut vouloir utiliser les informations liées à la fiche tiers (BPSUPPLIER) pour les pièces comptables liées à la facture. La deuxième colonne de ce tableau permet de définir le champ de la table déclenchante dont la valeur définit l'enregistrement lié à lire (en effet, il peut y avoir plusieurs choix possibles : dans le cas de la facture, cela peut être le tiers facturant ou le tiers payeur). Une fenêtre de sélection permet de connaître les champs possibles.

Le tableau des formules associés aux champs de l'en-tête

On définit dans ce tableau des formules de calcul permettant de calculer la valeur des champs de l'en-tête de la pièce. Les formules de calcul présentes dans ce tableau doivent être du bon type (par exemple, les montants doivent être numériques, le code journal alphanumérique).

Ces formules de calcul peuvent être simplement des constantes dans les cas les plus simples (par exemple, le journal des ventes pourrait être constant et s'appeler VEN : dans ce cas, une formule de calcul "VEN" suffit pour définir le journal). Mais elles peuvent aussi être plus compliquées, et intégrer des champs extraits soit de la table déclenchante, soit de tables liées définies par le tableau des liens explicité ci-dessous. Dans certains cas, une valeur par défaut est affectée à la zone si aucune formule de calcul n'a été définie.

Les champs les plus remarquables de cet en-tête sont les suivants :

  • la catégorie, qui est un champ de type menu local, pour lequel on doit donc renvoyer une valeur numérique (1=réel, 2=simulation active, 3=simulation non active, 4=hors bilan, 5=modèle). La valeur par défaut est 1 (pièce réelle),
  • l'état (1=provisoire, 2=définitif). La valeur par défaut est 1,
  • le type de pièce (obligatoire), le numéro de pièce (qui va être attribué automatiquement s'il n'est pas imposé), et le journal comptable (s'il n'est pas renseigné, on prend le journal associé par défaut au type de pièce),
  • le site (le site par défaut de l'utilisateur s'il n'est pas donné),
  • les différentes dates (date comptable = date du jour par défaut, date d'échéance = date comptable par défaut),
  • la devise (par défaut celle du site), le type de cours (par défaut, celui associé au type de pièce, 1 en dernier ressort).

Fermer

 

Champs

Les champs suivants sont présents dans cet onglet :

Bloc numéro 1

Ce code identifie de façon unique le schéma d'écriture à utiliser pour valider comptablement une pièce.

  • champ DESTRA

 

  • Intitulé court (champ SHOTRA)

 

Bloc numéro 2

  • Module (champ MODULE)

Ce champ de type menu local permet de définir le module ayant généré l'écriture.

 

La table définie dans ce champ est la table dont le ou les enregistrements courants déclenchent le schéma de comptabilisation. Par exemple, pour valider des factures de vente, il s'agira de la table stockant les en-têtes de facture.

  • champ TBLDES

 

  • Index (champ KEYTBL)

Ce champ permet de savoir dans quelle table de la base de données se trouve le(s) enregistrement(s) maîtres par rapport au passage d'écriture.
Exemple :
Pour les factures, il s'agira de la table des factures de vente ou d'achat. Lors de la phase de génération des écritures, l'enregistrement courant de cette table sera utilisé.
Cette table sera parcourue dans l'ordre d'un index donné.
SEEINFO Par défaut, il s'agit du premier index. Ce paramètre est modifiable.

  • Groupage (champ GRPFLG)

Lorsque le schéma comptable est appelé pour traiter un ensemble de lignes de la table déclenchante, on peut au choix générer soit une pièce comptable par ligne, soit une seule pièce globale, selon la réponse donnée à cette question.

Ce champ de type menu local peut prendre deux valeurs qui sont :

  • une pièce par ligne,
  • groupée.
Pièce par ligne

Dans le premier cas, on génère une pièce comptable par enregistrement de la table déclenchante. Exemple : lorsqu'on génère des écritures comptables de facture. Pour chaque enregistrement du fichier des factures, une pièce comptable sera générée (l'enregistrement courant de la table au moment de l'appel définissant la facture qui doit être comptabilisée).

Groupée

Dans le deuxième cas, on parcourra un ensemble d'enregistrements de la table déclenchante. Cette table possède dans ce cas une clé principale en N parties et on parcourt l'ensemble des enregistrements avec les P premières parties de clé données (P<N).
Exemple : dans le cas des relevés d’échéances (pièce automatique SOI, table GACCDUDATE), on s’appuie sur la clé DUD2 en trois parties (le numéro de relevé, l’identifiant interne de l’échéance et le numéro de ligne). Une écriture est générée par relevé d’échéance. On parcourra donc la table avec la première partie de clé constante (numéro de relevé), en explorant toutes ses échéances, pour générer une seule pièce comptable par relevé pour l'ensemble des échéances parcourues.

Il est possible de générer plusieurs pièces en se basant sur un critère de rupture défini dans une table de détail liée à la table déclenchante.

Ce champ permet d'indiquer le nom de la table sur laquelle la rupture doit être faite. La zone suivante indique de nom du champ du rupture.

Les lignes d'une pièce de ce type sont forcément toutes des lignes de type Table liée, la table correspondante étant la table dans laquelle se trouve le critère d'éclatement.

Exemple 1 :
Dans le groupe de pièces automatiques liées au règlement, il existe une pièce d'OD inter-devises (qui définit les écritures d'écart liées au règlement dans une devise donnée d'une créance émise dans une autre devise) :

  • cette pièce est créée à partir de la table PAYMENTH (en-tête de règlement),  avec ou sans groupage, pour décider de créer une pièce par règlement ou par bordereau le cas échéant.
  • indépendamment de cette notion de groupage, la pièce créée va se faire par le parcours du détail du règlement, et génération si nécessaire d'un jeu de lignes équilibrées par ligne de règlement : chaque ligne de la pièce est de type Table liée, et la table en question est la table PAYMENTD. Un regroupement "naturel" des lignes qui peuvent être agrégées va se faire. Ainsi, si les comptes mis en jeu par les OD inter-devises ne dépendent pas de la devise, on aura un jeu de lignes unique même si plusieurs devises sont concernées dans le bordereau. Si ce n'est pas le cas, on aura une seule pièce dans laquelle on retrouvera un jeu de ligne par devise concernée.

Exemple 2 :

Si vous souhaitez créer une pièce d'OD inter-devises différente par devise, vous devez paramétrer dans les rubriques Eclatement pièce le nom de la table PAYMENTD et le nom du champ devise (CURLIN). Le simple fait de réaliser ce paramétrage suffit à éclater les jeux de lignes créés dans des pièces différentes.

Ce traitement peut fonctionner seulement si toutes les lignes de la pièce sont de type Table liée basées sur PAYMENTD. On ne saurait pas "couper" une ligne unique (sur quel critère déterminer le montant de chaque ligne ?).

  • champ REIFLD

Il est possible de générer plusieurs pièces en se basant sur un critère de rupture défini dans une table de détail liée à la table déclenchante.

Ce champ précédent indique le nom de la table sur laquelle la rupture doit être faite. Cette zone indique de nom du champ sur lequel doit se faire rupture.

  • Action après liens (champ ACTLIK)
  • champ PRGLIK

 

  • Action fin pièce (champ ACTAFTVCR)
  • champ PRGAFTVCR

 

Tableau numéro 2

  • No (champ NUMLIG2)

 

On précise ici le nom des tables devant être en ligne lors de la validation comptable des pièces.

  • Champ (champ LIKFLD)

On définit ici le nom du champ de la table principale dont la valeur permet de connaître la clé de la table liée. Par exemple, dans le cas d'une facture, si on veut avoir accès au client, il faut donner le champ qui permet de connaître le code du client. Dans cet exemple, on a le choix entre plusieurs codes (client facturé, payeur, statistique...)

Bloc numéro 5

  • Montants négatifs (champ NEGAMT)

Cette case permet, si elle est cochée, d'autoriser des montants négatifs dans une écriture.
Si elle n'est pas cochée, une ligne comportant un montant négatif au crédit d'un compte va être transformée en ligne avec un montant positif au débit de ce même compte (et un montant négatif au débit d'un compte transformé en montant positif au débit du même compte).

  • Première date (champ DATFLG)

Cette case permet, si elle est cochée, d'accepter le passage d'une écriture sur une période clôturée, en la passant à la première date non clôturée postérieure.
Si elle n'est pas cochée, l'écriture automatique ne sera pas créée, erreur indiquée par une trace.

  • Réf. pièce (champ TYPVCR)

Ce champ est à renseigner pour les pièces automatiques de règlements définies dans un groupe de pièces. Il fait référence à une nomenclature interne. Les valeurs possibles sont :

  • Comptabilisation principale,
  • Pièce séparée Compte->Tiers,
  • Pièce séparée Banque->Compte,
  • OD tiers,
  • OD devise,
  • OD devise trésorerie,
  • Transfert de compte.

Il permet de déclencher certains mécanismes automatiques (gestion des impayés, stockage des comptes de trésorerie intermédiaires). Sa valeur est notamment stockée dans la table PAYACCNUM, et est également exploitée pour définir les étapes qui apparaissent en saisie des règlements.
Il est recommandé de ne pas en modifier la valeur sur les pièces automatiques livrées.
Les valeurs existantes sont : Comptabilisation principale, OD devise, OD devise trésorerie, OD Tiers, Pièce séparée Bq->Cpt, Pièce séparée Cpt->Tiers, Transfert de compte.

Bloc numéro 6

  • Filtre (champ FORCND)

La zone "Filtre" permet de définir le filtre effectué sur la table déclenchante. L'écriture est générée seulement si la valeur de l'expression est vérifiée.
Les champs de la table déclenchante et des différentes tables liées peuvent être utilisés dans cette expression.
Exemple d'expression :
Soit [TABLE]CHAMP = VALEUR où [TABLE] est la table déclenchante d'en-tête. Seuls les enregistrements de la table déclenchante pour lesquels CHAMP = VALEUR seront parcourus.
Si VGLOBALE = VALEUR, la table sera parcourue si et seulement si VGLOBALE = VALEUR

  • Condition (champ FORCND2)

La zone "Condition" permet de saisir une formule de type AFNC.PARAM("FRAVAT",[F:SIH]CPY)="2". Si un enregistrement n'est pas vérifié par la condition indiquée, il ne sera pris en compte.
SEEWARNING Les enregistrements doivent être filtrés avant que la condition soit testée sur chacun d'entre eux.

Tableau numéro 1

  • No (champ NUMLIG)

 

  • Intitulé (champ INTIT)

 

  • Formule (champ FORCLC)

L'évaluation de cette expression permet de renseigner la valeur du champ correspondant dans l'en-tête de pièce comptable qui va être générée par le schéma.
Les champs de la table déclenchante et des tables liées peuvent être utilisées dans cette expression, qui doit être d'un type (numérique, alphanumérique, ou date) correspondant au type du champ à renseigner.

Fermer

 

Etats

Par défaut, les états suivants sont associés à la fonction :

  GAUTACE : Pièces automatiques

Mais ceci peut être modifié par paramétrage.

Boutons spécifiques

Ce bouton permet de passer de l'écran d'en-tête à l'onglet des lignes.

Les champs suivants sont présents dans la fenêtre ouverte par ce bouton :

Bloc numéro 1

  • champ OBJET

 

  • champ CLES

 

Bloc numéro 2

  • Depuis le dossier (champ DOSORG)

Ce champ permet de définir le dossier à partir duquel la fiche va être copiée. Les syntaxes possibles sont décrites dans l'annexe dédiée.

  • Tous dossiers (champ TOUDOS)

Cette option permet de copier la fiche vers tous les dossiers définis dans le dictionnaire (table ADOSSIER de la solution courante).

  • Vers le dossier (champ DOSDES)

Ce champ permet de définir le dossier dans lequel la fiche va être copiée. Les syntaxes possibles sont décrites dans l'annexe dédiée.

Fermer

Ce bouton permet de copier une pièce automatique vers un autre dossier.

Définition des lignes d'écriture (premier onglet)

La définition des caractéristiques de chaque ligne d'écriture se fait sur deux onglets dont l'affichage est déclenché par le bouton correspondant. On a alors la possibilité de sélectionner les différentes lignes à l'aide de la liste gauche, ou d'en créer de nouvelles. Ces lignes d'écritures sont caractérisées d'une part par un type et des conditions générales (sur le premier onglet), et d'autre part par une liste de formules permettant d'évaluer les différents champs des lignes (sur le deuxième onglet). On définit une fiche par ligne d'écriture ou par groupe de lignes d'écritures, en y paramétrant les champs suivants :

Type de ligne

Ce champ peut prendre trois valeurs :

  • unique : on ne génère qu'une ligne d'écriture,
  • répétitive : on génère de 1 à N lignes.
    Dans ce cas, les deux premières formules saisies dans le tableau sont des expressions de valeurs numériques définissant un indice de début et de fin. Lors de la génération de la pièce comptable, la variable indice variera entre ces deux valeurs par pas de 1, et une ligne sera générée pour chaque valeur possible. Il est alors possible d'utiliser la variable indice dans les expressions. Ceci permet de générer des écritures multiples quand on a des zones indicées dans une table pour stocker des montants (par exemple des pieds de facture).
  • table liée : on parcourt une deuxième table (la table générale définie dans le même onglet), et on génère une ligne d'écriture pour chaque enregistrement parcouru. Le parcours se fait sur la clé principale de cette table, qui est forcément une clé en N parties (N>=2), dont N-1 parties sont données par des champs de la table déclenchante et la dernière varie. Typiquement, il s'agit d'une table de lignes (par exemple, des lignes de facture), dont l'index principal est le numéro de pièce suivi du numéro de ligne. On peut également définir dans ce cas une autre table, la table analytique, qui permet d'obtenir un niveau de détail supplémentaire lorsque des imputations analytiques éclatées existent pour une ligne de détail de la table générale. Dans ce cas, on parcourt cette table dans l'ordre de la clé principale, qui est en principe une clé de N parties (N>=3), et où les N-2 premières parties sont définies par la table déclenchante, la N-1ième partie est donnée par la table générale, et la Nième partie varie.

Condition

Il s'agit ici d'une à trois conditions logiques portant sur les valeurs des champs de la table principale, ainsi que de la table générale s'il s'agit d'une ligne de type table liée (en y incluant le cas échéant des constantes et des fonctions). Si ces conditions existent, elle doivent être vérifiées pour que la ligne soit générée. Dans le cas d'un paramétrage de ligne de type répétitive, ces conditions peuvent utiliser la variable indice.

Table générale / Table analytique

La définition de ces deux champs est faite ci-dessus dans la zone Type ligne.

Sections par défaut

Ce code permet d'affecter des sections par défaut différentes de celle qui auraient été définies dans les paramétrages permettant d'affecter des sections aux documents d'origine de la pièce. Son utilisation reste exceptionnelle dans ce cadre ; il convient en outre de noter que le paramétrage correspondant ne doit utiliser que des variables liées aux tables en ligne telles qu'elles sont définies dans la pièce automatique (aucun masque n'est en ligne dans le contexte d'exécution).

Condition détail lignes

Ce champ est susceptible de contenir une expression logique. Si cette expression existe, elle est évaluée et conditionne l'utilisation du critère de détail pour agréger ou éclater les lignes (ce critère ne sera utilisé que si la condition est vraie). Si l'expression n'existe pas, on utilise le critère de détail (on fait comme si l'expression existait et si son résultat était vrai).

Compensation débit / Crédit

Lorsque plusieurs lignes générées par un type de ligne répétitive ou table liée ont des caractéristiques identiques (on entend par cela le compte général, le site, le compte tiers, la nature, le code taxe, et la répartition analytique s'il s'agit d'écritures passées avec des clés de répartition), elles sont regroupées en une seule. Si les écritures diffèrent entre elles par les sections analytiques, on crée une répartition en montant de l'écriture analytique en regroupant en une seule ligne au niveau de la comptabilité générale. Cette case à cocher permet de préciser si le sens de l'écriture doit aussi être pris en compte lors de la génération. Si la case est cochée, des écritures de caractéristiques analogues et de sens différent sont regroupées (le montant total étant la somme algébrique des montants : si le total est nul, la ligne ne sera pas créée). Sinon, on aura une ligne d'écriture au débit et une autre ligne d'écriture au crédit.

Le tableau des liens

Ce tableau permet de définir des tables dont le contenu doit être en ligne pour la détermination des caractéristiques de la ligne d'écriture. On définit dans ce tableau à la fois le nom de la table et le champ qui donne la valeur de la clé principale. Seules les tables directement liées soit à la table principale de la pièce automatique, soit à la table générale (pour les lignes de type Table liée) peuvent être sélectionnées.

Le tableau des codes comptables

Ce tableau remplit deux fonctions :

 il permet de définir des liens entre la table des lignes et des tables annexes (par exemple les articles en ligne de facture), afin d'utiliser les champs des tables ainsi liées dans les expressions des champs de chaque ligne d'écriture.

 il permet également de déterminer les champs Compte général (s'il est incomplètement déterminé par une expression, ou si l'expression n'est pas définie) et Nature (si elle n'est pas définie). Ceci se fait par des applications successives de codes comptables (dans l'ordre de la déclaration du tableau).

Un code comptable est un code alphanumérique présent sur la plupart des fiches de base du progiciel, qui permet d'influer sur les écritures générées à partir d'informations en provenance de la fiche correspondante. La table des codes comptables est caractérisée à la fois par le type du code, qui représente la fiche sur laquelle un tel code peut être présent, et le code alphanumérique qui est censé être défini de façon parlante pour l'utilisateur (par exemple, FRANCE, EXPORT dans le cas de codes liés à des clients, SERVICES, PRODUITS dans le cas de codes liés à des articles).

Les types de codes comptables sont nombreux. On peut citer les types suivants : Article, Client, Fournisseur, Commercial, Acheteur, Pièce, Société, Site, Devise, Taxe, Pied, Escompte, Banque, Règlement, Immo

A un type donné, on rattache un ensemble de lignes de définition caractérisées par un intitulé. Par exemple, Modificateur achat, Modificateur de vente, Modificateur d'immobilisation… dans le cas du type de code Article. Chacune de ces lignes permet de définir à la fois soit un compte général, soit une partie de compte général (les caractères non définis étant représentés par des x) et une nature analytique. Le paramétrage permettant de définir les lignes associées à un code comptable est défini dans une fonction dédiée.

Lors de la génération automatique de pièces, la détermination du compte général se fait par recherches successives des codes comptables dans l'ordre de déclaration, en cherchant à enseigner uniquement les portions de compte non encore déterminées. La nature analytique est recherchée successivement par parcours des codes comptables en s'arrêtant dès qu'une nature est définie.

Imaginons, par exemple, que pour une ligne de vente, le code comptable soit défini par l'expression "7xxxxxxx", et que dans le tableau des modificateurs, on trouve les éléments suivants :

 

Article

Modificateur Vente

 

Commercial

Modificateur Vente

 

Site

Modificateur Vente

 

Devise

Modificateur Vente

Si l'article présent dans la ligne a pour code comptable SERVICE, et que dans la table des codes comptables on trouve Compte = "xx23xxx",

Si le commercial présent dans la ligne a pour code comptable EXPORT, et que dans la table des codes comptables on trouve Compte = "xx2x2",

Si le site présent dans la ligne a pour code comptable NORD, et que dans la table des codes comptables on trouve Compte = "xxxxxxx48",

Si la devise présente dans la pièce a pour code comptable EURO, et que dans la table des codes comptables on trouve Compte ="xxxxx45xx",

Alors le code comptable va être déterminé par 6 passes successives :

on part du code d'origine, soit :

7xxxxxxx

on applique le masque x23xxx, on obtient :

723xxxxx

on applique le masque xx2x2, on obtient :

723x2xxx      (le 1er 2 est ignoré)

on applique le masque xxxxxxx48, on obtient :

723x2xx48

on applique le masque xxxxx45xx, on obtient :

723x24548

plus aucun masque n'étant applicable, on remplace les x restant par des zéros, d'où le compte final :


723024548

Si la nature n'avait pas été définie par une formule, on aurait recherché successivement la nature dans le code comptable article, puis dans le code comptable commercial, puis dans le code comptable site, et enfin dans le code comptable associé à la devise. A défaut, on aurait fini par prendre la nature par défaut du compte comptable.

SEEINFO Cette façon de faire est très souple et permet d'utiliser des racines données de comptes avec des portions de compte dépendant du contexte. Mais il n'est pas obligatoire de définir les comptes de la sorte. Si par exemple on désire que le compte comptable de vente soit défini par 703 suivi des caractères 2 à 3 du champ TSICOD (famille statistique supposée être numérique) de la table article (d'abréviation ITM), on aurait défini pour le compte une formule du genre :

 

"703"+seg$([F :ITM]TSICOD,2,3)

le lien vers la table article restant défini par une ligne de code comptable.

Liste des champs à remplir dans le tableau des codes comptables

On définit tout d'abord le type de code comptable, et le numéro de la ligne où l'on recherche le compte et la nature (on en saisit le numéro, et l'intitulé s'affiche, la fenêtre de sélection faisant apparaître directement l'intitulé).

On saisit ensuite une expression dont la valeur correspond à la clé de la table liée (article, client, fournisseur, etc.).

On saisit enfin une expression logique optionnelle. Si cette expression existe, le lien vers la table et l'application du code comptable ne sont faits que si le résultat de l'évaluation de l'expression renvoie un résultat égal à vrai .

Dans l'ensemble des expressions saisies ici, on peut utiliser des champs extraits des tables en ligne qui sont :

  • la table principale défini dans l'écran d'en-tête,
  • les tables qui sont liées à la table principale dans l'écran d'en-tête,
  • les tables définies dans les rubriques table générale et table analytique si le type de ligne à générer est Table liée,
  • les tables qui sont liées dans l'écran des lignes,
  • l'appel à des fonctions dédiées, par la syntaxe func TRT.FONCT(arguments), où TRT est le nom du traitement et FONCT le nom de la fonction à appeler. Un certain nombre de fonctions particulièrement intéressantes pour le contexte des pièces automatiques ont été définies dans le traitement AFNC : ces fonctions sont définies dans le tableau qui suit.

Fonction

Paramètres

Résultat

AFNC.ACTIV(COD)

COD=code activité (alpha)

0 si le code activité est inactif pour le dossier, 1 s'il est actif

AFNC.PARAM(PARAM,SITE)

PARAM=code paramètre (alpha)
SITE=code site (alpha)

la valeur du paramètre (sous forme alphanumérique sur 30 caractères maximum).

AFNC.CONSULT(ACCES)

ACCES=code accès (alpha)

1 si on a accès en consultation à la ressource contrôlée par le code d'accès, 0 sinon (si le code accès est vide, le résultat est 1).

AFNC.MODIF(ACCES)

ACCES=code accès (alpha)

Idem que le précédent, pour les droits de modification

ADNC.EXEC(ACCES)

ACCES=code accès (alpha)

Idem que le précédent, pour les droits d'exécution

Le tableau des formules associées aux champs des lignes d'écriture (deuxième ong

On définit dans ce tableau des formules de calcul permettant de définir l'ensemble des champs de chacune des lignes de la pièce comptable. Les formules de calcul présentes dans ce tableau doivent être du bon type (par exemple, les montants doivent être numériques, le code du compte alphanumérique).

Ces formules de calcul peuvent être simplement des constantes dans les cas les plus simples. Mais elles peuvent aussi être plus compliquées, et intégrer des champs extraits des tables suivantes précédemment décrites, auxquelles ont peut ajouter les tables définies par le tableau des codes comptables explicité ci-dessous.

En outre, on peut utiliser la variable indice si le type de ligne à générer est répétitive.

Enfin, il existe un ensemble de variables qui peuvent être utilisées par le biais de la syntaxe V_XXXXX : ces variables sont en réalité renseignées par l'appel d'un sous-programme défini dans la fonction de paramétrage des variables. L'appel du sous-programme en question de fait en lui passant, le cas échéant des paramètres. Un clic droit permet, par le choix Paramètres,de définir les valeurs de ces paramètres, en précisant une expression pouvant utiliser des constantes, des opérateurs, des fonctions, et l'ensemble des champs des tables en ligne. L'éditeur de formule est disponible via un clic droit pour permettre de faciliter la construction des formules complexes.

Les champs notables des lignes d'écritures sont les suivants :

  • le compte à mouvementer, qui peut être donné de façon exhaustive par une formule, ou de façon incomplète (en laissant des caractères à compléter sous la forme de x), voire pas du tout. Lorsque le compte n'est pas déterminé complètement, le tableau des codes comptables défini ci-dessous est utilisé pour les définir,
  • le code tiers (lorsque le compte précédemment donné est un collectif),
  • le montant, qui sera positif sauf si on désire passer une écriture réellement négative, et la quantité, si on utilise les unités d'œuvre,
  • le sens, qui vaut +1 si l'écriture doit être passée au débit du compte, et -1 si elle doit être passée au crédit,
  • les différentes imputations analytiques,
  • le site concerné à la ligne,
  • les codes statistiques (au nombre de trois en standard),
  • le critère de détail. Cette zone est particulièrement importante dans le cas des écritures liées aux règlements, car elle permet de définir si une ou plusieurs lignes d'écritures vont être générées. Le principe en est le suivant : on regroupe entre elles les lignes ayant, toutes choses égales par ailleurs (site, compte général et tiers le cas échéant) si elles ont des valeurs égales de critère de détail.
    A l'inverse, si la valeur est différente, on éclate des lignes que l'on aurait regroupé (il est à noter que le fait d'avoir des sections analytiques différentes n'est pas un critère d'éclatement si ce ne sont pas déjà des répartitions (le système créera alors une répartition au prorata des montants).
    Le tableau ci-dessous en donne des exemples dans les règlements :

 

Expression de regroupement

Explication

 

[F :PYD]LIN

On fait une ligne par imputation de règlement, sans chercher à regrouper les lignes identiques.

 

 [F :PYD]VCRNUM

On fait une ligne par facture (ie on regroupe les imputations de plusieurs échéances d'une même facture)

 

  • la Référence Libre : cette zone est exploitée dans le lettrage et peut servir de critère de lettrage par analogie. Elle peut être renseignée par n'importe quel champs,
  • le libellé : deux fonctions permettent de récupérer l'intitulé d'une pièce automatique ou de ses lignes de pièces automatiques et de les utiliser dans le paramétrage de la pièce (libellé, description, etc.).

 func TRTCPTINT3.GET_LIN_DES

Permet de récupérer l'intitulé de la ligne de la pièce automatique courante.

 func TRTCPTINT3.LECTEXTRA("GAUTACE","DESTRA","code de la pièce auto","")

Permet de récupérer l'intitilé de l'en-tête de pièces automatiques.

 

 

Le tableau des actions (troisième onglet) 

Ce tableau permet de définir, sur des événements techniques particuliers dans le processus de comptabilisation, des appels à des sous-programmes. Ces sous-programmes, identifiés par le nom de l'étiquette et le nom du traitement, sont fournis en standard. Il est donc conseillé de ne pas les modifier. Il est par contre possible, dans le cadre de certaines traitements spécifiques, d'écrire de nouveaux traitements associés à ces actions.

Les événements techniques existants sont les suivants :

Action avant création ligne

Elle permet de définir deux critères, CRITIMP et CRITMTC, en fonction de champs de la table principale d'abréviation TB0 ou de la table secondaire d'abréviation [TB1]). ? Ces critères permettent en particulier, dans la gestion des écritures liées aux règlements, de regrouper ou pas les lignes. Cette action est utilisée en standard avec les valeurs suivantes :

 

Valeurs action

Effet

 

REGROUP / PAYCPTA

Pour gérer le regroupement ou le détail de certaines écritures sur des comptes intermédiaires (même principe que le champ Critère détail, mais « câblé » par la logique du traitement standard).

Action après création ligne

Elle est aussi utilisée dans la gestion des écritures liées aux règlements. Cette action est utilisée en standard avec les valeurs suivantes :

 

Valeurs action

Effet

 

APLIGBAN / PAYCPTA

stockage du compte de trésorerie dans une variable pour traitement ultérieur, et déclenchement de la dévalorisation du portefeuille.

 

 APLIGFAC / PAYCPTA

appelée sur les lignes mouvementant le tiers facturé, met à jour les échéances avec le numéro de l'échéance de règlement , pour gérer les acomptes sur commandes client et fournisseur.

 

REGROUP / PAYCPTA

Pour gérer le regroupement de certaines écritures sur des comptes intermédiaires.

Action de lien

Elle permet d'appeler un sous-programme de lecture d'informations liées de façon non standard (elle se place au niveau de chaque ligne).

Messages d'erreur

Outre les messages génériques, les messages d'erreur suivants peuvent apparaître lors de la saisie :

"Erreur de syntaxe (suivie d'un détail explicatif)"

La syntaxe de l'expression adonix saisie n'est pas correcte (par exemple, le nombre d'arguments d'une fonction n'est pas bon, ou bien il manque une parenthèse). Il est à noter qu'il est impossible de détecter des erreurs plus complexes sur des expressions (par exemple, division par zéro, variable inexistante…). Ces erreurs seront détectées lors de la génération des écritures, on en retrouvera une liste exhaustive plus loin.

"Lien impossible"

Ceci signifie que l'on a essayé de faire un lien depuis la table déclenchante vers une table pour laquelle le dictionnaire ne connaît pas de lien (par exemple, lier l'en-tête de facture avec la table des articles).

Ceci arrive aussi si la zone de lien est incorrecte (lorsqu'on a saisi la table à lier, on peut choisir les zones de lien possibles par une fenêtre de sélection)

"Indice incorrect"

Ce message est affiché si le numéro d'indice utilisé pour un code comptable n'existe pas (par exemple, si on tente d'utiliser l'indice no 4 pour un code comptable Acheteur).

Messages d'erreur à l'exécution de la pièce

Les erreurs signalées ci-dessous peuvent arriver lors de la génération des écritures (en validation comptable de facture, par exemple). La plupart d'entre elles ont pour origine un paramétrage imparfait. Certaines ne peuvent arriver que si des opérations de maintenance ont altéré certaines des données.

"Code paramètre inexistant"

Le code de paramétrage appelé par l'opération de génération n'existe pas.

"Table déclenchante non référencée"

La table déclenchante n'est pas accessible au moment de la génération.

"Table déclenchante inexistante"

La table déclenchante n'existe pas.

"Nombre d'arguments incorrect"

Le nombre d'éléments de clés de la table principale ne correspond pas à ce qui était attendu.

"Clé inexistante"

La valeur de clé correspondant à l'enregistrement courant de la table principale n'existe plus ou ne répond pas aux conditions de génération.

"Table secondaire inexistante : XXX"

La table secondaire XXX donnée dans les paramètres de génération d'une ligne n'existe pas.

"Table analytique inexistante : XXX"

La table analytique XXX donnée dans les paramètres de génération d'une ligne n'existe pas.

"ZZZ : Erreur en évaluation de zone"

(suivi du message d'erreur)

Lors de l'évaluation de la zone ZZZ en cours de génération de pièce, l'erreur correspondant au message qui suit est arrivée. Cette erreur peut être quelconque (variable inexistante, division par zéro…)

"Lien incorrect sur XXX"

Le lien sur la table XXX liée à l'en-tête n'a pas pu se faire (par exemple, dans le cas d'une facture, si XXX est BPC, cela veut dire que le code Tiers facturé n'existe pas).

"nnn : code comptable inexistant"

Ceci signifie que l'on a référencé un code comptable inexistant ou un numéro de ligne inexistant (le no nnn) pour un code comptable donné (par exemple, le code no 12 pour le code comptable article).

"Compteur inexistant"

Le compteur attaché au type de pièce à générer n'existe pas.

"Dépassement de compteur"

La plage de numéros attribuée pour le type de pièce à générer a été dépassé.

"XXX : site inexistant"

La zone site fait référence à un code site inexistant après évaluation.

"XXX : société inexistante"

La zone société fait référence à un code société inexistant après évaluation.

"Pas de cours de devise"

Le cours de devise correspondant aux paramètres donnés n'a pas pu être trouvé.

"ttt : type de pièce inexistant"

Le type de pièce ttt est inexistant.

"Transaction abandonnée"

La transaction n'a pas pu se faire (un autre message d'erreur est apparu en principe).

"Pièce réelle déjà existante"

On a tenté de créer une pièce comptable avec un numéro de pièce correspondant à une pièce déjà existante en comptabilité.

"Pièce temporaire déjà existante"

On a tenté de créer une pièce comptable avec un numéro de pièce déjà attribué à une pièce temporaire.

"Pas de lignes"

On a tenté de générer une pièce comptable sans lignes.

"Pièce déséquilibrée"

On a tenté de générer une pièce comptable déséquilibrée.

"Ventilation déséquilibrée"

On a tenté de créer une ventilation analytique déséquilibrée (en montant).

"Ventilation déséquilibrée (qté)"

On a tenté de créer une ventilation analytique déséquilibrée (en quantité).

"Compte inexistant"

On a tenté de passer une écriture sur un compte inexistant (ceci ne peut arriver que si on a désactivé le paramètre permettant la création automatique des comptes inexistants).

"XXX xxxxx : message d'erreur"

Ce type de message peut arriver lors des phases de contrôle avant le passage d'écriture. Les messages peuvent être très variés, XXX étant le code de la table et xxxxxxx la clé sur laquelle se produit l'erreur. Par exemple, si le site et la société paramétrés sont incohérents entre eux, on peut avoir un message du type suivant :

FCY  AAA : Ce site est dans la société ZZZ

(ici, FCY est l'abréviation de la table des sites, et AAA le code du site correspondant) 

Tables mises en oeuvre

Les tables suivantes sont mises en oeuvre par la fonction :

Table

Intitulé Table

AMSKZON [AMZ]

Dictionnaire des champs écran

ATABIND [ATI]

Dictionnaire des index

ATEXTRA [AXX]

Textes à traduire

ATYPE [ATY]

Types de données

GAUTACE [GAU]

Pièces automatiques

GAUTACED [GAD]

Pièces automatiques (lignes)

GAUTACEF [GAG]

Formules pièces automatiques

GVARPARVAL [GVV]

Valeurs paramètres