Secțiuni ale site-ului
Alegerea editorilor:
- Numerologia numerelor de telefon, numerelor norocoase și descifrarea semnificațiilor acestora
- Gestionarea tipului de raport pe SKD 1S SKD afișând un tabel cu aspect
- Folosind funcția isnull()
- Cazuri pe situații pedagogice Atribuire de caz pe pedagogie
- gardian Pratchett. (traducere de S. Zhuzhunava, editată de A. Zhikarentsev) descărcare fb2. Citate din cartea „Garzi! Gardieni! Terry Pratchett
- Profesie: specialist în securitatea informațiilor
- Nomenclatura în contabilitatea 1s 8
- Informații contabile 1 întreprindere 8
- Cum să țineți cont de programele de calculator, antivirusurile și sistemele de ajutor Comandați software într-o organizație
- Principii, condiții și scopuri ale prelucrării datelor cu caracter personal Scopurile prelucrării datelor cu caracter personal la întreprindere
Publicitate
1c unde egal cu valoare sau nul. Folosind funcția isnull() |
27.06.2017 NULL, ISNULL() și IS NULL în interogările 1CCe este NULLNULîn rezultatul interogării, înseamnă că nu există nicio valoare (nu este o valoare goală, nu este nulă, nu este o referință nulă).De exemplu, ca urmare a conectării tabelelor de interogări, o valoare nu a fost găsită într-unul dintre tabele la conectarea folosind câmpurile de conexiune. Sau cererea se referă la un atribut (proprietate) inexistent. NULL nu este același lucru cu NULL!Dacă într-o cerere 1C doriți să impuneți o selecție (condiție) cu o verificare pentru NULL, atunci o construcție precum „WHERE VT.Field1 = NULL” va reveni întotdeauna MINCIUNĂ! Pentru a verifica, ar trebui să utilizați un operator specialEXISTA NULL în cererea 1CPentru a verifica o valoare (sau pentru a lucra cu valori) pentru NULL, trebuie să utilizați următoarea construcție „WHERE VT.Field1 IS NULL” Sau un alt exemplu, utilizați într-o construcție ALEGERE„SELECTION | WHEN VT.Field1 IS NULL | THEN” Este demn de remarcat faptul că funcția de verificare a unui câmp pentru NULL este una dintre cele mai consumatoare de resurse în interogările 1C. Prin urmare, dacă doriți să îl utilizați într-o stare de solicitare, luați în considerare dacă este posibil să înlocuiți o astfel de verificare îmbinare interioară(un tip de unire în interogări în care rămân în selecție doar înregistrările prezente în ambele tabele).Funcția ISNULL() în cererea 1CFuncţie ISNULL() vă permite să înlocuiți o valoare lipsă dintr-un câmp de solicitare cu o valoare specificată (valoare standard, stub).De exemplu, dacă nu există informații despre costul unui produs, atunci îl indicăm egal cu 0 (zero) „SELECT | ISNULL(T.Price, 0) AS Price | FROM Remaining Goods AS T” ConcluzieScrieți interogările corect și optim. Pentru că o cerere proastă înseamnă frâne și cod de rahat)Buna ziua. Tipul NULL este un literal care poate conține o singură valoare, valoarea „NULL”. Folosit atunci când lucrați cu o bază de date (la unirea tabelelor), folosit pentru a determina o valoare lipsă atunci când lucrați cu o bază de date. Valorile de tip NULL sunt formate ca urmare a îmbinărilor atunci când un element dintr-un tabel nu are un element corespunzător din altul. O valoare de tip NULL are caracteristici specifice: Pentru a determina valoarea NULL, utilizați constructul IS NULL (este NULL). Pentru a tăia câmpurile care conțin valori NULL ca urmare a unei solicitări, se folosesc următoarele construcții: - nu este NULL - nu este NULL ExempleExemplu de verificare a unei valori pentru NULL SELECT Director. Nomenclatură. Nume, director. Nomenclatură. Preț de achiziție UNDERE Director. Nomenclatură. Preț de achiziție Da NULL Exemplu de funcție ISNULL(). Cu stimă, programator 1C. Limbajul de interogare 1C este una dintre principalele diferențe dintre versiunile 7.7 și 8. Unul dintre cele mai importante puncte în învățarea programării 1C este limbajul de interogare. În 1C 8.3, interogările sunt cel mai puternic și eficient instrument pentru obținerea datelor. Limbajul de interogare vă permite să obțineți informații din baza de date într-un mod convenabil. Sintaxa în sine amintește foarte mult de T-SQL clasic, cu excepția faptului că în 1C, folosind limbajul de interogare, puteți primi date doar folosind constructul Select. Limbajul acceptă, de asemenea, constructe mai complexe, de exemplu, (cerere în cadrul unei cereri). Interogările în 1C 8 pot fi scrise atât în chirilic, cât și în latină. În acest articol voi încerca să vorbesc despre principalele cuvinte cheie în limbajul de interogare 1C:
Precum și câteva mici trucuri ale limbajului 1C, folosindu-te de care poți construi în mod optim textul de solicitare. Pentru a depana interogările în sistemul 1C 8.2, este furnizat un instrument special - consola de interogări. Puteți vedea descrierea și o puteți descărca folosind link-ul -. Să ne uităm la cei mai importanți și interesanți operatori ai limbajului de interogare 1C. SELECTAȚIÎn limbajul de interogare 1C Enterprise 8, orice interogare începe cu un cuvânt cheie ALEGE. În limbajul 1C nu există constructe UPDATE, DELETE, CREATE TABLE, INSERT; aceste manipulări sunt efectuate în tehnologia obiectelor. Scopul său este de a citi numai datele. De exemplu:
Interogarea va returna un tabel cu nume de elemente. Aproape de structura ALEGE puteți găsi cuvinte cheie PENTRU SCHIMBARE, PERMIS, VARIAT, PRIMUL … PERMIS— selectează numai înregistrările din tabel la care utilizatorul curent are drepturi. VARIAT— înseamnă că rezultatul nu va conține linii duplicate. SELECTARE (CAZ)Foarte des, acest design este subestimat de programatori. Un exemplu de utilizare a acestuia:
Exemplul va returna o valoare text în câmpul „Tip articol” - „Produs” sau „Serviciu”. UNDEDesignul limbajului de interogare 1C, care vă permite să impuneți selecția datelor primite. Vă rugăm să rețineți că sistemul primește toate datele de la server și numai atunci este selectat pe baza acestui parametru.
În exemplu, selectăm înregistrări pentru care valoarea atributului „Service” este setată la „True”. În acest exemplu, ne-am descurca cu următoarea condiție:
În esență, selectăm rânduri în care expresia de după cuvântul cheie este egală cu „Adevărat”. Puteți folosi condiții directe în expresii:
Folosind operatorul „VALUE()” în condiții, utilizați accesul la elemente și enumerari predefinite într-o solicitare 1C:
Valorile de timp pot fi specificate după cum urmează:
Cel mai adesea, condițiile sunt specificate ca parametri trecuți la cerere: Obțineți 267 de lecții video pe 1C gratuit:
O condiție poate fi impusă tipului de atribut dacă este de tip compus: Dacă trebuie să limitați selecția dintr-o listă de valori sau dintr-o matrice, puteți face următoarele:
Condiția poate fi, de asemenea, complexă, constând din mai multe condiții:
A SE GRUPA CUProiectarea limbajului de interogare 1C 8.2 utilizat pentru gruparea rezultatului. De exemplu:
Această solicitare va rezuma toate încasările după sumă și cantitate pe articol. Pe lângă cuvântul cheie SUMĂ Puteți utiliza alte funcții agregate: CANTITATE, NUMĂR DE DIFERITE, MAXIM, MINIM, IN MEDIE. AVÂNDUn design care este adesea uitat, dar este foarte important și util. Vă permite să specificați selecția sub forma unei funcții agregate, acest lucru nu se poate face în proiectare UNDE. Exemplu de utilizare a HAVING într-o solicitare 1C:
Deci vom selecta numărul de produse care au sosit mai mult de 5 bucăți. SENS()De exemplu:
TYPE la cerereTipul de date poate fi verificat folosind funcțiile TYPE() și VALUETYPE() sau folosind operatorul logic REFERENCE. EXPRES()Operatorul Express în interogările 1C este utilizat pentru a converti tipurile de date. Sintaxă: EXPRES(<Выражение>CUM<Тип значения>) Folosind-o, puteți converti valorile șirurilor în date sau valorile de referință în date șirurile și așa mai departe. În aplicațiile practice, operatorul Express() este folosit foarte des pentru a converti câmpuri de lungime nelimitată, deoarece câmpurile de lungime nelimitată nu pot fi selectate, grupate etc. Dacă astfel de câmpuri nu sunt convertite, veți primi o eroare Nu puteți compara câmpuri de lungime nelimitată și câmpuri de tipuri incompatibile.
ISNULL (ISNULL)O funcție destul de utilă a limbajului de interogare 1C care verifică valoarea din înregistrare și dacă este egală NUL, Acest lucru vă permite să îl înlocuiți cu propria dvs. valoare. Cel mai adesea folosit la obținerea tabelelor virtuale de solduri și cifre de afaceri pentru a se ascunde NULși pune un 0 clar (zero).
O astfel de funcție a limbajului de interogare 1C ISNULL va returna zero dacă nu există nicio valoare, ceea ce va evita o eroare. A TE ALATURAExistă 4 tipuri de conexiuni: STÂNGA, DREAPTA, COMPLET, INTERN. CONEXIUNEA STÂNGA și DREAPTAÎmbinările sunt folosite pentru a lega două tabele pe baza unei anumite condiții. Caracteristică când LEFT JOIN este că luăm primul tabel specificat în întregime și legăm condiționat al doilea tabel. Câmpurile celui de-al doilea tabel care nu au putut fi legate de condiție sunt completate cu valoarea NUL. Un exemplu de alăturare stângă într-o solicitare 1C: Va returna întregul tabel și va completa câmpul „Bancă” numai în acele locuri în care este îndeplinită condiția „Contrapărți.Nume = Bănci.Nume”. Dacă condiția nu este îndeplinită, câmpul Bank va fi setat la NUL. RIGHT JOIN în limba 1C 8.3 absolut asemănătoare Conexiune LEFT, cu excepția unei diferențe: în DREPTUL DE CONECTARE Masa „principală” este a doua, nu prima. CONEXIUNE COMPLETACONEXIUNE COMPLETA diferă de stânga și dreapta prin faptul că afișează toate înregistrările din două tabele și le conectează numai pe cele pe care le poate conecta în funcție de condiție. De exemplu:
Limbajul de interogare va returna ambele tabele complet numai dacă este îndeplinită condiția Join records. Spre deosebire de o îmbinare stânga/dreapta, este posibil ca NULL să apară în două câmpuri. INNER JOININNER JOIN diferă de cel complet prin faptul că afișează numai acele înregistrări care ar putea fi conectate în funcție de o anumită condiție. De exemplu:
Această interogare va returna numai rândurile în care banca și contrapartea au același nume. ConcluzieAceasta este doar o mică parte din sintaxa din limbajul de interogare 1C 8; în viitor voi încerca să iau în considerare câteva puncte mai detaliat, să arătam și multe altele! NUL- valori lipsă. NULL este o valoare de formare a tipului, adică există un tip NULL și o singură valoare de acest tip. Valorile NULL apar în interogare în următoarele situații: ESTE NUL utilizat în operatorul SELECT (ca și cum ar fi verificat dacă valoarea este goală (Value IS NULL)): Funcţie ISNULL(valoare, ResultIfNULL) returnează valoarea primului său parametru dacă nu este NULL și valoarea celui de-al doilea parametru în caz contrar ISNULL diferă de CHOICE din următoarele motive: Nu puteți verifica valorile pentru NULL folosind egalitatea obișnuită, deoarece SQL utilizează logica cu trei valori - Adevărat, Fals, NULL, iar rezultatul unei astfel de comparații va fi NECUNOSCUT, care în 1C 8.0 este similar cu FALSE. Atenţie! Aceasta este o versiune introductivă a lecției, ale cărei materiale pot fi incomplete. Conectați-vă la site ca student Conectați-vă ca student pentru a accesa materialele școlare Limbajul de interogare 1C 8.3 pentru programatori începători: funcții și operatori pentru lucrul cu tipuri (VALUE TYPE, TYPE, REFERENCE, ISNULL, EXPRESS)Să ne amintim că fiecare atribut (proprietate, câmp) al unui director, document sau orice alt obiect aplicație are propriul său tip. Și ne putem uita la acest tip în configurator: În limbajul de interogare, există o întreagă clasă de funcții și operatori pentru lucrul cu tipuri de detalii. Să ne uităm la ele. Funcția VALUE TYPEAceastă funcție preia un parametru (valoare) și returnează tipul acestuia. Pentru recuzita descrisă în imagine (mai sus) Gust director Alimente vor fi returnate următoarele: Acum să ne uităm la recuzită Trăsătură distinctivă la director Orase: Vedeți că această recuzită poate fi una din mai multe tipuri: Linia, Director.Gusturi, Director.Culori. Acest tip de detalii se numește COMPOSIT. Dacă încercăm să completăm valoarea unui astfel de detaliu în modul 1C:Enterprise, sistemul ne va întreba ce tip de valoare va fi introdusă: Și numai după selecția noastră ne va permite să introducem valoarea tipului selectat. Astfel, elemente de director de același tip ( Director.Orase) va putea stoca în același atribut ( Trăsătură distinctivă) valori de diferite tipuri (String, Culori sau Arome). Puteți vedea acest lucru singur făcând clic pe elementele directorului Oraseîn 1C:mod Enterprise. Citiți o versiune de probă a lecției, sunt disponibile lecții complete. Aici valoarea caracteristică distinctivă este un element de director Arome: Iată linia: Și aici este, în general, un element al cărții de referință Culori: Acestea sunt posibilitățile pe care ni le deschide un tip de date compus! Mă întreb cum se va comporta funcția VALORI DE TIP pe recuzită Element distinctiv, având un tip de date compus: Acest lucru este deja foarte interesant. Să ne uităm la fiecare linie individual. Tipul de valoare a trăsăturii distinctive pentru elementul este egal cu Rusia NUL. Este prima dată când întâlnim acest tip. Valorile de acest tip sunt folosite numai pentru a determina valoarea lipsă atunci când lucrați cu baza de date. Acest lucru este adevărat, deoarece elementul Rusia este un grup și nu un element de director obișnuit Orase, deci nu are câmp Trăsătură distinctivă. Iar tipul unei valori lipsă, după cum citim mai sus, este întotdeauna egal cu NUL. Tipul de valoare a caracteristicii distinctive pentru Perm este egal cu Arome. Acest lucru este adevărat, deoarece valoarea caracteristicii distinctive introduse în baza de date pentru orașul Perm este o legătură către elementul director Arome. Pentru Krasnoyarsk, tipul de atribut este egal cu Culori, deoarece valoarea selectată în baza de date este o legătură către un element de director Culori. Pentru Voronezh, tipul de atribut este egal cu Linia, deoarece valoarea introdusă în baza de date este un șir obișnuit. India este din nou un grup, deci nu are nicio semnificație. Și tipul valorii lipsă, după cum ne amintim, este egal cu NUL. Iată chestia. Dacă mergeți la elementul director Orase cu nume Sao Paulo, atunci vei vedea că câmpul Trăsătură distinctivă deloc completat. E gol. A toate câmpurile goale de tip compus au o semnificație specială NEDEFINIT . CU NEDEFINIT ne întâlnim și noi pentru prima dată. Sens NEDEFINIT folosit atunci când este necesar să se utilizeze o valoare goală care nu aparține niciunui alt tip. Aceasta este exact situația noastră. Și tipul valorii NEDEFINIT, după cum probabil ați ghicit deja, este egal cu NUL. Funcție TIPEste nevoie de un singur parametru - numele tipului primitiv ( LINIA, NUMĂR, DATA, BOOLEAN), sau numele tabelului al cărui tip de link doriți să obțineți. Rezultatul acestui construct va fi o valoare de tip Type pentru tipul specificat. Sună vag, nu-i așa? Să ne uităm la aplicarea acestui design și totul va cădea imediat la loc. Să presupunem că trebuie să selectăm toate intrările din director Orase, care au recuzită compozită Trăsătură distinctivă are o valoare de tip LINIA: Acum să selectăm toate înregistrările care au valori de atribut Trăsătură distinctivă sunt legături către elemente de director Culori(masa Director.Culori): RetragereDupă cum vă amintiți, câteva elemente ale directorului Orase nu au recuzită Trăsătură distinctivă. Funcţie VALORI DE TIP pentru astfel de elemente pe care le produce NUL. Cum puteți selecta astfel de elemente într-o interogare? Pentru aceasta este prevăzut un operator logic special ESTE NUL(a nu se confunda cu funcția ISNULL, pe care ne vom uita mai jos). Citiți o versiune de probă a lecției, sunt disponibile lecții complete. Iată un exemplu de utilizare a acestuia: Grozav. Dar ați observat că nu există niciun element din Sao Paulo, tipul valorii de recuzită Trăsătură distinctivă pe care l-a dat și el NUL. De ce s-a întâmplat? Dar chestia este că situația pentru grupuri (Rusia, India, Brazilia), pentru care completarea detaliilor Trăsătură distinctivă imposibil în principiu, deoarece nu o au deloc, diferă de situația pentru elementul Sao Paulo, pentru care este posibilă completarea recuzitei, dar pur și simplu nu este completată și este egală, după cum ne amintim, cu o valoare deosebită NEDEFINIT. Pentru a selecta toate înregistrările care au cerințele Trăsătură distinctivă prezent, dar nu umplut, ar trebui folosită o construcție diferită: Dar compararea cu UNDEFINED pentru a determina atributele goale (necompletate) va funcționa numai pentru tipurile compuse. Apropo, operatorul logic IS NULL are o formă de negație care arată astfel: Operator logic LINKDe exemplu, să selectăm din director Orase numai acele înregistrări care au valoarea unui atribut compus Trăsătură distinctivă sunt un link către un element de director Arome: După cum vă amintiți, am putea rezolva aceeași problemă folosind VALORI DE TIPȘi TIP: Funcția ISNULLFuncția este concepută pentru a înlocui o valoare NUL la un alt sens. Ne amintim că sensul NUL returnat dacă atributul solicitat (câmp, proprietate) nu există. De exemplu, recuzită Trăsătură distinctivă pentru grupuri de directoare Orase: Funcţie ISNULL ne va ajuta să scoatem o valoare diferită dacă această valoare este egală cu NUL. Citiți o versiune de probă a lecției, sunt disponibile lecții complete. Să fie în acest caz linia „Nu există o astfel de recuzită!”: Se pare că dacă primul parametru al funcției ISNULL nu este egal NUL, apoi se întoarce. Dacă este NULL, atunci este returnat al doilea parametru. Funcția EXPRESSAceastă funcție este numai pentru câmpurile care au un tip compus. Un exemplu excelent al unui astfel de domeniu este proprietatea Trăsătură distinctivă pentru elementele directorului Orase. După cum ne amintim, câmpurile compuse pot fi unul dintre mai multe tipuri specificate în configurator. Pentru câmp Trăsătură distinctivă astfel de tipuri valide sunt LINIA, Director.CuloriȘi Director.Gusturi. Uneori devine necesar să turnați valorile unui câmp compus la un anumit tip. Să enumerăm toate valorile câmpului Trăsătură distinctivă a tasta Referință.Culori: Ca rezultat, toate valorile elementelor care au fost de tip Director.Culori, au rămas umplute și au fost convertite la tipul specificat. Toate valorile de alte tipuri ( LINIA, Director.Gusturi) sunt acum egale NUL. Aceasta este particularitatea turnării tipului folosind funcția EXPRES. Puteți arunca un tip fie într-un tip primitiv ( BOOLEAN, NUMĂR, LINIA, DATA) sau la un tip de referință. Citiți o versiune de probă a lecției, sunt disponibile lecții complete. Dar tipul la care se face turnarea trebuie inclus în lista de tipuri pentru acest câmp compozit, altfel sistemul va arunca o eroare. A lua testulÎncepeți testul 1. Alegeți afirmația cea mai corectă 2. Sunt numite detalii care pot lua valori de unul dintre mai multe tipuri 3. Pentru a determina tipul valorii atributului, utilizați funcția 4. Detaliile goale ale unui tip compozit sunt importante |
Citit: |
---|
Popular:
Nou
- Gestionarea tipului de raport pe SKD 1S SKD afișând un tabel cu aspect
- Folosind funcția isnull()
- Cazuri pe situații pedagogice Atribuire de caz pe pedagogie
- gardian Pratchett. (traducere de S. Zhuzhunava, editată de A. Zhikarentsev) descărcare fb2. Citate din cartea „Garzi! Gardieni! Terry Pratchett
- Profesie: specialist în securitatea informațiilor
- Nomenclatura în contabilitatea 1s 8
- Informații contabile 1 întreprindere 8
- Cum să țineți cont de programele de calculator, antivirusurile și sistemele de ajutor Comandați software într-o organizație
- Principii, condiții și scopuri ale prelucrării datelor cu caracter personal Scopurile prelucrării datelor cu caracter personal la întreprindere
- Credite online în Kazahstan - cele mai bune oferte