Valori nule (există null și există null ()). Utilizarea funcției este null () 1c unde este egală cu valoarea sau null

NUL- valori lipsă.
A nu se confunda cu zero! NULL nu este un număr, nu egal cu un spațiu, o referință goală, Nedefinit.

NULL este o valoare de formare a tipului, adică există un tip NULL și o singură valoare de acest tip.

Valorile NULL apar într-o interogare în următoarele situații:
a) O îmbinare externă în care nu a fost găsită nicio înregistrare corespunzătoare într-un alt tabel (cu cea stângă - în al doilea, cu cea dreaptă - în primul, cu una completă - în ambele)
b) Referindu-se la atributele elementelor pentru grup și invers.
c) NULL în lista câmpurilor de selecție (SELECT)
d) Referindu-vă la detaliile legăturii rupte

ESTE NUL utilizat în operatorul SELECT (ca și cum ar verifica dacă valoarea este goală (Valoarea ESTE NULĂ)):
Cod 1C v 8.x
ALEGERE
WHEN Value IS NULL THEN Rezultat Dacă NULL
Valoare ELSE
SFÂRȘIT

alt exemplu:
Cod 1C v 8.x SELECT

ALEGEȚI CÂND Soldurile contabile din nomenclatură. Soldul SUMEI ESTE NUL APOI 0
Solduri contabile de nomenclatură ELSE. Sold de cantitate AS Sold de cantitate
DE



UNDE

Funcţie ISNULL (valoare, ResultIf NULL) returnează valoarea primului său parametru dacă nu este NULL, iar valoarea celui de-al doilea parametru în caz contrar
Este un colaps SELECT ... END, dar este preferat IS NULL.
Cod 1C v 8.x
ALEGE
ISNULL (Directory.Nomenclature.Article, "---") AS Article,
Referință.Nomenclatură.Prezentare AS Nomenclatură

alt exemplu:
Cod 1C v 8.x
ALEGE
Directorul Nomenclaturii.
ESTE NUL (NomenclatureAccountingBalance.QuantityRemainment, 0) AS QuantityRemainment
DE
Directory.Nomenclature AS Directory
ÎNREGISTRARE STÂNGA Registrul de acumulare.CountingNomenclature.Balances AS AccountingNomenclatureBalances
Software Nomenclature AccountingBalances.Nomenclature = Director Nomenclatură.Link
UNDE
DirectoryNomenclature.ThisGroup = FALS
ÎN acest exemplu se obțin toate elementele listei de stocuri, după care, pentru fiecare stoc, soldurile curente se obțin din registrul de acumulare. pentru că pentru un articol pentru care nu există solduri, tabelul virtual al soldurilor nu va returna o înregistrare, apoi, ca urmare a conexiunii în câmpul „NomenclatureAccountRemains.Quantity”, vor exista valori NULL pentru un articol pentru care au existat fără solduri. Pentru a avea valoarea 0 în loc de valoarea NULL în rezultatul interogării, am folosit funcția IS NULL (), care va efectua înlocuirea dorită.

ESTE NUL diferă de ALEGERE din următoarele motive:
a) Dacă este NUL, interogarea este mai bine citită (mai ușor)
b) Dacă este NUL, dacă este bifată o expresie complexă, atunci funcționează mai repede, deoarece este evaluată o singură dată
c) Dacă ESTE NULĂ, expresia de înlocuire este exprimată la tipul expresiei testate dacă este de tip Șir (lungime) sau Număr (lățime de biți).

Nu puteți verifica valorile pentru NULL cu egalitate obișnuită, deoarece logica cu trei valori funcționează în SQL - True, False, NULL, iar rezultatul unei astfel de comparații va fi NECUNOSCUT, care în 1C 8.0 este similar cu FALSE.
NUL<>0, prin urmare, cu stânga conexiuni externe ref. Nomenclatura cu tabele de solduri, prețuri, contrapărți cu decontări reciproce, în absența unor astfel de înregistrări, va exista NULL, care nu este 0. Cea mai bună decizie- ESTE NUL

NUL- valori lipsă.
A nu se confunda cu zero! NULL nu este un număr, nu egal cu un spațiu, o referință goală, Nedefinit.

NULL este o valoare de formare a tipului, adică există un tip NULL și o singură valoare de acest tip.

Valorile NULL apar într-o interogare în următoarele situații:
a) O îmbinare externă în care nu a fost găsită nicio înregistrare corespunzătoare într-un alt tabel (cu cea stângă - în al doilea, cu cea dreaptă - în primul, cu una completă - în ambele)
b) Referindu-se la atributele elementelor pentru grup și invers.
c) NULL în lista câmpurilor de selecție (SELECT)
d) Referindu-vă la detaliile legăturii rupte

ESTE NUL utilizat în operatorul SELECT (ca și cum ar verifica dacă valoarea este goală (Valoarea ESTE NULĂ)):
Cod 1C v 8.x
ALEGERE
WHEN Value IS NULL THEN Rezultat Dacă NULL
Valoare ELSE
SFÂRȘIT

alt exemplu:
Cod 1C v 8.x SELECT

ALEGEȚI CÂND Soldurile contabile din nomenclatură. Soldul SUMEI ESTE NUL APOI 0
Solduri contabile de nomenclatură ELSE. Sold de cantitate AS Sold de cantitate
DE



UNDE

Funcţie ISNULL (valoare, ResultIf NULL) returnează valoarea primului său parametru dacă nu este NULL, iar valoarea celui de-al doilea parametru în caz contrar
Este un colaps SELECT ... END, dar este preferat IS NULL.
Cod 1C v 8.x
ALEGE
ISNULL (Directory.Nomenclature.Article, "---") AS Article,
Referință.Nomenclatură.Prezentare AS Nomenclatură

alt exemplu:
Cod 1C v 8.x
ALEGE
Directorul Nomenclaturii.
ESTE NUL (NomenclatureAccountingBalance.QuantityRemainment, 0) AS QuantityRemainment
DE
Directory.Nomenclature AS Directory
ÎNREGISTRARE STÂNGA Registrul de acumulare.CountingNomenclature.Balances AS AccountingNomenclatureBalances
Software Nomenclature AccountingBalances.Nomenclature = Director Nomenclatură.Link
UNDE
DirectoryNomenclature.ThisGroup = FALS
În acest exemplu, se obțin toate elementele din catalogul de articole, după care, pentru fiecare articol, soldurile curente se obțin din registrul de acumulare. pentru că pentru un articol pentru care nu există solduri, tabelul virtual al soldurilor nu va returna o înregistrare, apoi, ca urmare a conexiunii din câmpul "NomenclatureAccountRemains.Quantity", vor exista valori NULL pentru un articol pentru care au existat fără solduri. Pentru a avea valoarea 0 în loc de valoarea NULL în rezultatul interogării, am folosit funcția IS NULL (), care va efectua înlocuirea dorită.

ESTE NUL diferă de ALEGERE din următoarele motive:
a) Dacă este NUL, interogarea este mai bine citită (mai ușor)
b) Dacă este NUL, dacă este bifată o expresie complexă, atunci funcționează mai repede, deoarece este evaluată o singură dată
c) Dacă ESTE NULĂ, expresia de înlocuire este exprimată la tipul expresiei testate dacă este de tip Șir (lungime) sau Număr (lățime de biți).

Nu puteți verifica valorile pentru NULL cu egalitate obișnuită, deoarece logica cu trei valori funcționează în SQL - True, False, NULL, iar rezultatul unei astfel de comparații va fi NECUNOSCUT, care în 1C 8.0 este similar cu FALSE.
NUL<>0, deci pentru îmbinările exterioare stânga ref. Nomenclatura cu tabele de solduri, prețuri, contrapărți cu decontări reciproce, în absența unor astfel de înregistrări, va exista NULL, care nu este egal cu 0. Cea mai bună soluție este NUL

Funcția ISNULL (sinonim englezesc ISNULL) este utilizată pentru a înlocui o valoare nulă (lipsă) atunci când se alătură tabelelor. Tabelele pot fi arbitrare (ca câmpuri potrivite).

Nul nu este un număr 0, ci o valoare lipsă.

Cea mai obișnuită utilizare a acestei funcții este înlocuirea parametrilor funcției Sum () cu 0, transfer valoare goală nu poate provoca erori de execuție, dar poate duce la un rezultat incorect, mai ales atunci când este utilizat în cererile ACS.

Trecere rapidă

Rezultatul executării sale:

  • O valoare de un anumit tip, dacă există.
  • Valoarea specificată de al doilea parametru (de orice tip).

Sintaxă ISNULL

Da NULL (<ПроверяемоеПоле>,<ЗначениеЗамены>)

Un analog al acestei funcții poate fi construcția:
ALEGERE
CÂND Table.Field1 ESTE NUL APOI "O anumită valoare"
IN CAZ CONTRAR
Tabel.Câmp1
SFÂRȘIT

Cum se folosește în practică Da NULL

1. Înlocuirea unei valori cu o constantă
ISNULL (Table1.Field1, "Some value")

ISNULL (Tabelul 1. Număr, 0)

2. Înlocuirea valorii cu parametrul

ISNULL (Tabelul 1. Câmpul1 și parametrul)

3. Înlocuirea cu o valoare dintr-un alt tabel

ISNULL (Table1.Field1, Table2.Field1)

4 folosind o funcție pentru a obține o valoare predefinită sau goală

ISNULL (Table2.Field1, VALUE (Directory.Contractors.EmptyRef))