En ajoutant un contact, la liste des tiers n'affiche que des traits
Dans l'onglet Contacts d'un devis, d'une commande ou d'un projet, la recherche du tiers ne propose que des lignes vides. Un bug des 24.0.0 et 24.0.1 quand la recherche des tiers par saisie est activée.
Vous ouvrez l’onglet Contacts/Adresses d’un devis, d’une commande ou d’un projet. Pour ajouter un contact externe, vous commencez à taper le nom du tiers. Au lieu de la liste des tiers, vous obtenez quelques traits horizontaux, sans aucun nom. Impossible de choisir le tiers.
Ce n’est pas votre installation. C’est un bug des versions 24.0.0 et 24.0.1. La 23 n’est pas touchée.
Qui est concerné
Seulement si la recherche des tiers par saisie est activée : dans la configuration du module Tiers, le réglage « Attendre que vous ayez appuyé sur une touche avant de charger le contenu de la liste déroulante des tiers » est sur « Oui ». Le champ Tiers est alors une zone où l’on tape. Si vous voyez une liste déroulante classique à la place, vous n’êtes pas concerné : c’est le réglage d’une installation neuve.
La cause
La recherche par saisie interroge un petit script du serveur, qui renvoie les tiers dont le nom correspond. En 24.0.0, la requête de ce script a été modifiée : la limite du nombre de résultats a été placée avant le tri, alors que le langage SQL l’exige après. La base de données refuse donc la requête, à chaque fois.
Le script renvoie alors une réponse d’erreur. Le navigateur essaie de l’afficher comme une liste de tiers, et fabrique des lignes sans texte : ce sont vos traits.
Les solutions
-
La correction de Dolibarr. Elle est dans le code de la 24.0.2 (n° 40277 dans le journal des modifications) : le tri est remis avant la limite. Au 4 octobre 2026, la 24.0.2 est téléchargeable sur SourceForge depuis le 2 octobre, mais elle n’est pas encore annoncée sur dolibarr.org et n’existe pas encore en image Docker.
-
Inverser deux lignes dans
societe/ajax/ajaxcompanies.php, vers la ligne 143. Sauvegardez le fichier d’origine, puis faites en sorte que ces deux lignes apparaissent une seule fois, dans cet ordre :$sql .= " ORDER BY s.nom ASC"; $sql .= $db->plimit($limit, 0); -
Revenir à la liste classique, sans toucher au code : remettez le réglage de recherche par saisie sur « Non » dans la configuration du module Tiers.
Comment cela a été vérifié
- Sur une instance 24.0.1 neuve, sans module externe : avec le réglage d’origine, liste classique
correcte. Recherche par saisie activée : des traits dans l’onglet Contacts du devis, de la
commande et du projet. La base renvoie une erreur de syntaxe sur
LIMIT 1000 ORDER BY. - Avec les deux lignes inversées, puis avec le fichier officiel de la 24.0.2 à la place : la liste des tiers revient.
- Sur une instance 23.0.4, avec la recherche par saisie : liste correcte.
- Dans le code officiel : en 20.0.4 et 23.0.4, la requête n’a pas de limite ; en 24.0.0 et 24.0.1, la limite est placée avant le tri ; en 24.0.2, elle est placée après.
Avant de passer en 24, la liste de contrôle de Mettre à jour Dolibarr sans casse reste valable.
Si la liste reste vide
Si la liste reste vide après la correction, la cause est ailleurs. Le diagnostic à 90 € consiste à regarder votre instance avec vous pendant une heure, puis à vous remettre par écrit la cause et ce que coûterait la correction.