lista dinamică
prefață
În acest articol vom lua în considerare cererile de la baza de date, care formează platforma atunci când se lucrează cu o listă dinamică. Definiți orice mod afecta setările sale de a lucra cu platforma SQL-bază de date.
Toate exemplele din articol sunt făcute la configurația demo, pe care îl puteți descărca prin intermediul link-ul de la sfârșitul paginii.
Notă: Formularul Obiectul „listă dinamică“ a apărut în platforma 8.2. Utilizarea sa este posibilă numai pentru a controla forma.
Lucrul cu baze de date
Când deschideți lista
Este creat directorul de configurare probă, „Produse“, care a adăugat elemente de recuzită de tip „de referință“, „string“. De exemplu de referință este umplut cu cinci mii de articole. Completarea facut tratament special „ZapolnenieSpravochnikaTovarov“, care este, de asemenea, o parte din configurația demo.
Descriem cererea primită. Am ales primele 42 de intrări din tabelul „_Reference7“. Este în acest tabel conține intrări pentru toate elementele de „mărfuri“ directorul. De ce să alegeți 42 intrări? Găsi ceva care va afecta această cifră, nu am putut (orice dimensiune a ecranului sau numărul total de înregistrări în tabel). Concluzionăm că platforma implicită selectează 42 de înregistrări atunci când deschideți o listă dinamică.
Exemplele de câmpuri conțin date care vor fi afișate în mod direct într-o listă dinamică. Cifra ca a semnat fiecare dintre câmpurile afișate în modul 1C: Enterprise. S-ar putea fi o întrebare logică: „Ce este prezent într-o probă de«Predefinite»și«Marcarea îndepărtare»“. Aceste câmpuri sunt necesare pentru a icoanelor platformei respective ar putea aloca marcate pentru ștergere și elemente predefinite.
Ca urmare a cererii, vom vedea următoarele informații în lista dinamică:
În grupul dezvăluirea cu elemente
Extinderea grupului de elemente într-o listă dinamică a 1C: Enterprise generează următoarea interogare:
Interogarea rezultată este similară cu considerate anterior de către noi. Singura diferență este în numărul de înregistrări selectate și impune condiții privind datele incluse în eșantion. În cazul în care o deschidere a unui grup de elemente, platforma definește o selecție doar pentru primele 22 de elemente.
Notă: o solicitare similară este generată și, în cazurile în care un utilizator grup format din desface alt director de grup.
Derulați printr-o listă de articole
Un factor important în formarea acestei interogări este starea de prelevare a probelor. Aceasta pentru acele domenii care sunt implicate în ordonarea rezultatului de interogare impune condiții suplimentare, pentru următoarele 22 de înregistrări. În cazul nostru este câmpul „_Foder“, „_description“ și „_IDRRef“.
Notă: Câmpul „_Folder“ indică directorul de masă de grup de intrare afiliere sau de element. Dacă valoarea este „0x00“ în domeniu, atunci acest grup. Dacă valoarea este „0x01“, atunci această intrare director. Pentru dezvoltator a fost convenabil de a lucra cu acest domeniu, acesta este convertit invers. Cererea are expresia:
Aceasta este, în cazul în care platforma „0x00“ valoare (False) indică faptul că înregistrarea aparține unui grup, dezvoltatorul este aceeași valoare înseamnă că înregistrarea aparține elementului.
Înainte de formarea următorului eșantion de 22 de articole, platforma primește date pentru ultimul element selectat:
Trecerea o referință la ultimul element primește datele de cerere pentru parametrii de transmisie într-o cerere pentru următoarea parte a elementelor de probă (interogare anterioară de mai sus).
Configurarea listei de afișare
Gruparea listă dinamică
Atunci când se utilizează o listă dinamică grupuri au primit date vor fi grupate în funcție de câmpul selectat (câmpuri). Includerea grupurilor conduce la o complicație a SQL-interogări la baza de date ca platforma pe care doriți să primiți informații suplimentare pentru grupurile de eșantionare:
Vă rugăm să rețineți că va fi conexiune de stânga suplimentare și operații suplimentare pentru a prelua câmpuri.
Detalii cu privire la această solicitare nu se va opri, cu excepția să spun că platforma de masă T1 primește valori posibile pentru câmpurile de grupare, iar în tabelul alăturat T2 conține înregistrări grupate în mod direct elemente.
În ciuda faptului că citirea se va produce în mod dinamic (prima probă la deschiderea listei conține 42 de intrări), includerea grupurilor mărește sarcina pe server.
citire date dinamice
Formele Requisite de tip „listă dinamică“ are o setare „date dinamice de citire“ (a se vedea. Seq. Screenshot).
Pentru toate aceste opțiuni exemple discutate anterior sunt incluse. De aceea, atunci când defilare prin intermediul solicitărilor de platforma listei de directoare elemente în formă de piese noi de date. În cazul în care citirea dinamică a datelor este dezactivată, o lectură la carte nu va mai funcționa așa cum am văzut în exemplele de mai sus.
Amintiți-vă că porțiunea pe care platforma „termina“ lista este de 22 de intrări care pot fi răsfoite. În cazul în care opțiunea este dezactivată, o interogare a bazei de date va fi după cum urmează:
După cum putem vedea, numărul de înregistrări selectate într-o singură porție a crescut la 1000. Nu este greu de ghicit că în cazul în care grupul director conține mai mult de 1.000 de articole, grupul de implementare, programul poate fi o lungă perioadă de timp să se gândească, mai ales în cazul în care lista dinamică conține o interogare arbitrară complexă.
citire date dinamice sunt disponibile numai în cazul în care tabelul principal este setat pentru o listă dinamică. „Marfa“ acest exemplu de referință. În cazul în care nu există nici un tabel de maestru, atunci platforma nu poate determina porțiunea de date selectate. Se presupune că, dacă nu există nici o masa de maestru, este imposibil să se determine poziția unei singure înregistrări, printre altele, prin referire la un tip de obiect sau cheie de înregistrare pentru registre.
Selecția și sortarea
Ca liste dinamice funcționează pe datele de configurare a sistemului, atunci acestea au opțiunea în modul de utilizator, setați selecția și sortarea câmpului. În construirea interogările bazei de date, în astfel de cazuri, platforma se comportă destul de previzibil. De exemplu, setați selecția pe câmpul „mamă“ și sortarea de către câmpul „Reference“. Ca rezultat, platforma pe următoarele date preluate este format cerere:
Liste dinamice care au apărut în versiunea platformei 8.x, este un obiect de interfață foarte convenabil atunci când se lucrează cu volume mari de date. Acestea vă permit să salvați resurse de sistem atunci când se lucrează cu baza de date, și au, de asemenea, o ajustare flexibilă pentru utilizator. Mai mult decât atât, orice cunoștințe specifice ale lucrărilor de pe platforma 1C: Enterprise nu este necesară.
Am examinat comportamentul programului pentru cele mai populare evenimente din lista dinamice. Cu toate acestea, este de remarcat faptul că comportamentul său, în unele cazuri, nu este încă clar. La prima vedere, atunci când efectuează acțiuni simple, cum ar fi setarea selecții sau sortare, programul efectuează interogări care nu sunt necesare în baza de date. În viitor ne propunem să se ocupe de toate acțiunile platformei de dezvoltare pentru a ghida pe ea cu maximă eficiență.
Intr-un articol viitor vom discuta despre optimizarea liste dinamice. De asemenea, este planificat să scrie un articol despre nuanțele de construcție a interfeței prin intermediul acestui obiect.