U zahtjevu 1C 8.3 nema nule. Korištenje funkcije isnull(). Rad s Null vrijednostima u upitu

11.05.2020 Programi

Kada radite s upitnim jezikom, ponekad se javlja situacija kada trebate zamijeniti NULL vrijednost nekom drugom vrijednošću. Potreba za takvom operacijom može se pojaviti, na primjer, prilikom primanja stanja zaliha za cijeli asortiman proizvoda. Ovaj članak opisuje upotrebu funkcije upitnog jezika ISNULL() za rješavanje takvih problema, a također raspravlja o drugim opcijama rješenja.

Funkcija ISNULL

Upitni jezik implementira funkciju ISNULL(), čija je svrha zamijeniti izraz drugim izrazom ako je izraz imao vrijednost NULL. Dijagram sintakse za ovu funkciju izgleda ovako:

ISNULL(<Проверяемое выражение>, <Выражение замены>)

Ova funkcija vratit će vrijednost prvog parametra ako nije NULL, au suprotnom vrijednost drugog izraza.


BIRAJTE
ISNULL(RačunovodstvenaStavkaPreostala.PreostalaKoličina, 0) AS PreostalaKoličina
IZ

GDJE

U u ovom primjeru dobivaju se svi elementi imenika stavki, nakon čega se za svaku stavku dobivaju tekuća stanja iz akumulacijskog registra. Jer za stavku za koju nema stanja, virtualna tablica stanja neće vratiti zapis, tada će kao rezultat veze u polju "Item AccountingRemaining.QuantityRemaining" biti NULL vrijednosti za stavku za koju postoji nije bilo ravnoteže. Kako bismo osigurali da rezultat zahtjeva umjesto NULL vrijednosti sadrži vrijednost 0, upotrijebili smo funkciju ISNULL(), koja će izvršiti željenu zamjenu.

Korištenje operacije SELECT

Za rješavanje problema opisanog ranije, možete koristiti operaciju jezika upita SELECT. Primjer kako bi izgledao zahtjev sličan prethodnom izgledao bi ovako:


BIRAJTE
Imenik nomenklature Ime,
CHOICE WHEN Accounting ItemsRemaining.QuantityRemaining IS NULL THEN 0
INAČE Računovodstvo za preostalu nomenklaturu. Preostala količina KAO Preostala količina
IZ
Imenik.Nomenklatura AS ImenikNomenklature
LIJEVI VEZA Registrirajte akumulacije Knjigovodstvena stavka Stanja KAO Računovodstvena stavka Stanja
Software Item AccountingRemains.Nomenclature = Imenik nomenklature.Link
GDJE
Imenik nomenklature.ThisGroup = FALSE

Proizlaziti ovog zahtjeva bit će identičan rezultatu upita danom u prethodnom odjeljku.

Upotreba funkcije ISNULL() poželjnija je od upotrebe operacije SELECT iz sljedećih razloga: pisanje pomoću ISNULL() nešto je kompaktnije, što povećava čitljivost upita. Osim toga, u slučaju kada je izraz koji se testira složena funkcija, uključujući agregatnu funkciju, izračun funkcije ISNULL() može se izvršiti brže od njenog dvojnika napisanog pomoću funkcije SELECT.

Značajke funkcije ISNULL

Funkcija ISNULL(), iako je analogna operaciji SELECT s provjerom vrijednosti za NULL, ipak ima razliku. Razlika je u tome što ako je funkcijski izraz niza ili numeričkog tipa, zamjenski izraz će se pretvoriti u tip izraza koji se testira.

Tako, na primjer, u slučaju kada je izraz koji se testira tipa String(5), a zamjenski izraz je tipa String(10), tip rezultata će se pretvoriti u tip String(5). Kao rezultat toga, kada funkcija vrati zamjenski izraz, vrijednost će biti skraćena na pet znakova.

S numeričkim izrazima situacija je slična: vrijednost zamijenjenog izraza bit će pretvorena u tip onoga koji se provjerava, tj. izraz koji se zamjenjuje može biti skraćen. Ako se vrijednost ne može pretvoriti, jezik upita neće uspjeti ispuniti upit. Na primjer, pokušaj pretvaranja broja 1000 u vrstu Broj(2) neće uspjeti uz grešku.

U procesu izrade izvješća o SKD u 1C Enterprise često se pojavljuje zadatak prikazivanja nula u praznim poljima izvješća. Činjenica je da, ako potrebni podaci nisu u bazi podataka, upit ne vraća broj 0, već posebnu vrijednost NULL, koja se zatim mora pretvoriti u broj. Na primjer, ako pišemo

a registar informacija je prazan, tada će rezultat zahtjeva u polju “Cijena” biti NULL vrijednosti. A ako, prema uvjetima zadatka, moramo prikazati nule u izvješću, tada moramo sastaviti upit na sljedeći način:

Imate pitanje ili trebate pomoć konzultanta?

Ali zamislite da koristimo vezu 2 skupa podataka u sustavu kontrole pristupa, a rezultat jednog od njih ispadne prazan. U ovom slučaju konstrukcija ISNULL u tekstu zahtjeva ovog skupa neće nam pomoći, jer vratit će prazan odabir. Neće biti NULL vrijednosti koje se mogu pretvoriti u 0, tamo neće biti ničega. NULL se pojavljuje tek nakon povezivanja skupova podataka, a za to je odgovoran sustav rasporeda. Preostalo rješenje je korištenje izračunatih polja. U našem primjeru, morat ćemo stvoriti izračunato polje "Cijena" i unijeti izraz ISNULL(Cijena,0) u njegov izraz. Dok se aktiviraju izrazi izračunatog polja, upiti su već spojeni, tako da ćemo već imati polje "Cijena", a ono će sadržavati NULL. Stvaranjem izračunatog polja s istim imenom, u biti nadjačavamo polje koje su nam vratili skupovi podataka.

Jezik upita 1C jedna je od glavnih razlika između verzija 7.7 i 8. Jedna od najvažnijih točaka u učenju programiranja 1C je jezik upita. U 1C 8.3 upiti su najmoćniji i najučinkovitiji alat za dobivanje podataka. Upitni jezik omogućuje vam dobivanje informacija iz baze podataka na prikladan način.

Sama sintaksa uvelike podsjeća na klasični T-SQL, osim što u 1C-u, koristeći upitni jezik, podatke možete primati samo pomoću konstrukcije Select. Jezik također podržava složenije konstrukcije, na primjer (zahtjev unutar zahtjeva). Upiti u 1C 8 mogu se pisati i ćirilicom i latinicom.

U ovom ću članku pokušati govoriti o glavnim ključnim riječima u jeziku upita 1C:

  • izabrati
  • dozvoljeno
  • razne
  • izraziti
  • prvi
  • za promjenu
  • značenje
  • tip vrijednosti (i operator REFERENCE)
  • izbor
  • grupirati po
  • imajući
  • NIJE NULL
  • Da NULL
  • veze - desno, lijevo, unutarnje, puno.

Kao i neki mali trikovi jezika 1C pomoću kojih možete optimalno konstruirati tekst zahtjeva.

Za otklanjanje pogrešaka u upitima u sustavu 1C 8.2 osiguran je poseban alat - konzola upita. Opis možete pogledati i preuzeti na poveznici -.

Pogledajmo najvažnije i najzanimljivije operatore 1C upitnog jezika.

IZABERI

U jeziku upita 1C Enterprise 8 svaki upit počinje s ključna riječ BIRAJTE. U jeziku 1C nema konstrukcija UPDATE, DELETE, CREATE TABLE, INSERT; te se manipulacije izvode u objektnoj tehnologiji. Njegova je svrha samo čitanje podataka.

Na primjer:

BIRAJTE
Trenutni imenik.Naziv
IZ
Imenik.Nomenklatura AS Tekući imenik

Upit će vratiti tablicu s nazivima stavki.

U blizini strukture BIRAJTE možete pronaći ključne riječi ZA PROMJENU, DOZVOLJENO, RAZNO, PRVI

DOZVOLJENO— odabire samo zapise iz tablice na koje trenutačni korisnik ima pravo.

RAZNO— znači da rezultat neće sadržavati duplicirane retke.

ODABIR (SLUČAJ)

Vrlo često programeri podcjenjuju ovaj dizajn. Primjer njegove upotrebe:

Naziv trenutnog imenika,

WHEN Current Directory.Service THEN

"Servis"

KRAJ KAKO POGLEDATINomenklatura

Imenik.Nomenklatura AS Tekući imenik

Primjer će vratiti tekstualnu vrijednost u polju "Vrsta artikla" - "Proizvod" ili "Usluga".

GDJE

Dizajn 1C upitnog jezika, koji vam omogućuje da nametnete odabir primljenim podacima. Imajte na umu da sustav prima sve podatke s poslužitelja, a tek onda se odabire na temelju ovog parametra.

BIRAJTE
Imenik.Naziv
IZ
Tekući imenik.Nomenklatura AS Tekući imenik
WHERE CurrentDirectory.Service = TRUE

U primjeru odabiremo zapise za koje je vrijednost atributa “Service” postavljena na “True”. U ovom primjeru mogli bismo se snaći sa sljedećim uvjetom:

"GDJE JE SERVIS"

U biti, odabiremo retke u kojima je izraz iza ključne riječi jednak "True".

Možete koristiti izravne uvjete u izrazima:

WHERE Šifra = "005215"

Koristeći operator "VALUE()" u uvjetima, koristite pristup unaprijed definiranim elementima i enumeracijama u 1C zahtjevu:

WHERE Tip artikla = Vrijednost(Enumeracija.Vrste artikla.Proizvod)

Vremenske vrijednosti mogu se odrediti na sljedeći način:

WHERE Datum prijema > DATETIME(2012,01,01):

Najčešće se uvjeti navode kao parametri proslijeđeni zahtjevu:

Besplatno nabavite 267 video lekcija o 1C:

WHERE NomenclatureGroup= &NomenclatureGroup

Uvjet se može nametnuti tipu atributa ako je složenog tipa:

Ako trebate ograničiti odabir s popisa vrijednosti ili niza, možete učiniti sljedeće:

GDJE je akumulacijski registar. Registrator B (&popis dokumenata za odabir)

Stanje također može biti složeno i sastoji se od nekoliko uvjeta:

WHERE Datum primitka > DATETIME(2012,01,01) AND NomenclatureGroup= &NomenclatureGroup AND NOT Service

GRUPIRAJ PO

Dizajn 1C 8.2 jezika upita koji se koristi za grupiranje rezultata.

Na primjer:

BIRAJTE
Prijem robe i usluga Roba. Roba,
SUM(Primitak RobeUslugeRobe.Količina) AS Količina,
SUM(Primitak RobeUslugeRobe.Iznos) AS Iznos
IZ
Dokument Potvrda o primitku robe i usluga Roba KAKO Potvrda o primitku robe i usluga Roba

GRUPIRAJ PO
Prijem RobaUslugeRoba.Roba

Ovaj zahtjev će sažeti sve račune po iznosu i količini po stavci.

Osim ključne riječi IZNOS Možete koristiti druge agregatne funkcije: KOLIČINA, BROJ RAZLIČITIH, MAKSIMUM, MINIMUM, PROSJEČAN.

IMAJUĆI

Dizajn koji se često zaboravlja, ali je vrlo važan i koristan. Omogućuje vam da odredite odabir u obliku agregatne funkcije, to se ne može učiniti u dizajnu GDJE.

Primjer korištenja HAVING u 1C zahtjevu:

BIRAJTE
Prijem robe i usluga Roba. Roba,
SUM(Primitak RobeUslugeRobe.Količina) AS Količina,
SUM(Primitak RobeUslugeRobe.Iznos) AS Iznos
IZ
Dokument Potvrda o primitku robe i usluga Roba KAKO Potvrda o primitku robe i usluga Roba

GRUPIRAJ PO
Primitak robe i usluga Roba, roba

SUM(Primitak RobeUslugeRobe.Količina) > 5

Tako ćemo odabrati broj proizvoda koji je stigao više od 5 komada.

ZNAČENJE()

Na primjer:

WHERE Banka = Vrijednost (Imenik.Banke.Prazna veza)

WHERE Tip nomenklature = Vrijednost(Imenik.Vrste nomenklature.Proizvod)

WHERE Tip artikla = Vrijednost(Enumeracija.Vrste artikla.Service)

VRSTA na zahtjev

Tip podataka može se provjeriti pomoću funkcija TYPE() i VALUETYPE() ili pomoću logičkog operatora REFERENCA.

IZRAZITI()

Express operator u 1C upitima koristi se za pretvaranje tipova podataka.

Sintaksa: IZRAZITI(<Выражение>KAKO<Тип значения>)

Pomoću njega možete pretvoriti vrijednosti niza u datum ili referentne vrijednosti u podatke niza i tako dalje.

U praktičnim primjenama, Express() operator se vrlo često koristi za pretvaranje polja neograničene duljine, jer se polja neograničene duljine ne mogu odabrati, grupirati itd. Ako se takva polja ne pretvore, dobit ćete pogrešku Ne možete uspoređivati ​​polja neograničene duljine i polja nekompatibilnih vrsta.

BIRAJTE
ContactInformation.Object,
EXPRESS(ContactInfo.View AS ROW(150)) AS View
IZ
Registar informacija Kontakt informacije KAKO Kontakt informacije

GRUPIRAJ PO
EXPRESS(Informacije o kontaktu.Predstavljanje KAO RED(150)),
ContactInformation.Object

ISNULL (ISNULL)

Dovoljno korisna značajka 1C upitni jezik, koji provjerava vrijednost u zapisu i je li jednaka NULL, To vam omogućuje da ga zamijenite vlastitom vrijednošću. Najčešće se koristi kod dobivanja virtualnih tablica stanja i prometa radi skrivanja NULL i stavite čistu 0 (nula).

ISNULL(Porezi prije mjeseca. Primijenjena FSS naknada, 0)

Takva funkcija 1C upitnog jezika ISNULL vratit će nulu ako nema vrijednosti, što će izbjeći pogrešku.

PRIDRUŽITI

Postoje 4 vrste veza: LIJEVO, PRAVO, KOMPLETAN, INTERNI.

LIJEVI i DESNI SPOJ

Spojevi se koriste za povezivanje dviju tablica na temelju određenog uvjeta. Značajka kada LIJEVO PRIDRUŽI je da prvu navedenu tablicu uzmemo u cijelosti i uvjetno vežemo drugu tablicu. Polja druge tablice koja se ne mogu vezati uvjetom popunjavaju se vrijednošću NULL.

Primjer lijevog spajanja u zahtjevu 1C:

Vratit će cijelu tablicu i ispuniti polje "Banka" samo na onim mjestima gdje je ispunjen uvjet "Naziv druge strane = Naziv banke". Ako uvjet nije ispunjen, polje Banka bit će postavljeno na NULL.

RIGHT JOIN na jeziku 1C 8.3 apsolutno sličan LIJEVI priključak, s izuzetkom jedne razlike: in PRAVO PRIKLJUČKA"Glavni" stol je drugi, a ne prvi.

POTPUNA POVEZANOST

POTPUNA POVEZANOST razlikuje se od lijeve i desne po tome što prikazuje sve zapise iz dvije tablice i povezuje samo one koje može povezati po uvjetu.

Na primjer:

POTPUNA POVEZANOST
Imenik.Banke KAKO Banke

PO

Upitni jezik vratit će obje tablice u potpunosti samo ako je ispunjen uvjet spajanja zapisa. Za razliku od spajanja lijevo/desno, moguće je da se NULL pojavi u dva polja.

UNUTARNJI SPOJ

UNUTARNJI SPOJ razlikuje se od puna tema, koji prikazuje samo one zapise koji se mogu povezati prema danom uvjetu.

Na primjer:

IZ
Imenik.Druge strane AS Klijenti

UNUTARNJI SPOJ
Imenik.Banke KAKO Banke

PO
Klijenti.Naziv = Banke.Naziv

Ovaj će upit vratiti samo retke u kojima banka i druga ugovorna strana imaju isto ime.

Zaključak

Ovo je samo mali dio sintakse iz jezika upita 1C 8; u budućnosti ću pokušati detaljnije razmotriti neke točke, pokazati i još mnogo toga!

Kada radi s upitima, svaki programer mora na ovaj ili onaj način komunicirati s praznim vrijednostima. Što podrazumijevamo pod praznom vrijednošću?

Null vrijednost ili nema vrijednosti ili je zadana vrijednost za tip podataka. S primitivnim tipovima sve je vrlo jednostavno: zadana vrijednost je određena početna vrijednost, koji služi kao referentna točka.

Vrste nultih vrijednosti

Pogledajmo vrste praznih vrijednosti koje se mogu susresti ili koje su potrebne u upitu.

  • Za vrstu broja, prazna vrijednost je nula – 0.
  • Za tip String – prazan niz – “”.
  • Za tip Datum – 1. siječnja prve godine – 01/01/0001 00:00:00. Od tog datuma vrijeme se računa u 1C.*
  • Za Booleov tip, zadana vrijednost je tehnički False, ali logično je da su obje vrijednosti tipa dopunjene. Stoga se odlučivanje je li prazna vrijednost False ili ne temelji na logici određenog algoritma.

*Budite oprezni, izvan 1C postoje različiti sustavi brojanja datuma s različitim početnim točkama.

Vrijednost koja nedostaje u potpunosti odgovara samo tipu Null. Ova vrsta sadrži samo jednu vrijednost, što znači da nema vrijednosti.

Sličan tip Nedefiniran također sadrži samo jednu vrijednost, ali Nedefinirano ne znači nepostojanje podataka, već samo nemogućnost određivanja zadane vrijednosti za tip. Nedefinirano je zadana vrijednost za složene tipove, uključujući one koji nisu eksplicitno definirani. Na primjer, vrijednost u nova linija tablica vrijednosti u stupcu za koji tip nije eksplicitno definiran.

Co referenca vrste postoji mnogo manje neizvjesnosti. Sve vrste referenci daju nultu vrijednost. Prazna vrijednost je ista referenca koja označava tip podataka, ali bez jedinstveni identifikator specifično značenje. Zahvaljujući tome, praznu poveznicu možemo tretirati kao da je obična i na nju primijeniti sve metode koje nudi platforma, radeći s njom kao da je punopravna vrijednost.

Rad s Null vrijednostima u upitu

Trebate li izričito unijeti praznu vrijednost u rezultat upita ili usporediti s njim postojeće vrijednosti, morate znati kako opisati prazne vrijednosti u upitu.

Vrste Broj, niz, Booleov opisani su u zahtjevu kao na ugrađenom jeziku:

SELECT 0 AS ExampleTypeNumber, "Hello world" AS ExampleTypeString, True AS ExampleTypeBoolean

Undefined, budući da je u biti primitivan tip, opisuje se na sličan način:

Odaberite Batch.Period From Accumulation Register.Batch As Batch Where Remains.DocumentBatch = Nedefinirano

Prazne referentne vrijednosti je malo teže definirati. Svi referentni objekti imaju unaprijed definiranu vrijednost usluge EmptyReference. Zahvaljujući tome, praznu poveznicu moguće je odabrati na jedan način – kroz funkciju Vrijednost:

Odaberite vrijednost(Imenik.Nomenklatura.EmptyLink) Kako isprazniti nomenklaturu

Mogućnosti za rad s Null vrijednostima su nešto bogatije. Kao i drugi primitivni tipovi, Null je opisan na isti način kao u ugrađenom jeziku. Osim toga, postoji poseban operator Is Null i funkcija IsNull.

  • Operator Is Null omogućuje vam stvaranje logičkog izraza koji uspoređuje odabranu vrijednost s Null vrijednošću.
  • Funkcija IsNull vraća prvi argument ako nije Null, a drugi argument u suprotnom.

Izrazi koji definiraju prazne vrijednosti mogu se koristiti u bilo kojem odjeljku upita koji podržava izraze. Na primjer, možete dodati praznu vezu u odjeljak Odaberi ili kvačicu Null u uvjet.

Praktični primjeri

Korištenje funkcije Vrijednost

Odaberite Products.Link As Nomenclature, Products.Link = Value(Directory.Nomenclature.EmptyLink) Ovako LinkEmpty From TueProducts As TueProducts

Korištenje operatora Is Null

Odaberite Products.Link kao nomenklaturu, Products.Link je Null kao ova LinkEmpty From TueProducts As TueProducts

Null lijevo ili potpuno spajanje

Provjera Null

Primjer pokazuje uobičajenu praktičnu situaciju kada, s lijevim spajanjem, nema podudaranja za prvu tablicu u drugoj. U ovom slučaju, sva polja druge tablice bit će Null.

Odaberite TueProducts.Link kao nomenklaturu, Remains.QuantityRemaining kao količinu, Remains.QuantityRemaining Is Null kao NoRemaining iz TueProducts kao TueProducts Lijevi priključak RegisterAccumulations.ProductsInWarehouses.Remains As Remains By TueProducts.Link = Remains.Nomenclature

Rukovanje nultim vrijednostima

Izmjena prethodnog upita kako bi se pokazala uobičajena tehnika za dobivanje nekih zadanih vrijednosti za zamjenu onih koje nedostaju. U ovom primjeru, pomoću funkcije IsNull, vrijednost ostatka koja nedostaje zamjenjuje se s logički ispravnom 0.

Odaberite TueProducts.Link kao nomenklaturu, IsNull (Remaining.QuantityRemaining, 0) kao količinu iz TueProducts kao TueProducts Lijevi priključak RegisterAccumulations.ProductsInWarehouses.Remains As Remains By TueProducts.Link = Remains.Nomenclature

U ovom smo članku pogledali razne vrste praznih vrijednosti i njihova svojstva te proučavali načine određivanja različite vrste prazne vrijednosti u upitima, au praktičnom dijelu smo se uvjerili u jednostavnost primjene razmatranog materijala.

NULL- nedostajuće vrijednosti.
Ne smije se brkati s nultom vrijednošću! NULL nije broj, nije jednak razmaku, praznoj referenci ili Nedefinirano.

NULL je vrijednost koja formira tip, tj. postoji tip NULL i jedna vrijednost ovog tipa.

NULL vrijednosti pojavljuju se u upitu u sljedećim situacijama:
a) Vanjski spoj u kojem nije pronađen odgovarajući zapis u drugoj tablici (ako je lijevo - u drugoj, s desno - u prvoj, ako je puno - u obje)
b) Pristup detaljima elemenata za grupu i obrnuto.
c) NULL na popisu polja za odabir (SELECT)
d) Pristup detaljima za neispravnu vezu

JE NIŠTAVAN koristi se u operatoru SELECT (kao da provjerava je li vrijednost prazna (Value IS NULL)):
Kod 1C v 8.x
IZBOR
WHEN Value IS NULL THEN ResultIfNULL
DRUGO Značenje
KRAJ

još jedan primjer:
Kod 1C v 8.x SELECT
CHOICE WHEN Accounting ItemsRemaining.QuantityRemaining IS NULL THEN 0
INAČE Računovodstvo za preostalu nomenklaturu. Preostala količina KAO Preostala količina
IZ

GDJE

Funkcija ISNULL(vrijednost, ResultIfNULL) vraća vrijednost svog prvog parametra ako nije NULL, au suprotnom vrijednost drugog parametra
Sažeto je SELECT...END, ali preferirano je ISNULL.
Kod 1C v 8.x
BIRAJTE
ISNULL(Imenik.Nomenklatura.Članak, "---") AS Članak,
Imenik.Nomenklatura.Prezentacija AS Nomenklatura

još jedan primjer:
Kod 1C v 8.x
BIRAJTE
Imenik nomenklature Ime,
ISNULL(RačunovodstvenaStavkaPreostala.PreostalaKoličina, 0) AS PreostalaKoličina
IZ
Imenik.Nomenklatura AS ImenikNomenklature
LIJEVI VEZA Registrirajte akumulacije Knjigovodstvena stavka Stanja KAO Računovodstvena stavka Stanja
Software Item AccountingRemains.Nomenclature = Imenik nomenklature.Link
GDJE
Imenik nomenklature.ThisGroup = FALSE
U ovom primjeru dobivaju se svi elementi imenika stavki, nakon čega se za svaku stavku dobivaju trenutna stanja iz akumulacijskog očevidnika. Jer za stavku za koju nema stanja, virtualna tablica stanja neće vratiti zapis, tada će kao rezultat veze u polju "Item AccountingRemaining.QuantityRemaining" biti NULL vrijednosti za stavku za koju postoji nije bilo ravnoteže. Kako bismo osigurali da rezultat zahtjeva umjesto NULL vrijednosti sadrži vrijednost 0, upotrijebili smo funkciju ISNULL(), koja će izvršiti željenu zamjenu.

NIJE NULL razlikuje se od CHOICE iz sljedećih razloga:
a) Ako je ISNULL, upit je bolje čitljiv (jednostavniji)
b) Ako je ISNULL, ako je složeni izraz označen, radi brže jer se izračunava jednom
c) Ako je ISNULL, zamjenski izraz se pretvara u tip izraza koji se testira ako je tipa String (duljina) ili Number (bit dubina).

Ne možete provjeriti vrijednosti za NULL koristeći uobičajenu jednakost, jer SQL koristi logiku s tri vrijednosti - True, False, NULL, a rezultat takve usporedbe bit će UNKNOWN, što je u 1C 8.0 slično FALSE.
NULL<>0, dakle lijevo vanjske veze Ref. Nomenklatura s tablicama stanja, cijena, Protustranaka s međusobnim obračunima, u nedostatku takvih zapisa bit će NULL, što nije jednako 0. Najbolja odluka- NIJE NULL