πŸ“ Sezionali Documenti

Multi-numerazione per tipo documento + multi-attività (art. 36 DPR 633/72) + cambio sezionale audit
v 1.0 /gestione-tabelle/sezionali

πŸ“œ Riferimenti normativi

1Cos'è un sezionale

Un sezionale è una numerazione progressiva indipendente per un Tipo Documento e un Anno. Ogni Tipo Documento (es. TD01 Fattura, TD04 Nota Credito, DDT, Preventivo) può avere uno o più sezionali per anno. Ognuno con:

  • Un codice identificativo (es. A, B, IT, EXP, RC) β€” può essere vuoto per il sezionale principale
  • Una descrizione (es. «Fatture estere UE», «Cartacee 2026», «Studio Naturopata»)
  • Un formato numero personalizzabile (template con placeholder)
  • Un progressivo proprio (ultimo numero usato)
  • Un flag default (uno solo per tipo+anno) β€” sezionale pre-selezionato sui nuovi documenti
  • Un'eventuale Multi-Attività collegata (per filtrare il dropdown nel form documento)

Il numero finale di un documento viene generato applicando il formato del sezionale al progressivo: es. formato {prog}_{anno}{suffisso} con prog=5, anno=2026, suffisso=F → 5_2026F.

Reset annuale automatico: il progressivo riparte da 1 il 1° gennaio di ogni anno (la chiave naturale del sezionale è tipoDocumentoId + anno + codice, quindi NOX crea automaticamente nuovi record per il nuovo anno alla prima emissione).
2Casi d'uso supportati
CasoSezionali necessariEsempio output
Single sezionale (default storico) Uno per tipo documento + anno, codice vuoto 5_2026F
Multi-attività (art. 36)
studio + ditta individuale
Un sezionale per ogni attività (campo Multi-Attività valorizzato) 5_2026F-STU
3_2026F-DI
Cartacee vs elettroniche Codice CART e EL con formati diversi CART-12/2026
5_2026F
Italia / Estero / Reverse Charge Codici IT, EXP, RC 5/2026 IT
2/2026 EXP
1/2026 RC
Filiale / agente / punto vendita Codice = sigla filiale (es. MI, RM, NA) 5/2026-MI
3/2026-RM
La scelta di adottare più sezionali deve essere coerente con i registri IVA e le scelte contabili. Verifica con il commercialista prima di introdurre numerazioni multiple, soprattutto per i casi art. 36 (multi-attività) che hanno conseguenze sui registri e sulla dichiarazione IVA.
3Pagina Sezionali

Accedi alla pagina da sidebar → AMMINISTRAZIONE → Multi-Attività e poi clicca «📁 Sezionali» in alto a destra. URL diretto: /gestione-tabelle/sezionali.

Lista sezionali

La tabella mostra una riga per ogni sezionale con le colonne:

ColonnaDescrizione
Tipo DocCodice del tipo documento (FT, NC, DDT, ...)
AnnoAnno di riferimento (reset progressivo automatico)
CodiceCodice sezionale o «β€” (default)» se vuoto
DescrizioneEtichetta libera per identificarlo
AttivitàEventuale Multi-Attività collegata (chip viola)
FormatoTemplate con placeholder, mostrato in monospace
AnteprimaEsempio del prossimo numero che verrà generato
Progr.Ultimo numero usato (rosso, monospace)
DefaultChip giallo «⭐ Default» se è il sezionale pre-selezionato
StatoAttivo / Disattivo (chip colorato)
Azioni✏ Modifica, ⎘ Duplica, 🔢 Override progr., 🗑 Elimina

Filtri

Sopra la tabella ci sono due filtri:

  • Tipo Documento: dropdown per restringere a un singolo tipo (default: tutti)
  • Anno: campo numerico (default: anno corrente)
  • Bottone «↺ Reset» per tornare ai default

Creazione/Modifica sezionale

Bottone «➕ Nuovo sezionale» in alto a destra. Il form richiede:

  • Tipo Documento * β€” obbligatorio, dalla lista dei Tipi Documento attivi
  • Anno * β€” obbligatorio (default: anno corrente)
  • Codice β€” vuoto = sezionale principale (un solo «default» per tipo+anno con codice vuoto). Può essere fino a 10 caratteri (es. A, IT, EXP, STUDIO)
  • Descrizione β€” etichetta libera per il riepilogo
  • Multi-Attività β€” opzionale, dalla tabella Multi-Attività
  • Formato Numero * β€” template con placeholder (vedi § 4)
  • Progressivo β€” di solito 0 (NOX lo incrementa). Modificabile per migrazione da altro gestionale
  • ⭐ Sezionale di default β€” checkbox: se attivo, NOX auto-demota tutti gli altri sezionali default per lo stesso tipo+anno
  • Attivo β€” se disattivato non appare nel dropdown del form documento
4Formato numero (placeholder)

Il formato è un template di stringa con placeholder racchiusi tra graffe. Quando il documento passa a EMESSO, NOX sostituisce ogni placeholder con il valore reale.

Placeholder disponibili

TokenSignificatoEsempio
{prog}Numero progressivo5, 142, 999
{anno}Anno a 4 cifre2026
{anno2}Anno a 2 cifre (ultime due)26
{suffisso}Suffisso predefinito del Tipo Documento (campo Suffisso predefinito su Tipi Documento)F, NC, FD, DT
{codice}Codice di questo sezionaleA, IT, EXP, MI

Esempi pratici

Formato: {prog}_{anno}{suffisso} 5_2026F (default storico, retrocompat)
Formato: {prog}/{anno}{codice} 5/2026A
Formato: {prog}-{anno2}-{codice} 5-26-EXP
Formato: FT-{prog}/{anno} FT-5/2026
Formato: {anno}/{prog}-{codice} 2026/142-IT

Anteprima dinamica

Mentre componi il formato, l'anteprima del numero sulla destra si aggiorna in tempo reale (con prog = ultimo+1) così vedi subito che aspetto avrà il prossimo documento emesso.

Caratteri ammessi nel formato: NOX accetta qualunque carattere stampabile, ma la maggior parte dei sistemi di consultazione fattura (XML SDI, software contabili) tollera solo A-Z 0-9 / - _ .. Evita spazi e caratteri speciali (€, &, parentesi) per non avere problemi di import/export.
5Drag & drop placeholder

Sotto il campo Formato Numero i placeholder appaiono come pillole grafiche con icona «grip» (⠿⠿) che indica la possibilità di trascinarle. Due modi per inserire un placeholder:

Modalità trascinamento

  1. Tieni premuto il mouse su una pillola — il cursore diventa grabbing (mano chiusa)
  2. Trascina sopra il campo Formato — il bordo dell'input diventa blu tratteggiato (drop-zone attiva)
  3. Rilascia il mouse — il token viene inserito alla posizione del cursore nell'input (o sostituisce la selezione se ne avevi una)
  4. Il cursore si riposiziona subito dopo il token inserito

Modalità click

Equivalente al drag ma più veloce: clicca sulla pillola e il token viene inserito alla posizione corrente del cursore (o accodato se l'input non ha focus).

Tip: posiziona il cursore esattamente dove vuoi inserire il placeholder, poi clicca o trascina. Se vuoi sostituire un token esistente, selezionalo prima (doppio click) e poi inserisci il nuovo — rimpiazza la selezione.
6Sezionale di default

Per ogni coppia (Tipo Documento, Anno) esiste al massimo un sezionale «default» — quello pre-selezionato sui nuovi documenti del tipo+anno.

Quando viene auto-creato

Se un Tipo Documento ha bisogno di emettere un documento ma nessun sezionale è ancora configurato per quell'anno, NOX ne crea automaticamente uno con:

  • Codice = vuoto (sezionale principale)
  • Formato = {prog}_{anno}{suffisso} (retrocompat con NOX precedente)
  • isDefault = true
  • Suffisso ereditato da Tipi Documento → Suffisso predefinito

Come si imposta

Nel form di modifica del sezionale, attiva il checkbox «⭐ Sezionale di default per questo Tipo + Anno». NOX demota automaticamente tutti gli altri sezionali default dello stesso tipo+anno (mai due default contemporanei, garantito dal backend).

Nel dropdown del form documento, il sezionale di default appare in cima alla lista ed è pre-selezionato. L'utente può comunque scegliere un sezionale diverso prima di emettere.
7Multi-Attività collegata (art. 36 DPR 633/72)

Quando un soggetto svolge più attività sotto la stessa Partita IVA con contabilità separata (art. 36), è possibile collegare ogni sezionale a una specifica Multi-Attività dal dropdown nel form sezionale.

Come configurare

  1. Vai in Multi-Attività e crea le attività (es. codice STUDIO «Studio Naturopatia», codice NEGOZIO «Vendita prodotti olistici»)
  2. Vai in Sezionali e crea un sezionale per ogni attività del Tipo Documento (es. due sezionali FT 2026: codice STUDIO con attività=Studio, codice NEG con attività=Negozio)
  3. Assegna ai soggetti l'attività corretta (futuro miglioramento — oggi si sceglie il sezionale manualmente nel form documento)

Vedi Manuale Multi-Attività per i dettagli sulla tabella attività e i casi d'uso normativi.

8Selezione del sezionale nel form documento

Nel form di un nuovo documento (e su documenti BOZZA), nella riga testata accanto a Tipo Documento / Data / Serie, NOX mostra il dropdown Sezionale:

  • Lista i sezionali attivi per il Tipo Documento + Anno scelti
  • Pre-seleziona il default automaticamente
  • Per ogni opzione mostra: codice / descrizione / attività / anteprima prossimo numero
  • Cambiando sezionale prima dell'EMESSO, NOX userà quello al momento dell'assegnazione del numero ufficiale

Lock su documenti già emessi

Su documenti già EMESSO / CONFERMATO / INVIATO, il dropdown è bloccato (cursore disabilitato + icona 🔒). Per cambiare sezionale a posteriori si usa il bottone «↺ Cambia» accanto al lucchetto (vedi § 9).

Best practice: scegli il sezionale prima di emettere il documento. Cambiarlo dopo è possibile ma comporta rinumerazione e log audit.
9Cambio sezionale a posteriori (audit log)

Su un documento già emesso, il bottone «↺ Cambia» apre un dialog modale che permette il cambio sezionale tracciato.

Procedura

  1. Apri il documento già emesso in modifica
  2. Clicca «↺ Cambia» accanto al lucchetto sul dropdown Sezionale
  3. Si apre un dialog modale con avviso ambra: «Operazione tracciata: il documento è già emesso. Il cambio comporta rinumerazione dal nuovo sezionale e viene registrato nello storico audit.»
  4. Seleziona il Nuovo sezionale dal dropdown (lo stesso tipo+anno; il sezionale corrente è disabilitato per evitare no-op)
  5. Inserisci una Motivazione testuale (opzionale ma consigliata, es. «Spostamento numerazione su sezionale dedicato Estero»)
  6. Clicca «Conferma cambio» — un secondo prompt nativo richiede ulteriore conferma (double-confirm)
  7. NOX rinumera dal nuovo sezionale, aggiorna il numero del documento, e registra il movimento nella tabella log_modifiche_sezionali

Cosa viene loggato

CampoDescrizione
documentoIdDocumento interessato
sezionaleVecchioIdSezionale di provenienza
sezionaleNuovoIdSezionale di destinazione
numeroVecchioNumero documento prima del cambio (es. 5_2026F)
numeroNuovoNumero generato dal nuovo sezionale (es. 1_2026F-EXP)
motivazioneMotivo testuale inserito dall'utente
utenteIdUtente che ha effettuato il cambio
createdAtTimestamp dell'operazione
Attenzione fiscale: il cambio sezionale a posteriori produce un «buco» nel sezionale di provenienza (numero non più assegnato a nessun documento). Per garantire la progressività senza buchi richiesta dall'art. 21 c.2 lett. b DPR 633/72, valuta se il cambio sia davvero necessario o se è meglio annullare il documento e riemetterlo correttamente. Verifica con il commercialista per i casi sensibili.
10Override manuale del progressivo

Dalla pagina Sezionali, sulla riga del sezionale, il bottone «🔢» permette all'admin di forzare manualmente il progressivo. Utile per:

  • Migrazione da altro gestionale: allinei il progressivo all'ultimo numero usato in precedenza, così il primo documento emesso in NOX continua la numerazione
  • Allineamento dopo errore: se hai cancellato dei documenti emessi e vuoi riprendere dal numero corretto

Comportamento

Cliccando il bottone, si apre un prompt che richiede il nuovo valore. Conferma e NOX aggiorna sezionale.progressivo. Il prossimo documento emesso userà maxUsato + 1, dove maxUsato = max(progressivo del sezionale, max progressivo nei documenti già emessi) — questa salvaguardia evita duplicati anche se l'utente abbassa il progressivo per errore.

Mai abbassare il progressivo sotto un valore già usato da documenti emessi: NOX scalerà comunque al massimo già presente per non duplicare, ma il valore impostato manualmente verrà ignorato. Aumentare è invece sicuro per saltare numeri (es. allineamento con altro sezionale o riservare numeri).
11Numerazione concorrente e lock

Quando più utenti emettono documenti contemporaneamente (es. 3 utenti che cliccano «EMESSO» nello stesso istante), NOX garantisce che nessun numero venga duplicato tramite un advisory lock Postgres.

Logica di assegnazione del numero

Quando il documento passa da BOZZA a EMESSO (o CONFERMATO/INVIATO):

  1. NOX prende il sezionale dal documento (se selezionato esplicitamente) o il default per (tipo, anno). Se nessun sezionale esiste, ne crea automaticamente uno default.
  2. Acquisisce un advisory lock Postgres su sezionaleId (pg_advisory_xact_lock(sezionaleId, 0)) — bloccante per altre transazioni che chiedono il lock sullo stesso sezionale, fino al commit
  3. Calcola il prossimo progressivo come max(progressivi già usati, sezionale.progressivo) + 1 (anti-buco se documenti cancellati)
  4. Aggiorna sezionale.progressivo = nuovoProgressivo
  5. Applica il formato ai placeholder per ottenere la stringa numero finale
  6. Salva documento.numero e documento.sezionaleId
  7. Commit della transazione — il lock viene rilasciato
Lock granulare: il lock è per sezionale, non globale. Due utenti che emettono documenti su sezionali diversi (es. uno su FT_IT, l'altro su FT_EXP) non si bloccano a vicenda — le transazioni procedono in parallelo. Il lock entra in gioco solo se entrambi tentano sullo stesso sezionale nello stesso istante.
?FAQ
Posso usare lo stesso codice sezionale per due tipi documento diversi?
Sì. La chiave naturale del sezionale è (tipoDocumentoId, anno, codice), quindi codice EXP per FT 2026 e codice EXP per NC 2026 sono record distinti con numerazioni indipendenti.
Cosa succede al cambio anno?
Il 1° gennaio NOX crea automaticamente nuovi sezionali per il nuovo anno con progressivo=0 alla prima emissione. I sezionali dell'anno precedente restano consultabili (filtrando per anno) ma non vengono più usati.
Come copio i sezionali da un anno all'altro?
Bottone «⎘ Duplica per altro codice» nella riga del sezionale: copia tutti i campi (codice, descrizione, attività, formato) ma con progressivo=0. Cambia anno e codice nel form e salva.
Posso eliminare un sezionale che ha documenti collegati?
No, NOX impedisce l'eliminazione «hard». Il bottone 🗑 effettua invece un soft-delete (isActive=false) preservando il legame con i documenti storici. Il sezionale non appare più nel dropdown del form documento ma resta visualizzabile filtrando «Stato: tutti». Puoi riattivarlo in qualsiasi momento.
Il formato cambia retroattivamente sui documenti già emessi?
No. Il formato si applica solo ai documenti emessi dopo il cambio. I documenti storici mantengono il numero originario. Se vuoi rinumerare documenti vecchi devi usare la procedura «Cambia sezionale» (vedi § 9).
Cosa succede se un sezionale cessa di esistere ma ha documenti collegati?
Soft-delete (vedi sopra). I documenti mantengono il riferimento via FK documenti.sezionaleId con ON DELETE SET NULL: se il sezionale viene eliminato fisicamente (es. cleanup DB straordinario), il campo sezionaleId diventa null sui documenti collegati ma il numero resta inalterato.
Posso vedere lo storico dei cambi sezionale?
Sì, è tracciato in log_modifiche_sezionali. Endpoint GET /api/sezionali/documenti/:id/log. Nel frontend lo storico sarà visualizzabile dalla pagina Documento → Audit Log (futuro miglioramento).
Come migrare da NOX legacy (singolo sezionale per tipo)?
Niente da fare manualmente. La migrazione DB del 6 Maggio 2026 ha convertito tutti i sezionali esistenti in record con codice vuoto, isDefault=true, formato {prog}_{anno}{suffisso} — output identico al passato. Per aggiungere multi-sezionale, basta crearne nuovi codici via interfaccia.