internetul Windows. Android

În ierarhia 1c 8.2 Cerere de comunicare. Exemple de cereri de lucru cu directoare ierarhice

Pentru cărțile de referință 1c - un obiect specializat al copacului de metadate, care servește la stocarea informațiilor de referință statice. De exemplu, în configurații tipice puteți vedea următoarele tipuri: "nomenclatură, angajați, active fixe etc. Informații în cărțile de referință, de regulă, adesea nu se schimbă. Directoarele sunt ulterior utilizate în aproape toate obiectele contabile ca incizia de informații de contabilitate sau de referință.

Mai jos vom privi la setarea și designul directorului de la configurator pe exemplul directorului "Nomenclature".

Fila "Main"

Fila "Main" indică numele, sinonimul, prezentarea obiectului, descrierea destinației.

Tab "ierarhia directorului"

Iată ierarhia cărții de referință.

Ierarhia în 1c 8.3 este de două tipuri - " grupuri și elemente"Și" elemente". Se distinge prin faptul că, în primul caz, părintele (folderul) poate fi doar un dosar (grup) și în al doilea caz, elementul poate fi părinte.

"Plasați grupurile de sus" - Steagul este responsabil pentru afișarea grupurilor sub forma unei liste.

De asemenea, în setările puteți limita numărul de grupuri de ierarhie de referință cu setarea corespunzătoare.

Fila "proprietari"

Directorul poate fi subordonat altor directoare. Din punct de vedere al configurației 1c 8.3, acest lucru înseamnă că elementul de depunere devine proprietarul obligatoriu ". Un exemplu de astfel de conectare a cărților de referință în configurații tipice "Nomenclator - unități de măsurare", "contrapartide".

Proprietarul directorului poate avea, de asemenea, următoarele obiecte de metadate :.

Fila "date"

Obțineți 267 Tutoriale video pentru 1C gratuit:

Cea mai importantă filă din punctul de vedere al programatorului. Indică detaliile directorului.

Directorul are un set de detalii standard care nu sunt editate de programator 1c 8.2, lista poate fi văzută făcând clic pe butonul "Detalii standard":

Voi opri fiecare mai mult:

  • Acest grup - recuzită cu tip Buleveo, prezentând, grupul este sau elementul. Disponibil numai în directorul ierarhic. Notă, valoarea acestor recuzită nu poate fi modificată în modul 1C: Enterprise.
  • Codul - recuzită, numere de tip sau șir (de obicei șir). Numărul atribuit automat sistemului. De regulă, se calculează ca (codul precedent + 1). Vă recomandăm să utilizați un tip de șir, deoarece sortarea valorilor numerice nu este după cum este necesar. Puteți utiliza ca referință la listă și în câmpurile de introducere. De regulă, este folosit pentru a căuta un element atunci când introduceți șirul. Dacă trebuie să eliminați câmpul de cod, specificați lungimea șirului zero.
  • Nume - Props, obligatoriu pentru a umple, tip de șir. Lungime maxima Rânduri - 150 de caractere. Puteți utiliza ca referință la listă și în câmpurile de introducere. De regulă, este folosit pentru a căuta un element atunci când introduceți șirul. Dacă aveți nevoie să eliminați câmpul Nume, specificați lungimea șirului zero.
  • Mamă - cerința cu directorul de tip.<ИмяТекущегоСправочника>. Disponibil numai în directorul ierarhic. Indică un părinte mai mare în ierarhie. Dacă elementul sau grupul se află în rădăcina directorului, este specificată valoarea directorului.<ИмяТекущегоСправочника>. Insendre.
  • Proprietar - referire la proprietarul elementului al elementului curent (grup) al cărții de referință. Disponibil numai în directorul subordonat 1c.
  • Petchildren. - recuzită cu tipul Buleveo. Responsabil pentru afișarea "îndepărtării" în sistem. Elementul marcat pentru îndepărtare este considerat necorespunzător pentru utilizare, dar mișcările vechi pot rămâne pe ea.
  • Legătură - Câmpul șirului. Acest detaliu stochează identificatorul unic al obiectului - GUID. Faptul că în sistemul pe care îl vedem în afișarea vizuală a numelui "Link" este doar o prezentare a obiectului. Este imposibil să se schimbe.
  • Predefinit - tipul de boolean, afișează dacă elementul este predeterminat, mai târziu. Este imposibil să se schimbe.

În fila Date, cartea de referință din sistem este, de asemenea, indicată, la versiunea 8.2.16, prezentarea ar putea fi doar cod sau nume. ÎN versiuni proaspete Platforme (începând cu 8,3) Reprezentarea poate fi descrisă independent în modulul managerului utilizând manipulatorul procesului de procesare.

Fila de numerotare

Aici specificați setările directorului ca parte a numeroasei. Se recomandă utilizarea Autonumberării. Controlul unicității este un steag care ajută, dacă este necesar, este unic codul unic. Dacă încercați să scrieți o referire la cartea de referință cu un cod de referință instalat cu un cod de referință, în 1c veți primi un mesaj "Codul de referință a devenit nerezonabil".

O serie de coduri - determină modul de numerotare a unei cărți de referință, puteți introduce numerotarea directorului în contextul proprietarului. De exemplu, contrapartida "Horn și Hooves" va avea propria nume de contracte - "1, 2, 3" și așa mai departe.

Fila "formulare"

Aici sunt descrise formulare pentru o carte de referință. Dacă configurația pornește atât în \u200b\u200bmodul convențional, cât și în modul controlat, atunci vor fi două file cu formele implicite: "Main" și "Opțional" - pentru aplicarea obișnuită și gestionată sunt diferite.

Pe această pagină există o proprietate importantă a directorului - "". Aceasta este o funcție foarte convenabilă de 1c 8, permițând la completarea datelor în câmpul de introducere nu intră în directorul, ci să-l tastați, cod sau altele asemenea. și alegeți din lista derulantă elementul dorit. Se pare așa:

Fila "altele"

În fila puteți obține acces rapid Modulele principale ale cărții de referință sunt modulul obiectului și modulul managerului.

Pe pagină, puteți defini, de asemenea, o listă de elemente de referință predefinite. Acestea sunt elemente care nu pot fi eliminate în modul întreprinderii. Puteți contacta elementele predefinite din configurator direct după nume, de exemplu: cărți de referință. Substituția.

Această filă definește, de asemenea, modul de blocare - automat sau gestionat. Utilizarea căutării de text integral, precum și informații despre carte de referință disponibile în modul 1C: întreprinderi.

În acest articol vrem să discutăm cu dvs. funcțiile limbii de interogare 1C, precum și proiectarea cererilor de limbă. Care este diferența dintre funcția de proiectare? Funcția este numită cu paranteze și posibile parametri în ele, iar designul este scris fără paranteze. Cu siguranță toate modelele și funcțiile solicitărilor 1C Efectuați procesul de obținere a datelor flexibile și multifuncționale. Aceste funcții și modele sunt aplicabile domeniilor de interogare, iar unele sunt, de asemenea, aplicabile în condiții.

Funcțiile limbii de interogare 1c

Deoarece descrierea de înțelegere funcții de limbă de interogare 1C Este mult mai puțin frecvent decât descrierea structurilor, am decis să începem să luăm în considerare funcțiile. Acum, să ne uităm la fiecare separat prin descrierea scopului, sintaxei și a unui exemplu de utilizare, deci:

1. Funcţie Data de data - Această funcție creează un câmp constant cu tipul de dată.

Sintaxă: Timpul de dată (<Год>,<Месяц>,<День>,<Час>,<Минута>,<Секунда>)

Exemplu de utilizare:

2. Funcția este distincție - Returnează diferența dintre două date într-una din măsurători (an, lună, zi, oră, minut, al doilea). Măsurarea este transmisă în parametru.

Sintaxă: Distinct (<Дата1>, <Дата2>, <Тип>)

Exemplu de utilizare:

Solicitare.Text \u003d "Alegeți | Distributiv (Datastern (2015, 4, 17), Datastern (2015, 2, 1), zi) ca coleg";

3. Valoarea funcției - Specifică un câmp constant cu o înregistrare predefinită din baza de date, puteți obține, de asemenea, o legătură goală de orice tip.

Sintaxă: valoare (<Имя>)

Exemplu de utilizare:

Solicitare.Text \u003d "Alegeți /// element predefinit | Adică (manual. Valtil.dollar) ca un dolar, // Link gol | Valoare (document.beseculeteAlte servicii. Aprovizionare mai mică) ca o admitere, // semn. Listă | Adică (enumerare .urfizliko.fizli) ca cont fizic, // contul predefinit | Valoare (plantari. Sursa. Materiale) ca scor_10 ";

4. Selectarea funcțiilor - Avem un analog al designului dacă este utilizat în cod, numai acest lucru este utilizat în cererile 1c.

Sintaxă: Selecție când<Выражение> ATUNCI<Выражение> In caz contrar<Выражение> SFÂRȘIT

Exemplu de utilizare:

Solicitare.Text \u003d // Dacă suma este mai mare de 7500, atunci trebuie să existe o reducere de 300 de ruble, // prin urmare, dacă starea este declanșată de funcția // returnează suma - 300 // altfel cererea se va întoarce Pur și simplu suma "Alegeți | alegerea | când PTCUM.\u003e 7500 | Atunci Achiziția PTC. Summum - 300 | Altfel Realizarea PTC. Summum | Sfârșit ca rezumat | Document. Nu sunt disponibile echipamente.

5. Funcția Express. - Vă permite să exprimați câmpul constant cu un tip specific.

Sintaxă: Express (plăcuța de identificare numită)

Exemplu de utilizare:

Solicitare.Text \u003d "Alegeți diferite | vânzări Realizarea | apoi Express (margine de vânzări ca document. Realizarea) End | ... | End ca număr | Deregistrează .. Impozitele cum ar fi achizițiile ";

Există încă o opțiune de a utiliza funcția de exprimare în câmpurile de tipuri mixte, unde se întâlnesc acestea? Cel mai simplu exemplu este "înregistratorul" oricărui registru. Deci, de ce trebuie să specificăm tipul în registrator? Să ne uităm la situația când selectăm câmpul "Număr" de la grefier, de la ce tabel va fi selectat numărul? Răspuns corect din partea tuturor! Prin urmare, pentru ca cererea noastră să funcționeze rapid, specificați un tip clar folosind funcția de exprimare

Exemplu de utilizare:

Solicitare.Text \u003d "Alegeți | pentru a exprima (nomenclatură. Comentariu ca șir (300)) ca un comentariu, | Express (Nomenclatură. Un astfel de număr (15.2)) ca o sumă de la Directory. Nameneture ca nomenclatură";

6. Funcția isNull. (ISNULL de scriere alternativă) - Dacă câmpul are un tip nul, atunci acesta este înlocuit cu al doilea parametru de funcție.

Sintaxă: Acolo islull (<Поле>, <ПодставляемоеЗначение>)

Exemplu de utilizare:

De asemenea, rețineți că tipul nul este de dorit să înlocuiți întotdeauna pentru o anumită valoare, deoarece Comparația cu tipul null oferă întotdeauna o minciună, chiar dacă comparați nul cu null. Cel mai adesea, valorile nulă sunt formate ca urmare a meselor de conectare (toate tipurile de compuși, cu excepția internă).

Solicitare.Text \u003d // Selectați întreaga nomenclatură și reziduuri pe el // Dacă reziduul, dar unele nomenclaturi există, va fi un câmp // null care va fi înlocuit cu o valoare de 0 "Alegeți | Nizhklinka, | Havelull ( Merchant) ca echilibru | de la Directory. Namerenclatură ca domnul | a lăsat legătura de regizor. Towsneskladakh. contururi ca Kompacecladekladakovaka | conform (bunurilor și magazinului.

7. Funcția de prezentare - Vă permite să obțineți o vizualizare a câmpului de interogare.

Sintaxă: REPREZENTARE(<НаименованиеПоля>)

Exemplu de utilizare:

Solicitare.Text \u003d "Alegeți | Prezentare (prosomomie gratuită.

Proiecte în limba de interogare 1C

De mai sus am revizuit cu dvs. funcțiile limbii de interogare 1CAcum este timpul să luăm în considerare proiecte în limba de interogare 1C, ele nu sunt mai puțin importante și utile, continuați.

1. Design Link. - reprezintă un operator de verificare a tipului de referință logic. Cel mai adesea apare atunci când verificați câmpul de tip compozit la un tip specific. Sintaxă: LEGĂTURĂ<Имя таблицы>

Exemplu de utilizare:

Solicitare.Text \u003d // dacă tipul de valoare de înregistrare parohie de documente, // atunci cererea va returna "sosirea bunurilor", altfel "vânzări de bunuri" "alegeți | alegerea | când resturile. Înregistrați documentul de legătură. Bottomyteeterstervius | În caz contrar "" Consumul "" se încheie ca viziune de la | înregistrare. Sosttopovarovarnands ca reziduuri ";

2. Construcții între - acest operator Verifică dacă valoarea este inclusă în intervalul specificat.

Sintaxă: ÎNTRE<Выражение> ȘI<Выражение>

Exemplu de utilizare:

Solicitare.Text \u003d // Obținem întreaga nomenclatură a codului de care se află în intervalul de la 1 la 100 "Selectați | Nomenclatura. Link | Detare de date ;

3. Design în și în ierarhie - Verificați dacă valoarea din listă este transmisă (matrice, tabelele de valori etc. sunt transmise ca o listă.). Operatorul din ierarhie vă permite să vizualizați ierarhia (exemplu de utilizare a planificării).

Sintaxă: ÎN(<СписокЗначений>), În ierarhie (<СписокЗначений>)

Exemplu de utilizare:

Solicitare.Text \u003d // Selectați toate conturile de subaccount "Alegeți | Hosch Estch. Link ca un cont | de la Plancocks. Sursa ca angajat în cazul în care găzduiește în valoare de ierarhie (plante. Ne pare rău.

4. Design ca. - Această caracteristică ne permite să comparăm un șir cu un model de șir.

Sintaxă: Ca "<ТекстШаблона>"

Variante ale șablonului de șir:

% este o secvență care conține orice număr de caractere arbitrare.

Un simbol arbitrar.

[...] - Orice caracter unic sau secvență de caractere din paranteze pătrate enumerate. Listele pot seta intervalele, de exemplu A-Z, adică un simbol arbitrar inclus în intervalul, inclusiv capetele benzii.

[^ ...] - Orice simbol unic sau o secvență de caractere din paranteze pătrate enumerate pe lângă cele care sunt urmate de pictograma neagră.

Exemplu de utilizare:

Solicitare.Text \u003d // Găsiți întreaga nomenclatură care conține rădăcina urechii și începe // cu un mic fie cu o literă capitală T "Alegeți | Nomenclatura] abo%" ";

5. Designul permis - Acest operator vă permite să selectați numai acele înregistrări din baza de date la care apelantul are dreptul de a citi. Aceste drepturi sunt configurate la nivelul înregistrărilor (RLS).

Sintaxă: Permis este scris după cuvinte cheie ALEGE

Exemplu de utilizare:

Solicitare.Text \u003d "Selectați permis | contrapartide. Link | din directorul | Contrină ca contrapartide";

6. Diferite modele - Vă permite să selectați înregistrări în care nu există intrări repetate.

Sintaxă: Diverse scrise după cuvântul cheie de a alege

Exemplu de utilizare:

Solicitare.Text \u003d // selectează înregistrările pentru care există drepturi la citire "Alegeți diverse | contrapartide. Renațional | Contrină ca contrapartide";

De asemenea, designul poate fi, de asemenea, utilizat împreună cu operatorul permis și cu alți operatori.

Exemplu de utilizare:

Solicitare.Text \u003d // selectează diverse înregistrări pe care există drepturi la cititor "Alegeți Diverse Diverse | contrapartide. Renațional | Contrină ca contrapartide";

7. Designul este primul - Selectează numărul specificat în parametrul parametrului din rezultatul interogării.

Sintaxă: În primul rând<число>

Exemplu de utilizare:

Solicitare.Text \u003d // Selectați primele 4 numere de GTD din cartea de referință "Selectați primul 4 | ngd. Link | din directorul. MELEGTD ca număr";

8. Construcție pentru schimbare - Vă permite să blocați tabelul, funcționează numai în tranzacții (relevante numai pentru încuietorile automate).

Sintaxă: PENTRU SCHIMBARE<НаименованиеТаблицы>

Exemplu de utilizare:

Solicitare.text \u003d "Selectați FreeSestakeSakes. Namerenclatură, Free ProSaurekes. Plabă, | Free ProSail. Distribuție. De la | Se aprobă. Suplimente despre speciale | Pentru a schimba | Înregistrare

9. Construcție Sortează după - Organizarea datelor pe un anumit domeniu. Dacă câmpul este link-ul atunci când instalați steagul Auto-comandă Sortarea pentru a vizualiza linkul va apărea dacă steagul este oprit, apoi link-urile sunt sortate de vechimea de la adresa linkului în memorie.

Sintaxă: FILTREAZĂ DUPĂ<НаименованиеПоля> Auto-comandă

Exemplu de utilizare:

Solicitare.Text \u003d "Alegeți | FreeSestakeSakes. NomeLaClature ca nomenclatură, Prosaustakes gratuit. Placă ca un depozit, Free prosaustakes. Salariu de distribuție | Deregistreaza-te.

10. Structura grupului In. - Folosit pentru a grupa un rând de interogare în anumite câmpuri. Câmpurile numerice trebuie utilizate cu orice funcție agregată.

Sintaxă: Grupate de către<НаименованиеПоля1>, .... , <НаименованиеПоляN>

Exemplu de utilizare:

Solicitare.Text \u003d "Alegeți | Păstrarea pachetelor. NomeLaClature ca nomenclatură, locuri de muncă. Slab, | suma (bunuri, diferențe) ca vanitate de la | Înregistrați-vă.

11. Construcția având - Vă permite să aplicați o funcție agregată la starea de eșantionare a datelor, arată ca un design unde.

Sintaxă: Având<агрегатная функция с условием>

Exemplu de utilizare:

Solicitare. Text \u003d // Selectează înregistrările grupate în care câmpul Vnitsy este mai mare de 3 "Selectați | produse Consumabile în picioare, | SLAP | Supplies Stoc | Având | suma (accesorii de comerciant)\u003e 3 ";

12. Indexul de design Po. - Folosit pentru a indexa câmpul de interogare. Cererea de indexare se efectuează mai mult, dar accelerează căutarea câmpurilor indexate. Puteți fi utilizat numai în tabele virtuale.

Sintaxă: Indexul de către<Поле1, ... , ПолеN>

Exemplu de utilizare:

Solicitare Tk .codes ";

13. Design în cazul în care - Vă permite să impuneți o condiție pentru orice câmp de eșantionare. Numai satisfacerea condiției va avea ca rezultat rezultatul.

Sintaxă: UNDE<Условие1 ОператорЛогСоединения УсловиеN>

Exemplu de utilizare:

Solicitare.Text \u003d // toate postările a căror compensare<> 0 și // Selectați | compensațieReposti. Contractorul, CompensareaPosta<> 0 | Și compensațiiArpostatki.sumadlarachkomppostuatat\u003e 100 ";

14. Rezultatele designului ... de General - Este folosit pentru a număra rezultatele, structurile indică câmpurile pentru care sunt luate în considerare rezultatele și funcțiile agregate aplicate câmpurilor finale. Când utilizați rezultatele pe fiecare câmp, rezultatul este rezultatul unui grup de date. Există un design parțial opțional, utilizarea sa oferă, de asemenea, o grupare suplimentară. Un exemplu al rezultatului interogării pe care îl veți vedea mai jos.

Sintaxă: Rezultate<АгрегатнаяФункция1, ... , АгрегатнаяФункцияN> DE<ОБЩИЕ> <Поле1, ... , ПолеN>

Exemplu de utilizare:

Solicitare.Text \u003d "Selectați | Calcule. Calcule. Calcule. Calcule ale calculului, Calcule. Cottagetragent, ;

Cifra include grupări care au fost formate în timpul executării interogării, partea de sus aparține secțiunii generale, iar al doilea la domeniul comunicantului sensibil la contract.

Designul "în ierarhie" în cererile 1c: Întreprinderile 8.x vă permite să obțineți elemente subordonate ale obiectului de configurare ierarhic pe o selecție dată. Astăzi, în articol, ia în considerare un exemplu de utilizare a acesteia, precum și acțiunea platformei din partea DBMS și impactul acesteia asupra productivității.

Folosind.

Luați în considerare un exemplu simplu de utilizare a designului "în ierarhie". La executarea următoarelor interogări, elementele subordonate ale cărții de referință ierarhice "bunuri" pentru valoarea transmisă a variabilei de referință.

Solicitare text \u003d "Selectați | bunuri . Legătură, | Produse . Cod furnizor |DE | Director . Produse cum ar fi bunurile | Unde | Produse . Link la ierarhie (& link)"

În baza de testare, cartea de referință "Produsele" are următoarele date de testare:

Desigur, imaginea nu arată toate înregistrările cărții de referință. Screenshot afișează numai structura de stocare din directorul ierarhic. Tabelul cărții de referință stochează 10 grupuri nivel superiorFiecare dintre acestea conține 5 grupări încorporate cu 200 de elemente în fiecare.

Reveniți la K. solicitarea de testare. Să ne trimitem la parametrul "& link" la grupul "Grupul - 1" (a se vedea screenshot mai sus). Apoi rezultatul interogării va arăta astfel:

După cum vedem, cererea a returnat legătura cu grupul superior însuși (transmis de parametru), precum și grupuri imbricate cu elemente în ele. Astfel, utilizarea designului "în ierarhie" vă permite să primiți convenabil date subordonate ierarhic.

Sintaxă a limbii de interogare 1C: Întreprinderi și clasic SQL. Foarte asemănătoare în unele momente. Dar pentru expresia "în ierarhie" nu există nici un analog în limba sQL interogări De exemplu, pentru a exprima limba de interogare a platformei "în" există o declarație SQL similară "în". Prin urmare, lucrarea platformei din DBMS este interesantă atunci când utilizați acest operator.

În spatele scenelor

Deci, procedați. De exemplu, vom folosi cererea scrisă anterior către cartea de referință "bunuri". Analizând acțiunile platformei vor fi pentru două situații:

  1. Ca parametru "& link", hai să dăm un grup de grup de nivel superior "Grupul 1" (așa cum am făcut mai devreme).
  2. În parametru, permiteți-ne să oferim o legătură cu grupul Grupa 1 - 1 investit în grupul Grupul 1 Grupul.

Acum, în ordine. În primul caz, platforma va efectua următorii pași pe serverul SQL:

1. În primul rând, o solicitare SQL este executată la primirea unei referințe la grupul de directoare transmis ca parametru și toate grupurile subordonate. Rezultatul este plasat într-o masă temporară "# TT1".

2. În a doua etapă, aceeași interogare se efectuează de două ori:

Screenshot a comentat în detaliu textul interogării SQL. Dacă scurt, interogarea vă permite să selectați elemente subordonate pentru grupuri, link-uri la care se află într-o masă temporară. Întrebarea rămâne: "De ce cererea este efectuată de două ori?". Aici răspunsul este simplu: În primul rând, cererea primește elemente subordonate pentru grupurile de la primul nivel, care sunt deja conținute în tabelul temporar (a se vedea clauza 1). Apoi a doua solicitare primește elemente subordonate pentru grupurile subordonate la nivel secundar. De la cel de-al treilea nivel al ierarhiei, nu există nici un grup de carte de referință, aceasta cerere Nu mai execut.

În cazul nostru, a doua solicitare va returna un rezultat gol, ca și pentru înregistrările situate la nivelul 3 al ierarhiei, nu există elemente subordonate (nu există un singur grup acolo).

3. Pentru a obține rezultatul final al interogării, platforma generează următoarea interogare SQL:

Rezultatul acestei solicitări în viitor poate fi prelucrat de algoritmi în limba platformei încorporate. Astfel, înregistrarea în tabelul temporar "# TT1" este utilizată pentru a seta starea de probă din tabelul de directoare "_reference41".

4. În ultimul pas, platforma 1C: o întreprindere 8.x elimină o masă temporară "# TT1", deoarece în viitor nu va fi folosit.

În acest proces de execuție a operatorului "în ierarhie" este finalizată. Permiteți-mi să vă reamintesc că secvența considerată a acțiunilor de pe serverul SQL a fost executată atunci când am fost în cererea de pe partea laterală a platformei transferate unei legături către grupul de nivel superior "Grupul 1". Dar cum se comportă platforma dacă oferim o legătură cu grupul de nivel al doilea "grup - 1 - 1" ca parametru "& link"? Totul va avea loc într-un mod similar, cu excepția următorului moment: de mai sus, în cea de-a doua etapă a executării interogării SQL de către platformă, sa scris că cererea de elemente subordonate a fost efectuată de două ori - în cazul primirii elementelor subordonate pentru Grupul de grup - 1 - 1, nu este. Cererea va fi executată o singură dată.

Faptul este că numărul cererilor de elemente subordonate depinde de numărul de grupuri din ierarhie. Cu alte cuvinte, dacă la nivelul ierarhiei elementului, va exista cel puțin un grup, va fi efectuată cerere de la paragraful 2.

Impactul asupra productivității

Utilizarea incorectă a oricărui operator din interogare poate duce la o funcționare a sistemului non-optimă. Operatorul examinat "în ierarhie" nu este o excepție. Trebuie să fie utilizată cu prudență, deoarece face mult complicarea algoritmului pentru efectuarea interogărilor SQL în baza de date și, prin urmare, mărește încărcătura pe serverul DBMS.

Voi cita un exemplu de cerere ne-optimă, care poate duce la consecințele triste numite mai sus:

Alegeți bunurile. Link din director. Produse cum ar fi produse în cazul (bunuri. Link în ierarhie (& link) sau bunuri. Conectați la ierarhie (& reink1) sau bunuri. Link către ierarhie (& reink2))

După cum puteți ghici, cererea va duce la formarea unui set de interogări SQL, care va determina o scădere a performanței sistemului informațional.

Faceți concluzii!

Concluzii pentru a vă face. Voi spune doar că operatorul "în ierarhie" este utilizat de sistemul de layout de date de către platformă atunci când există "în grupul", "în grupul din listă" și alții. Cred că nu ar trebui să explicați că, cu manipulările greșite, utilizatorii pot pune o selecție foarte dificilă și pot crește sarcina pe serverul 1c și DBMS de mai multe ori. Să modificăm setările numai pentru utilizatorii experimentați.

Desigur, atunci când vă scrieți propriile mecanisme, acordați atenție operatorului "în ierarhie". Foarte confortabil pe de o parte, și periculos pe celălalt.

Care este manualul 1c și de ce este necesar? Manualul păstrează informații permanente condiționate, adică. Informații care sunt aproape niciodată schimbate la o perioadă lungă de timp. De exemplu, cartea de referință "nomenclatură" conține o listă de bunuri vândute sau fabricate. Directorul poate conține multe proprietăți care descriu elementul directorului.

Dacă luați o jumătate de persoană pentru comparație, atunci lista este limitată și nu sa schimbat aici, astfel încât listarea este mai potrivită pentru aceasta.

Creare un nou manual Vom vedea următoarea imagine.

Luați în considerare toate marcajele sale.

întreținere

Aici este numele (identificator în baza de date) și sinonim (numele de utilizator al cărții de referință). Opțional este comentariul care poate explica scopul cărții de referință sau descrie caracteristicile sale.

Ierarhie

În acest marcaj puteți configura adâncimea elementelor de cuibărit ale cărții de referință. Cu această setare, este convenabil să se distingă și să detalieze elementele prin anumite criterii. De exemplu, "dulapurile" mărfurilor din același grup și mărfurile "tabelele" în altul. În mod implicit, atunci când creați un director reprezintă lista elementelor. Dacă bifați caseta de selectare ierarhică a directorului, atunci fiecare element poate fi subordonat unui alt element (grup). Următoarele sunt opțiunile pentru configurarea acestui marcaj și modificați afișajul în modul utilizator.

Tipul ierarhiei:

Ierarhia grupurilor și a elementelor

Cu această setare, elementele de cuibărit pot fi numai în grupuri (foldere).

Aici, după cum vedeți, toate elementele și grupurile au devenit aceleași icoane, iar cuibării poate fi de la orice element.

Plasați grupurile de sus

La instalarea acestui grup, grupul va fi întotdeauna de sus, în caz contrar acestea vor fi aranjate în ordinea de sortare, de exemplu, după cum urmează:

Restricționarea numărului de niveluri de ierarhie

Dacă caseta de selectare nu este instalată aici, cuibul este nelimitat.

Dacă caseta de selectare este setată, atunci puteți specifica numărul de nivele.

Proprietari

Pe tab-ul proprietari Alte directoare pot fi indicate în legătură cu care este subordonată. Schema relațiilor de cărți de referință subordonate este similară cu schema relației cărții de referință ierarhice, numai aici, deoarece părinte este o altă carte de referință și se numește proprietarul. În configurațiile tipice, un bun exemplu este prezentarea cărții de referință "Contracte" carte de referință "contrapartide", deoarece Nu poate exista niciun contract care nu aparține nici unei contrapartide.

În câmpul "Lista de proprietari de manual", este indicată o listă de directoare aparțin articolelor din această carte de referință.

Mai jos, în câmpul "Utilizarea subordonării", se indică faptul că va fi supus elementelor acestei cărți de referință.

Cum de a afla un director de software ierarhic ierarhic sau nu

Pentru a face acest lucru, trebuie să vă referiți la metadate

Acest echipament hyrarhic \u003d metadate. Rulează. Intractori. Ieerric;

Continuarea este urmată ...

Atenţie! Înainte de tine, versiunea introductivă a lecției, din care materialele pot fi incomplete.

Conectați-vă ca student

Conectați-vă ca student pentru a obține acces la materialele școlii.

Interogare Limba 1C 8.3 Pentru programatorii Novice: operatori între și în

Operator logic

Operator ÎNTRE vă permite să verificați este valoarea Expresiile specificate în partea stângă a acestuia în intervalul specificat în partea dreaptă ( împreună cu limitele intervalului, adică, inclusiv).

Astfel, în schimb

Dacă trebuie să vă întoarceți în jurul întregii alimente, conținutul caloric al cărui nu este inclus în intervalul, apoi a apărut următoarea formă de negare (a apărut o particulă NU):

Operator ÎNTRE Puteți aplica nu numai la benzile numerice. Cu datele, de asemenea, funcționează bine:

Operatorul logic B.

Verificați coincidența cu una dintre cele enumerate

Operator ÎN vă permite să verificați dacă valoarea se potrivește Expresii specificate în stânga lui cu una dintre valoridescrise în dreapta.

Astfel, în schimb

puteți scrie mai concise

Și rezultatul va fi același:

Dacă aveți nevoie să vă întoarceți întreaga mâncare, culoarea care nu coincide cu nicio valoare din listă, apoi următoarea formă de refuz este adecvată (a apărut o particulă NU):

Verificați valoarea potrivită cu una din rezultatul interogării

Să avem nevoie să alegem din bază numai acele culori care sunt prezente în descrierea alimentelor. Astfel, în lista selectată nu ar trebui să fie prezentă, de exemplu, negru, deoarece nu există alimente neagră în baza noastră de date. Citiți o versiune de familiarizare a lecției, sunt situate lecții complete.

Una dintre opțiunile după cum se poate face - utilizați un operator logic ÎNla dreapta căreia va fi o subordieră, alegerea numelor de culori din toate cărțile de referință Alimente:

Selectați numele din director. Culori în cazul în care numele (alegeți culoare. Nume din director. Alimente)

Ca retragere, se menționează că, dintr-o solicitare internă, este posibilă accesarea domeniilor unei cereri externe.

Din nou, pentru această formă a operatorului ÎNDe asemenea, disponibil pentru utilizarea particulelor NU in fata lui.

Verificați accesoriile ierarhiei pentru cărțile de referință

Pentru cărțile de referință, verificarea poate fi efectuată pe ierarhia aparținând.

În primul rând, să luăm în considerare un exemplu de carte de referință ierarhică. Deschideți referința orașului în baza noastră de date:

Vă rugăm să rețineți că elementele sale diferă de alte cărți de referință ( Alimente, Culori, Gusturi) Prezența folderelor galbene. aceasta grup de carte de referință.

Grupurile diferă de la elementele convenționale la ceea ce alții pot include grupuri și elemente. Doar cum dosarele includ alte foldere și fișiere.

Pentru a vizualiza conținutul grupului, faceți un dublu clic pe acesta:

Pentru a ieși din nivelul de mai sus, faceți dublu clic pe grup:

Astfel, directorul ierarhic poate conține atât elemente convenționale (de exemplu, Rio de Janeiro, Salvador) și grupuri (de exemplu, Brazilia, India). Citiți o versiune de familiarizare a lecției, sunt situate lecții complete.

Fiecare element (fie este un grup sau un element obișnuit) poate fi un părinte. De exemplu, elementul părinte al lui Rio de Janeiro este grupul Braziliei:

Și acest lucru este adevărat, deoarece Rio de Janeiro face parte din grupul Brazilia din ierarhia regizorului:

Acum, să scriem o astfel de cerere care să solicite grupul de țară selectat și toate elementele incluse în ea.

Rețineți că în textul interogării în fața numelui grupului are Ampersand (&). Numele cu ampersand sunt recunoscute automat de sistem ca parametri a căror valoare trebuie specificată înainte de executarea interogării.

După ce introducem această solicitare consolei și faceți clic pe butonul "Run" pentru a actualiza, vom avea capacitatea de a seta acest parametru:

Alegeți un grup "Rusia" ca valoare (butonul Selectare):

Dacă acum, facem clic pe butonul "Run", rezultatul interogării va fi după cum urmează:

Grupul (Rusia) și toate elementele care sunt incluse în compoziția sa (Perm, Krasnoyarsk și Voronezh) au căzut în rezultatul cererii.

Dacă în loc de Rusia, alegeți "Brazilia", atunci rezultatul va fi astfel:

Astfel, rezultatul operatorului În ierarhie Va fi adevărat dacă valoarea expresiei din stânga este referită la elementul cărții de referință și intră în multe valori la dreapta (Brazilia) sau ierarhic aparține unor grupuri conținute în acest set (São Paulo, Rio de Janeiro, Salvador).

Ca o varietate de valori, coincidența cu care se efectuează verificarea poate apărea și rezultatul cererii. În acest caz, în partea dreaptă a operatorului ÎNtrebuie să specificați descrierea Descriere:

Pentru operator În ierarhie De asemenea, utilizarea particulelor disponibile NUin fata lui.

A trece testul

Începeți testul

1. Operatorul logic între verificarea valorii

2. Expresie logică 1 între 1 și 1

3. Expresia logică 1 nu între 2 și 2

4. Operatorul logic în cecuri

5. Operatorul logic vă permite să verificați