Unknown column 'facnumber' in 'field list'

Bonjour à tous.

Je ne suis pas certain d’avoir trouvé un sujet parlant de ce « problème » alors je me permet d’ouvrir un post.
N’hésitez pas à me le dire s’il est déjà traité et, si tel est le cas, à me renvoyer vers le bon post.

J’ai effectué une migration de dolibarr 9.0.x vers la dernière version (marquée comme stable) à savoir 10.0.2

Or, depuis cette mise à jour je rencontre un message d’erreur dans les pages de factures du CRM (https://[…]/compta/facture/card.php?facid=94) ou lors de la validation d’une facture (https://[…]/compta/facture/card.php?facid=98&action=valid).

Les messages sont les suivants :

[code]
Dolibarr a détecté une erreur technique.
You use an experimental or develop level of features, so please do NOT report any bugs, except if problem is confirmed moving option MAIN_FEATURES_LEVEL back to 0.
Voici les informations qui pourront aider au diagnostic (Vous pouvez fixer l’option $dolibarr_main_prod sur ‹ 1 › pour supprimer quelques notifications):
Date: 20190919163215
Dolibarr: 10.0.2
Niveau de fonctionnalités: 2
PHP: 7.1.32
Server: Apache
OS: Linux world-351.fr.planethoster.net 3.10.0-962.3.2.lve1.5.25.10.el7.x86_64 #1 SMP Wed May 29 04:37:40 EDT 2019 x86_64
UserAgent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/76.0.3809.132 Safari/537.36

Url sollicitée: /compta/facture/card.php?facid=94
Referer: https://[…]/index.php?mainmenu=home&leftmenu=home
Gestionnaire de menu: eldy_menu.php

Modules/Applications: syslog, user, paypal, oauth, stock, product, hosting, domain, expensereport, propal, margin, accounting, agenda, contrat, cron, commande, ecm, ficheinter, facture, fournisseur, holiday, printing, salaries, societe, service, tax, banque, prelevement, dolicalc, quicknotes, projet, stripe, modulebuilder, hrm, debugbar, categorie, fckeditor, multicurrency, bookmark, import, export, ldap
Type gestionnaire de base de données: mysqli
Requête dernier accès en base en erreur: SELECT MAX(SUBSTRING(facnumber, 16, 3)) as val FROM doli_facture WHERE facnumber LIKE ‹ facture-F_________ › AND facnumber NOT LIKE ‹ (PROV%) › AND entity IN (1)
Code retour dernier accès en base en erreur: DB_ERROR_NOSUCHFIELD
Information sur le dernier accès en base en erreur: Unknown column ‹ facnumber › in ‹ field list ›[/code]

Pourriez-vous vous me dire ce qu’il conviendrait de faire ? :blink:

Dans la table « doli_facture », je n’ai effectivement pas de champ « facnumber » mais un champ « ref ».
J’ai bien essayé de le modifier en « facnumber » mais cela fait tout planter :whistle: :silly:

Merci de votre aide.

Cordialement.

Bonjour,
J’ai exactement le même problème.
migration de 8. vers 9.0 et de 9 vers 10.0.2.


Dolibarr a détecté une erreur technique.
Voici les informations qui pourront aider au diagnostic (Vous pouvez fixer l’option $dolibarr_main_prod sur ‹ 1 › pour supprimer quelques notifications):
Date: 20190920071005
Dolibarr: 10.0.2
Niveau de fonctionnalités: 0
PHP: 5.5.38
Server: Apache/2.4.6 (CentOS) OpenSSL/1.0.2k-fips PHP/5.5.38
OS: Linux apache.nitd.local 3.10.0-957.27.2.el7.x86_64 #1 SMP Mon Jul 29 17:46:05 UTC 2019 x86_64
UserAgent: Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/76.0.3809.132 Safari/537.36

Url sollicitée: /compta/facture/card.php?facid=2815&action=confirm_valid&confirm=yes&token=c1feb48182e61938e09f7d4106f041d0
Referer: https://xxx.xxx.com/compta/facture/card.php?facid=2815&action=valid&page_y=495
Gestionnaire de menu: eldy_menu.php

Modules/Applications: user, product, expedition, workflow, margin, propal, zenfusionmaps, adressefrance, expensereport, contrat, ficheinter, supplier_proposal, tax, export, blockedlog, import, accounting, agenda, cron, commande, ecm, facture, categorie, fournisseur, holiday, salaries, societe, service, multicurrency, fckeditor, incoterm, banque, prelevement, mailing, projet
Type gestionnaire de base de données: mysqli
Requête dernier accès en base en erreur: UPDATE llx_facture SET ref=‹ FA1909-2052 ›, fk_statut = 1, fk_user_valid = 2, date_valid = ‹ 2019-09-20 07:10:05 › WHERE rowid = 2815
Code retour dernier accès en base en erreur: DB_ERROR_NOSUCHFIELD
Information sur le dernier accès en base en erreur: Unknown column ‹ facnumber › in ‹ NEW ›
:unhappy:
Je viens d’effectuer quelques recherches et j’ai désactivé toutes les extensions et modules complémentaires:

Voici les fichiers qui contienne encore du facnumber, je sais pas si c’est normal ?
find . | xargs grep ‹ facnumber › -ls
./dev/skeletons/modMyModule.class.php
./htdocs/compta/facture/apercu.php
./htdocs/compta/facture.php
./htdocs/compta/tva/quadri.php
./htdocs/custom/fullcalendar/core/modules/modfullcalendar.class.php
./htdocs/custom/abricot/core/modules/modAbricot.class.php
./htdocs/install/mysql/migration/9.0.0-10.0.0.sql
./htdocs/install/mysql/migration/3.3.0-3.4.0.sql
./htdocs/cdav/core/modules/modCDav.class.php

Je vous cahce pas comme l’équipe comptable est contente le 20 du mois que l’équipe informatique est passé une MAJ…

Merci à vous.

Bonjour je rencontre exactement le meme message lors du passage du facture de brouillon à définitive:

Dolibarr a détecté une erreur technique.
Voici les informations qui pourront aider au diagnostic (Vous pouvez fixer l’option $dolibarr_main_prod sur ‹ 1 › pour supprimer quelques notifications):
Date: 20190920074841
Dolibarr: 10.0.2
Niveau de fonctionnalités: 0
PHP: 5.5.38
Server: Apache/2.4.6 (CentOS) OpenSSL/1.0.2k-fips PHP/5.5.38
OS: Linux apache.nitd.local 3.10.0-957.27.2.el7.x86_64 #1 SMP Mon Jul 29 17:46:05 UTC 2019 x86_64
UserAgent: Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/76.0.3809.132 Safari/537.36

Url sollicitée: /compta/facture/card.php?facid=2815&action=confirm_valid&confirm=yes&token=d032e8849375495cd363a25c45ffa00b
Referer: https://xxx.xxxx.fr/compta/facture/card.php?facid=2815&action=valid&page_y=495
Gestionnaire de menu: eldy_menu.php

Modules/Applications: user, product, expedition, workflow, margin, propal, zenfusionmaps, adressefrance, expensereport, contrat, ficheinter, supplier_proposal, tax, export, blockedlog, import, accounting, agenda, cron, commande, ecm, facture, categorie, fournisseur, holiday, salaries, societe, service, multicurrency, fckeditor, incoterm, banque, prelevement, mailing, projet
Type gestionnaire de base de données: mysqli
Requête dernier accès en base en erreur: UPDATE llx_facture SET ref=‹ FA1909-2052 ›, fk_statut = 1, fk_user_valid = 2, date_valid = ‹ 2019-09-20 07:48:41 › WHERE rowid = 2815
Code retour dernier accès en base en erreur: DB_ERROR_NOSUCHFIELD
Information sur le dernier accès en base en erreur: Unknown column ‹ facnumber › in ‹ NEW ›

Il semblerai que le UPDATE de la base contienne facnumber et pas ref mais je ne sais pas ou le trouver.

pouvez vous nous aider SVP.

Cdt

Romain

je viens de vérifier et à part les anciens fichiers de migration sql il n’y a plus de « facnumber » !
alors soit vous avez des modules complémentaires qui créent ce conflit, soit vous avez écrasé les fichiers au lieu de les remplacer et ça crée un conflit.
Il est conseillé de sauvegarder le répertoire « conf », « custom » qui doit contenir tous les modules externes et le répertoire « documents » si il ne se trouve pas en dehors de la racine web, puis effacer et remplacer Dolibarr, puis de restaurer les répertoires sauvegarder plus haut.

Merci Regis de votre réponse, je viens de faire cela à la lettre et même erreur.
J’ai recommencé sans mettre le répertoire custom.
Et même erreur, j’ai la vague impression que l’erreur est lié a un module qui ne serait pas désactiver et plus présent ?
Auriez vous une idée ?

Petit complément cela se produit uniquement lors du passage d’une facture de PROV a définitive, lors de la tentative de changement de nom

vous avez quoi dans « Accueil -> Outils d’administration -> Infos Dolibarr -> Triggers » ?

Ci-joint l’extrait
Cdt
Romain

Pièces jointes :

c’est quelle version de ultimatepdf ?

Ultimate et jalon Milestone sont en version 10

il faudrait activer le module de logs de Dolibarr et copier coller ce qu’il y a lorsque l’erreur est présente, « dolibarr.log » se trouve dans le répertorie « documents »

Voilà Régis, je pense que l’option multidevise peut être la cause ?

Pièces jointes :

c’est étrange ! peut être une table au format « view » non mise à jour, quelle est la liste de tous vos modules externes ?

Salut,

je me permet de mettre mon grain de sel :

@rkerrinckx
es tu certains d’avoir uploadé les bons fichiers, nouvellement téléchargés, sur les conseils de regis ? (et pas une version locale, qui comporterait des anomalies)

Si tu as toujours le problème:
Peux tu télécharger l’ensemble de ton répertoire sur ton ordinateur et faire une recherche dans l’ensemble des fichiers de tous les sous répertoire du texte « facnumber » et nous faire une copie d’écran du résultat ? (avec par exemple notepad++ si tu es sous windows)

dans un message précédent il y a ça :

./htdocs/custom/fullcalendar/core/modules/modfullcalendar.class.php
./htdocs/custom/abricot/core/modules/modAbricot.class.php

il faudrait déjà voir avec les développeurs de ces modules

Après plusieurs heures de recherche j’ai enfin trouvé le bug.

Dans la table llx_facture il y a un déclencheur dans la base SQL que la maj ne modifie pas :frowning: j’ai donc fini par mettre les mains dans la BDD ci-joint les modifications et les lignes ou chez moi il restait du facnumber.

Attention cela n’est pas une généralité mon dolibarr à vécu et de multitude de couche se sont empilées begining 3.2

Bonjour
Merci du retour mais qu’avez vous fait ?
Je me demande même où avait lieu ce plantage.
@+

Si vous avez phpMyAdmin vous allez dans la bdd de dolibarr, la table llx_facture dans l’onglet déclencheur et vous allez trouvez une requête qui sert a passer les numéros de factures de PROV EN FAC201909XXXX et a cet endroit il y’a des chances pour que vous ayez facnumber dans la formule a remplacer par ref.

Si vous avez besoin n’hésitez pas. Ma réponse est succincte mais je suis sur le téléphone.

Salut rkerrinckx,

il n’est pas censé y avoir de triggers stockés en base. (on s’y est mis à deux avec jtraulle pour être sûrs)

il s’agit :
- ou de modules externes (que tu as peut être supprimé depuis) qui les ont ajoutés
- ou d’anciennes versions de dolibarr qui stockaient des triggers en base (mais j’en doute, on aurait eu d’autres retours sur le forum)

tu peux poster la liste et le code des trigger que tu as en base stp ?
(régis signalaient plus tôt dans le fil de ce post qu’il y avait des erreurs au niveau d’abricot et de full_calendar… c’est peut être lié)

Pour info, les seuls « triggers » gérés par dolibarr, le sont dans le code : les scripts sont dans /core/triggers.

Arrhe,

Merci de ta réponse ci-joint les screens shots du code dans la base.
Il y a longtemps au début du SEPA il y a avait un module externe pour gérer les IBAN et les prélèvements SEPA.
Il utilisé cette méthode pour générer les RUM.
Abricot et full calendar ne sont pas la cause, car avant de vous solliciter j’avais essayé une installation neuve sans addons et je ne pouvais pas restaurer les bases. C’est d’ailleurs ce qui m’a mis la puce à l’oreille.

Mon dolibarr fonctionne maintenant normalement mais je sais que je vais avoir de nouveau problème. Je vais générer le script de sauvegarde sur une installation fraiche et l’appliquer sur ma vielle base afin de supprimer toutes les vieilles tables qui se sont empilées au fil des années.

Je vais prendre le risque de supprimer ce trigger qui ne me bloqué plus depuis la modification de l’entrée facnumber en ref.

Merci a vous, je ne regrette pas de mettre inscrit et de découvrir une communauté aussi pointu.

Pièces jointes :