Cum se configurează smartphone-uri și PC-uri. Portal informativ
  • Acasă
  • Fier
  • 1c 8.3 parametrii opționali de interogare dinamică a listei. Setări dinamice ale listei

1c 8.3 parametrii opționali de interogare dinamică a listei. Setări dinamice ale listei

Acasă Note din oglindă

21.04.2014 Obținerea datelor din listă dinamică

Implementat în versiunea 8.3.6.1977.

Am implementat capacitatea de a obține ușor și convenabil date afișate folosind o listă dinamică.

Este posibil să aveți nevoie de datele listei dinamice pentru a le imprima într-o formă „specifică” non-standard. Sau pentru a efectua anumite acțiuni cu ei. De exemplu, trimiteți o scrisoare tuturor contrapărților pe care le-ați selectat în listă conform unor criterii.

În plus, există o serie de sarcini în care utilizatorul, pe lângă lista de elemente, dorește să vadă și datele rezumative asociate acestei liste. De exemplu, după ce a selectat mărfurile unui anumit grup de produse și a unui anumit furnizor, el dorește imediat să vadă numărul total de astfel de bunuri în baza de date.

Lista dinamică în sine nu vă poate oferi aceste informații. Scopul unei liste dinamice este de a oferi o vizualizare rapidă a cantităților mari de date. Prin urmare, citește datele în bucăți necesare pentru a fi afișate pe unul sau două ecrane. Și „nu știe nimic”, de exemplu, despre cantitatea totală de date pe care trebuie să o citească.

În general, pentru a obține informațiile suplimentare pe care utilizatorul le dorește, trebuie să interogați baza de date. Exact la fel ca cel folosit în lista dinamică.

Ai putea să o faci înainte. Dar nu a fost întotdeauna ușor. La urma urmei, pe lângă textul interogării originale, conform căruia funcționează lista dinamică, trebuia să cunoașteți toate selecțiile, sortările și alți parametri pe care utilizatorul i-a stabilit interactiv în tabelul care afișează datele.

Acum această sarcină este ușor de rezolvat. Tabelul cu liste dinamice are două metode noi:

  • GetExecutableDataCompositionSchema();
  • GetExecutableDataCompositionSettings().

Astfel, obțineți schema de compoziție a datelor în sine și, cel mai important, toate setările acesteia, datorită cărora utilizatorul vede lista exact așa cum este. Tot ce trebuie să faceți este să compuneți în mod programatic aspectul și să îl trimiteți într-o colecție de valori (pentru procesare programatică) sau într-un document de foaie de calcul (pentru afișare):

Ca rezultat, veți obține o structură (sau un raport) care conține coloane și rânduri care sunt afișate într-un tabel de listă dinamic.

Punctul important este că aspectul și setările pe care le obțineți din tabelul cu liste dinamice țin cont, printre altele, de vizibilitatea coloanelor și de căutarea aplicată. Deoarece setările sunt obținute separat, puteți modifica compoziția câmpurilor în scopuri proprii și puteți obține, de exemplu, toate coloanele din listă, și nu doar cele care sunt vizibile pentru utilizator.

Când trimiteți într-un document de foaie de calcul, există un alt moment frumos. În general, aspectul raportului se va potrivi cu aspectul tabelului de listă dinamică în momentul primirii schemei și setărilor. Inclusiv designul condiționat al tabelului. Veți avea nevoie de câteva acțiuni suplimentare numai dacă doriți să transferați și designul condiționat al formularului în raport.

Servicii Web este unul dintre mecanismele platformei utilizate pentru integrarea cu alte sisteme informatice. Este un mijloc de susținere a SOA (Service-Oriented Architecture) - arhitectură orientată pe servicii, care este standardul modern pentru integrarea aplicațiilor și a sistemelor informaționale.

Un avantaj semnificativ al arhitecturii orientate către servicii este că vă permite să dezvoltați infrastructura întreprinderii într-un mod omogen, fără a distruge soluțiile existente. Utilizarea acestuia vă permite să minimizați costurile prin integrarea sistemelor eterogene și vechi în peisajul întreprinderii moderne. Permite implementarea componentelor software slab cuplate pentru a maximiza reutilizarea acestora.

Arhitectura orientată spre servicii este dezvoltată și susținută în mod activ de furnizori mari. Este construit pe baza de servicii, autonome sau gestionate din exterior. Serviciile web sunt modalitatea preferată de implementare a acestora. Sunt independente de platformă, autonome și susținute universal.

Soluția de aplicație 1C:Enterprise 8 poate fi atât un furnizor de servicii web, cât și un consumator de servicii web publicate de alți furnizori.

Sistemele care utilizează platforme hardware și software arbitrare pot acționa ca consumatori. Tehnologia serviciilor web este independentă de platformă.


Implementarea tehnica a serviciilor web

Dacă soluția de aplicație este un furnizor de servicii web, atunci atât în ​​versiunea fișier cât și în versiunea client-server, interacțiunea dintre soluția aplicației și consumatorii de servicii web se realizează prin intermediul serverului web, folosind modulul de extensie a serverului web.

În acest caz, atunci când consumatorul accesează serviciul web al soluției de aplicație, se execută modulul serviciului web. Acest modul este cuprins în configurație și conține proceduri care se efectuează la apelarea anumitor operațiuni ale serviciului web.

În cazul unei operațiuni client-server, acest modul va fi executat într-un cluster. În cazul versiunii fișierului de lucru - în modulul de extensie a serverului web.

Dacă soluția de aplicație este un consumator de servicii web terță parte, atunci interacțiunea dintre soluția de aplicație și furnizorul de servicii web este

Pe lângă tipurile de date primitive care pot fi găsite în orice limbaj de programare, există tipuri unice în 1C. Fiecare dintre ele are propriile proprietăți, metode, funcții, scop și nuanțe de utilizare în sistem. Unul dintre aceste tipuri este o listă dinamică, care simplifică foarte mult multe sarcini aplicate. De aceea, dezvoltatorii ar trebui să cunoască și să fie capabili să se ocupe de acest instrument versatil.

Caracteristicile listelor dinamice în 1C

Scopul acestui tip este de a afișa informații din orice tabel de bază de date, indiferent de tipul acesteia. Mecanismul a fost creat pe baza SKD și are capacități similare. Dar asta nu înseamnă că va trebui cu siguranță să scrieți o interogare în limbajul 1C, deși această posibilitate există și trebuie să o utilizați. Puteți specifica pur și simplu tabelul, informațiile din care sunteți interesat, iar 1C va genera independent o interogare simplă.

Pentru a vedea cum se formează o listă dinamică și ce date arată, trebuie să deschideți formulare gestionate, unde se află, în configurator: în lista de detalii, deschideți proprietățile acesteia prin meniul contextual și acordați atenție la „Personalizat”. Solicitare” articol. Dacă nu există nicio casetă de selectare, atunci parametrul „Main table” reflectă tabelul bazei de date din care sunt preluate datele. În caz contrar, lista dinamică reflectă datele de interogare personalizate, care pot fi văzute prin deschiderea setării listei.

O schemă de interogare arbitrară este mult mai frecvent utilizată, deoarece oferă o oportunitate excelentă de a combina și afișa o mare varietate de date. Cel mai adesea, acest mecanism este utilizat pentru a reflecta soldurile stocurilor, prețurile articolelor, veniturile, cheltuielile sau achizițiile. Trebuie să-l utilizați cu atenție, deoarece performanța poate scădea în cazul interogărilor complexe.

O altă proprietate utilă a listei dinamice este deschisă făcând clic pe inscripția „Setări listă”. Acest meniu permite, chiar și atunci când se utilizează un set standard de câmpuri, să facă informațiile mai accesibile și mai ușor de înțeles pentru utilizatorii finali. Indiferent dacă este o solicitare arbitrară sau nu, veți vedea o filă „Setări” unde puteți specifica:

  • Selectarea unei liste dinamice;
  • grupari;
  • triere;
  • Înregistrare.

Utilizarea parametrilor face listele dinamice destul de versatile și flexibile. De asemenea, le puteți lega de elemente de recuzită într-un formular gestionat, iar datele se vor schimba în funcție de opțiunile selectate de utilizator. Utilizarea acestor mecanisme poate fi înțeleasă și apreciată analizând exemple de probleme din lumea reală.

Ca exemplu, luați în considerare problema reflectării rămășițelor nomenclaturii pe o formă gestionată. În practica reală, astfel de comenzi sunt destul de comune în diverse configurații, iar lista dinamică este ideală ca instrument. Pentru această sarcină, va trebui să folosim o interogare arbitrară, parametrii listei dinamice și setările acesteia.

Pentru o mai mare claritate, să creăm o procesare externă separată și să plasăm o listă dinamică pe ea. Pentru a ne implementa planurile, vor exista puține tabele cu nomenclatură, așa că trebuie să permitem o solicitare arbitrară. În acesta, vom descrie legătura din stânga a cărții de referință cu lista de nomenclatură și registrul reziduurilor și vom stabili cartea de referință ca tabel principal. O astfel de schemă va permite utilizatorilor, în timp ce lucrează cu o listă dinamică, să adauge sau să modifice nomenclatura.



Alegeți o nomenclastură.

Deoarece parametrul CurrentDate a fost folosit în cererea noastră, trebuie să îi setăm valoarea înainte de a utiliza procesarea. Pentru a face acest lucru, în modulul de formular din procedura „On CreationOnServer” printr-o comandă standard, atribuiți-i funcția „CurrentSessionDate” cu o comandă standard. De asemenea, trebuie să afișăm o listă dinamică pe formularul de control și să schimbăm ordinea câmpurilor pentru claritate. Trageți recuzita „Nomenclature Remains” în elementele formularului (stânga sus) și utilizați săgețile albastre pentru a schimba ordinea câmpurilor din tabelul din formular.

&La Procedura Server La CreareLa Server (Eșec, Procesare Standard) Nomenclatura rămâne.Parameters.SetParameterValue("CurrentDate", CurrentSessionDate()) EndProcedure


Deja în această etapă, putem deschide procesarea noastră externă în 1C și să vedem că lista dinamică funcționează. Putem să ne uităm la rămășițe, să creăm nomenclatură și grupuri și să căutăm. Adesea, clienții cer să adauge posibilitatea de a alege data la care vor vedea soldurile. În cazul unui formular cu o listă dinamică, aceasta este furnizată de un câmp suplimentar și de setarea parametrilor folosindu-l.

Adăugăm atributul „DateRemains” de tip „Date” și îl transferăm în elementele formularului. În evenimentele de câmp, creăm un eveniment „OnChange” și scriem codul pentru setarea parametrului „CurrentDate” utilizat în interogarea dinamică. Pentru ca la deschiderea formularului, utilizatorul să înțeleagă imediat la ce dată vede soldurile, vom face mici modificări în procedura „OnCreateOnServer”.



&OnServerCreateOnServerProcedure(Eşec, StandardProcessing)RemainsDate = CurrentSessionDate(); Nomenclatură Remains.Parameters.SetParameterValue("CurrentDate", RemainsDate); Sfârșitul procedurii &La procedura client RemainsDateOnChange(Element) Item Remains.Parameters.SetParameterValue("CurrentDate",RemainsDate); EndProcedure

Ca rezultat, formularul nostru Dynamic List poate afișa solduri pentru orice dată.

Am acoperit doar o mică parte din capacitățile acestui set de instrumente, dar acest lucru este deja suficient pentru a înțelege comoditatea acestui tip de listă dinamică. Un mecanism similar este utilizat pentru multe sarcini, dar cel mai adesea se găsește în configurații tipice în forme gestionate:

  1. selecţie;
  2. Liste.

Pentru a obține o listă dinamică și cererea acesteia în forme tipice gestionate, dezvoltatorul trebuie să deschidă formularul necesar în configurator. În secțiunea Atribute, găsiți atributul cu tipul de date „DynamicList” (cel mai adesea este îngroșat). Proprietățile sale conțin textul solicitării, selecții și alte setări.

În cele din urmă, visul oricărui „șapte jucători” s-a împlinit. Cât de des utilizatorii programului 7.7 au cerut să facă o selecție normală de articole. Astfel încât să puteți vedea soldurile și prețurile și să setați filtre. A trebuit să vin cu diverse trucuri, până la scrierea componentelor externe. În 1C 8.2, au apărut liste dinamice. Propun să luăm în considerare ce este și ce ne pot oferi în 1C 8.3.

Să luăm ca bază o anumită configurație de test 1C: „Enterprise Accounting 3.0”. Nu vom face o selecție acum, doar adăugați un alt formular de selecție în cartea de referință „Nomenclatură” și faceți-l temporar principal:

Când este creat, sistemul va adăuga implicit un câmp de tabel cu tipul „Lista dinamică” la formular.

Să mergem la proprietățile sale și să vedem ce este acolo.

În primul rând, ne interesează caseta de selectare „Cerere arbitrară”. El este cel care ne va dezvălui toate avantajele unei liste dinamice. Vom avea posibilitatea de a scrie propria noastră interogare, și cu parametri. Bifați caseta și faceți clic pe linkul „Deschidere”:

Se va deschide o fereastră cu un cod gata făcut pentru . Până acum, toate câmpurile directorului „Nomenclatură” sunt enumerate pur și simplu acolo.

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

După cum puteți vedea, există un buton de apel „” și o casetă de selectare care vă permite să schimbați dinamic conținutul listei. Adică, atunci când un alt utilizator modifică ceva în director, se va schimba și în lista noastră. În plus, există o filă Setări, dar o vom atinge mai târziu.

Interogare personalizată în lista dinamică

Mai întâi, să creăm interogarea de care avem nevoie cu solduri și prețuri. Mai mult sau mai puțin așa:

fila Setări

Și acum cel mai delicios! Accesați fila „Setări”. Și vedem imediat că în prima filă putem face orice selecție pentru orice câmp din cerere:

Setarea programatică a parametrilor de interogare într-o listă dinamică 1C 8.3

Nu uitați că avem doi parametri în cerere: „Perioada” și „Tipul prețului”. Trebuie să le transmitem la cerere, altfel va apărea o eroare.

Să scriem acești parametri în parametrii de formular și să adăugăm următoarele linii în modulul de formular:

&OnServerProcedure Lista OnCreateOnServer(Eșec, procesare standard). Parametrii. SetParameterValue("Perioada", Parametri. Data) ; Listă. Parametrii. SetParameterValue("PriceType" , Parameters.PriceType) ; EndProcedure

Top articole similare