Erreur lors du chargement du tableau de compte. Si certains comptes n'ont pas été chargés, vous pouvez toujours les entrer manuellement

Bonjour,

Pour une raison inconnue, les informations concernant le plan comptable utilisé depuis déjà 2 exercices ont été perdues. Une hypothèse serait que cela se soit produit à l’occasion d’une mise à jour de Dolibbar (act. 13.0.1), mais rien de certain…

En attendant, il est nécessaire de remettre les choses comme elles étaient. Le PCG99-BASE est a priori celui qui était configuré.

Quand on le positionne dans Configuration > Plan comptable > liste déroulante et qu’on clique dans « CHANGER ET CHARGER » apparaît le message

Erreur lors du chargement du tableau de compte. Si certains comptes n’ont pas été chargés, vous pouvez toujours les entrer manuellement.

Idem pour tout autre plan comptable.

Et dans les autres pages où des listes de codes comptables sont habituellement affichées, celles-ci sont vides.

Le log de Dolibarr indique par paquets les ERR :

ERR @IP DoliDBMysqli::query SQL Error message: DB_ERROR_1364 Field 'datec' doesn't have a default value
ERR @IP Admin.lib::run_sql Request 2668 Error DB_ERROR_1364 INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (1, 9120 + 100100000, 'PCGAFR14-DEV','INCOME',   '797', 9117 + 100100000, 'Transferts de charges exceptionnelles', 1);<br>Field 'datec' doesn't have a default value

Et il n’existe pas de table llx_accounting_account dans la base…

Table llx_accounting_account créée en récupérant la structure d’une autre installation 13.0.1 :

+------------------------+--------------+------+-----+-------------------+-----------------------------+
| Field                  | Type         | Null | Key | Default           | Extra                       |
+------------------------+--------------+------+-----+-------------------+-----------------------------+
| rowid                  | bigint(20)   | NO   | PRI | NULL              | auto_increment              |
| entity                 | int(11)      | NO   |     | 1                 |                             |
| datec                  | datetime     | YES  |     | NULL              |                             |
| tms                    | timestamp    | NO   |     | CURRENT_TIMESTAMP | on update CURRENT_TIMESTAMP |
| fk_pcg_version         | varchar(32)  | NO   | MUL | NULL              |                             |
| pcg_type               | varchar(20)  | NO   |     | NULL              |                             |
| account_number         | varchar(32)  | NO   | MUL | NULL              |                             |
| account_parent         | int(11)      | YES  | MUL | 0                 |                             |
| label                  | varchar(255) | NO   |     | NULL              |                             |
| labelshort             | varchar(255) | YES  |     | NULL              |                             |
| fk_accounting_category | int(11)      | YES  |     | 0                 |                             |
| fk_user_author         | int(11)      | YES  |     | NULL              |                             |
| fk_user_modif          | int(11)      | YES  |     | NULL              |                             |
| active                 | tinyint(4)   | NO   |     | 1                 |                             |
| reconcilable           | tinyint(4)   | NO   |     | 0                 |                             |
| import_key             | varchar(14)  | YES  |     | NULL              |                             |
| extraparams            | varchar(255) | YES  |     | NULL              |                             |
+------------------------+--------------+------+-----+-------------------+-----------------------------+

Toujours la même erreur…

Alors le wiki sur la table llx_accountingaccount (sans les _ ?) présente autre chose.

Field Type Null Key Default Extra Description
pcg_version varchar(12) NO PRI ID of accounting system
fk_pays int(11) NO ID of country (llx_c_pays->row_id)
label varchar(128) NO label of accounting system
datec varchar(12) NO creation date
fk_author varchar(20) YES NULL author
tms timestamp NO Current date Date of last modification. See page Field Tms.
active smallint(6) YES 0 is the account system active?

Au delà qu’il y a là des champs en moins, datec n’y est plus un datetime mais un un varchar(12)…

datec altéré pour correspondre à sa définition du wiki : même erreur à l’écran et même ERR dans le log.

BUG ?

C’est la table qui contient la nomenclature !


ça explique peut être ton souci ?
As tu un vieux dump depuis lequel restaurer la table ?
@+

Oui, merci @Philazerty , c’est celle qui contiendra la nomenclature correspondant au PCG choisi, mais apparemment elle serait peuplée d’après ce choix, non ? Je ne trouve pas vraiment d’explications…

Ensuite, quelle est sa structure sur une (maintenant) 13.0.2 ?

Tu retrouves tout ce qu’il te faut dans htdocs/install/mysql (structure et données de base)
@+

OK, merci.

Table llx_accounting_account chargée et toujours la même erreur à l’écran et les mêmes ERR dans le log…

Essayes en mettant une valeur par défaut sur datec pour voir. Par exemple CURRENT_TIMESTAMP
Je n’ai pas dans ma base mais ça me dit quelque chose.

le plus sage serait quand même de remonter une sauvegarde avant de bricoler… les « effets de bords » peuvent prendre de l’ampleur ^^

@Philazerty : pas mieux !

@Arre : fait et pas mieux !

llx_accounting_account peuplée avec 2144 lignes (343 pour le PCG99-BASE) et toujours pas de comptes dans la « Liste des comptes comptables » et toujours le même message d’erreur (cf. sujet).

C’est décidément bien embêtant cette histoire…

À force d’acharnement, de déchargements / rechargements, drops de tables / re-créations, etc… le PCG s’affiche ! (ouf… :sweat:)

L’ERR sur datec dans le log est toujours là, mais la structure de la table est conforme à l’install.

En revanche, il y a de quoi se poser des questions sur le wiki mentionné plus haut
Alors le bon réflexe, c’est de consulter l’historique du Wiki avant toute lecture ! Ou l’onglet Discussion (où je viens de rajouter que la page est obsolète)…