Crearea de interogări folosind designerul din 1C 8.2. Designer de interogări de schemă de compoziție a datelor. Fila Lot de interogări

Deci, să începem cu ceva simplu: creați o Procesare nouă în configurator, denumiți-o Consola de interogări sau Generator de interogări, după cum doriți.

Putem adăuga imediat un tabel în „Date” pentru parametrii viitori de care avem nevoie, astfel încât în ​​Consola noastră să rulăm nu cea mai primitivă cerere, dar cu parametri și link-uri, de exemplu, pentru munca noastră vom crea o solicitare periodică. registre, dar aici fără Parameter instructions=&Date nicăieri.

Pentru a crea tabelul nostru de parametri, în fila „Date” din „partea tabulară” vom adăuga un nou tabel, să-l numim Parametri de interogare, aici vom adăuga coloanele acestui tabel: 1) ParameterName, tastați șir = 25 de caractere ; ParameterValue, aici este un tip de date compus, vezi Fig:

Prin urmare, așa cum se arată în imagine, selectăm un tip compus pentru coloana Valoare parametru: în meniul tip care se deschide, bifați caseta de selectare „Tip compus”, selectați numărul, șirul (specificați 20 de caractere), data, boolean și bifați caseta de selectare de jos - AnyLink - înseamnă ceea ce urmează, atunci când specificăm Parametrii solicitării noastre, ne putem referi la orice obiect al configurației noastre, de exemplu, directoare sau documente.

Acum trebuie să creăm forma viitoarei noastre Console de interogări. În procesare, să mergem la fila „Formulare” și să adăugăm unul nou. Introducem acest formular și există deja un câmp nelimitat pentru creativitate - puteți aranja cele două detalii pe care tocmai le-ați creat și o placă cu parametrii după cum doriți! Pentru a face acest lucru, puteți utiliza elemente de formular standard, cum ar fi un grup sau o pagină cu pagini (dacă preferați să răsturnați paginile.

Principalul lucru aici este un lucru: după ce trageți atributul „TextValues” în câmpul din stânga al editării formularului, asigurați-vă că setați „View”=Text Document Field în proprietățile sale.

În proprietățile atributului „Tabel de interogări”, puteți specifica opțional „Grilă de afișare” și „Afișare anteturi”.

Apoi, în fereastra de editare a formularului din dreapta, mergeți la fila „Comenzi” și adăugați un buton nou, când faceți clic, Consola noastră va efectua o anumită acțiune. Să creăm un buton „Constructor de interogări”, dacă doriți, puteți adăuga o pictogramă la buton, principalul lucru este să plasați butonul în sine în fereastra de editare a formularului din stânga - astfel încât să-l putem vedea apoi în forma corectă fereastra de editare, faceți clic dreapta pe butonul nostru și selectați proprietăți - în proprietăți, faceți clic pe elementul „Acțiune”, va apărea o fereastră modală care vă va întreba unde exact va fi executat codul programului nostru, pe care îl vom atribui butonului - selectați „ Pe client”.

Modulul formular se va deschide cu o procedură goală gata făcută „Constructor de interogare de procedură (comandă)”. În această procedură vom descrie apelul la 1c8 Query Builder standard. Este foarte ușor: Constructor = New Request Constructor; Dar există capcane aici - Constructorul de interogări încorporat în platformă funcționează în modul utilizator NUMAI sub un client gros! Prin urmare, vom introduce condiția instrucțiunii preprocesorului #Dacă, dar aici decideți singur, în funcție de platforma dvs., sau aveți formulare obișnuite, apoi selectați „ FatClientRegularApp„sau aveți o platformă bazată pe formulare gestionate, atunci” ThickClientManagedApplication„.vezi fig.

Acum rămâne să adăugăm la această procedură o condiție pentru înregistrarea textului cererii, pe care Generatorul de interogări o va genera pentru noi în detaliile formularului nostru „Text de solicitare”:

Dacă Constructor.OpenModal()=True, atunci Object.RequestText=Constructor.Text; endIf;

Dar putem schimba manual ceva în textul cererii (în modul utilizator - în fereastra de atribut „Text solicitat”), astfel încât modificările noastre să intre în Constructorul de interogări atunci când este apelat din nou - vom adăuga o condiție simplă aici:

Dacă nu EmptyString(Object.QueryText) atunci Constructor.Text = Object.QueryText; endIf;

Gata, am conectat Constructorul de interogări încorporat în platforma 1c8, să ne uităm la munca noastră. Pentru a face acest lucru, lansați 1C:Enterprise în modul client gros folosind una dintre următoarele metode: 1) meniul principal al Configuratorului - Depanare - Pornire depanare - Client gros; 2) sau dacă aveți aceste taste pe panoul de control în configurator - doar apăsați butonul cu un cerc galben cu un punct gros, vezi figura:

Modul de utilizator al 1cEnterprise8 începe, găsim procesarea noastră, o lansăm, facem clic pe butonul nostru „Query Designer” și vedem cum se deschide designerul încorporat în platformă. vezi fig.

Deci, rulăm Constructorul de interogări, putem începe să punem împreună interogarea viitoare în el, dar suntem interesați să vedem cum va funcționa interogarea pe care am creat-o! Și pentru a face acest lucru, trebuie să creăm un alt buton în configurator atunci când edităm formularul consolei noastre, să-l numim „Run Query”. În proprietățile butonului „Run Query”, faceți clic pe „Acțiune”, apare din nou un meniu în care suntem întrebați unde va fi procesat codul programului nostru, în acest caz selectăm „Atât pe client, cât și pe server”, din nou ne găsim în ModuleForms.

În procedura Execute Query(), pe care o avem pe client, vom scrie o condiție dacă utilizatorul nu a introdus textul de interogare, dar cere să îl execute:

If EmptyString(Object.QueryText) Then report("Introduceți textul interogării!"); endIf;

Sistemul a generat deja automat o legătură către procedura Execute RequestOnServer() ; - e bine, să trecem la această procedură, care se execută pe server, și să scriem aici codul pentru executarea cererii noastre introduse.

Există opțiuni aici: Puteți scrie singur toate expresiile legate de crearea interogărilor, de ex. manual, dar există o opțiune și mai simplă - în cadrul procedurii, faceți clic dreapta și în meniul derulant selectați „Generator de interogări cu procesarea rezultatelor, vezi figura.”:

Dacă ați făcut clic pe elementul „Proiectare de interogări cu procesare a rezultatelor”, atunci va apărea o fereastră modală „Textul de interogare nu a fost găsit”, faceți clic pe Da, în care se va deschide pe prima filă „Procesarea rezultatului” - selectați primul element „Ocolirea rezultatului, nu avem nevoie de nimic altceva de la acest constructor, faceți clic pe butonul „Ok” - va apărea o fereastră modală: „Nu”. câmpurile sunt selectate în cerere, faceți clic pe „OK”.

După aceasta, următorul șablon gata făcut va apărea în cadrul procedurii noastre ExecuteRequestOnServer():

Să trecem la expresia construită de constructor:

Solicitare.Text = "";

Request.Text = Object.RequestText;

Este atât de simplu, butonul nostru „Execută cererea” de pe formularul de procesare este deja practic operațional, până acum poate procesa doar cereri simple fără parametri, dar principalul lucru este că funcționează! Tot ce rămâne este să afișam vizual rezultatele solicitării noastre în atributul „Tabelul de valori” din formularul de procesare. Permiteți-mi să vă reamintesc că atributul nostru „Tabelul de valori” este de tip „Document tabelar”, deoarece altfel nu vom vedea rezultatele noastre în modul utilizator. Ieșirea datelor tabulare către utilizator este întotdeauna gestionată fie de un document tabelar, fie de un Layout. Aș dori foarte mult să fie posibilă afișarea datelor printr-un tabel de valori - deoarece este foarte ușor de utilizat și familiar, dar. , din păcate, un tabel de valori este doar un instrument de care are nevoie un dezvoltator, nu puteți afișa date pe ecran folosindu-l...

Să aruncăm o privire mai atentă la ce este un document de foaie de calcul - este ca o foaie Excel - poți ajunge la o înregistrare într-o anumită celulă doar folosind celulele tabelului, aici le numim o zonă, dar noi înșine putem selecta intervalul acestei zone într-o singură celulă specifică:

Deci, ne-am dat seama ce este un document de foaie de calcul și am stabilit pentru noi înșine că va trebui să definim datele din interogarea noastră într-o anumită celulă a acestui document de foaie de calcul. Dar să ne gândim: care este „Rezultatul interogării” pe care designerul l-a generat atât de repede pentru noi? Deschideți ajutorul - Rezultatul interogării este un tabel care are proprietățile corespunzătoare! vezi fig.

Și dacă scriem acum după expresia Query Result = Query.Execute( (creat de constructor), iată un ciclu atât de simplu pentru Colecții:

Pentru fiecare ColumnName Din Interogare Result.Columns Loop report(ColumnName.Name); EndCycle;

După acest ciclu, notați deocamdată toate expresiile create automat de constructor. Și rulați 1C:Enterprise8 sub clientul gros Creați orice interogare simplă (puteți utiliza Generatorul de interogări - funcționează deja pentru noi) și faceți clic pe butonul „Run Query”:

Apoi veți vedea în partea de jos a ferestrei de mesaj - că tabelul Rezultatele interogării stochează numele câmpurilor pe care tocmai le-am selectat prin crearea unei interogări simple.

Acum să afișăm aceste nume ale câmpurilor suferinței noastre într-un document de calcul:

Pentru fiecare ColumnName din Query Result.Columns Loop Cell=Object.QueryTable.Area(1,QueryResult.Columns.Index(ColumnName)+1); Cell.Text=ColumnName.Name; EndCycle;

Pentru a afișa detaliile datelor interogării, să analizăm expresiile create automat de designer și să introducem în bucla de sortare „SelectionDetailedRecords” a interogării în sine exact aceeași buclă pe care am folosit-o pentru a afișa numele coloanelor, doar că acum trebuie să transferăm nu datele din tabelul „Rezultatul interogării” în textul celulei și datele selecției în sine, să vedem în ajutor cum puteți accesa câmpul Selecție detaliată al cererii:

SelectionDetailRecords = QueryResult.Select(); În timp ce SelectionDetailedRecords.Next() Loop //în prima linie avem deja scrise numele coloanelor din tabel, așa că încărcăm datele sub prima lineDocRowNumber=Object.QueryTable.TableHeight+1; Pentru fiecare ColumnName din Query Result.Columns Cycle Cell=Object.QueryTable.Area(DocRowNumber,QueryResult.Columns.Index(ColumnName)+1); Cell.Text = SelectionDetailedRecords[ColumnName.Name]; EndCycle; EndCycle;

Asta este tot, putem verifica, încărca întreprinderea sub un client gros, introduce o cerere simplă fără parametri, faceți clic pe butonul „Run Query”, vezi fig:

Ura, totul merge!!!

Este foarte convenabil când, la deschiderea/închiderea Consolei noastre de interogări, textul de interogare, cu care am lucrat înainte de a închide consola, este din nou scris în câmpul „Text de interogare”. Pentru a face acest lucru, trebuie doar să activați proprietatea formularului = Salvare automată, vezi fig:

Gata, consola noastră funcționează. Pentru a putea scrie interogări mai complexe cu parametri specificați în ele, trebuie să creăm un alt buton „Găsiți parametri”, precum și codul pentru butonul „Run Query” - va fi executat codul pentru butonul „Găsiți parametri”. pe client și pe server. Apoi, în procedura serverului, lansăm solicitarea exact în același mod cu textul trecut în ea din fereastra „Request Text”, folosind expresia „Request.FindParameters()” găsim parametrii trecuți și pur și simplu îi introducem în o buclă în partea tabelară a formularului „Parametri de solicitare”. Nu uitați să le transferați apoi din tabelul de parametri completat în procedura „Run Query”.

De asemenea, puteți adăuga câteva butoane la Consola noastră care vor șterge fereastra Parametri și fereastra Solicitare text în modul utilizator.

Query Console este gata de utilizare, vă doresc soluții creative de succes folosind un instrument atât de simplu și puternic precum Query Console!

Această procesare este scrisă pe platforma 1c8.3 (formulare gestionate) și rulează sub un client gros. Poate fi scris și pe platforma 1c8.2, atât sub forme obișnuite, cât și sub cele gestionate.

Descărcarea conține o mostră a Consolei de interogări pe care tocmai am creat-o.

///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

Upgrade la Query Console:

1) Acum, Consola noastră de interogări de casă, cu un Generator de interogări încorporat, va rula sub orice client: sub un client gros de formulare obișnuite și gestionate și sub un client subțire și web.

p.s. Forma și aspectul Generatorului de interogări încorporat sunt diferite - în funcție de clientul în care am lansat Consola (eu personal sunt mai familiar și mai convenabil cu forma Generatorului de interogări sub un client gros)

&Pe Client Procedure Query Constructor (Comandă) //apelarea standard Query Constructor este posibilă numai sub un client gros #If ThickClientManagedApplication sau ThickClientNormalApplication Then Constructor=New Query Constructor; Dacă nu EmptyString(Object.QueryText) atunci Constructor.Text = Object.QueryText; endIf; Dacă Constructor.OpenModal()=True, atunci Object.RequestText=Constructor.Text; endIf; // #Else // Report("Apelarea Generatorului de interogări este posibilă numai sub un client gros"); // Întoarcere; //# EndIf #Else Report("Executați Query Builder sub un client subțire - diferă ușor în formă și viteza de performanță!"); Constructor = New QueryConstructor(); Dacă nu EmptyString(Object.QueryText) atunci Constructor.Text = Object.QueryText; endIf; Alerta constructor = New AlertDescription("RunAfterClosingConstructor", ThisForm); Constructor.Show(Alerta constructor); # EndIf End of Procedure &On the Client Procedure ExecuteAfterClosingConstructor(Result, ConstructorParameters) Export //Result=text, dacă Constructorul a fost închis folosind butonul ok Object.RequestText = AbbreviatedLP(Result); //lucrări!!! EndProcedure

2) S-a adăugat posibilitatea la Consola noastră de interogări simplă de a introduce interogări complexe cu un tabel temporar transmis la parametri!!! Mecanismul s-a dovedit a fi foarte simplu și elegant - fără a utiliza cod XML, așa cum se face în consolele profesionale.

Puteți vedea codul în sine și procedurile pentru mecanismul de transfer la parametrii tabelelor temporare în al doilea fișier atașat. Cum ați început să vă dezvoltați propria versiune a tabelelor temporare din parametrii poate fi găsit la acest link https://forum.site/forum9/topic183700/

Acum, cum să utilizați Consola pentru o interogare complexă atunci când un tabel temporar este trecut la parametrii săi. De exemplu, puteți lua codul acestei solicitări;

SELECTAȚI ExternalData.Product, ExternalData.Quantity PLACE ExternalData FROM &ExternalData AS ExternalData; //////////////////////////////////////////////////////////////////// ////////////////////////// SELECT ExternalData.Product, ExternalData.Quantity, ISNULL(RemainingProductRemaining.QuantityRemaining, 0) AS Field1, ISNULL(Remaining ProductsRemainings.QuantityRemaining, 0) - ExternalData.Quantity AS Remaining FROM ExternalData AS ExternalData LEFT JOIN Register Accumulations.Remaining Products.Remainings(&Date, Product IN (SELECT ExternalData.Product FROM ExternalData AS ExternalData)) =Remaining Products Remaining Products.Data ca produs extern RemainingProductRemainingProduct

Pe baza exemplului și asemănării codului de interogare de mai sus, vă puteți crea propria interogare complexă, ținând cont de obiectele dvs. de date.

Deci, în designerul de interogări, am creat interogarea de mai sus, închizând Constructorul - textul interogării va intra în câmpul nostru din consola „Text interogare”, faceți clic pe butonul „Găsiți parametri”, vedem că în tabelul Parametrii are o linie appeared = "Date externe", Tipul valorii = "Tabel de valori", vezi fig.

În acest tabel de parametri - introduceți parametrul Data, de exemplu, data de astăzi, apoi faceți clic pentru a încerca să editați parametrul nostru temporar de tabel „Date externe”, faceți clic în câmpul cu „Tabel de valori” pe trei puncte - o selecție de tipuri va apare, faceți clic pe Rând, mecanismul nostru ne întoarce pagina din formular, unde trebuie să introducem manual acest tabel foarte temporar.

Rețineți aici că, în acest caz, pe pagina „Orare” din partea de jos a câmpului „Numele tabelului temporar în parametri”, va apărea numele tabelului nostru temporar (este copiat din tabelul Parametri).

Până acum, pe pagina „Tabele de timp” vedem un singur tabel gol - acesta este tabelul Tipurilor viitorului nostru tabel temporar. Folosind butonul „Adăugați”, vom adăuga numele atributului și tipul tabelului viitor . Fiți atenți - numele și tipul trebuie să corespundă cu ceea ce am specificat în cererea pentru &ExternalData:

Acum apăsăm butonul „Actualizați tabelul temporar” - și vom avea aici un al doilea tabel - îl vom completa direct cu date temporare ale tabelului prin butonul „Adăugați”.

Gata, ne putem verifica încă o dată dacă am introdus datele primitive ale parametrilor de interogare în tabelul cu parametri de pe prima pagină de procesare și faceți clic pe butonul „Run Query” - totul este calculat și selectat în consecință cu limitarea datelor trecute în parametrul tabelului nostru temporar

p.s. Dacă ați făcut o greșeală când ați introdus numele detaliilor și tipurile acestora (în primul tabel) - doar închideți Consola și deschideți-o din nou - tabelul de date temporar va fi șters - și tabelul Tipuri poate fi editat din nou. noul tabel de date poate fi creat din nou.

Asta e tot, putem crea un instrument de lucru foarte puternic cu propriile noastre mâini, în plus, consola noastră este încă foarte rapidă în comparație cu cele profesionale - și acesta este un avantaj foarte mare pentru dezvoltatori! Și, desigur, acum consola noastră funcționează sub orice client! Mult succes in dezvoltarile tale creative!!!

//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

Lucrez constant cu Consola mea de interogări, iar recent am dat peste o interogare foarte interesantă în care tabelele temporare nu erau în primul pachet de interogări, ci în următoarele - și aici consola mea s-a deprimat puțin... A trebuit să fac un alt upgrade.

Deci, Managerul de tabele temporare dintr-o interogare nu înțelege întotdeauna că lucrează cu ea)) Prin urmare, trebuie să setați în mod explicit acest Manager de tabele temporare:

&Pe server Procedura Executare interogare pe server () //upgrade2 - definiție explicită a managerului de tabele temporare! ManagerVT=New TemporaryTablesManager; Solicitare = Solicitare nouă; //upgrade2 - definiție explicită a managerului tabelului temporar! Query.TemporaryTableManager = VTManager; Request.Text = Object.RequestText;

Această versiune a consolei se află la a treia descărcare.

Generatorul de interogări are o interfață destul de simplă, intuitivă. Cu toate acestea, să ne uităm la utilizarea constructorului de interogări mai detaliat.

Constructorul de text de interogare este lansat din meniul contextual (butonul dreapta al mouse-ului) în locul dorit din codul programului.

Să ne uităm la fiecare filă a designerului mai detaliat. Excepția este fila Builder, care este un subiect pentru o altă discuție.

fila Tabele și câmpuri

Această filă specifică sursa de date și câmpurile care trebuie afișate în raport. În esență, aceasta descrie constructele SELECT... FROM.

Sursa poate fi un tabel fizic de bază de date, un tabel de registru virtual, tabele temporare etc.

În meniul contextual al tabelelor virtuale, puteți seta parametrii acestor tabele:

fila Conexiuni

Fila este folosită pentru a descrie conexiunile mai multor tabele și creează construcții cu cuvântul CONEXIUNE.

Fila Grupare

În această filă, sistemul vă permite să grupați și să rezumați câmpurile obligatorii ale rezultatului tabelului. Descrie utilizarea construcțiilor GROUP BY, SUM, MINIMUM, MEDIA, MAXIMUM, CANTITATE, NUMĂR DE DIFERENȚI.

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

fila Condiții

Raspunde de tot ce apare in textul de solicitare dupa constructia WHERE, i.e. pentru toate condițiile impuse datelor primite.

Filă avansată

Tab În plus plin cu tot felul de parametri care sunt foarte importanți. Să ne uităm la fiecare dintre proprietăți.

Gruparea Selectarea înregistrărilor:

  • Primul N— un parametru care returnează numai N înregistrări la interogare (PRIMUL operator)
  • Fără duplicate— asigură unicitatea înregistrărilor primite (operator VARIAT )
  • Permis— vă permite să selectați numai acele înregistrări pe care sistemul vă permite să le selectați, ținând cont(design PERMIS)

Gruparea Tip de solicitare determină ce tip de cerere va fi: preluarea datelor, crearea tabelelor temporare sau distrugerea unui tabel temporar.

Mai jos este un steag Blocați datele primite pentru modificare ulterioară. Vă permite să activați capacitatea de a seta blocarea datelor, ceea ce asigură siguranța datelor din momentul în care sunt citite și până când sunt schimbate (relevant doar pentru modul Blocare automată, design).

Fila Joins/Aliases

Această filă a designerului de interogări setează capacitatea de a uni diferite tabele și aliasuri (constructia CUM). Tabelele sunt indicate în partea stângă, dacă setați steagurile vizavi de tabel, vor fi utilizate constructele UNITE, în caz contrar - UNITE ALL (diferențe între cele două metode). În partea dreaptă este indicată corespondența câmpurilor din diferite tabele dacă nu este specificată corespondența, interogarea va returna NULL.

fila Comanda

Aceasta specifică ordinea în care sunt sortate valorile (ORDER BY) - descendent (DESC) sau crescător (ASC).

Există și un steag interesant - Comanda automată(in cerere - COMANDA AUTO). În mod implicit, sistemul 1C 8.3 afișează datele într-o ordine „haotică”. Dacă setați acest indicator, sistemul va sorta datele după datele interne.

Fila Loturi de interogări

În fila Designer de interogări, o puteți utiliza și ca navigare. În textul cererii, pachetele sunt separate prin simbolul „;” (punct și virgulă).

Butonul de interogare în Generatorul de interogări

În colțul din stânga jos al designerului de solicitări există un buton Solicitare, cu ajutorul căruia puteți vizualiza textul solicitării în orice moment:

În această fereastră, puteți face ajustări la cerere și o puteți executa.

Consola de interogări este foarte convenabil de utilizat atunci când trebuie să depanați unele date complexe sau să obțineți rapid un eșantion de anumite date.

Puteți găsi multe console diferite pe Internet. Pentru formularele obișnuite și gestionate, acestea sunt de obicei console complet diferite. Folosind aceasta, puteți descărca consola universală de interogare 1C 8.3 și 8.2, care va funcționa în ambele cazuri. Rețineți că consola de pe interfața gestionată se va deschide doar în clientul gros.

Lucrul cu consola de interogări

În programul 1C, consola de interogări se deschide în același mod ca orice procesare externă: meniul „Fișier” - „Deschidere” sau folosind combinația de taste rapide „Ctrl + O”. Dacă este folosit frecvent, poate fi adăugat la procesarea externă a bazei de informații în sine.

Partea stângă a consolei de solicitări afișează lista solicitărilor dvs. Acest lucru vă permite să stocați nu doar o singură solicitare, ci mai multe simultan. Arborele de interogări are o structură ierarhică, care este foarte convenabilă pentru gruparea acestora.

Făcând clic pe butonul „Adăugați”, puteți adăuga o nouă solicitare, dându-i singur un nume. De asemenea, funcționalitatea încorporată vă permite să creați interogări cu copiere, să mutați în sus sau în jos în listă și multe altele.

Textul cererii în sine este afișat în partea dreaptă a formularului de procesare. Poate fi scris manual sau folosind un generator de interogări. Generatorul de interogări funcționează numai în clientul gros.

În partea dreaptă a butonului de proiectare se află butonul „Insert Query Statements”. Va adăuga imediat o structură de interogare goală cu condiție, grupare, ordine și totaluri.

În dreapta sunt butoane foarte utile care vă vor ajuta dacă utilizați această solicitare atunci când dezvoltați soluții în 1C.

Butonul vă permite să convertiți solicitarea scrisă în text. În cazul nostru, va arăta ca în figura de mai jos.

Puteți salva cererile într-un fișier sau le puteți încărca din acesta. Acest lucru este foarte convenabil pentru utilizare ulterioară.

Înainte de a executa direct cererea, trebuie să setați parametrii de intrare ai acesteia (dacă există), apoi faceți clic pe butonul „Run request”. De asemenea, este posibil să se execute cereri nu ca un întreg, ci separat ca un pachet.

Modul de vizualizare determină modul în care va fi afișat rezultatul interogării: ca listă, listă ierarhică sau arbore.

Rezultatul execuției va fi afișat în partea de jos a consolei de solicitări. De asemenea, afișează numărul de rânduri primite și timpul de execuție. Dacă este necesar, puteți muta rândurile cu rezultatele interogării.

Foarte des, utilizatorii cer să selecteze unele date și să le salveze în Excel. S-ar putea să ai nevoie și de asta. Pentru a finaliza sarcina, trebuie doar să selectați „Afișare listă” în meniul „Mai multe”. Programul vă va solicita să marcați coloanele necesare.

Pe lângă specificarea unei liste de coloane pentru ieșire, puteți specifica și anumite rânduri aici. Acest lucru este implementat prin evidențierea rândurilor din interogarea în sine. Apoi, în formularul de selecție a coloanei, trebuie doar să setați steagul în setarea „Numai selectat”.

În exemplul nostru, am afișat toate datele rezultatelor interogării. Le puteți salva într-un fișier extern prin copierea lor din foaia de calcul deschisă sau folosind combinația de taste rapide „Ctrl+O”. Există multe opțiuni pentru salvarea formatelor pe care le-am ales „*. xlsx".

După cum puteți vedea, lucrul în consola de interogări este foarte convenabil și util, așa că vă recomandăm insistent să o descărcați și să o puneți în practică.

Constructor de interogări este unul dintre instrumentele de dezvoltare. Vă permite să compuneți un text de interogare într-un limbaj de interogare folosind mijloace exclusiv vizuale.

Folosind butoane Mai departeȘi Înapoi puteți naviga prin filele designerului și puteți specifica ce date ar trebui să fie prezente ca urmare a interogării, cum sunt legate, grupate, ce totaluri trebuie calculate, lucrați cu tabele temporare, editați un pachet de interogări:

Rezultatul muncii constructorului va fi textul de cerere corect sintactic. Astfel, un dezvoltator poate crea o interogare funcțională chiar și fără a cunoaște sintaxa limbajului de interogare - constructorul va genera automat structurile sintactice necesare. Textul de solicitare finalizat poate fi lipit imediat în textul modulului sau copiat în clipboard.

În plus, designerul de interogări vă permite să editați textul de interogare care este deja în program. Pentru a face acest lucru, pur și simplu plasați cursorul în interiorul textului de solicitare existent și apelați constructorul. Textul de solicitare existent va fi analizat și prezentat în proiectant sub forma câmpurilor corespunzătoare ale bazei de date selectate și a unui set de relații, grupări, condiții specificate etc.

Designerul de interogări este format din următoarele file:

1. „Tabele și câmpuri” - există trei liste ierarhice pe filă:
A. „Bază de date” - listează toate obiectele disponibile la care se poate face o interogare. De asemenea, butonul „Afișează tabele de schimb”, cu care puteți accesa tabele de modificări ale obiectelor de securitate a informațiilor dacă acestea sunt înregistrate pentru orice plan de schimb.
b. „Tabele” - o listă de tabele selectate la care va fi executată interogarea. De asemenea, în această fereastră puteți șterge un tabel, redenumi sau înlocui un tabel și adăugați o interogare internă.

Puteți aloca parametri pentru tabele virtuale făcând clic pe butonul „Parametri tabele virtuale”:

Se recomandă utilizarea activă a parametrilor tabelelor virtuale pentru selecția după anumite dimensiuni, deoarece acest lucru crește viteza de execuție a interogărilor. Puteți utiliza variabile externe în parametri, ale căror nume sunt precedate de semnul „&”.
c. „Câmpuri” - o listă de câmpuri care sunt selectate din tabele. De asemenea, puteți adăuga câmpuri calculate pentru a face acest lucru, făcând clic pe butonul „Adăugați” se deschide constructorul de expresii personalizate:

În stânga este o fereastră cu câmpurile disponibile în expresie. În dreapta este un indiciu al funcțiilor utilizate. Mai jos este o expresie arbitrară construibilă. Puteți utiliza parametri externi în expresii, ei sunt notați prin semnul „&”, de exemplu: &Period, &StartDate
Trebuie să fiți atenți, dacă în fereastră este introdusă o expresie lungă și complexă, care conține o mică eroare de sintaxă, atunci după ce faceți clic pe butonul „OK”, sistemul va emite un avertisment și va închide fereastra. Tot codul tastat se va pierde, așa că vă recomand ca, dacă nu sunteți sigur de corectitudinea expresiei, să salvați întotdeauna conținutul în clipboard (Ctrl-C) înainte de a închide constructorul.

2. „Relații” - pe filă sunt indicate conexiunile între tabele.

Tabelul indică tabelele care trebuie legate, relația dintre tabelele care trebuie legate și starea conexiunii. Dacă condiția de conectare este complexă, atunci puteți specifica o anumită expresie calculată și se va deschide constructorul de câmp personalizat.

3. „Grupare” - fila indică ce câmpuri sunt grupate și care sunt agregate (însumate).

4. Fila „Condiții” - enumeră condițiile care sunt impuse cererii.
În condiții, puteți scrie și expresii complexe folosind constructorul de expresii simple și folosind variabile externe:

5. „Avansat”
Parametri suplimentari impusi cererii

6. „Asociații și pseudonime”
În această filă puteți atribui aliasuri pentru câmpuri, precum și gestionați interogări care sunt conectate prin constructele „UNITE” sau „UNITE ALL”.

7. „Comanda”
În ce ordine vor fi afișate rezultatele interogării?

Atenţie! În partea de jos a marcajului, puteți vedea o bifă "Comandă automată"- în versiunea actuală a 1C 8.1 în ACS, este inutil, în plus, când se bifează caseta, la înregistrare, ACS dă o eroare, deci nu ar trebui să-l folosești.

8. „Compoziția datelor”
Fila în care sunt definite câmpurile de servicii pentru sistemul de control acces. Joacă aproximativ același rol ca fila „Generator de rapoarte” într-un designer de rapoarte obișnuit.

A. În fila „Tabele” - sunt listate tabelele utilizate în interogare, puteți indica dacă tabelul trebuie inclus în interogare bifând caseta de selectare „Necesar”. Acestea. dacă nu sunt incluse câmpuri în selecție, atunci acest tabel nu participă deloc la interogare. De asemenea, puteți specifica parametrii pentru tabele.

În procesul de configurare a sistemului de control al accesului, specificăm orice selecție, apoi toate valorile de selecție vor fi înlocuite în parametrii tabelelor virtuale, ceea ce din nou ne va ajuta să optimizăm și să accelerăm interogarea.
b. În fila „Câmpuri”, sunt listate câmpurile și aliasurile lor care vor fi adăugate la lista câmpurilor ACS.
c. „Condiții” - dacă selecțiile sunt specificate în setările ACS, toate valorile de selecție vor fi adăugate ca condiții suplimentare, de asemenea, pot fi adăugate expresii complexe;

9. „Caracteristici”
Un marcaj care nu are analog în constructorul obișnuit al formei de ieșire.

Această filă vă permite să extindeți activitatea de interogări cu caracteristici. Tabelul din filă este format din mai multe câmpuri:
A. „Tipul valorii” - tipul pentru care vor fi selectate caracteristicile. De exemplu, dacă specificați „Directory Link.Nomenclature”, atunci toate caracteristicile pentru nomenclatură vor fi selectate în interogare.
b. „Sursă” - sursa pentru proprietățile tipurilor caracteristice, poate fi o interogare sau un tabel. În acest câmp putem scrie o solicitare pentru a selecta doar acele proprietăți de care avem nevoie.
c. „Lista de caracteristici” - un câmp în care este indicată sursa proprietăților caracteristicilor. Cel mai adesea acesta este un plan de tipuri caracteristice sau o cerere. De asemenea, trebuie să specificați câmpurile care sunt responsabile pentru „Identificatorul”, „Numele” și „Tipul” proprietății.
d. „Sursa” este următorul câmp în care indicăm sursa valorilor caracteristice, care poate fi, de asemenea, fie un tabel, fie o interogare.
e. „Valoare caracteristică” este un tabel sau o interogare care primește valori caracteristice. De exemplu, registrul de informații „ObjectPropertyValues” poate servi ca un tabel cu valorile caracteristicilor. De asemenea, trebuie să indicăm acele câmpuri din tabel (sau interogare) care sunt responsabile pentru „Obiect”, „Proprietate” și „Valoare” caracteristicii.
După editarea cererii, textul solicitării poate fi văzut în fereastra de sub lista de câmpuri. Mai jos, cu caseta de selectare „Completare automată”, putem reglementa completarea parametrilor suplimentari pentru câmpurile specificate în cerere. Vă rugăm să rețineți că componența câmpurilor este determinată doar în cererea în sine.

Informatii preluate de pe site