Fattura elettronica for dummies
Se avrai la pazienza e la voglia di leggere quanto segue attentamente, sarai in grado di compilare facilmente le tue fatture elettroniche senza l'ausilio di alcun software e quindi senza nessuna spesa.
Sono sicuro che ogni collega avvocato, anche se non esperto di informatica, sarebbe in grado di comprendere intuitivamente quello che segue:
<persone>
<avvocato>
<nome>Tizio</nome>
<cognome>Rossi</cognome>
<ruolo>Fondatore</ruolo>
</avvocato>
<avvocato>
<nome>Caio</nome>
<cognome>Bianchi</cognome>
<ruolo>associato</ruolo>
</avvocato>
<praticante>
<nome>Sempronio</nome>
<cognome>Verdi</cognome>
</praticante>
<segretario>
<nome>Average</nome>
<cognome>Joe</cognome>
</segretario>
</persone>
</studio>
E' evidente che si tratta di una immaginaria lista di persone che compongono un immaginario studio legale. O, più precisamente, dei dati relativi a quelle persone.
Questo insieme di dati, tuttavia, presenta una particolarità: ho utilizzato un sistema per dare a quei dati una struttura ben precisa.
In questo modo, ho creato un file XML.
Questa sigla sta per "eXtensible Markup Language" cioè "linguaggio marcatore estensibile".
Un linguaggio marcatore è un insieme di regole che serve a rappresentare un testo. Quando dico "rappresentare" mi riferisco tanto alla presentazione grafica del testo (impaginazione), quanto alla sua struttura ed al suo significato (semantica).
Usiamo i linguaggi marcatori perchè essi permettono di rendere un testo "leggibile" in maniera precisa da un software.
Per esempio il testo che stai leggendo in questo momento è presentato con questa precisa impaginazione perchè il tuo browser sta applicando le regole che io ho scritto per il mio sito, utilizzando il linguaggio di markup che si chiama HTML (HyperText Markup Language, linguaggio marcatore per ipertesti).
Nell'esempio dello studio immaginario, cioè nel caso dell'XML, lo scopo del linguaggio non è di impaginare un testo, ma di dargli una struttura ed un significato ben precisi.
Sia che si voglia impaginare un testo, sia che si voglia dargli struttura e preciso significato, il risultato si ottiene "marcando" il testo.
La "marcatura (markup)" in tipografia è l'abitudine di inserire delle annotazioni nelle parti di un testo che devono essere corrette, per segnalarle al tipografo.
In informatica la marcatura avviene con l'inserimento di "tags" (letteralmente: etichette).
Avrete notato che nella lista delle persone dello studio ricorrono alcune parole racchiuse tra i simboli maggiore e minore, a volte precedute da uno slash: <avvocato></avvocato> ecc. ecc.
Ecco, questi sono i tags.
Quando il software progettato per "leggere" del testo redatto in un linguaggio marcatore incontra un tag, capisce che deve applicare la regola contenuta in quel tag al testo a cui il tag si riferisce.
Quando nel tag non è presente lo slash, allora esso indica il punto a partire dal quale la regola deve essere applicata; quando nel tag è presente lo slash, allora esso indica il punto in cui l'applicazione della regola deve terminare. Nel primo caso si parla di tag di apertura, nel secondo, di tag di chiusura.
I tags possono essere annidati l'uno dentro l'altro, così dando la struttura voluta al documento.
Nel linguaggio XML si possono impostare dei tags personalizzati, ed è per questa caratteristica che il linguaggio si dice eXtensible, cioè estensibile.
Nell'esempio dello studio immaginario, c'è un tag che ho chiamato "studio" che raccoglie tutti gli altri. Subito dopo c'è il tag "persone" che raccoglie i tags avvocato, praticante e segretario. Poi ci sono due tags avvocato che a loro volta hanno al loro interno i tags nome, cognome e ruolo. Mentre i tags praticante e segretario contengono solo i tags nome e cognome. Da sottolineare la struttura gerarchica.
Se a questo punto dovessi progettare un software per leggere quella lista (magari per presentare dei risultati di ricerca ad un cliente che volesse sapere chi fa parte dello studio) il compito sarebbe estremamente facile grazia alla struttura ed al significato precisi che ho potuto attribuire ad ogni singola porzione di testo, utilizzando l'XML.
Per esempio, nel momento in cui quel software, "leggendo" il documento, incontrasse la parola "Bianchi" saprebbe immediatamente che si tratta di un cognome perchè essa è racchiusa tra i tags di apertura e chiusura <cognome></cognome>; che è il cognome di un avvocato e non di un praticante o segretario, perchè è racchiusa tra i tags <avvocato></avvocato>; che questo avvocato è un associato e non il fondatore dello studio, perchè tra i tags <ruolo></ruolo> che nella struttura del documento si trovano allo stesso livello è presente la parola "associato" e non "fondatore".
Ovviamente saprebbe che si tratta di una <persona></persona> (immaginate di volere inventariare anche gli oggetti presenti in uno studio) e che questa persona fa parte dello <studio></studio>.
Con la fattura elettronica succede esattamente la stessa cosa.
Essa contiene gli stessi identici dati che inseriamo nella fattura tradizionale. La differenza è che questi dati vengono strutturati come ho fatto con la lista di persone dello studio.
In questo modo la fattura può essere facilmente letta da software della PA.
Immaginate qualcosa del genere:
<numero>1/2015</numero>.
<emittente>
<nome>Mario</nome>
<cognome>Rossi</cognome>
</emittente>
ecc. ecc.
</fattura>.
Di solito si da al file una struttura anche visiva, spostando man mano verso destra gli elementi contenuti dentro altri elementi, per renderlo più facilmente leggibile all'occhio umano, ma il software legge il file come fosse scritto tutto su un'unica riga, in quanto comprende la struttura semplicemente processando i tags di apertura e chiusura.
Per creare un file XML basta semplicemente aprire un editor di testo, come notepad (blocco note) di windows e scriverlo. Questo perchè un file XML, così come un file HTML o anche un file scritto in un linguaggio di programmazione come C++, PhP o Javascript altro non è che un file di testo che sarà poi interpretato da un software.
Non vanno bene, però i programmi di videoscrittura più complessi come quelli contenuti nelle suite office, openoffice ecc. ecc. Deve trattarsi di un editor di testo puro.
Inoltre bisogna ricordare di inserire un particolare tag di sola apertura (quindi non seguito da un tag di chiusura) prima di tutti gli altri, questo:
<?xml version="1.0" encoding="UTF-8"?>
Questo tag serve ad avvertire il software che quello che segue è un file XML, tutto qui.
Una volta scritto il testo, bisogna scegliere l'opzione "salva con nome" dal menù "file" e nel campo "nome file" cambiare le tre lettere dopo il "." da txt a xml.
Ovviamente notepad non è un editor di testo ottimizzato per scrivere file utilizzando linguaggi di markup nè di programmazione. Pertanto suggerisco a chi si voglia cimentare di scaricare uno dei tanti editor, spesso gratuiti, che si trovano in rete.
In particolare suggerisco notepad++ o Komodo Edit.
Sono entrambi gratuiti. Il secondo in particolare è la versione gratuita del più completo Komodo IDE.
Potete provare a redigere una fattura elettronica seguendo lo schema pubblicato sul sito della PA.
Io l'ho trovato molto comodo. Ho redatto una fattura di prova che ha superato il test di validità messo a disposizione qui
Nei prossimi giorni ho in programma di sviluppare un piccolo tool gratuito che permetta agli avvocati semplicemente di inserire i dati in un form e di potere scaricare il file XML, così poi da doverlo solo firmare digitalmente ed inviare, senza alcuna ulteriore spesa.
Suggerisco pertanto di inserire questo sito tra i favoriti o di seguire la pagina facebook
Trovo assurdo, infatti, che si debba pagare anche solo poche euro per una cosa così semplice.
- blog di Avv. Danilo Mongiovì
- 6751 letture