internetul Windows. Android

Selectarea în tabelul de valori 1C 8.2. Ce metode există și cum să căutați simultan în mai multe valori

Pentru a ține cont de bani și bunuri, diverse tabele folosesc pe scară largă în afaceri. Aproape fiecare document este o masă.

Tabelul enumeră mărfurile de expediere din depozit. Într-un alt tabel - obligațiile de a plăti pentru aceste bunuri.

Prin urmare, 1c proeminent ocupă munca cu tabele.

Tabelele din 1c sunt numite și "părți tabulare". Ei au cărți de referință, documente și altele.

Cererea ca rezultat al executării sale returnează un tabel, acces la care este posibil să ajungeți în două moduri diferite.

Primul este mai rapid - eșantionare, obținând rânduri de la acesta numai în ordine. Al doilea se descărcă rezultatul interogării în tabelul valorilor și accesul arbitrar suplimentar la acesta.

// Opțiunea 1 - Accesul secvențial la rezultatele interogării

// primiți tabelul.
Eșantionare \u003d interogare. Umpleți (). Selectați ();
// Pentru a merge în jurul tuturor rândurilor rezultatului interogării
În timp ce eșantion. Următorul () Ciclu
Raport (eșantion. Nume);
Endcycle;

// Opțiunea 2 - descărcarea în tabelul de valori
Solicitare \u003d Noua interogare ("Selectați numele din director. NameNclature");
// primiți tabelul.
Tabel \u003d Interogare. Umplere (). Descărcați ().
// atunci putem ajunge, de asemenea, în jurul valorii de toate liniile
Pentru fiecare rând din ciclul tabelului
Raport (șir. Nume);
Endcycle;
// accesul arbitrar la linii
Linia \u003d tabel. Init ("lopată", "nume");

O caracteristică importantă este în tabelul obținut din rezultatul interogării, toate coloanele vor fi strict tipărite. Aceasta înseamnă că, solicitând câmpul Nume din nomenclatura directorului, veți primi o coloană de tip de șir cu o lungime admisibilă de nu mai mult de caractere N.

Tabel pe formă (client gros)

Utilizatorul funcționează cu un tabel când este plasat pe formular.

Principiile de bază ale lucrărilor cu formularele, am discutat în lecția din lecție din

Deci, puneți un tabel pe formular. Pentru a face acest lucru, puteți trage tabelul din panoul de control. În mod similar, puteți selecta controlul formularului / inserției din meniu.

Datele pot fi stocate în configurație - atunci trebuie să selectați o parte existentă (adăugată anterior) a obiectului de configurare a cărui formă pe care o editați.

Apăsați butonul "..." din proprietatea datelor. Pentru a vedea o listă de piese tabulare, trebuie să dezvăluiți obiectul ramificației.

Când alegeți o parte tabară 1C în sine, adaugă coloane la masă de pe formular. Rândurile introduse de utilizator într-un astfel de tabel vor fi salvate automat împreună cu referința / documentul.

În aceeași proprietate, puteți introduce un nume arbitrar și puteți selecta tipul de tabel.

Aceasta înseamnă că este selectată un tabel arbitrar de valori. Nu va adăuga coloane automate, nu va fi salvat automat, dar este posibil să faceți nimic.

Faceți clic dreapta pe masă puteți adăuga o coloană. În proprietățile coloanei, puteți specifica numele său (pentru a referi la codul 1c), antetul coloanei de pe formular, conexiunea cu detaliile părții tabulare (ultima - dacă nu este o masă arbitrară, iar partea de masă este selectată) .

În Proprietățile tabelului de pe formular, puteți specifica dacă doriți să adăugați / ștergeți linii utilizatorului. Un formular mai avansat - doar o bifată. Aceste proprietăți sunt convenabile de utilizat pentru a organiza tabele destinate afișării informațiilor, dar nu și editarea.

Pentru a gestiona tabelul, trebuie să afișați panoul de comandă. Selectați formularul de element de meniu / Introduceți panoul de comandă / comandă.

În Proprietățile panoului de comandă, selectați un automobil Tick Autofill că butoanele de pe panou apar automat.

Tabel pe forma (client subțire / gestionat)

Pe forma gestionată, acțiunile specificate arată puțin diferit. Dacă trebuie să plasați pe forma părții tabulare - deschideți ramura obiectului și trageți una dintre părțile de masă rămase. Si tot!

Dacă trebuie să plasați tabelul de valori, adăugați un element de formular nou și în proprietățile sale. Specificați tipul - tabelul de valori.

Pentru a adăuga difuzoare, utilizați meniul de pe butonul din dreapta al mouse-ului din acest detaliu al formularului, opțiunea Adăugați o coloană de propuneri.

După aceea, trageți și masa la stânga.

Pentru ca tabelul să apară panoul de comandă, în proprietățile tabelului, selectați valorile din secțiunea Utilizare - poziția panoului de comandă.

Tabelul de descărcare în Excel

Orice tabel 1c, situat pe formular, poate fi tipărit sau descărcat în Excel.

Pentru a face acest lucru, faceți clic dreapta pe masă și selectați Afișare listă.

În client controlat (fină), pot fi efectuate acțiuni similare utilizând elementul Toate acțiunile / lista de meniu.

Tabelul de valori în platforma 1C 8.3 (8.2) este o colecție universală a valorilor pe care dezvoltatorul le poate utiliza atunci când software-ul se dezvoltă pentru a-și implementa algoritmii. De fapt, tabelul de valori 1C este un set dinamic de valori care au coloane și coloane.

Articole despre alte colecții universale de valori 1C

Explorați programarea în 1c în loc din cartea mea "Program în 1c pentru 11 pași"

  1. Cartea este scrisă de un limbaj ușor de înțeles și simplu - pentru un începător.
  2. Învață să înțelegi arhitectura de 1c;
  3. Vom scrie cod în limba 1c;
  4. Lumina principalele tehnici de programare;
  5. Asigurați cunoștințele dobândite folosind sarcina;

Alocație excelentă de dezvoltare într-o aplicație gestionată 1c, atât pentru dezvoltatorii începători, cât și pentru programatorii experimentați.

  1. Limba foarte accesibilă și ușor de înțeles de prezentare
  2. Cartea este trimisă la un e-mail în format PDF. Pot fi deschise pe orice dispozitiv!
  3. Veți înțelege ideologia aplicației gestionate 1c
  4. Aflați cum să dezvoltați o aplicație gestionată;
  5. Învață să dezvolți forme gestionate 1c;
  6. Puteți lucra cu elementele principale și necesare ale formularelor controlate.
  7. Programarea în cadrul unei aplicații gestionate va deveni ușor de înțeles

Cod promoțional pentru o reducere de 15% - 48pxheyu.


Dacă ați ajutat această lecție pentru a rezolva o problemă, mi-a plăcut sau am fost util, atunci puteți susține proiectul meu, ascultat în orice sumă:

puteți plăti manual:

Yandex.money - 410012882996301.
Web Money - R955262494655

Alăturați-vă grupurilor mele.

Tabelul de valori este un obiect universal specific conceput pentru a stoca date într-o vizualizare tabară. Diferența cheie a mesei din obiectele aplicate este lipsa de legare la tabelele bazei de date fizice. Tabelul de valori există numai în memoria RAM, care, pe de o parte, oferă oportunități unice, iar pe de altă parte, impune anumite limitări. Cu toate acestea, posibilitatea interacțiunii cu tabelul este comparabilă cu interacțiunea cu obiectele existente efectiv în baza de date.

Din punct de vedere istoric, tabelul de valoare din 1c are un scop dublu, fiind un analog virtual al tabelelor existente, dar în același timp - și element de control. Odată cu trecerea la aplicația controlată, cea mai mare parte a acestei funcționalități este depășită, dar și în prezent poate fi, de asemenea, un element al interfeței cu utilizatorul, dar cu o serie de restricții semnificative.

Structura tabelului de valori ca obiect

Proprietățile tabelului de valori sunt determinate prin combinații de două colecții predefinite: coloanele și rândurile sale.

Tabelul valorilor difuzoarelor

Coloana Tabel de valori - Proprietatea sa de definire. Este un set de coloane de masă determină structura sa. Coloanele se potrivesc cu câmpurile de mese fizice sau familiare cu interfața cu utilizatorul coloanelor tabulare a pieselor sau a documentelor. Coloana poate avea un nume intern, valoarea valorii și titlul afișat în timpul lucrului interactiv cu tabelul.

Deoarece coloanele sunt o colecție de obiecte, puteți adăuga, șterge și edita coloane.

Rândul de valori

Din punctul de vedere al interfeței software, șirul este o colecție separată încorporată în tabelul de valori. Acestea sunt analoage cu înregistrările meselor fizice, adică liniile obișnuite ale părții de masă sau ale jurnalului de jurnal. Fiecare linie luată separat este un obiect cu un set de proprietăți numite ale căror nume corespund numelor coloanelor de masă.

Astfel, interacțiunea cu șirul este foarte asemănătoare cu interacțiunea cu alte obiecte. Puteți citi și scrie proprietățile, inclusiv utilizarea funcției predefinite a "completării următoarei ()". Deoarece liniile sunt colecția principală a tabelului de valori, apoi să ștergeți toate rândurile tabelului, se aplică metoda "Clear ()".

Creați un tabel de valori

Există multe modalități de a obține tabelul de valori gata de utilizare. Luați în considerare unele dintre ele. Fiecare exemplu va fi dat ca listarea codului cu comentarii.

Crearea unui designer de masă

Principalul mod de a crea doar un astfel de tabelă necesară dezvoltatorului, din păcate, cel mai mult consumator de timp, deoarece este nevoie manual prin toate proprietățile necesare ale tabelului.

Demotabili \u003d mese noi; // în primul rând inițializarea tk // următor, definim parametrii necesari pentru coloane noi și le adăugăm la colecția // Crearea unui nume de coloană "Nomenclatură" \u003d "Nomenclatura"; Tip Tip \u003d Descriere nouă ("directoryads.nanklatura"); Titlu \u003d "Nomenclatură (produs)"; Demotablik. Cutouts. Adauga (la ei, titlu, titlu); // crearea unei coloane "Număr" nume \u003d "număr"; Tipul titlului \u003d descrieri noi ("număr"); Demotabili. Cutouts. ADDLY (nume, titlu); // Ca urmare a datelor de manipulare, am creat o masă goală cu coloane tipărite // Dacă trebuie să utilizați mai multă scriere mai precisă a tipurilor primitive, ar trebui să utilizați sintaxa avansată a designerului Designer "Desigrattics"

Crearea unui tabel de copiere

Dacă mâna are un standard cu o structură și / sau o compoziție adecvată, puteți copia sau descărca tabelul de referință al valorilor. Dacă referința este o altă tabelă, trebuie să aplicați metoda "Tabelul de copiere". Dacă aveți de-a face cu o parte de masă sau un set de intrări de înregistrare, trebuie să utilizați metoda "Tabelul de masă de încărcare". Dacă aveți nevoie doar de o structură, puteți utiliza metoda "Colectare de copiere".

// opțiunea cu copierea din standardul TK a tuturor rândurilor, dar cu conservarea numai a celor două coloane specificate ale Columnalone \u003d "Nomenclatură, număr"; Demotabil \u003d tablethetalon .Copy (, columnal); // opțiunea cu copierea de la standardul TK a rândurilor pre-selectate, menținând în același timp cele două coloane specificate ale stringonului \u003d selectate de mașina-to-thenemstrotryistroyistetalonă (); Columnalone \u003d "nomenclatură, număr"; Demotabil \u003d tablethetalon .Copy (Rowetal, Columnal); // Opțiune cu copierea de la rândurile TK-Strelna de către filtrul specificat, salvând o coloană "Nomenclature" // toate liniile vor fi selectate în cazul în care valoarea din coloană este egală cu 0, numai coloana nomenclatura de remedii va intrați în tabelul rezultat ("Cantitatea" 0); Columnaltalon \u003d "nomenclatură"; Demotabil \u003d tablethetalon .Copy (Rowetal, Columnal); // opțiunea cu copierea completă a tabelului și îndepărtarea ulterioară a unui rând cu valoarea câmpului de zero este zero și îndepărtarea întregii coloane a coloanei contrapartidei \u003d noua structură ("număr", 0) ; Columnaltalon \u003d "nomenclatură"; Demotabil \u003d tablethetalon .Copy (Rowetal, Columnal); Striges \u003d demotabilă. (0, cantitate "); Demotabil. Ștergeți (Striges); Demotablik. Solonki.deel ("cantitate"); // Opțiuni similare și modificările acestora pot fi aplicate la piese tabulare și seturi de registre

Crearea unei anchete de masă

Dacă în baza de date există o masă de referință, puteți utiliza interogarea pentru a crea rapid o masă cu structura dorită.

// Exemplu cu crearea unei mese goale în funcție de structura eșantionului registrului de acumulare // nu este dificil să ghiciți că, în acest fel, puteți obține cererea de masă completă \u003d o nouă interogare ("Alegeți primul 0 * de la Registrul. Stația de strungare "); Rezultat Supply \u003d interogare. Umpleți (); Demotable \u003d Recrutarea rezultatelor. Descărcați (); // exemplu cu crearea unei tabele goale prin tipuri specifice specificate și nume ale interogării câmpurilor \u003d o nouă solicitare; Solicitare.Text \u003d "Selectați primul 0 | adică (carte de referință. Substituția. Roll) ca nomenclatură, Express (0 ca număr (15, 3)) ca o cantitate"; Rezultat Supply \u003d interogare. Umpleți (); Demotable \u003d Recrutarea rezultatelor. Descărcați (); // IMPORTANT! Nu trebuie să uitați că în tipurile de valori ale difuzoarelor obținute din interogare sunt întotdeauna prezente tip nul // Astfel, TK creat de interogare are întotdeauna tipuri compozite de coloane

Concluzie

În acest articol mic, am revizuit proprietățile de bază și tehnicile practice pentru crearea unui tabel de valori suficiente pentru a înțelege și a începe aplicarea. Obiectul tabelului de valori este atât de multilateral încât o descriere detaliată a capacităților sale necesită scrierea unui articol separat privind recepțiile și metodele de lucru.

Salutări pe toți cititorii InfoStart'a. Acest articol va fi dedicat creării unui tabel arbitrar de valori pe forma unei metode programate de aplicații gestionate.

Caracteristicile sarcinii.

Toți cei care au programat în apendicele obișnuite se confruntă adesea cu sarcina de a obține un tabel arbitrar de valori pe formular. Sub un tabel arbitrar de valori este înțeleasă ca tabelul, numărul și tipul de coloane nu sunt cunoscute. Adică coloanele pot fi 3, și poate 6, sau poate 8. În aplicația obișnuită, totul este simplu: a fost posibilă plasarea elementului "Apozitare de masă" pe forma de formare și apoi transferați tabelul de valoare la valorile acestui articol la acest element. Apoi o echipă simplă:

Elemente de elemente. Bilete. Calcons ();

obțineți o masă de valori gata făcută pe formular. Se pare că poate fi mai ușor.

A fost totul în aplicația obișnuită. În aplicația gestionată totul sa schimbat. Deci, pur și simplu un tabel arbitrar care să nu creeze. Acum aveți nevoie ca fie să parametrați rigid tabelul de valori pe formular, fie să-l creați programatic (descrieți, bine, în acest sens, esența aplicației autorizate în sine). Vom încerca să facem: Creați un tabel arbitrar de valori pe o formă gestionată.

Soluția problemei.

Primul lucru pe care trebuie să-l facem este să determinăm modul în care tabelul apare pe formular. Principalul lucru este că nu este necesar un element al formularului în procesare. O vom crea programatice, ca și întreaga masă. Adică tabelul va fi descris și pentru a crea în momentul deschiderii formularului sau a utilizării butonului - acesta este modul în care este necesar.

Crearea unui tabel pe formular apare prin descrierea tabelului de valori ca rechiziție:
MassiferBoaboR \u003d o nouă matrice; Client masiv. Addly (tip ("Apozitare de masă")); DescriereCarebar \u003d descrieri noi (masivitate); Masive \u003d matrice noi; Masives. Adaugat (nou necesar ("Tablescript", descrieri, "," tzn ")); Acum trebuie să creăm un tabel software de valori care conțin date. Dacă tabelul de valoare este obținut din cerere, atunci totul este mai mic decât comanda. Dacă tabelul este creat manual, valoarea difuzoarelor care va conține numere sau date poate fi creată prin "descrierea". Linia de jos este că coloanele din tabelul valorilor trebuie să aibă un tip de tip. Dacă, de exemplu, se presupune că utilizatorul va completa datele din aceste coloane interactiv, atunci nu puteți adăuga valorile coloanei valorilor pur și simplu cu numele, ar trebui să fie tip. Țineți minte - acest lucru este foarte important pentru că Vom da aceste tipuri la masă pe formular.
Creați un tabel care conține mai multe coloane:
Kd \u003d date noi de calificare (particule. Veria); Massages \u003d Noua matrice; Arme. Addly (tip ("data")); Grafică de căutare \u003d descrieri noi (brațe, CD); Tk \u003d tabele noi;
Tk.colonki. Addly ("C", descrieri.
Tk.colonks. Addly ("la", descrieri.
Tk.colonki. Addly ("Numele complet");
TK. Solonks. Addly ("Notă"); // Notă completă - Rânduri în continuare, vom completa tabelul nostru software TK cu datele necesare. Obținem tabelul TK care conține valorile necesare și este pregătit pentru transmiterea la punctele create de formă. Pentru fiecare coloană de Tk. Ciclul coloanei

Masivrevizites. Adaugat (Noua solicitare (coloana. Adică, Coloană, Tip, "Taxcripts"));
Endcycle;
Schimbă (masivizite);
Accesați captivitatea \u003d elemente. Addly ("tzn", tip ("tableform"));
Accesul de captare. Powded \u003d "Taxcripts";
TapepoleseBoat. Exemplu \u003d Afișat. Opții oportuniste;

Aici este o combinație simplă și masa noastră este gata.

Pentru fiecare coloană de Tk. Ciclul coloanei

Noi elemente
Element nou. Vid \u003d formă vidpolar. Putere;
Noua element. Powdly \u003d "Taxcripts." + Coloană.
Element nou.Shirina \u003d 10;
Endcycle;

Design condiționat, dacă avem nevoie de noi, de asemenea, scriem manual, meniul de comandă - manual. Stivuitoarele de masă sunt, de asemenea, scrise cu mâinile. De exemplu, pentru a adăuga un eveniment de selectare a evenimentului "selecție":

Acoperirea captează. Setarea ("alegerea", "tznvybor");

Pentru a procesa acest eveniment, o procedură separată este prevăzută sub forma procedurii:

& Svlette.
Procedură TZNVSB (TK, selectat, câmp, prelucrare standard)
// Comenzile procesorului Controalele finale

Vă rugăm să rețineți că manipulatoarele de masă sunt declanșate pe client și, prin urmare, trebuie să aibă o comandă de pointer compilator

& Svlette.

Ei bine, și ultimul lucru pe care am vrut să-l adăugați după toate aceste acțiuni, cu siguranță nu uităm să transferăm tabelul finit în solicitarea formularului:

RecentRevisitforms (TK, "Taxcripts");

Iată ceea ce avem ca rezultat:


Dar prelucrarea evenimentului "alegerea":



Postfaţă.

Sper că articolul va ajuta acei programatori 1C, care încep să creeze tabele cu privire la forma metodei programatice.

Puteți descărca procesarea pe care software-ul creează o masă de valoare și afișează o formă gestionată cu comentarii care vă vor ajuta să vă creați tabelele proprii.

Căutați în tabelul de valori 1c

Ce metode există și cum să căutați simultan în mai multe valori.

Pentru a căuta în tabelul de valori există două metode speciale:

1. Găsiți

TVGorizont \u003d cărți de referință. NomeLaclatură. Intepponare ("orizont TV");
Rezultate \u003d tznenenclatură. Init (TV, TV);
// putem specifica în ce vorbitori să caute pentru a accelera căutarea
Fundația \u003d tznomenclatura. Init (TV, "Nomenclatură");

Această metodă returnează prima linie găsită cu valoarea dorită sau nedefinită dacă nu se găsește. Prin urmare, este convenabil să îl utilizați pentru a căuta valori unice, deoarece În caz contrar, va trebui să o ștergeți de la masă atunci când găsiți următoarele.

Pentru a nu suferi, există următoarea metodă care vă permite să găsiți o serie de linii potrivite:

2. Zbor.


Structuraborații. HOLD ("Nomenclatură", TVGorizont); // În primul rând, specificați coloana unde să căutați și apoi ce să căutați.

Această metodă returnează întotdeauna o matrice, dar poate fi goală dacă nu se găsește nimic. Și această metodă, precum și cele anterioare returnează rândurile valorilor valorilor, și nu valorile în sine într-o matrice separată. Prin urmare, schimbarea valorilor în rândul matricei sau în metoda anterioară de la linia găsită, veți schimba valoarea din tabelul de valori procesate.

Cu cât această metodă este mai bună este că poate căuta o dată în mai multe coloane ale mesei valori în același timp:


Structuri \u003d structură nouă;
Structuraborații. HOLD ("Nomenclatură", TVGorizont);
Structură. HOLD (Cantitate ", 10);
FundațiaMassivests \u003d tznenenclatură. Intrări (structuri);

Singurul minus, după cum se poate vedea, nu pot fi folosite alte comparații, cu excepția "egală"