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.
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. 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 :
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 :
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).
Les codes activités suivants (classés par type) peuvent avoir une influence sur le comportement de la fonction :
KRU :
Localisation russe
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.
Les tables suivantes sont utilisées par la fonction. Leur contenu doit donc être éventuellement mis à jour :
Table |
Intitulé Table |
---|---|
GTYPACCENT [GTE] |
|
GJOURNAL [JOU] |
|
GACCOUNT [GAC] |
|
CACCE [CCE] |
|
TABFOR [TFO] |
La définition du jeu d'écritures se fait sur deux écrans qui s'enchaînent par l'intermédiaire d'un bouton :
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 :
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.
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 :
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. |
|
  |
|
  |
Bloc numéro 2
|
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. |
|
  |
|
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. |
|
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 :
Pièce par ligneDans 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éeDans 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). |
|
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 :
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 ?). |
|
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. |
|
|
  |
|
|
  |
|
  |
|
On précise ici le nom des tables
devant être en ligne lors de la validation comptable des
pièces. |
|
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
|
Cette case permet, si elle est cochée, d'autoriser des montants négatifs dans une écriture. |
|
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. |
|
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 :
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. |
Bloc numéro 6
|
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. |
|
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. |
|
  |
|
  |
|
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. |
Fermer
Par défaut, les états suivants sont associés à la fonction :
GAUTACE : Pièces automatiques
Mais ceci peut être modifié par paramétrage.
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
Bloc numéro 2
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 ligneCe champ peut prendre trois valeurs :
ConditionIl 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 analytiqueLa définition de ces deux champs est faite ci-dessus dans la zone Type ligne. Sections par défautCe 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 lignesCe 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éditLorsque 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 liensCe 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 comptablesCe tableau remplit deux fonctions :
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 :
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 :
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.
le lien vers la table article restant défini par une ligne de code comptable. Liste des champs à remplir dans le tableau des codes comptablesOn 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 :
Le tableau des formules associées aux champs des lignes d'écriture (deuxième ongOn 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 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 ligneElle 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 :
Action après création ligneElle 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 :
Action de lienElle 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). |
Outre les messages génériques, les messages d'erreur suivants peuvent apparaître lors de la saisie :
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.
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)
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).
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.
Le code de paramétrage appelé par l'opération de génération n'existe pas.
La table déclenchante n'est pas accessible au moment de la génération.
La table déclenchante n'existe pas.
Le nombre d'éléments de clés de la table principale ne correspond pas à ce qui était attendu.
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.
La table secondaire XXX donnée dans les paramètres de génération d'une ligne n'existe pas.
La table analytique XXX donnée dans les paramètres de génération d'une ligne n'existe pas.
(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…)
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).
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).
Le compteur attaché au type de pièce à générer n'existe pas.
La plage de numéros attribuée pour le type de pièce à générer a été dépassé.
La zone site fait référence à un code site inexistant après évaluation.
La zone société fait référence à un code société inexistant après évaluation.
Le cours de devise correspondant aux paramètres donnés n'a pas pu être trouvé.
Le type de pièce ttt est inexistant.
La transaction n'a pas pu se faire (un autre message d'erreur est apparu en principe).
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é.
On a tenté de créer une pièce comptable avec un numéro de pièce déjà attribué à une pièce temporaire.
On a tenté de générer une pièce comptable sans lignes.
On a tenté de générer une pièce comptable déséquilibrée.
On a tenté de créer une ventilation analytique déséquilibrée (en montant).
On a tenté de créer une ventilation analytique déséquilibrée (en quantité).
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).
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)
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] |
|
GAUTACE [GAU] |
Pièces automatiques |
GAUTACED [GAD] |
|
GAUTACEF [GAG] |
Formules pièces automatiques |
GVARPARVAL [GVV] |
Valeurs paramètres |