Avantajele utilizării SAF-T DLL
Instalarea și actualizarea SAF-T DLL
Configurarea operației SAF-T în SOFTONE
Procesarea datelor pentru generarea xml
Ce este SAF-T DLL
SAF-T DLL reprezintă o versiune a aplicației externe SAF-T, implementată sub forma unui fișier .dll. Aceasta păstrează funcționalitățile aplicației externe, dar permite integrarea procesului SAF-T direct în SOFTONE.
Principalul scop al acestei implementări este integrarea SAF-T în SOFTONE și salvarea în baza de date a informațiilor utilizate pentru generarea declarației D406. Astfel, datele SAF-T pot fi consultate și verificate direct în SOFTONE, facilitând identificarea eventualelor neconcordanțe între informațiile raportate în SAF-T și datele existente în modulele comerciale și financiar-contabile.
Avantajele utilizării SAF-T DLL
Unul dintre principalele avantaje este posibilitatea efectuării unui update incremental. După încărcarea inițială a datelor, nu mai este necesară procesarea tuturor informațiilor la fiecare rulare, ci doar actualizarea datelor noi sau modificate.
Procesarea prin SAF-T DLL poate avea o durată ușor mai mare comparativ cu vechea aplicație externă. În schimb, toate datele procesate sunt salvate în baza de date SOFTONE, ceea ce permite identificarea și investigarea mult mai ușoară a eventualelor erori sau neconcordanțe.
Instalarea și actualizarea SAF-T DLL
Atât instalarea inițială, cât și actualizările ulterioare ale fișierului SAF-T DLL se vor realiza de pe platforma Product. Pentru preluarea fișierului, se accesează ultima versiune disponibilă, se selectează Details, iar fișierul CST se descarcă și se încarcă în SOFTONE din meniul Unelte → S.D.K. → Customization Tools → Custom Administration. După încărcare, fișierul va fi disponibil în secțiunea SDK Code Files. Pentru actualizarea la o versiune nouă, recomandăm ștergerea cache-ului, atât în cazul instalărilor Cloud, cât și On-Premise, pentru a evita eventualele probleme la suprascrierea noului fișier DLL.
Ulterior, se are în vedere implementarea unui mecanism de actualizare automată la apariția unei versiuni noi, cu acordul utilizatorului.
Atenţie! Pentru utilizarea SAF-T DLL, este necesară actualizarea bazei de date la versiunea SOFTONE *623.11715 sau la o versiune ulterioară.
Configurarea operației SAF-T în SOFTONE
Pentru utilizarea SAF-T DLL trebuie creată în meniul SOFTONE operația specifică SAF-T.
Prin intermediul acestei operații se realizează procesarea și salvarea datelor SAF-T în baza de date. Tot de aici pot fi verificate interogările executate, log–urile procesului și testele de consistență.
Această operație reprezintă echivalentul rulării procesului SAF-T din aplicația externă, cu avantajul suplimentar că informațiile rezultate sunt integrate și păstrate în baza de date SOFTONE pentru verificări și analize ulterioare.
.S1ROSaft.dll;MainForm
În urma procesului de rulare SAF-T, documentele salvate în baza de date pot fi verificate accesând meniul standard Proceduri companie → Înregistrări SAF-T → Înregistrări SAF-T.
Prezentare consolă
|
Update total |
Pe baza interogărilor definite, datele aferente documentelor, precum informațiile despre parteneri și valorile documentelor, sunt salvate în tabelele SAFTHEAD şi SAFTLINES. La fiecare rulare, aceste date sunt suprascrise integral, procesarea fiind reluată de la zero, indiferent dacă informațiile respective au fost procesate în cadrul unor rulări anterioare.
|
|
|
Update incremental |
Pe baza interogărilor definite, în tabelele SAFTHEAD și SAFTLINES sunt inserate doar documentele noi, iar pentru documentele existente sunt actualizate doar informațiile care au fost modificate.
|
|
|
Interogări |
Pentru fiecare rulare SAF-T se pot verifica modulele pentru care a fost efectuată procesarea, durata procesării, precum și interogarea SQL (SQL Query) executată pentru fiecare modul în parte.
|
|
|
Log |
Log cu privire la eventuale erori tehnice. Acesta este salvat fizic pe disc, în fişier txt.
|
|
|
Teste consistenţă |
Poate fi consultată lista testelor de consistență disponibile, iar în urma executării acestora pot fi identificate și verificate testele care nu îndeplinesc condițiile necesare de validare.
|
|
|
Filtrare |
În această secțiune sunt disponibile filtrele pentru definirea perioadei pentru care se realizează procesarea datelor aferente declarației D406, precum și informațiile din antetul declarației, care identifică societatea și stabilesc tipul de raportare.
|
|
|
Opţiuni |
Contul contabil este bazat pe macheta de note contabile |
Dacă se dorește ca, în aplicația SAF-T, conturile să fie preluate din fișele entităților (Articole / Servicii / Mijloace fixe / Debite și credite), și nu din machetele de note contabile, așa cum se întâmplă în mod implicit, această bifă trebuie debifată.
|
|
Documentele de retur vor fi transmise cu semnul minus în fişierul XML |
Pentru ca documentele de retur să fie transmise cu semnul minus în fișierul XML, în aplicația SAF-T trebuie păstrată această opțiune, care este activată în mod implicit. O altă condiție necesară pentru transmiterea documentelor de retur cu semnul minus și pentru calcularea corectă a rulajelor este ca comportamentul documentelor să fie configurat cu una dintre următoarele valori: 151, 152, 154 sau 102.
|
|
|
Totaluri categorii TVA |
Când această opțiune este activată, în secțiunea Taxe din SAF-T sunt calculate și afișate separat totalurile corespunzătoare fiecărei categorii de TVA.
|
|
|
Entităţi de actualizat |
Sunt selectate modulele care vor fi incluse în xml. |
|
|
Generează xml |
Generează xml pe baza datelor procesate. |
|
|
Generează csv SBS |
În curs de dezvoltare |
|
|
Generează SBS |
În curs de dezvoltare |
|
|
Declaraţii SBS |
În curs de dezvoltare |
|
|
Setări |
Secțiunea Setări conține parametrizările privind modalitatea de export și validare a fișierului XML prin DUK, configurarea mediului SBS, în cazul în care acest modul a fost achiziționat, precum și opțiunile pentru detalierea logului aferent erorilor identificate în procesul de validare. ℹ️ Opțiunea [Online] este implicit debifată. În acest caz, la selectarea „Update incremental” sau „Update total”, datele documentelor sunt salvate în baza de date. Dacă opțiunea [Online] este bifată, butoanele de update nu efectuează salvarea datelor în baza de date. Procesul funcționează similar aplicației externe: se generează fișierul XML, erorile sunt afișate în SOFTONE, iar utilizatorul poate identifica rapid documentele cu erori. Dacă, în urma generării și validării XML prin DUK, nu sunt identificate erori, se rulează testele de consistență. |
|
|
Log de actualizare cu statusul actualizarii aprcurgerii modulelor si inserarii in tabelele SAFTHEAD și SAFTLINES a datelor.
|
||
Procesarea datelor pentru generarea xml
La prima rulare, se va efectua un update total, pentru a prelua și procesa toate datele disponibile necesare raportării SAF-T. Evoluția procesării poate fi urmărită în log, iar la finalizarea acesteia va fi afișat un mesaj de confirmare.
În cazul în care sunt efectuate modificări asupra documentelor existente, sunt introduse documente noi sau sunt șterse documente, se va utiliza opțiunea Update incremental, pentru a procesa doar modificările intervenite și a reduce astfel timpul de procesare.
Pentru validarea datelor prin DUK Integrator, se va accesa butonul Generare XML.
În cazul în care sunt identificate erori în procesul de validare, fișierul care conține detaliile acestora va putea fi accesat din folderul de instalare SOFTONE.
Pentru identificarea și corectarea mai ușoară a erorilor, se va accesa butonul Corecție erori.
În cazul în care erorile sunt generate de date lipsă sau incorecte din nomenclatoare, precum Terți sau Articole, prin selectarea liniei corespunzătoare erorii vor fi afișate detaliile terțului sau articolului care necesită verificare și corectare.
În cazul erorilor aferente facturilor, va fi disponibil un link de redirecționare către documentul corespunzător din SOFTONE, pentru a facilita verificarea și corectarea acestuia.
După corectarea erorilor identificate, se va efectua un Refresh, urmat de un Update incremental. Ulterior, se va accesa din nou butonul Generare XML, pentru regenerarea și validarea fișierului XML pe baza datelor corectate. Dacă, în urma validării fișierului XML prin DUK, nu sunt identificate alte erori, se vor rula testele de consistență.
Pentru a consulta lista completă a înregistrărilor salvate în tabelele SAFTHEAD și SAFTLINES, se va accesa meniul standard Proceduri companie→ Înregistrări SAF-T→ Înregistrări SAF-T.
Pentru verificarea punctuală, la nivel de document, a datelor preluate în SAF-T, se va accesa, din bara laterală, opțiunea Operații → Înregistrare SAF-T.
Această opțiune de verificare este disponibilă în următoarele module: Vânzări, Achiziții, Tranzacții diverse, Documente de gestiune, Tranzacții numerar și bancă, Compensări și Documente ale mijloacelor fixe.
Câmpurile din tabelele SAFTHEAD și SAFTLINES, cu valorile prezentate în figurile de mai sus din „Înregistrare SAFT”, pot fi utilizate pentru verificarea documentelor din SOFTONE.
Astfel, se pot realiza cross-check-uri pentru identificarea eventualelor erori, precum documente neincluse în declarație sau diferențe între valorile declarate și cele din SOFTONE.
Mai jos este prezentat un exemplu de browser care poate fi creat pornind de la valorile standard.
VMULTIQUERY
select
1 AS VMULTIQUERY , FINDOC,ACCOUNTID, NETTOTAL as SAFTNETTOTAL,GROSSTOTAL as SAFTGROSSTOTAL, TRADERID,
INVOICETYPE as SAFTINVOICETYPE, SELFBILLINGINDICATOR,COUNTRY, UPDDATE as SAFTUPDDATE
from SAFTHEAD
where FINDOC=A.FINDOC
SAFTERROR
CASE WHEN NOT EXISTS ( select FINDOC from SAFTHEAD where FINDOC=A.FINDOC ) THEN 0
WHEN EXISTS
(select FINDOC from SAFTHEAD where FINDOC=A.FINDOC and ( ACCOUNTID is null or TRADERID is null or
INVOICETYPE is null or COUNTRY is null or (ABS(SAFTNETTOTAL)-ABS(A.LNETAMNT)>0) or (ABS(SAFTGROSSTOTAL)-ABS(A.SUMLAMNT)>0) )
) THEN 1
ELSE 2
END
NETTOTALDIFF
Abs(SALDOC.SAFTNETTOTAL) – Abs(SALDOC.LNETAMNT)
TOTALDIFF
Abs(SALDOC.SAFTGROSSTOTAL) – Abs(SALDOC.SUMLAMNT)
SAFTERRORLINES
CASE WHEN EXISTS (
select 1 from SAFTLINES
WHERE FINDOC=A.FINDOC and
(
ACCOUNTID is null
or DEBITCREDITINDICATOR is null
or TAXTYPE is null
or TAXCODE is null
or CURRENCYCODE is null
or (CUSTOMERID is null and SUPPLIERID is null)
)
) then 1
WHEN NOT EXISTS (select 1 from SAFTLINES WHERE FINDOC=A.FINDOC) then 2
else 0
end
SAFTERRORDESC
select ISNULL(TRADERIDStatus,”)+ISNULL(ACCOUNTIDStatus,”)+ISNULL(COUNTRYStatus,”)+ISNULL(INVOICETYPEStatus,”)+ISNULL(POSTALCODEStatus,”)+ISNULL(SAFTNETTOTALStatus,”)+ISNULL(SAFTGROSSTOTALStatus,”) from
(
select
CASE WHEN ACCOUNTID is null then ‘Accountid is null,’ end as ACCOUNTIDStatus,
CASE WHEN TRADERID is null then ‘TRADERID is null,’ end as TRADERIDStatus,
CASE WHEN COUNTRY is null then ‘Document COUNTRY is null,’ end as COUNTRYStatus,
CASE WHEN INVOICETYPE is null then ‘INVOICETYPE is null,’ end as INVOICETYPEStatus,
CASE WHEN ABS(NETTOTAL)-ABS(A.LNETAMNT)>0 then ‘Difference in SAFTNETTOTAL,’ end as SAFTNETTOTALStatus,
CASE WHEN ABS(GROSSTOTAL)-ABS(A.SUMLAMNT)>0 then ‘Difference in SAFTGROSSTOTAL,’ end as SAFTGROSSTOTALStatus
from SAFTHEAD
WHERE FINDOC=A.FINDOC
)














