[{"data":1,"prerenderedAt":420},["ShallowReactive",2],{"\u002Fnext\u002Fdodock\u002Fpersonnalisation\u002Frapports\u002Fintegration_duckdb":3,"section:\u002Fnext\u002Fdodock\u002Fpersonnalisation\u002Frapports\u002Fintegration_duckdb":419},{"id":4,"title":5,"body":6,"description":395,"extension":396,"meta":397,"navigation":401,"path":415,"seo":416,"stem":417,"__hash__":418},"docs\u002F2.next\u002F3.dodock\u002F03.personnalisation\u002F02.rapports\u002Fintegration_duckdb.md","Rapports instantanés (DuckDB)",{"type":7,"value":8,"toc":384},"minimark",[9,13,22,27,96,114,117,121,127,185,191,212,216,226,280,283,287,306,313,320,333,339,343,368,372],[10,11,5],"h1",{"id":12},"rapports-instantanés-duckdb",[14,15,16,17,21],"p",{},"Un ",[18,19,20],"em",{},"rapport instantané"," lit une copie des données au lieu de la base en direct. Dokos copie les tables utiles dans un fichier DuckDB, une base analytique rapide. Le rapport s'exécute plus vite sur de gros volumes. En contrepartie, il montre l'état des données à la dernière copie.",[23,24,26],"h2",{"id":25},"fonctionnement","Fonctionnement",[28,29,30,43],"table",{},[31,32,33],"thead",{},[34,35,36,40],"tr",{},[37,38,39],"th",{},"Élément",[37,41,42],{},"Rôle",[44,45,46,63,74,85],"tbody",{},[34,47,48,60],{},[49,50,51,55,56,59],"td",{},[52,53,54],"strong",{},"Activer les rapports instantanés"," (",[52,57,58],{},"Paramètres Système",")",[49,61,62],{},"Planifie la copie automatique des tables.",[34,64,65,71],{},[49,66,67,70],{},[52,68,69],{},"Rapport instantané"," (case du rapport)",[49,72,73],{},"Le rapport lit la copie DuckDB au lieu de la base.",[34,75,76,82],{},[49,77,78,81],{},[52,79,80],{},"DocType à synchroniser"," (table du rapport)",[49,83,84],{},"Les types de documents à copier pour ce rapport.",[34,86,87,93],{},[49,88,89,92],{},[52,90,91],{},"Synchronisation DuckDB"," (type de document)",[49,94,95],{},"Une copie d'un type de document dans un fichier DuckDB.",[14,97,98,99,101,102,104,105,109,110,113],{},"À chaque passage planifié, Dokos crée et valide une ",[52,100,91],{}," pour chaque type de document listé dans un ",[52,103,80],{}," d'un rapport. La validation copie la table et ses tables enfants dans un fichier ",[106,107,108],"code",{},".duckdb"," des fichiers privés du site. La copie tourne en tâche de fond, dans la file ",[106,111,112],{},"long",".",[14,115,116],{},"Le rapport utilise la dernière synchronisation validée dont toutes les tables sont copiées. Il affiche alors en haut : « Il s'agit d'un rapport instantané généré {date} ».",[23,118,120],{"id":119},"rapports-livrés-avec-dokos","Rapports livrés avec Dokos",[14,122,123,124,126],{},"Ces rapports savent lire une copie DuckDB. Ils sont livrés avec la case ",[52,125,69],{}," décochée.",[28,128,129,139],{},[31,130,131],{},[34,132,133,136],{},[37,134,135],{},"Rapport",[37,137,138],{},"Type de document copié",[44,140,141,152,160,167,174],{},[34,142,143,146],{},[49,144,145],{},"Balance générale",[49,147,148,149,59],{},"Écriture GL (",[106,150,151],{},"GL Entry",[34,153,154,157],{},[49,155,156],{},"Bilan",[49,158,159],{},"Écriture GL",[34,161,162,165],{},[49,163,164],{},"Compte de résultat",[49,166,159],{},[34,168,169,172],{},[49,170,171],{},"Grand livre",[49,173,159],{},[34,175,176,179],{},[49,177,178],{},"Solde du stock",[49,180,181,182,59],{},"Écriture du grand livre des stocks (",[106,183,184],{},"Stock Ledger Entry",[14,186,187,188,190],{},"Un rapport standard s'ouvre en lecture seule hors du mode développeur. La case ",[52,189,69],{}," se règle donc dans le code du rapport, par un développeur. Un site en production n'a pas de réglage pour la cocher sur un rapport livré. Frappe Framework fonctionne de la même façon.",[192,193,196],"callout",{"color":194,"icon":195},"amber","i-mdi-alert-outline",[14,197,198,199,202,203,205,206,208,209,211],{},"La synchronisation copie les types de document listés par ",[52,200,201],{},"tous"," les rapports, que leur case ",[52,204,69],{}," soit cochée ou non. Avec les rapports livrés, activer la synchronisation copie donc ",[106,207,151],{}," et ",[106,210,184],{},", même si aucun rapport ne lit encore la copie.",[23,213,215],{"id":214},"activer-la-synchronisation-planifiée","Activer la synchronisation planifiée",[14,217,218,221,222,225],{},[52,219,220],{},"Prérequis :"," avoir le rôle ",[52,223,224],{},"Responsable système",". Les tâches de fond et le planificateur doivent tourner.",[227,228,229,233,243,248,270,277],"ol",{},[230,231,232],"li",{},"Ouvrez la recherche (Ctrl+K) et saisissez « Paramètres Système ».",[230,234,235,236,239,240,113],{},"Ouvrez l'onglet ",[52,237,238],{},"Avancé",", section ",[52,241,242],{},"Rapports instantanés",[230,244,245,246,113],{},"Cochez ",[52,247,54],{},[230,249,250,251,254,255],{},"Choisissez la ",[52,252,253],{},"Fréquence"," :\n",[256,257,258,264],"ul",{},[230,259,260,263],{},[52,261,262],{},"Quotidien"," (défaut) : chaque jour à minuit ;",[230,265,266,269],{},[52,267,268],{},"Toutes les heures"," : au début de chaque heure.",[230,271,272,273,276],{},"Si besoin, renseignez ",[52,274,275],{},"Délai de synchronisation (secondes)",". Par défaut, une copie s'arrête après 25 minutes.",[230,278,279],{},"Enregistrez.",[14,281,282],{},"Dokos crée la tâche planifiée « DuckDB Sync ». Si vous décochez la case, Dokos supprime cette tâche.",[23,284,286],{"id":285},"suivre-les-synchronisations","Suivre les synchronisations",[227,288,289,292,295],{},[230,290,291],{},"Ouvrez la recherche (Ctrl+K) et saisissez « Synchronisation DuckDB ».",[230,293,294],{},"Ouvrez une synchronisation validée.",[230,296,297,298,301,302,305],{},"Dans la table ",[52,299,300],{},"Tables de la base de données",", la case ",[52,303,304],{},"Synchronisé"," indique les tables copiées.",[14,307,308,309,312],{},"Si une table n'est pas copiée, le bouton ",[52,310,311],{},"Synchroniser les données"," relance la copie.",[14,314,315,316,319],{},"Vous pouvez aussi créer une synchronisation à la main : choisissez le ",[52,317,318],{},"Type de document",", enregistrez, puis validez.",[14,321,322,323,325,326,208,329,332],{},"Les rôles ",[52,324,224],{},", ",[52,327,328],{},"Responsable Comptabilité",[52,330,331],{},"Responsable Commercial"," ont accès à ce type de document.",[14,334,335,336,113],{},"Dokos annule et supprime les synchronisations de plus de 45 jours, avec leur fichier. Vous pouvez changer ce délai dans ",[52,337,338],{},"Paramètres des journaux",[23,340,342],{"id":341},"limites","Limites",[256,344,345,351,354,360],{},[230,346,347,348,350],{},"Le rapport montre l'état à la dernière copie. Avec la fréquence ",[52,349,262],{},", les écritures du jour n'apparaissent pas avant le lendemain.",[230,352,353],{},"Chaque synchronisation crée un fichier. Prévoyez l'espace disque des fichiers privés.",[230,355,356,357,359],{},"La ",[52,358,145],{}," lit la base en direct si l'utilisateur a des restrictions d'accès sur les écritures comptables.",[230,361,362,363,365,366,113],{},"Si aucune copie complète n'existe, la ",[52,364,145],{}," affiche une erreur qui demande de synchroniser ",[106,367,151],{},[23,369,371],{"id":370},"exemple","Exemple",[14,373,374,375,377,378,380,381,383],{},"Exemple fictif : un développeur coche ",[52,376,69],{}," sur la ",[52,379,145],{}," dans une application. Sur le site, vous activez les rapports instantanés en ",[52,382,262],{},". Chaque nuit à minuit, Dokos copie les écritures comptables. Le lendemain matin, la balance s'ouvre vite et affiche « Il s'agit d'un rapport instantané généré il y a 9 heures ».",{"title":385,"searchDepth":386,"depth":387,"links":388},"",1,2,[389,390,391,392,393,394],{"id":25,"depth":387,"text":26},{"id":119,"depth":387,"text":120},{"id":214,"depth":387,"text":215},{"id":285,"depth":387,"text":286},{"id":341,"depth":387,"text":342},{"id":370,"depth":387,"text":371},"Copier des tables dans des fichiers DuckDB à intervalle régulier pour accélérer les gros rapports, au prix de données moins fraîches.","md",{"icon":398,"order":399,"badge":400,"reviewed":401,"last_verified":402,"sources":403},"i-mdi-database",60,"nouveau",true,"2026-11-04",[404,405,406,407,408,409,410,411,412,413,414],"frappe\u002Fcore\u002Fdoctype\u002Fsystem_settings\u002Fsystem_settings.json","frappe\u002Fcore\u002Fdoctype\u002Fsystem_settings\u002Fsystem_settings.py","frappe\u002Fcore\u002Fdoctype\u002Freport\u002Freport.json","frappe\u002Fcore\u002Fdoctype\u002Freport\u002Freport.py","frappe\u002Fcore\u002Fdoctype\u002Fduckdb_sync\u002Fduckdb_sync.py","frappe\u002Fcore\u002Fdoctype\u002Fduckdb_sync\u002Fduckdb_sync.js","frappe\u002Fdatabase\u002Fduckdb\u002Fdatabase.py","frappe\u002Fdesk\u002Fquery_report.py","frappe\u002Fpublic\u002Fjs\u002Ffrappe\u002Fviews\u002Freports\u002Fquery_report.js","frappe\u002Fhooks.py","erpnext\u002Faccounts\u002Freport\u002Ftrial_balance\u002Ftrial_balance.py","\u002Fnext\u002Fdodock\u002Fpersonnalisation\u002Frapports\u002Fintegration_duckdb",{"title":5,"description":395},"2.next\u002F3.dodock\u002F03.personnalisation\u002F02.rapports\u002Fintegration_duckdb","0OepDPkI71vzemWc5kUMnvoJFb-aJzGVZEhPnJbvPKc",{},1793871797985]