La campana.

Ci sono quelli che hanno letto questa notizia prima di te.
Iscriviti per ricevere articoli freschi.
E-mail
Nome
Cognome
Come vuoi leggere la campana
Senza spam.

Ciao.
Continua O. tipi primitivi dati, così recentemente considerati, e oggi parleremo digita null..

Il tipo Null è un letterale in cui solo un valore è essere "null".
Null - non è uguale a un collegamento vuoto, lo spazio o il tipo è incerto.

Viene utilizzato quando si lavora con il database (quando si collega le tabelle), utilizzati per determinare il valore mancante quando si lavora con il database.
Il valore del tipo NULL può essere ottenuto assegnando la variabile questo valore:
Variabile \u003d null.

I valori nulli sono formati come risultato di connessioni quando un elemento da una tabella per condizione non è l'oggetto corrispondente da un altro. Valore nullo Ho caratteristiche specifiche:
- Il confronto dei valori nullo con qualsiasi altro argomento restituisce sempre una bugia;

Per determinare il valore di NULL utilizza il design C'è null (è nullo).
Per la funzione di conversione del tipo null C'è nulla (IsNull).

Per interrompere i campi contenenti valori nullo, le seguenti strutture vengono utilizzate come risultato della query: - non è nullo - non è nullo

Esempi

Esempio di verifica valore su Null

Seleziona un libro di riferimento. Nomenclatura. Nome, libro di riferimento. Nomenclatura. Approvvigionamento, dove il libro di riferimento. Nomenclatura. L'approvvigionamento è nullo

Un esempio di una funzione IsNull ()
Il valore di ritorno della funzione IsNull (): il valore del primo parametro, se il primo parametro non contiene il valore nullo, altrimenti il \u200b\u200bvalore del secondo parametro. Il secondo parametro verrà convertito nel tipo del primo parametro se il tipo del primo parametro è una stringa o un numero.

// Ottieni l'importo del numero del campo. Nel caso in cui non ci siano voci, ottieni 0Scegli HasNull (somma (quantità), 0) come un numero di documenti. Oakn. Struttura

Saluti il \u200b\u200bprogrammatore 1C.
Lascia il tuo commento, mi chiedo la tua opinione.

Null è nient'altro che nessun valore. Molti confonderlo con il valore del numero "0" del numero, un riferimento vuoto a qualsiasi oggetto o con una stringa vuota. A causa di questo malinteso ci sono molti errori.

Il valore nullo verrà visualizzato se la richiesta è di appello a un campo, proprietà o in un collegamento in bit inesistente.

Basato su SQL, che non consente di controllare il valore di NULL in uguaglianza convenzionale. I seguenti sono due metodi per il controllo di NULL in 1C 8.3.

Funzione della lingua query 1C 8.3 IsNull () ha due parametri di input:

  • espressione verificabile;
  • espressione di sostituzione.

Se il valore controllato è , questa funzione restituirà il valore dell'espressione sostitutiva. Se il valore è diverso da NULL, l'espressione verificabile tornerà.

L'esempio è considerato sotto. Seleziona tutte le posizioni di nomenclatura della parte della tabella della merce dal documento "Arrivo di beni e servizi". Con l'aiuto della connessione sinistra, ogni nomenclatura è influenzata dall'ultimo prezzo dalle informazioni dei "prezzi delle nomenclature" delle informazioni.

In questo caso, tale situazione può verificarsi che per qualsiasi posizione possa semplicemente non essere il prezzo del registro. In questo caso, la funzione IsNull tornerà a noi il familiare zero. Se non approfitta, quando si cerca di produrre operazioni aritmetiche sul campo "Prezzo" con il valore nullo, avremo un errore.

SCEGLIERE

Non ci sono i prezzi. Prezzo, 0) come un up-tolilence
DI



DOVE

C'è null nell'operatore di selezione

L'analogo della funzione IsNull () è "c'è null", che viene utilizzato nell'operatore di selezione e controlla se null è. "Avere" in questo caso implica l'uguaglianza e la richiesta dell'esempio precedente sarà simile a questo:

SCEGLIERE
Prodotti. Namerenclatura come prodotto,
Scelta
Quando i prezzi. Il prezzo è nullo
Quindi 0.
Altrimenti prezzi. Prezzo
Fine come mare reale
DI
Documento. Non dutchovyovirovyvug.thovars come merci
La connessione sinistra delle registrazioni. PrimeenoclaSture. Preventivo come prezzi
Prodotti. Namerenclature \u003d prezzi. Namerenclature
DOVE
Merci. Link \u003d & linkaduncument

Le differenze della funzione IsNull () da lì è null

Come potete vedere dagli esempi precedenti, in entrambi i casi la richiesta restituisce gli stessi dati. La funzione IsNull () è una scelta ridotta quando ... c'è nulla ... End, ma sarà comunque preferibile per i seguenti motivi:

  1. La funzione dell'altro () ottimizza la richiesta. Legge una volta, quindi quando controlli un'espressione complessa, la richiesta funzionerà più velocemente.
  2. La funzione dell'altro () riduce il design, a causa del quale la richiesta diventa più lessibile.
  3. Quando si esegue l'altra funzione, viene fornita l'espressione di sostituzione al tipo di espressione per i tipi di tipi di stringa (alla lunghezza della stringa) e numerico (al bit).

NULLO - valori mancanti.
Non confondere con il valore zero! Null non è un numero che non è uguale allo spazio, un collegamento vuoto, indefinito.

NULL - Valore di tipo formazione, I.e. C'è un tipo null e l'unico significato di questo tipo.

I valori nulli vengono visualizzati nella query nelle seguenti situazioni:
a) una connessione esterna a cui è stata trovata la voce corrispondente in un altro tavolo (a sinistra - nel secondo, con il diritto - nel primo, con pieno - in entrambi)
b) Appello ai dettagli degli elementi per il gruppo e viceversa.
c) null nell'elenco dei campi di campionamento (scegliere)
d) Accesso ai dettagli per i collegamenti bit

C'è null.utilizzato nell'operatore da scegliere (come verificare che il valore sia vuoto (c'è null)):
Codice 1c v 8.x
Scelta
Quando il valore è nullo allora il resintendo
Altrimenti, il valore
FINE

Un altro esempio:
Codice 1C V 8.x Seleziona

Scelta quando scontatoCompanationStoretakes. La natura della base è nullo allora 0
Altrimenti, la contabilità è la fabbrica
DI



DOVE

Funzione C'è nulla (significato, rendynnull) Restituisce il valore del suo primo parametro, se non è uguale a NULL e il valore del secondo parametro è altrimenti
È una scelta piegata ... End, Butnull è preferibile.
Codice 1c v 8.x
SCEGLIERE
C'è nulla (libro di riferimento. Namerenclatura. Arcticulus, "---") come articolo,
Directory. Namenclatura. Rappresentazione come nomenclatura

Un altro esempio:
Codice 1c v 8.x
SCEGLIERE
Mentoring della directory. Nome,
C'è nulla (contabile per la contabilità. Risorse nazionalità, 0) come popolazione
DI
Directory. Namerenclature come guida
Connessione sinistra della registrazione. ScienzaReclature. Lostati come contabilità
Secondo i negozi di contabilità. Noneenclature \u003d Rete del regista. Collegamento
DOVE
Direttore Generale. Lawgroup \u003d Lie
NEL questo esempio Tutti gli elementi della directory della nomenclatura sono ottenuti, dopodiché, per ogni nomenclatura dal registro di accumulo, si ottengono residui correnti. Perché Per la nomenclatura su cui mancano i resti, la tabella virtuale dei residui non ritorna, quindi come risultato della connessione nel campo "sconto-settheresters. Non-stakes" saranno valori nullo per la nomenclatura che c'erano Nessun residuo Per invece del valore nullo come risultato della query, è stato presente un valore di 0, abbiamo utilizzato la funzione per Benull (), che garantirà la sostituzione desiderata.

Naull. diverso dalla scelta per i seguenti motivi:
a) whennull è meglio lettura dalla richiesta (più facile)
b) Quando c'è nulla, se viene controllata un'espressione complessa, allora funziona più veloce perché viene calcolata una volta
c) Quando c'è un'espressione sostitutiva fornita al tipo di espressione, se ha un tipo di stringa (lunghezza) o un numero (bit).

È impossibile controllare i valori sull'uguaglianza ordinaria nulla, poiché l'SQL ha una logica a tre cifre - verità, bugie, null e il risultato di tale confronto sarà sconosciuto, che in 1C 8.0 è simile a una bugia.
NULLO<> 0, quindi con le connessioni esterne sinistro dello spr. Nomenclatura con tabelle di residui, prezzi, controparti con insediamenti reciproci in assenza di tali voci che ci sarà nullo, che non è uguale a 0. La migliore decisione - Itnul.

Quando si lavora con il linguaggio della query, a volte c'è una situazione in cui è necessario sostituire il valore di NULL a un altro valore. La necessità di tale operazione può verificarsi, ad esempio, quando si ricevono residui in magazzino per l'intera nomenclatura. Questo articolo descrive come utilizzare la query Language FundNull () per risolvere tali attività e sono considerate altre opzioni di soluzione.

La funzione IsNull.

Nel linguaggio della query, la funzione ha un (), lo scopo è quello di sostituire l'espressione a un'altra espressione se le espressioni avessero nulla. Lo schema sintassi di questa funzione è simile a questo:

C'è nulla (<Проверяемое выражение>, <Выражение замены>)

Questa caratteristica Restituire il valore del primo parametro, nel caso in cui non sia null e il valore della seconda espressione, altrimenti.


SCEGLIERE
C'è nulla (contabile per la contabilità. Risorse nazionalità, 0) come popolazione
DI

DOVE

In questo esempio, tutti gli elementi della directory della nomenclatura sono ottenuti, dopodiché, per ogni nomenclatura dal registro di accumulo, vengono ottenuti residui correnti. Perché Per la nomenclatura su cui mancano i resti, la tabella virtuale dei residui non ritorna, quindi come risultato della connessione nel campo "sconto-settheresters. Non-stakes" saranno valori nullo per la nomenclatura che c'erano Nessun residuo Per invece del valore nullo come risultato della query, è stato presente un valore di 0, abbiamo utilizzato la funzione per Benull (), che garantirà la sostituzione desiderata.

Utilizzando una selezione operativa

Per risolvere il precedentemente descritto, l'attività può essere utilizzata dalla richiesta per la selezione del linguaggio della query. Un esempio di come una richiesta sembrerà il precedente sembrerà questo:


SCEGLIERE
Mentoring della directory. Nome,
Scelta quando scontatoCompanationStoretakes. La natura della base è nullo allora 0
Altrimenti, la contabilità è la fabbrica
DI
Directory. Namerenclature come guida
Connessione sinistra della registrazione. ScienzaReclature. Lostati come contabilità
Secondo i negozi di contabilità. Noneenclature \u003d Rete del regista. Collegamento
DOVE
Direttore Generale. Lawgroup \u003d Lie

Risultato questa richiesta Sarà identico al risultato della query fornita nella sezione precedente.

L'uso della funzione IsNull () Utilizzare preferibilmente la selezione delle operazioni per i seguenti motivi: La registrazione UsingNull () è in qualche modo compatta, che aumenta la leggibilità della richiesta. Inoltre, nel caso in cui l'espressione è una funzione complessa, inclusa la funzione aggregata, il calcolo della funzione IsNull () può essere più veloce dell'analogico registrato utilizzando la funzione di scelta.

Caratteristiche della funzione IsNull

La funzione IsNull () Sebbene sia un analogo dell'operazione scegliere con un valore valido per nulla, tuttavia, ha la differenza. La differenza è che se la funzione di espressione ha una stringa o un tipo numerico, l'espressione sostitutiva verrà convertita nel tipo di espressione.

Ad esempio, nel caso in cui l'espressione scansionata ha un tipo di stringa (5) e il tipo di espressione sostitutiva (10), il tipo di risultato verrà convertito nel tipo di linea (5). Di conseguenza, quando la funzione restituisce un'espressione sostitutiva, il valore verrà rifilato fino a cinque caratteri.

Con espressioni numeriche, la situazione è simile: il valore dell'espressione verrà trasformato al tipo di verificabile, cioè. L'espressione sostitutiva può essere ritagliata. Se il valore non può essere convertito, il linguaggio della query completerà l'esecuzione della richiesta di errore. Ad esempio, un errore finirà per cercare di convertire il numero 1000 sul tipo Number (2).

La campana.

Ci sono quelli che hanno letto questa notizia prima di te.
Iscriviti per ricevere articoli freschi.
E-mail
Nome
Cognome
Come vuoi leggere la campana
Senza spam.