Numerotarea rândurilor din interogare

În configurația de testare, trebuie să implementați numerotarea liniilor din lista dinamică din jurnalul de documente. Revista include trei documente: "Cerere", "Comandă de primire" și "Ordine de cheltuieli". Inițial, forma listei documentelor este următoarea:







Numerotarea rândurilor din interogare

În principiu, sarcina ar fi rezolvată cu ușurință dacă lista documentelor pe care le vom primi în raport. Dar aici lucrurile sunt diferite.

În rapoarte - nu este o problemă!

După ce a creat un raport privind sistemul de legare a datelor cu obținerea unei liste de documente, sarcina ar fi rezolvată foarte simplu. În câmpurile de rapoarte, trebuie doar să adăugați un câmp special "Număr în ordine".

Numerotarea rândurilor din interogare

Ca urmare, utilizatorul va vedea un rezultat similar al raportului:

Numerotarea rândurilor din interogare






Dar dacă trebuie să obțineți numerotarea direct în interogare? De exemplu, este posibil să aveți nevoie de acest lucru pentru a obține numărul de ordine al înregistrării din lista dinamică.

Numerotarea în interogare

Modificați interogarea dinamică a documentelor după cum urmează:

Când deschideți o listă dinamică în modul 1C: Enterprise, obținem următorul rezultat:

Numerotarea rândurilor din interogare

Notă: exemplul arată doar principiul de numerotare a șirurilor direct în interogare. Dacă ați observat, în ecranul de deasupra documentelor din listă ordonate după numărul ordinal al liniei, mergeți "în ordinea tipurilor" (primele comenzi primite, apoi contul, etc.). Acest lucru se datorează faptului că, utilizând linkul pentru conexiune, nu putem garanta faptul că GUID-urile legăturilor vor fi unice. De asemenea, nu puteți compara link-urile diferitelor tipuri de documente - aceasta va duce la un rezultat incorect. Puteți utiliza punctul de timp sau alte câmpuri care definesc poziția specifică a documentului cu lista jurnal comună.

Desigur, folosind această abordare, ne-ar fi complicat interogarea bazei de date, plus întreg, unele dintre caracteristicile o listă dinamică, care sunt importante pentru experiența utilizatorului, nu ar fi devenit accesibile (a se citi tabelul de baze de date dinamice, etc.), dar exemplul a fost creat numai pentru a demonstra posibilitatea numărării rândurilor în interogări. Folosind acest principiu pentru alte sarcini, cum ar fi plăcile de imprimare, astfel de probleme nu vor apărea.

Trebuie să se înțeleagă că utilizarea unui acces repetat la tabela de documente sau la un jurnal de documente poate afecta negativ performanța. Ar fi optim să creați un tabel temporar al tuturor documentelor selectate și apoi să lucrați cu acesta. Din nou, totul depinde de sarcina specifică!







Articole similare

Trimiteți-le prietenilor: