1s 8 cererea aparține grupului. Exemple de interogări pentru lucrul cu directoare ierarhice

Lista este un atribut integral de afișare a informațiilor în orice configurație creată pe platforma 1C:Enterprise 8.1. Pentru munca eficienta cu liste care conțin o varietate de date, programele de pe platforma 1C:Enterprise 8.1 implementează mecanisme de selecție și sortare convenabile și puternice. V.V. vorbește despre caracteristicile utilizării lor. Pescuit, firma „1C”.


Orez. 1

Liste

Ce liste se întâlnesc utilizatorii? Acestea ar putea fi liste de documente din reviste relevante. Aproape orice director plin cu date este prezentat sub forma unei liste, care, de regulă, are o ierarhie (grupuri de foldere sau elemente subordonate). Adesea, pentru a selecta un element, programul generează liste automat sau în conformitate cu logica stabilită de dezvoltatori.

În aproape toate listele, puteți utiliza mecanisme de selecție (cu excepția cazului în care sunt interzise în mod explicit de către dezvoltator) și sortare diversă (Fig. 1). În program, aceste mecanisme sunt indisolubil legate între ele. Să vedem cum să le folosim corect și eficient.

Orez. 1

Mecanism de sortare

De ce avem nevoie de un mecanism de sortare? În primul rând, după cum sugerează și numele, vă permite să sortați lista în funcție de criteriul dorit.

În al doilea rând, platforma 1C:Enterprise 8.1 utilizează în mod activ mecanismul cautare rapida. Acest mecanism vă permite să găsiți rapid elementul dorit în orice listă tastând primele caractere (Fig. 2). Dar în liste dinamice(de exemplu, o listă de elemente de director sau o listă de documente) căutarea rapidă funcționează numai în funcție de detaliile după care este disponibilă sortarea.

Orez. 2

Puteți vizualiza toate detaliile listei disponibile pentru sortare deschizând fereastra „Selectare și sortare”. Această fereastră este de obicei disponibilă în bara de acțiuni (Fig. 3) sau în meniul contextual al listei care se deschide cu butonul din dreapta al mouse-ului (Fig. 4). În fereastra „Selectare și sortare”, trebuie să accesați fila „Sortare”, care arată toate detaliile disponibile prin care este posibilă sortarea.

Orez. 3

Orez. 4

Figura 3 arată că pentru lista documentelor „Vânzări de bunuri și servicii”, este disponibilă sortarea după două detalii: „Data” și „Număr”. Cu toate acestea, conținutul informațional al ferestrei de sortare nu se limitează la aceasta. Aici puteți vedea în ce include sortarea acest moment(partea stângă a ferestrei) și o listă cu toate detaliile disponibile pentru sortare (partea dreaptă). De asemenea, puteți configura sortarea dorită și ordinea acesteia. Vă rugăm să rețineți: atributul de sortare curent va fi marcat în listă caracter special- o săgeată care indică direcția de sortare. Trei exemple de sortare diferită (inclusiv combinată) și modalități de afișare a acesteia în listă sunt prezentate în Figura 5.

Orez. 5

Rețineți că exemplul inferior ilustrează posibilitatea utilizării sortării combinate (simultan prin mai multe detalii). În cazul nostru, aceasta este sortarea după dată în ordine descrescătoare (cele mai vechi date în partea de jos) și după număr în ordine crescătoare (cele mai mari numere în partea de jos).

În fiecare listă puteți salva individual sortarea dorită. Doar bifați caseta „Utilizați această setare de sortare la deschidere” și faceți clic pe „OK”. Sistemul își va aminti setarea și data viitoare când deschideți această listă, va seta sortarea salvată.

Puteți sorta rapid lista după atributul necesar făcând clic pe antetul cu numele acestui atribut.

De exemplu, în cazul nostru, puteți face clic pe atributul „Dată” (sortarea datelor în ordine crescătoare va fi activată și puteți utiliza o căutare rapidă după dată) sau pe atributul „Număr” (sortarea după numerele în ordine crescătoare vor fi pornite, după care puteți căuta rapid după număr). De asemenea, inversarea sortării este ușoară - doar faceți clic din nou pe același atribut din antetul listei.

Mecanismul de selecție

Selecția este un mecanism puternic al platformei 1C:Enterprise 8.1, care vă permite să lucrați eficient cu liste, chiar dacă acestea conțin zeci sau sute de mii de elemente. Mai întâi, să vedem cum funcționează mecanismul de selecție în cazul general.

Aproape oriunde există o listă (de obicei sub formă de tabel), puteți utiliza un mecanism de selecție, care este activat fie de butonul corespunzător din bara de acțiuni, fie în meniul contextual al listei (Fig. 3 și 4). Dacă este posibilă selecția pentru lista dorită, se va deschide fereastra „Selectare și sortare”. Acesta va afișa toate tipurile posibile de detalii disponibile pentru selecție. Lista elementelor de selecție disponibile depinde de locul în care va fi utilizată selecția. În general, trebuie să găsiți unul sau mai multe elemente necesare pentru selecție, să specificați valorile și să activați combinația configurată de criterii.

Lista de condiții posibile pentru un anumit tip de selecție depinde de tipul de elemente utilizate în acesta. De exemplu, intervalele vor fi disponibile pentru numere și date, căutarea subșirurilor va fi disponibilă pentru șiruri (condițiile „Conține”/„Nu conține”), iar completarea listelor și analiza ierarhiei vor fi disponibile pentru elementele directorului.

Dacă specificați mai multe criterii de selecție în același timp, numai acele articole care îndeplinesc toate criteriile specificate vor fi afișate în listă.

Mecanisme de selecție și sortare cu exemple

Să încercăm să rezolvăm mai multe probleme în baza de date demo („Enterprise Accounting”, ediția 1.6). De exemplu, să afișăm documentele generate pentru contrapartea „Simon și Schuster LLC” în jurnalul „Documente client”. Să facem imediat o rezervare că vom descrie regulile și standardul logic de selecție pentru platforma 1C:Enterprise 8.1, fără referire la vreo configurație specifică și capabilități suplimentare de serviciu implementate în aceasta.

Deci, deschideți jurnalul de documente „Documente client”. În starea standard, fără selecția activată, toate documentele tuturor cumpărătorilor sunt afișate pe ecran (chiar și în baza de date demo aceasta ocupă mai mult de o pagină).

Trebuie să ne uităm rapid la toate documentele contrapărții Simon and Schuster LLC. Sarcina este implementată după cum urmează: se deschide o fereastră de selecție, în elementul „Contraparte”, selectați contrapartea „Simon și Schuster LLC” din director (Fig. 6) și faceți clic pe „OK”. Problema este rezolvată (Fig. 7).

Orez. 6

Orez. 7

Pentru a utiliza rapid selecția dorită, este suficient să începeți imediat selectarea criteriului dorit. Nu este nevoie să bifați caseta de lângă selecția utilizată. Programul va face acest lucru singur după ce criteriul necesar a fost specificat. Puteți aplica rapid criteriile de selecție configurate apăsând combinația de taste Ctrl+Enter*.

Vă rugăm să rețineți, de asemenea, că atunci când specificați valori în elementele de selecție (în exemplul nostru, contrapartea „Simon și Schuster LLC”), în majoritatea cazurilor, mecanismul de selecție rapidă, utilizat pe scară largă în platforma 1C:Enterprise 8.1, va funcționa. În exemplul nostru, a fost suficient să tastați primele caractere ale numelui contrapărții sau codul acesteia direct în câmpul de valoare de selecție, apăsați Enter sau Tab, iar sistemul va „ghici” automat elementul de director de care avem nevoie.

Rețineți că selecția rapidă accelerează semnificativ selecția valorilor pe care le cunoașteți. Folosește-l ori de câte ori este posibil.

Acum vom afișa o listă de articole ale căror nume conțin cuvântul „ceainic”. Pentru a face acest lucru, deschideți directorul „Nomenclatură”, apelați fereastra de selecție, în elementul „Nume”, selectați condiția de comparare „Conține” și indicați cuvântul necesar (Fig. 8).

Orez. 8

Tipul de comparație „Conține” nu a fost ales întâmplător. Acesta este ceea ce vă permite să găsiți cuvântul dorit (sau o parte a acestuia) oriunde în numele nomenclatorului. Dacă părăsiți tipul de comparație „Egal”, lista va afișa numai acele articole de nomenclatură care sunt denumite exact așa cum este scrisă interogarea. Dar nu există astfel de articole în baza noastră de date demonstrativă (adică nu ar fi afișat niciun element).

Deoarece în baza noastră de date demo articolul are atributul „Nume complet”, acesta este prezent în lista de selecții disponibile ca o poziție separată. Dar, în același timp, doar „Conține”/„Nu conține” sunt disponibile ca condiții de comparație. Motivul este că atributul „Nume complet” din baza noastră de date demo este un șir de lungime nelimitată.

Dacă nu căutați după nume, ci după nume complet, este mai bine să debifați caseta pentru utilizarea selecției după nume. În caz contrar, selecția va fi folosită atât după nume, cât și după nume complet, ceea ce poate să nu fie întotdeauna necesar (Fig. 9).

Orez. 9

Pentru confortul de a lucra cu elemente de director atunci când utilizați selecții, este mai bine să opriți temporar afișarea ierarhiei (Fig. 10).

Orez. 10

Ca a treia sarcină, să ne uităm doar la documentele „Vânzări de bunuri și servicii” din jurnalul de documente „Documente ale clienților”. Soluția la această problemă va demonstra particularitatea unuia dintre tipurile de selecție, disponibilă numai în jurnalele de documente.

Deschideți jurnalul „Documente ale clienților” și indicați în elementul de selecție „Tip document” documentul „Vânzări de bunuri și servicii”. Programul în sine oferă posibilitatea de a selecta un anumit tip de document dintre cele incluse în acest jurnal. Există, de asemenea, un buton personal pe panoul de acțiuni pentru aceasta (Fig. 11).

Orez. unsprezece

Similar cu selecția după tip de document, platforma va oferi automat elementul de selecție „Structură de subordonare” dacă configurația a configurat relații între documente.

Să încercăm să vedem în jurnalul de documente „Documentele Cumpărătorilor” doar documentele „Factură” pentru contrapărțile aflate în grupul „Cumpărători” din director. Această sarcină este similară cu prima, cu singura diferență că nu specificăm o anumită contraparte, ci analizăm facturile unui întreg grup de contrapărți care se află în grupul „Cumpărători”.

Există mai multe moduri de a implementa sarcina. Să ne uităm la cea mai eficientă. Deschideți jurnalul „Documente ale cumpărătorilor” și indicați în elementul de selecție „Tip document” documentul „Factură emisă”. După aceea, în elementul de selecție „Contraparte” indicăm tipul de comparație „În grup”. Selectați tipul de valoare „Contrapărți” și deschideți formularul de selecție a contrapartidei. În el, selectați grupul „Cumpărători” (Fig. 12).

Orez. 12

Acest tip de comparație implică faptul că condiția va fi îndeplinită de toate elementele de director care se află în grupul specificat. Mai mult, chiar dacă există subgrupuri în cadrul grupului specificat, toate elementele imbricate acolo vor îndeplini și acest criteriu.

Acum să complicăm sarcina: să ne uităm doar la documentele „Factură” din jurnalul de documente „Documentele cumpărătorilor”, dar, în același timp, trebuie să ne uităm la documente atât pentru cumpărători, cât și pentru furnizori. O rezolvăm similar cu cea precedentă, cu excepția unui criteriu de selecție impus.

În limbajul uman, sarcina este formulată după cum urmează: „afișează toate documentele necesare pentru toți contractanții aflați în grupurile de director Cumpărători, Furnizori, Furnizori de vânzare”. Acest lucru este ușor de implementat - în condiția de selecție „Contraparte”, selectați „Într-un grup din listă” (Fig. 13). După aceasta, devine disponibil un mecanism de completare a listei, la care puteți adăuga grupurile (sau elementele) necesare ale directorului. Mai mult, lista poate fi completată manual. Prin analogie cu soluția la problema anterioară, găsiți grupul doritși selectați-l, repetând acest lucru pentru fiecare articol nou din listă. Cu toate acestea, este mai recomandabil să utilizați un mecanism de selecție convenabil, care este implementat automat de program. Cu ajutorul selecției, este mult mai ușor și mai rapid să umpleți lista cu componentele necesare. După ce lista este completată, faceți clic pe „OK” și activați criteriile de selecție configurate. Problema este rezolvată.

Orez. 13

Diferența dintre condiția de selecție „Într-un grup din listă” și condiția „În listă” este că, în primul caz, condiția va fi îndeplinită pentru toate elementele directorului care sunt fie specificate în mod explicit în listă, fie situate în grupurile specificate în listă. Al doilea caz pur și simplu spune programului să verifice lista atunci când selectează. Adică, dacă specificați un grup acolo, atunci grupul însuși va fi inclus în selecție (ca element independent al directorului), iar elementele care sunt incluse în acesta nu vor îndeplini criteriul de selecție. A fost posibil să se rezolve problema „direct” - selectați condiția „În listă” și, folosind selecția, adăugați acolo toate elementele conținute în grupurile necesare.

Condițiile de selecție „Nu este în listă” și „Nu este în grupul din listă” vă permit să specificați seturile de date necesare care nu ar trebui incluse în selecție. Adică, problema ar putea fi rezolvată în sens invers - specificați „Nu într-un grup din listă” și adăugați acolo toate grupurile de directoare, cu excepția celor trei necesare (Cumpărători, Furnizori, Furnizori de vânzare).

Și în final, în documentul „Vânzări de bunuri și servicii” cu numărul TDN00002, vom afișa în secțiunea tabelară doar nomenclatorul care conține cuvântul „STINOL” în nume. Această sarcină ne va permite să vedem universalitatea mecanismului de selecție în sine, precum și cât de diversă poate fi utilizarea acestuia. Sarcina se bazează pe situații reale când, de exemplu, există câteva sute (sau chiar mii) de linii în partea tabelară a facturii și trebuie să analizați rapid compoziția acesteia. În baza noastră de date demonstrativă există un document „Vânzări de bunuri și servicii” cu numărul TDN00002, care are mai multe rânduri în partea tabelară. În ciuda faptului că nu există butoane pentru utilizarea selecțiilor în document, apelarea selecției este disponibilă prin meniul contextual ( butonul corect soareci).

În continuare, impunem criterii de selecție în contextul Nomenclaturii. O altă întrebare apare imediat - cum să selectați „STINOL” dacă condițiile de selectare a nomenclaturii sunt destul de limitate (disponibil „Egal”, „Nu este egal”, „În listă” și „Nu este în listă”). Problema poate fi rezolvată în astfel de condiții. Selectăm condiția „În listă”, deschidem fereastra deja familiară pentru completarea listei și folosim selecția elementelor (Fig. 14, 1). Este posibil să existe un număr mare de elemente în lista de nomenclatură, așa că nu vom căuta elementele necesare. Să folosim selecția din lista de articole, specificând condiția de selecție „Conține” pentru numele articolului (Fig. 14, 2).

Orez. 14

După aceasta, tot ce rămâne este să adăugați elementele selectate la lista de selecție pentru document și să aplicați criteriile de selecție.

Caracteristici utile ale mecanismului de selecție

Să mai luăm în considerare câteva puncte legate într-un fel sau altul de selecțiile din sistemul 1C:Enterprise 8.1.

În listele de obiecte de configurare care utilizează legarea de date (de exemplu, liste de documente) și în jurnalele de documente, puteți utiliza filtrarea rapidă după interval de date. Pentru a face acest lucru, faceți clic pe butonul corespunzător „Setarea perioadei” din bara de acțiuni (sau selectați-l în meniul contextual) (Fig. 15). În acest fel, puteți ajusta individual criteriul de afișare a elementelor după dată în fiecare listă.

Orez. 15

Puteți seta rapid selecția după valoare în celula curentă a listei făcând clic pe butonul „Selectare după valoare în coloana curentă” (Fig. 16). Când faceți clic pe acest buton, selecția se va face pe baza valorii curente din coloană. Această funcție funcționează numai pentru acele coloane ale căror detalii pot fi folosite pentru a seta selecții. Dacă lista folosește deja orice selecție, cea nouă va fi atașată acesteia. Mai mult, butonul devine activ pentru această coloană. Puteți anula o astfel de selecție în același mod - prin „strângerea” butonului din coloana corespunzătoare.

Orez. 16

O altă proprietate utilă a mecanismului de selecție este menținerea istoricului selecțiilor (Fig. 17). Programul își amintește ce selecții au fost setate, astfel încât să puteți reveni rapid la oricare dintre ele selectând-o din lista derulantă. Apropo, în fereastra „Selectare și sortare”, acordați atenție butonului „Selectări” (Fig. 6). Făcând clic pe acest buton, veți fi dus la o interfață unde puteți salva și restaura setările de selecție, astfel încât să puteți reveni la acestea mai târziu (Fig. 18).

Orez. 17

Orez. 18

Și ultima funcție este anularea tuturor selecțiilor (Fig. 19). Făcând clic pe butonul „Dezactivați selecția” se dezactivează toate selecțiile instalate în listă. O acțiune similară poate fi realizată prin deschiderea ferestrei „Selectare și sortare” și debifarea tuturor elementelor active.

Orez. 19

Programul are, de asemenea, capacitatea de a căuta rapid după numărul documentului în liste de documente sau în jurnale. Această funcție este apelată de butonul „Căutare după număr” (Fig. 20) și vă permite să găsiți documentul dorit prin setarea flexibilă a parametrilor de căutare. Documentele găsite pe baza criteriilor specificate sunt afișate în partea de jos a ferestrei acestui serviciu și puteți merge la documentul dorit.

Designul „ÎN IERARHIE” din interogările 1C:Enterprise 8.x vă permite să obțineți elemente subordonate ale unui obiect de configurare ierarhică în funcție de o selecție dată. Astăzi, în articol, vom analiza un exemplu de utilizare a acestuia, precum și acțiunile platformei din partea DBMS și impactul acesteia asupra performanței.

Utilizare

Să ne uităm la un exemplu simplu de utilizare a construcției „ÎN IERARHIE”. La executarea următoarei solicitări se vor obține elementele subordonate din directorul ierarhic „Produse” pentru valoarea transmisă a variabilei „Link”.

Text de interogare = " SELECTAȚI | Produse . Legătură,| Bunuri . Cod furnizor |DIN| Director . Produse AS Produse|UNDE | Bunuri . Link ÎN IERARHIE(& Link)"

În baza de date de testare, directorul „Produse” are următoarele date de testare:

Desigur, imaginea nu arată toate intrările din director. Captura de ecran arată doar structura de stocare a datelor din directorul ierarhic. Tabelul de directoare stochează 10 grupuri de nivel superior, fiecare dintre ele conține 5 grupuri imbricate cu 200 de elemente fiecare.

Să revenim la cererea de testare. Să transmitem linkul către grupul „Grup - 1” către parametrul „&Link” (vezi captura de ecran de mai sus). Apoi rezultatul interogării va arăta astfel:

După cum putem vedea, cererea a returnat un link către grupul de sus în sine (transmis ca parametru), precum și grupuri imbricate cu elementele din ele. Astfel, utilizarea construcției „ÎN IERARHIE” vă permite să obțineți în mod convenabil date subordonate ierarhic.

Sintaxa limbajului de interogare 1C:Enterprise SQL clasic foarte asemănătoare în unele privințe. Dar pentru expresia „ÎN IERARHIE” nu există analog în limbă interogări SQL ca, de exemplu, pentru a exprima limbajul de interogare al platformei „B” există un operator SQL similar „IN”. Prin urmare, munca platformei cu DBMS atunci când se utilizează acest operator este interesantă.

În spatele scenelor

Asadar, haideti sa începem. De exemplu, vom folosi interogarea scrisă anterior pentru directorul „Produse”. Vom analiza acțiunile platformei pentru două situații:

  1. Vom trece grupul de nivel superior „Grupul 1” ca parametru „&Link” (cum am făcut mai devreme).
  2. În parametru vom trece un link către grupul „Grupul 1 - 1”, imbricat în grupul de nivel superior „Grupul 1”.

Acum, în ordine. În primul caz, platforma va efectua următoarele acțiuni pe serverul SQL:

1. Mai întâi, este executată o interogare SQL pentru a obține o legătură către grupul de directoare transmis ca parametru și toate grupurile subordonate. Rezultatul este plasat în tabelul temporar „#tt1”.

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

Captura de ecran conține comentarii detaliate despre textul interogării SQL. Pe scurt, interogarea vă permite să selectați elemente subordonate pentru grupuri la care se face referire într-un tabel temporar. Întrebarea rămâne: „De ce este executată interogarea de două ori?” Răspunsul aici este simplu: în primul rând, interogarea primește elemente subordonate pentru grupurile de primul nivel care sunt deja conținute în tabelul temporar (vezi punctul 1). A doua interogare preia apoi subelementele pentru subgrupurile de al doilea nivel. Deoarece nu există un singur grup de directoare la al treilea nivel al ierarhiei, atunci aceasta cerere nu se mai executa.

În cazul nostru, a doua interogare va returna un rezultat gol, deoarece nu există elemente subordonate pentru înregistrările situate la nivelul 3 al ierarhiei (nu există grupuri acolo).

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

Rezultatul acestei solicitări poate fi procesat în continuare de algoritmi în limbajul încorporat al platformei. Astfel, intrările din tabelul temporar „#tt1” sunt folosite pentru a seta condiția de eșantionare din tabelul de referință „_Reference41”.

4. La ultimul pas, platforma 1C:Enterprise 8.x șterge tabelul temporar „#tt1”, deoarece nu va mai fi folosit în viitor.

Aceasta completează procesul de execuție a operatorului „ÎN IERARHIE”. Permiteți-mi să vă reamintesc că secvența considerată de acțiuni pe serverul SQL a fost efectuată atunci când am transmis un link către grupul de nivel superior „Grup - 1” către o solicitare din partea platformei. Dar cum se va comporta platforma dacă trecem un link către grupul de nivel al doilea „Grup - 1 - 1” ca parametru „&Link”? Totul se va întâmpla la fel, cu excepția următorului punct: mai sus, în a doua etapă a executării interogărilor SQL de către platformă, s-a scris că interogarea pentru obținerea elementelor subordonate a fost executată de două ori - în cazul obținerii elementelor subordonate pt. grupul "Grupul - 1 - 1" nu este cazul. Cererea va fi executată o singură dată.

Cert este că numărul de solicitări pentru obținerea elementelor subordonate depinde de numărul de grupuri din ierarhie. Cu alte cuvinte, dacă nivelul ierarhiei elementelor conține cel puțin un grup, atunci cerere de la punctul 2.

Impactul asupra performanței

Utilizarea incorectă a oricărui operator într-o interogare poate duce la o performanță suboptimă a sistemului. Operatorul luat în considerare „ÎN IERARHIE” nu face excepție. Trebuie utilizat cu prudență, deoarece complică foarte mult algoritmul de executare a interogărilor SQL către baza de date și, prin urmare, crește încărcarea pe serverul DBMS.

Permiteți-mi să vă dau un exemplu de interogare suboptimă care poate duce la consecințele triste menționate mai sus:

SELECT produse. Link din director. Products AS Products WHERE (Produse. Link ÎN IERARHIE (& Link) SAU Produse. Link ÎN IERARHIE (& Link1) SAU Produse. Link ÎN IERARHIE (& Link2) )

După cum ați putea ghici, cererea va duce la generarea multor interogări SQL, ceea ce va duce la o scădere a performanței sistemului informațional.

Trageți-vă concluziile!

Depinde de tine sa tragi concluzii. Permiteți-mi să spun doar că operatorul „ÎN IERARHIE” este utilizat de platformă pentru sistemul de compunere a datelor atunci când condițiile de selecție includ „ÎN GRUP”, „ÎN GRUP DIN LISTĂ” și altele. Cred că nu este nevoie să explic că, cu manipulări incorecte, utilizatorii pot configura selecții foarte complexe și pot crește sarcina pe serverul 1C și pe DBMS de mai multe ori. Să modificăm setările numai pentru utilizatorii experimentați.

Și bineînțeles, când scrieți propriile mecanisme, acordați atenție operatorului „ÎN IERARHIE”. Foarte convenabil pe de o parte și periculos pe de altă parte.

Directoarele 1C sunt un obiect specializat de arbore de metadate care servește la stocarea informațiilor statice de referință. De exemplu, în configurațiile tipice puteți vedea următoarele vizualizări: , Nomenclatură, Angajați, Mije fixe etc. Informațiile din directoare, de regulă, nu se schimbă des. Directoarele sunt utilizate ulterior în aproape toate obiectele contabile ca secțiune contabilă sau informații de referință.

Mai jos ne vom uita la configurarea și proiectarea unui director din configurator folosind directorul „Nomenclatură” ca exemplu.

Tabă de bază

Fila „De bază” specifică numele, sinonimul, reprezentarea obiectului și descrierea scopului.

Fila „Ierarhia directorului”.

Aici se stabilește ierarhia directorului.

Ierarhia din 1C 8.3 este de două tipuri - „ grupuri și elemente" Și " elemente". Diferă prin aceea că, în primul caz, doar un folder (grup) poate fi părinte (dosar), iar în al doilea caz, un element poate fi și părinte.

„Place groups on top” - steag este responsabil pentru afișarea grupurilor sub formă de listă.

De asemenea, în setări puteți limita numărul de grupuri din ierarhia directorului folosind setarea corespunzătoare.

Fila Proprietari

Un director poate fi subordonat altui director. Din punctul de vedere al configurării 1C 8.3, aceasta înseamnă că atributul „Owner” devine obligatoriu pentru elementul subordonat. Un exemplu de astfel de conexiune între directoare în configurații standard „Nomenclatură - Unități de măsură”, „Contrapărți - Contracte ale contractorilor”.

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

Fila Date

Obțineți 267 de lecții video pe 1C gratuit:

Cea mai importantă filă din punctul de vedere al unui programator. Conține detaliile directorului.

Directorul are un set de detalii standard care nu sunt editate de programatorul 1C 8.2; o listă a acestora poate fi văzută făcând clic pe butonul „Detalii standard”:

Mă voi opri asupra fiecăruia mai detaliat:

  • Acest grup— un atribut de tip boolean, care indică dacă este un grup sau un element. Disponibil numai în directorul ierarhic. Notă, valoarea acestui atribut nu poate fi modificată în 1C: modul Enterprise.
  • Cod— recuzită, tip număr sau șir (de obicei un șir). Un număr atribuit automat de către sistem. De obicei calculat ca (codul anterior + 1). Recomand folosirea tipului șir, deoarece sortare valori numerice Nu se întâmplă așa cum ar trebui. Poate fi folosit ca prezentare de director într-o listă și în câmpurile de intrare. Folosit de obicei pentru a căuta un element la introducerea unui șir. Dacă trebuie să eliminați câmpul Cod, introduceți zero în lungimea liniei.
  • Nume— detalii obligatorii, tip șir. Lungime maxima linii - 150 de caractere. Poate fi folosit ca prezentare de director într-o listă și în câmpurile de intrare. Folosit de obicei pentru a căuta un element la introducerea unui șir. Dacă trebuie să eliminați câmpul Nume, introduceți zero în lungimea liniei.
  • Mamă— un atribut de tip DirectoryLink.<ИмяТекущегоСправочника>. Disponibil numai în directorul ierarhic. Indică părintele superior din ierarhie. Dacă elementul sau grupul se află la rădăcina directorului, este specificată valoarea Directory.<ИмяТекущегоСправочника>.EmptyLink.
  • Proprietar— link la elementul proprietar al elementului (grupului) directorului curent. Disponibil numai în directorul subordonat 1C.
  • Ștergerea steagului— recuzită cu tip Boolean. Responsabil pentru afișarea „marcajului de ștergere” în sistem. Un element marcat pentru ștergere este considerat inutilizabil, dar mișcările documentelor vechi pot rămâne pe el.
  • Legătură— câmp de tip șir. Acest atribut stochează un identificator unic de obiect - GUID. Ceea ce vedem în sistem într-un afișaj vizual numit „link” este doar o reprezentare a unui obiect. Nu poate fi schimbat.
  • Predefinit— tip boolean, afișează dacă elementul este predefinit, despre asta mai târziu. Nu poate fi schimbat.

Fila „Date” indică și reprezentarea directorului în sistem; înainte de versiunea 8.2.16, reprezentarea putea fi doar Cod sau Nume. În versiunile recente ale platformei (începând de la 8.3), vizualizarea poate fi descrisă independent în modulul manager folosind handlerul „ViewReceivingProcessing”.

Fila de numerotare

Aici puteți specifica setările directorului privind numerotarea. Se recomandă utilizarea numărării automate. Controlul unicității este un steag care ajută, dacă este necesar, ca codul să fie unic. Dacă, cu steagul setat, încercați să scrieți un element de director cu un cod neunic, în 1C veți primi mesajul „Codul directorului a devenit neunic”.

Seria de coduri - determină modul de numerotare a directorului; puteți introduce numerotarea directorului după proprietar. De exemplu, contrapartea „Horns and Hooves” va avea propria numerotare a contractelor - „1, 2, 3”, etc.

Fila Formulare

Formularele pentru director sunt descrise aici. Dacă configurația este lansată atât în ​​modul normal, cât și în modul gestionat, atunci vor exista două file cu formulare în mod implicit: „principal” și „avansat” - pentru normal și aplicație gestionată diferit.

Această pagină are o caracteristică importantă a directorului - „“. Aceasta este o funcție foarte convenabilă a 1C 8, care vă permite, atunci când completați datele în câmpul de intrare, să nu intrați în director, ci să introduceți numele, codul etc. și selectați elementul dorit din lista verticală. Arata cam asa:

Altele Tab

Pe fila puteți obține acces rapid la modulele principale ale directorului - modulul obiect și modulul manager.

De asemenea, puteți defini o listă de elemente de director predefinite pe pagină. Acestea sunt elemente care nu pot fi șterse în modul Enterprise. Elementele predefinite pot fi accesate direct în configurator după nume, de exemplu: Directories.Nomenclature.Service.

Această filă determină și modul de blocare - automat sau controlat. Utilizarea căutării full-text, precum și a informațiilor de referință despre director, disponibile în 1C: modul Enterprise.

Ce este un director 1C și de ce este necesar? Directorul stochează în mod condiționat informații permanente, de ex. informații care rămân aproape neschimbate pe o perioadă lungă de timp. De exemplu, directorul „Nomenclatură” conține o listă de bunuri vândute sau produse. De asemenea, un director poate conține multe proprietăți care descriu un element de director.

Dacă luăm genul unei persoane pentru comparație, atunci lista este limitată și nu se modifică, așa că o enumerare este mai potrivită pentru aceasta.

După ce am creat un nou director, vom vedea următoarea imagine.

Să ne uităm la toate marcajele lui.

De bază

Aici sunt indicate numele (identificatorul din baza de date) și sinonimul (numele de utilizator al directorului). Un comentariu opțional este unul care poate explica scopul directorului sau poate descrie caracteristicile acestuia.

Ierarhie

Pe această filă puteți configura adâncimea de imbricare a elementelor de director. Folosind această setare, este convenabil să diferențiezi și să detaliezi elementele în funcție de anumite criterii. De exemplu, produsele „Dulapuri” sunt într-un grup, iar produsele „Tabele” sunt într-un altul. În mod implicit, atunci când este creat, directorul este prezentat lista de elemente. Dacă bifați caseta de selectare Director ierarhic, atunci fiecare element poate fi subordonat altui element (grup). Mai jos sunt opțiuni pentru personalizarea acestui marcaj și schimbarea afișajului în modul personalizat.

Tip de ierarhie:

Ierarhia grupurilor și elementelor

Cu această setare, elementele pot fi imbricate numai în grupuri (dosare).

Aici, după cum puteți vedea, toate elementele și grupurile au aceleași pictograme și orice element poate fi imbricat.

Așezați grupurile deasupra

Când această casetă de selectare este bifată, grupurile vor fi întotdeauna în partea de sus, altfel vor fi aranjate în ordine de sortare, de exemplu, astfel:

Limitarea numărului de niveluri ierarhice

Dacă caseta de selectare nu este bifată aici, atunci imbricarea este nelimitată.

Dacă caseta de selectare este bifată, puteți specifica numărul de niveluri de mai jos.

Proprietarii

Pe marcaj proprietarii pot fi indicate alte directoare în raport cu care acesta este subordonat. Diagrama de relații a directoarelor subordonate este similară cu diagrama de relații a unui director ierarhic, doar că aici un alt director acționează ca părinte și se numește proprietar. În configurații standard bun exemplu este subordonarea directorului „Contracte” directorului „Contrapărți”, deoarece Nu poate exista un acord care să nu aparțină niciunei contrapărți.

Câmpul „Lista proprietarilor de director” specifică lista directoarelor care dețin elementele acestui director.

Mai jos în câmpul „Utilizarea subordonării” este indicat căruia vor fi subordonate elementele acestui director.

Cum să aflați programatic dacă un director este ierarhic sau nu

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

Acesta este HierarchicalDirectory = Metadata.Directories.Counterparties.Hierarchical;

Va urma...

Acțiune