Acasă / Articole / Apeși Verifică, și D406 devine Excel

Apeși Verifică, și D406 devine Excel

Modulul 1 din SAF-T Inspector e gata. Aplicația citește declarația D406, de la câteva zeci de MB până la câțiva GB și o transformă în registre Excel, CSV și Parquet, totul pe calculatorul vostru. Mai jos găsiți o rulare completă înregistrată, fiecare ecran explicat, pe scurt cum a fost construită și cele trei pachete de descărcat.

Seria SAF-Tpartea a opta ce a fost înainte
  1. Două aplicații ANAF pentru SAF-T: pași corecți, dar timizi27 august 2026 · 12 min
  2. Cinci ani de SAF-T în România: de la standardul OCDE la declarația D40629 august 2026 · 17 min
  3. Cum verifici fișierul SAF-T D406 înainte de depunere30 august 2026 · 22 min
  4. Nu cere drumul cel mai scurt5 septembrie 2026 · 12 min
  5. Proiectul care ține minte5 septembrie 2026 · 12 min
  6. Conversația care nu a produs cod8 septembrie 2026 · 13 min
  7. Ultimul pas înainte de cod15 septembrie 2026 · 12 min
// Cuprins
AI Accounting Hub
28.09.2026
Ecranul de start al aplicației SAF-T Inspector, în tema deschisă, cu numele aplicației, subtitlul „Analiză, validare și reconciliere” și semnătura by AI Accounting Hub.
// SAF-T Inspector 0.1.0 · ecranul de start · captură din aplicație

Articolul trecut se încheia cu o aplicație care avea nume, formă și specificație, dar nicio linie de cod. Acum are și cod. Modulul 1 din SAF-T Inspector face un singur lucru deocamdată, dar îl face până la capăt: ia declarația D406 înainte să plece la ANAF și o întoarce în tabele pe care le puteți filtra, pivota și reconcilia.

Articolul e organizat ca un tur al aplicației. Întâi rularea completă, înregistrată. Apoi fiecare ecran pe rând, cu ce vedeți în el și de ce e acolo. La final, pe scurt, cum a fost construită, în ce forme o puteți descărca și ce garantează, respectiv ce nu garantează încă.

O rulare completă, înregistrată

Filmul urmărește o singură rulare, de la alegerea fișierului până la registrul deschis în Excel. Fișierul XML de transformat are aproximativ 3 GB (2,89 GB, mai exact) și este sintetic, generat cu Fabrica de fișiere prezentată mai jos. Toate cifrele din imagini, inclusiv denumirea firmei și codul fiscal, sunt inventate.

Două minute și jumătate, fără sonor. Procesarea e accelerată de două ori și scurtată, mențiunea apare pe ecran. În timp real, citirea și scrierea celor 2.923.366 de rânduri au durat aproximativ 11 minute, cu bifa pentru formatul Excel Binary Workbook activă.

Cifrele de timp sunt orientative. Durata depinde de mărimea fișierului, de câte secțiuni bifați, de formatul ales pentru registre și de stația pe care rulează. Un fișier de câteva sute de MB se termină în câteva minute, unul de mai mulți GB poate ajunge la 10 - 15 minute, după cum se vede.

Ecranul de start

Captura din capul articolului este ecranul pe care îl vedeți la prima deschidere, înainte de orice fișier. E gândit pentru colegul care deschide aplicația fără manual: spune în patru pași ce urmează (alegi fișierele, scanezi și verifici, procesezi și salvezi, vezi rezultatele), ce se produce la final și cât durează, apoi vă lasă să trageți fișierele XML direct în zona marcată cu roșu.

Fereastra are patru panouri, numerotate în ordinea în care le folosiți. Panoul 1 stă în stânga, panoul 4 în dreapta, iar 2 și 3 sunt benzile orizontale din mijloc. Oricare se strânge sau se extinde, deci pe un monitor mic vedeți doar ce vă interesează în acel moment. Bara de jos arată tot timpul trei lucruri: starea rulării, schema folosită (v249_2025, schema oficială în vigoare) și mențiunea „Lucrează local, fără internet”.

Ultima mențiune e una de fond, nu de formă. Aplicația nu trimite nimic nicăieri. Un fișier SAF-T conține toată contabilitatea firmei, iar el nu pleacă de pe calculatorul pe care îl deschideți.

1 · Selecție și setări

Panoul 1, Selecție și setări: fișierul ales, tipul declarației Lunară, Active sau Stocuri, folderul de rezultate, spațiul disponibil, cele două opțiuni și butonul Verifică.
Panoul 1. Fișierul ales, tipul declarației, folderul de rezultate și cele două opțiuni. Nimic nu pornește până nu apăsați Verifică.

Aici se pregătește rularea, în cinci mișcări:

  • Adaugă fișiere XML. Unul sau mai multe. În cazul raportării modale, când declarația e transmisă în mai multe fișiere, aplicația le recunoaște singură, verifică dacă aparțin aceleiași declarații și le pune în ordine. Lângă fiecare fișier apare mărimea lui, iar după verificare și poziția în secvență, de exemplu „segment 1 din 1”.
  • Tipul declarației: Lunară, Active sau Stocuri. Nu e o setare, e un control. Alegeți ce credeți că aveți în mână, iar aplicația compară cu tipul scris în antetul fișierului. Dacă nu se potrivesc, rularea nu pornește. Pare un detaliu, dar prinde exact greșeala tipică de la final de lună: fișierul corect, dar din alt folder.
  • Folderul de rezultate. Aplicația arată imediat spațiul disponibil pe disc, fiindcă un fișier de 3 GB produce, între baza de lucru și registre, mai mult de un GB de date.
  • Păstrează baza de lucru după închidere. Implicit, baza de lucru intermediară se șterge când închideți aplicația. Bifați doar dacă vreți să reveniți asupra aceleiași declarații fără să o mai citiți o dată.
  • Salvează registrele ca Excel Binary Workbook (.xlsb). Opțiunea care merită o explicație separată.

Formatul .xlsb, pe scurt

Excel Binary Workbook e formatul binar al Excel. Conține aceleași foi și aceleași date ca un .xlsx, dar le salvează compact. Microsoft confirmă că formatul binar produce fișiere mai mici, dar nu dă un procent, fiindcă diferența depinde de conținut. În rulările noastre, pe registrele mari dintr-o declarație D406, fișierele .xlsb au ocupat cu 50-70% mai puțin spațiu pe disc și s-au deschis mai repede.

Costul e dublu. Rularea durează ceva mai mult, fiindcă registrele se scriu întâi ca .xlsx, apoi Excel le salvează în format binar și le șterge pe cele vechi, deci pe stație trebuie să existe Excel. Apoi, unele sisteme de e-mail și unele politici de firmă blochează fișierele .xlsb. Dacă registrele rămân la voi, bifa merită. Dacă pleacă pe e-mail, verificați întâi că ajung.

2 · Scanare și verificare

Panoul 2, Scanare și verificare: în stânga datele firmei, verificările trecute și estimările de timp, în dreapta structura declarației cu numărul de linii pe fiecare secțiune și sub-secțiune.
Panoul 2. În stânga, ce a găsit aplicația și verificările dinainte de pornire. În dreapta, structura declarației, cu liniile numărate pe fiecare sub-secțiune. 2,89 GB scanați în 21,6 secunde.

Scanarea e o trecere rapidă prin fișier, făcută înainte de orice prelucrare. Scopul ei e simplu: să aflați ce aveți în față înainte să așteptați zece minute.

În stânga, trei blocuri. Descoperiri: societatea, codul fiscal, perioada, tipul declarației, versiunea fișierului, numărul de segmente (fișierele unei raportări modale) și programul care a generat fișierul. Ultimul rând e mai util decât pare: când ceva arată ciudat în date, primul lucru de verificat e programul de contabilitate care le-a exportat. Verificări înainte de pornire: spațiul de nume al fișierului, secvența de segmente, potrivirea tipului declarației și spațiul pe disc. Toate patru trebuie să fie bifate cu verde. Estimat pentru ce ai bifat: cât va dura citirea, cât va dura scrierea și cât spațiu e nevoie. Estimările sunt necalibrate până la prima rulare completă pe stația respectivă, iar aplicația spune asta explicit, sub cifre.

În dreapta, structura declarației, ca un arbore: Header, MasterFiles cu cele douăsprezece sub-secțiuni, GeneralLedgerEntries și SourceDocuments cu cele cinci. Lângă fiecare, numărul de linii găsite. Legenda de sub arbore face distincția care contează: o sub-secțiune goală lipsește din fișier, una cu 0 e prezentă, dar fără înregistrări, iar una hașurată, cum e Taxonomies, nu se raportează în România. Tot aici bifați ce vreți exportat. Citirea nu depinde de bife, XML-ul se citește oricum întreg, o singură dată. Bifele decid doar ce se scrie în registre.

3 · Procesare și salvare

Panoul 3, Procesare și salvare, în tema deschisă, la 70%: rândurile scrise, debitul pe ultimele 60 de secunde, timpul rămas, memoria și procesorul folosite. Același panou de procesare în tema închisă, la 83%, cu registrul separat pentru GeneralLedgerEntries semnalat în lista „Necesită atenție”.
Panoul 3, în ambele teme. Comutatorul soare și lună din colțul din dreapta sus schimbă tema oricând, inclusiv în timpul unei rulări. Celelalte capturi din articol sunt în tema deschisă.

Panoul de procesare răspunde la o singură întrebare, cea pe care o pune oricine se întoarce la birou după o pauză: mai lucrează sau a terminat? Procentul mare se vede de la distanță, iar sub el stă faza curentă, citire sau scriere, cu bara ei proprie.

În dreapta, rândurile scrise din totalul celor citite, debitul pe ultimele 60 de secunde, timpul rămas cu ora estimată de final, timpul scurs și două indicatoare: memoria și procesorul. Indicatorul de memorie e cel mai grăitor. Pe un fișier de aproape 3 GB, aplicația a folosit în jur de 100 MB de RAM, dintr-un total de 15,49 GB. Fișierul nu se încarcă în memorie, se citește în flux, bucată cu bucată, și se scrie într-o bază de lucru pe disc. De aceea a putut fi gândită de la început pentru o stație de birou obișnuită, cu 8 GB de RAM.

În stânga, lista secțiunilor cu starea fiecăreia (în așteptare, citită, se scrie, scrisă) și caseta Necesită atenție, care se completează pe parcurs, nu abia la final. Butonul Anulează oprește rularea la finalul fișierului curent și șterge ce era început, deci nu rămân registre scrise pe jumătate, pe care cineva le-ar putea lua drept complete.

4 · Rezultate și export

Panoul 4, Rezultate și export: folderul cu cele 12 fișiere scrise, nota despre registrul separat în cinci părți și tabelul cu documente, rânduri, total declarat, total calculat și diferență pe fiecare secțiune.
Panoul 4. Unde s-au scris fișierele, ce a cerut atenție și conținutul declarației, cu totalurile declarate față de cele calculate.

Sus, banda roșie spune unde s-au scris fișierele: un folder nou, numit după codul fiscal, perioadă, tipul declarației și momentul rulării, ca două rulări să nu se suprapună niciodată. În exemplu, 12 fișiere, 356 MB.

Dedesubt, Necesită atenție. În exemplu apare o singură notă: GeneralLedgerEntries are 2.247.967 de rânduri, mai mult decât încape pe o foaie Excel (1.048.576 de rânduri), așa că a primit registrul lui, împărțit în cinci părți, lângă registrul principal. Registrul principal rămâne ușor de deschis, iar secțiunea mare nu se pierde și nici nu se trunchiază în tăcere.

Partea cea mai utilă e tabelul Conținutul declarației. Pe fiecare secțiune: câte documente, câte rânduri și unde se află în Excel. Pentru secțiunile care au totaluri de control în fișier (NumberOfEntries, TotalDebit, TotalCredit), aplicația pune alături totalul declarat, totalul recalculat din linii și diferența. În exemplu, toate diferențele sunt zero, cum e normal pentru un fișier sintetic. Pe un fișier real, aici se vede primul semnal că exportul din programul de contabilitate nu e coerent cu el însuși.

Butonul Previzualizează arată direct în aplicație, fără să porniți Excel, cel mult primele 10 rânduri ale oricărei secțiuni. E gândit doar ca să urmăriți structura: ce coloane are secțiunea și cum arată datele. Fișierul întreg se găsește în folderul de rezultate. Jos, Deschide folderul și Deschide raportul. În dreapta, Scrie CSV și Scrie Parquet. Cele două formate se cer după rulare și se scriu din baza de lucru, fără să recitiți XML-ul. CSV e pentru orice alt program, Parquet pentru arhivă sau pentru Power BI.

Raportul de rulare și registrul Excel

Fiecare rulare lasă în folder, pe lângă registre, un raport. Se scrie în Word și, dacă Word e instalat pe stație, și în PDF. Are opt pagini, de la rezumatul verificărilor până la conținutul detaliat al declarației. E documentul pe care îl atașați la dosarul lunii, ca dovadă că fișierul a fost deschis și citit înainte de depunere.

Pagina 5 din raportul de rulare, Conținutul declarației: pentru fiecare secțiune prezența, numărul de documente, linii, coloane, câmpuri completate, ponderea în totalul liniilor și gradul de completare.
Raportul de rulare, pagina 5. Pe fiecare secțiune, cât cântărește în totalul liniilor și cât de completă e.

Pagina 5 e cea la care merită să vă opriți. Pe lângă rânduri și documente, arată două măsuri care nu apar nicăieri altundeva: ponderea în linii, adică cât din declarație înseamnă fiecare secțiune, și gradul de completare, adică ce parte din câmpurile posibile au fost efectiv completate. În exemplu, GeneralLedgerEntries înseamnă 76,9% din linii și are un grad de completare de 90%. Un grad de completare neobișnuit de mic pe o secțiune e, de regulă, un câmp pe care programul de contabilitate nu îl exportă.

Foaia de copertă a registrului Excel: identificarea declarației, starea verificărilor și lista secțiunilor din registru, cu legături către fiecare foaie.
Registrul Excel, foaia de copertă. Cine, ce perioadă, ce verificări au trecut și unde găsiți fiecare secțiune.

Registrul Excel începe cu o foaie de copertă. Sus, identificarea declarației și versiunea aplicației care l-a produs. La mijloc, starea verificărilor. Un rând de aici spune deschis ce nu face încă aplicația: Teste de consistență ANAF: neimplementate încă în modulul 1. Jos, lista secțiunilor, cu numărul de linii, de coloane și de câmpuri completate, plus o legătură care deschide direct foaia fiecărei secțiuni. Pentru secțiunile mutate în registru separat, legătura trimite la fișierele respective.

Datele din foi sunt aplatizate din XML: fiecare structură repetată din fișier devine rânduri și coloane, cu numele câmpurilor din schema oficială. Se filtrează, se pivotează și se leagă cu balanța exact ca orice alt tabel Excel.

Fabrica de fișiere D406

Aplicația a fost construită și verificată fără niciun fișier XML real. Regula a fost stabilită de la începutul seriei: în discuțiile cu un asistent AI nu intră date reale de tranzacții. D406 e cazul extrem, fiindcă un fișier SAF-T conține, practic, toată contabilitatea companiei: planul de conturi, clienții și furnizorii, toate notele contabile, toate facturile. Dacă nu ați pune așa ceva într-un instrument public, nu îl puneți nici ca exemplu de test.

Fără fișiere reale, era nevoie de altceva pe care să construim și să testăm. Așa a apărut un instrument separat, Fabrica de fișiere sintetice D406. Generează declarații cu valori inventate, dar construite după schema oficială și după regulile de completare din ghidul ANAF. Nu sunt fișiere de umplutură cu o structură aproximativă. Aplicația trebuie să le trateze exact ca pe unele reale.

Fereastra Fabricii de fișiere sintetice D406: mărimea declarației, numărul de linii pe secțiuni, câmpurile opționale, raportarea modală pe segmente și setările de lună, sămânță și folder de ieșire.
Fabrica de fișiere sintetice D406. O singură fereastră, cinci blocuri de setări, un buton Generează. În captură, un fișier de aproximativ 2 GB în curs de scriere.

Fereastra are cinci blocuri:

  1. Mărimea declarației. Trei puncte de plecare: mică, aproximativ 200 MB; medie, aproximativ 700 MB; mare, aproximativ 2 GB.
  2. Numărul de linii, modificabil. Facturi de vânzare, facturi de achiziție, plăți și note contabile suplimentare din jurnalul de diverse, de exemplu salarii, 641 = 421. Notele din registrul jurnal ies din documente, fiecare factură și plată își aduce nota ei, iar cele suplimentare fac registrul să crească separat.
  3. Câmpuri opționale. Pe registrul jurnal și pe facturi: identificatori de sistem, tipul tranzacției, centrul de cost, documentul sursă, perioada livrării, motivul scutirii, adresa de livrare și altele. Fiecare bifă adaugă structura întreagă.
  4. Raportarea modală. Un singur fișier sau declarația împărțită în 2, 3 sau 5 segmente, cu antet identic în toate și fără ca o sub-secțiune să fie ruptă în două fișiere, după regula din ghidul D406.
  5. Setări. Luna, folderul de ieșire, numele fișierului și sămânța. Aceeași sămânță produce exact același fișier, deci un test se poate repeta identic oricând.

Cele trei mărimi sunt doar puncte de plecare. Cu mai multe înregistrări scrise de mână în blocul 2 și cu mai multe câmpuri opționale bifate, fișierul final trece de 2 GB și poate ajunge la 3-5 GB, cât aveți nevoie ca să vedeți cum se comportă o aplicație la limită. Fișierul din filmul de mai sus a ieșit exact așa, la 2,89 GB.

Fabrica se descarcă separat, mai jos. Merită luată și dacă nu folosiți SAF-T Inspector: e punctul de plecare pentru oricine vrea să-și construiască propria aplicație pe D406 fără să atingă date reale.

Cum a fost construit SAF-T Inspector, pe scurt

Tot codul aplicației SAF-T Inspector a fost scris în conversații cu Claude Opus 5.5, în proiectul de lucru descris în articolul despre spațiul de lucru, pornind de la PRD-ul tehnic. Fiecare conversație de implementare a primit specificația, iar fiecare bucată de cod a fost verificată pe criteriile de acceptare scrise înainte, pe fișiere generate de Fabrică.

Limbajul este Python. Dintre limbajele folosite în practică, e cel mai apropiat de limbajul natural: un fragment de cod se citește aproape ca o frază, deci poți urmări ce face aplicația chiar dacă nu știi să programezi. E și limbajul pe care asistenții AI îl scriu cel mai sigur, fiindcă au văzut cel mai mult cod în el, și are deja biblioteci mature pentru tot ce cere D406: XML, Excel, baze de date. Bibliotecile au fost ținute la minimum, fiindcă fiecare dependență în plus se plătește la mărimea pachetului, la timpul de pornire și la riscul de a fi blocată de antivirus:

ComponentăLa ce folosește
PySide6Fereastra aplicației: o aplicație desktop nativă, fără browser și fără server
lxmlCitirea fișierului XML în flux, bucată cu bucată, și lucrul cu schema oficială XSD
SQLiteBaza de lucru intermediară, pe disc, care ține milioane de rânduri fără să încarce memoria
XlsxWriterScrierea registrelor Excel, tot în flux, cu consum mic de memorie
DuckDBExportul în Parquet, direct din baza de lucru
python-docxRaportul de rulare în Word
pywin32Legătura cu Word și Excel, dacă sunt instalate: raportul în PDF și registrele în .xlsb

Nicio componentă nu are nevoie de internet și nimic nu se instalează pe stație. Totul vine în pachet.

Nu totul a mers după plan

PRD-ul a fost punctul de plecare, nu un contract bătut în cuie. Pe măsură ce codul a început să ruleze pe fișiere reale ca mărime, câteva decizii s-au răsturnat. Patru merită spuse.

  • Citirea XML-ului. Specificația prevedea biblioteca standard din Python, ElementTree, fără nicio dependență în plus. Un test pe un fișier mare a blocat însă totul, așa că citirea a trecut pe lxml, o bibliotecă construită pentru fișiere XML mari, care lucrează și direct cu schema oficială.
  • Raportul de rulare. Specificația cerea un raport generat direct în PDF, cu o bibliotecă dedicată, tocmai ca să nu depindă de Word. Am renunțat la ea: raportul se scrie acum în Word, un format pe care orice contabil îl poate deschide și completa, iar PDF-ul se produce din Word, atunci când Word e instalat pe stație.
  • Exportul. Specificația cerea ca fiecare rulare să producă obligatoriu toate cele trei formate: Excel, CSV și Parquet. După primele rulări ne-am dat seama că ieșeau prea multe fișiere, iar cele mai multe nu erau deschise niciodată. Acum registrele Excel se scriu la rulare, iar CSV și Parquet au butoanele lor, separate. Sunt utile pentru prelucrări ulterioare, în alte programe sau în Power BI, iar când ai nevoie de ele le generezi dintr-un click, din baza de lucru.
  • Pornirea. Specificația avea un singur buton START și o fereastră în trei zone. Am ales să extindem pașii: întâi Verifică, apoi Procesare, în patru panouri. Motivul e că vrem să vedem cât mai mult din proces și să avem cât mai multe opțiuni înainte de prelucrare. De aici vine și structura declarației afișată ca arbore, exact în ordinea din ghidul ANAF, ca să rămânem tot timpul conectați la formatul și la structura declarației.

Mai e un lucru pe care specificația nu avea cum să-l rezolve dinainte: mare parte din partea vizuală și din mișcarea aplicației, adică ce vezi pe ecran, în ce ordine și cum reacționează fereastra, s-a putut ajusta abia după teste reale. Nu dintr-o singură cerere, ci prin multe iterații cu asistentul AI: rulezi, te uiți, spui ce nu merge, rulezi din nou.

Asta e, de fapt, partea cea mai utilă din tot procesul: specificația nu te scutește de surprize, dar îți spune exact ce anume s-a schimbat și de ce, în loc să descoperi abia la final că aplicația face altceva decât credeai.

Un fișier sau un folder

Aplicația trebuia să circule între calculatoare fără instalări de limbaj sau de programe ajutătoare, iar mediile de lucru diferă. De aceea există în două forme, cu același conținut:

Un singur fișierFolder
Ce descărcați.zip de 39,6 MB, cu un singur .exe de 39,8 MB.zip de 54,2 MB, care se dezarhivează în 141,7 MB
Puncte forteUn singur fișier de mutat sau de trimis, nimic de despachetat, bun pentru „copiez și rulez”Pornește repede; componentele sunt la vedere, deci o excludere în antivirus sau o verificare a conținutului e ușoară
Puncte slabeSe despachetează la fiecare pornire în folderul temporar, deci pornește mai încet; e oprit mai des de antivirus și poate fi blocat pe stațiile cu politici stricteUn folder întreg de mutat; cineva poate șterge din greșeală fișiere din el
Când o alegețiTransfer rapid între calculatoare, demonstrații, folosire ocazionalăFolosire zilnică, stații cu restricții

În varianta folder, aplicația se pornește din SAF-T Inspector.exe, aflat direct în folderul principal. Subfolderul componente nu se atinge.

Înainte de descărcare, un avertisment. Riscul ca aplicația să fie blocată de antivirus sau de politicile de securitate ale firmei este destul de mare, pentru că executabilele nu sunt semnate digital. Am analizat opțiunile de semnare, dar implică niște costuri care depășesc bugetul acestui proiect. Oricum, speranța noastră este ca fiecare cititor care depune declarația să-și fi construit deja propria aplicație, urmând pas cu pas ce am scris în articolele seriei.

Concret, la prima pornire Windows poate afișa ecranul albastru SmartScreen, „Windows a protejat PC-ul”. Nu e un semn că fișierul e infectat, ci doar că Windows nu îl cunoaște încă. Apăsați Mai multe informații, apoi Rulați oricum. Pe stațiile administrate de departamentul IT, butonul poate lipsi; atunci e nevoie de o excepție de la administrator, iar varianta folder se aprobă de obicei mai ușor.

Descărcare

Ce garantează programul, pe scurt. Modulul 1 este implementat, adică face ce spune specificația, și verificat, adică a trecut criteriile de acceptare pe fișiere sintetice, de la câteva sute de MB până la aproape 3 GB. Pasul al treilea, calibrarea, îl face fiecare pe fișierele lui: rulați aplicația pe o lună deja depusă și acceptată, apoi comparați ce vedeți cu ce știți din contabilitate, înainte să vă bazați pe ea într-o lună nouă.

// Resurse descărcabile

SAF-T Inspector 0.1.0 și Fabrica de fișiere D406

Trei pachete .zip, pentru Windows. Se dezarhivează și se rulează, fără instalare și fără internet.

SAF-T Inspector, un singur fișier Un .exe, 39,6 MB arhivat. Pentru mutat ușor între calculatoare.
Descarcă
SAF-T Inspector, folder Executabil plus componente, 54,2 MB arhivat. Pentru folosire zilnică.
Descarcă
Fabrica de fișiere sintetice D406 Generatorul de declarații de test, 12,8 MB arhivat. Pentru cine vrea să-și construiască propria aplicație fără date reale.
Descarcă

Versiunea 0.1.0, pe schema v249_2025. Implementat și verificat pe date sintetice. Calibrarea se face de fiecare utilizator, pe o lună proprie deja depusă și acceptată.

Ce urmează

Modulul 1 deschide fișierul și îl pune pe masă. Nu spune încă dacă ce e în el e corect. Asta e treaba modulului 2: cele 33 de teste de consistență publicate de ANAF, rulate local, pe același fișier, cu aceeași regulă ca până acum: dacă rezultatul nostru diferă de cel al aplicației oficiale, presupunerea de pornire e că noi greșim. Rândul care spune astăzi „neimplementate încă” pe coperta registrului se va schimba atunci.

Un lucru trebuie spus limpede. Scopul seriei SAF-T nu a fost să vă dăm o aplicație, ci să arătăm drumul, pas cu pas, de la documentele oficiale până la un program care rulează. SAF-T Inspector se poate descărca strict ca exemplu de rezultat al pașilor descriși în articolele anterioare, nu ca produs cu asistență.

Dacă ați construit-o și vreți să o prezentați într-un articol separat aici, pe site, scrieți-ne intenția prin formularul de contact.

#SAF-T #D406 #vibe-coding #Python #Excel
Articolul #037

Pe aceeași temă.

Arhiva articolelor