Cum se configurează smartphone-uri și PC-uri. Portal informativ
  • Acasă
  • OS
  • Lucru programatic cu tabelul de valori 1s. Ce metode există și cum să căutați simultan mai multe valori

Lucru programatic cu tabelul de valori 1s. Ce metode există și cum să căutați simultan mai multe valori

Salutări tuturor cititorilor Infostart. Acest articol va fi dedicat problemei creării unui tabel arbitrar de valori sub forma unei aplicații gestionate în mod programatic.

Caracteristicile sarcinii.

Oricine a programat într-o aplicație obișnuită se confruntă adesea cu sarcina de a obține un tabel arbitrar de valori pe un formular. Un tabel arbitrar de valori este înțeles ca un tabel al cărui număr și tip de coloane nu sunt cunoscute în prealabil. Adică pot fi 3 coloane, poate 6 sau poate 8. Într-o aplicație normală, totul este simplu: puteți plasa elementul „Tabel cu valori” pe formularul de procesare, apoi transferați tabelul de valori creat în acest element în mod programatic. Apoi o comandă simplă:

Form Elements.TableField.CreateColumns ();

obțineți un tabel de valori gata făcut pe formular. S-ar părea că ar putea fi mai ușor.

Totul a fost într-o aplicație obișnuită. Totul s-a schimbat în aplicația gestionată. Nu este atât de ușor să creezi un tabel arbitrar. Acum trebuie fie să parametrizați rigid tabelul de valori pe formular, fie să îl creați programatic (descrieți, ei bine, aceasta este, de fapt, esența aplicației gestionate în sine). Acesta este ceea ce vom încerca să facem: creați în mod programatic un tabel arbitrar de valori pe un formular gestionat.

Rezolvarea problemei.

Primul lucru pe care trebuie să-l facem este să definim cum va apărea tabelul pe formular. Principalul lucru este că nu trebuie să creați niciun element de formular în procesare. O vom crea programatic, ca întregul tabel. Adică, tabelul va fi descris și creat în momentul în care formularul este deschis sau folosind un buton - așa are nevoie oricine.

Crearea unui tabel pe formular are loc prin descrierea tabelului de valori ca atribut:
ChoiceType Array = Matrice nouă; Array ofChoiceType.Add (Tip ("ValuesTable")); ChoiceTypeDescription = NewTypeDescription (ArrayChoiceType); ArrayAttributes = Matrice nouă; Array of Attributes.Add (Atribut formular nou ("Tabelul de planificare", DescriptionTypeChoice, "", "TZN")); Acum trebuie să creăm un tabel programatic de valori care conține datele. Dacă tabelul de valori este obținut dintr-o interogare, atunci totul este mai mult sau mai puțin în ordine. Dacă tabelul este creat manual, atunci valoarea coloanelor care vor conține numere sau date poate fi creată prin „Descrierea tipurilor”. Concluzia este că coloanele din tabelul de valori trebuie să fie de un anumit tip. Dacă, de exemplu, se presupune că utilizatorul va completa datele în aceste coloane în mod interactiv, atunci nu puteți adăuga o coloană a tabelului de valori pur și simplu cu un nume, aceasta trebuie să aibă un tip. Rețineți că acest lucru este foarte important. vom transfera aceste tipuri în tabelul din formular.
Creăm un tabel care conține mai multe coloane:
CD = New Date Qualifiers (Data Parts.Time); ArrayKD = Matrice nouă; ArrayCD.Add (Tip ("Data")); TypeDescriptionTime = New TypeDescription (ArrayKD, KD); TK = nou tabel de valori;
TZ.Kolonki.Add ("S", DescriptionTypesTime);
TK.Kolonki.Add („Înainte”, DescriptionTypesTime);
TK.Kolonki.Add („nume complet”);
TK.Kolonki.Add ("Notă"); // Nume complet și Notă - linii În continuare, vom completa tabelul nostru de programe TK cu datele necesare. Obținem tabelul TOR, care conține valorile necesare și este gata pentru a fi transferat la atributul formular creat. Pentru fiecare coloană din TK. Bucla de coloană

ArrayAttributes.Add (Atribut formular nou (Column.Name, Column.ValueType, "ScheduleTable"));
Sfârșitul ciclului;
ModifyAttributes (ArrayAttributes);
ChoiceFieldsTable = Elements.Add ("TZN", Type ("FormTable"));
ChoiceFieldsTable.PathKData = "ScheduleTable";
ChoiceFieldsTable.Display = DisplayTable.List;

Iată o combinație atât de simplă și masa noastră este gata.

Pentru fiecare coloană din TK. Bucla de coloană

NewElement = Elements.Add (Column.Name, Type ("FormField") ,ChoiceFieldsTable);
NewElement.View = FormFieldKind.InputField;
NewItem.PathData = "ScheduleTable." + Coloană.Nume;
NewElement.Width = 10;
Sfârșitul ciclului;

Condiționale, dacă avem nevoie, scriem și manual, meniul de comandă - manual. Manipulatorii de masă sunt, de asemenea, scrise de mână. De exemplu, pentru a adăuga un handler de evenimente pentru tabelul Select:

ChoiceFieldsTable.SetAction ("Alegere", "TZNSelection");

Pentru a gestiona acest eveniment, este scrisă o procedură separată sub forma unei proceduri:

& OnClient
Procedura TZNSelection (TK, SelectedString, Field, StandardProcessing)
// comenzile handlerului EndProcedure

Rețineți că manipulatorii de tabelă se declanșează pe client și, prin urmare, trebuie să aibă un pointer pentru compilatorul de comenzi

& OnClient

Ei bine, și ultimul lucru pe care am vrut să-l adaug este că, după toate aceste acțiuni, nu trebuie să uităm să transferăm tabelul finit în atributul formular:

ValueVRequisitForm (TK, „Tabel de planificare”);

Acesta este ceea ce obținem ca rezultat:


Și aici este procesarea evenimentului „Select”:



Postfaţă.

Sper că acest articol îi va ajuta pe acei programatori 1C care încep să creeze tabele pe un formular în mod programatic.

Puteți descărca o procesare care creează în mod programatic un tabel de valori și rezultate într-un formular gestionabil cu comentarii pentru a vă ajuta să vă creați tabelele.

Căutați în tabel valorile 1C

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

Există două metode speciale pentru a căuta valori într-un tabel:

1. Găsiți

Horizon TV = Cărți de referință.Nomenclature.FindByName ("Horizon TV");
FoundString = TKNomenclature.Find (TV Horizon);
// putem specifica, de asemenea, în ce coloane să căutăm pentru a accelera căutarea
FoundString = TKNomenclature.Find (TV Horizon, „Nomenclatură”);

Această metodă returnează primul șir găsit cu valoarea dorită sau Nedefinit dacă nu. Prin urmare, este convenabil să-l folosiți pentru a găsi valori unice, deoarece în caz contrar, când găsiți o valoare, eliminați-o din tabel pentru a găsi următoarea.

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

2. FindStrings


StructureSelection.Insert („Nomenclatură”, Orizont TV); // specificați mai întâ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 a fost găsit nimic. Și această metodă, ca și cea anterioară, returnează rândurile tabelului de valori înseși, și nu valorile înseși într-o matrice separată. Prin urmare, prin modificarea valorilor din rândul matricei sau, ca și în metoda anterioară, pentru rândul găsit, veți modifica valoarea din tabelul de valori procesat.

Un alt lucru bun despre această metodă este că poate căuta simultan mai multe coloane din tabelul de valori:


Cadrul de selecție = Structură nouă;
StructureSelection.Insert („Nomenclatură”, Orizont TV);
Structura selecției Inserare („Cantitate”, 10);
FoundArrayStrings = TZNomenclature.FindStrings (SelectionStructure);

Singurul dezavantaj, după cum puteți vedea, nu puteți utiliza alte tipuri de comparații, altele decât „egale”

Iată un mic fapt pentru început - exemple simple de lucru cu un tabel de valori:

1. Creați un tabel de valori

ValuesTable = New ValuesTable;


2. Creați coloane ale tabelului de valori:

ValuesTable.Columns.Add ("Nume");
ValuesTable.Columns.Add ("Nume");


3. Adăugați linii noi folosind numele coloanelor:


NewStroka.Name = "Vasili";
NewStroka.Surname = „Cătecel”;


4. Cum să căutați o valoare într-un tabel de valori:
Este necesar să găsiți rândul tabelului care conține valoarea necesară.

FoundString = ValueTable.Find (LookupValue);


5. Găsiți prima apariție în anumite coloane ale tabelului de valori

FoundString = ValueTable.Find (SearchValue, „Furnizor, Cumpărător”);


6. Dacă trebuie să găsiți toate aparițiile în tabelul de valori:
Folosim structura de căutare.

SearchStructure = Structura („Angajat”, LookupValue);
ArrayFoundStrings = ValueTable.FindStrings (SearchStructure);


Să creăm o structură de căutare, fiecare element al căruia va conține numele unei coloane ca cheie și valoarea dorită în această coloană ca valoare. Trecem SearchStructure ca parametru la metoda FindStrings (). Ca rezultat, obținem rândurile tabelului.
Dacă adăugați o căutare pentru valoarea necesară structurii de căutare, de exemplu, în coloana Responsabil, atunci, ca urmare a utilizării metodei FindStrings (), vom obține toate rândurile în care atât Angajat, cât și Responsabil sunt egale cu valoarea dorită.

7. Cum se repetă peste un tabel de valori în ordine aleatorie

Pentru fiecare linie curentă din bucla tabelului de valori
Raport (CurrentString.Name);
Sfârșitul ciclului;

Același lucru folosind indecși:

MajorIndex = ValueTable.Quantity () - 1;
Pentru MF = 0 la ciclul major al indicelui
Raport (TableValues ​​​​[Count] .Name);
Sfârșitul ciclului;


8. Ștergerea unui rând existent al tabelului de valori

ValuesTable.Delete (DeletedString);

prin index

ValuesTable.Remove (0);


9. Ștergerea unei coloane existente a tabelului de valori

ValuesTable.Columns.Remove (DeletedColumn);


prin index

ValuesTable.Columns.Remove (0);

Trebuie avut în vedere că ștergerea unui rând (sau a unei coloane) „din mijlocul” tabelului de valori va duce la o scădere cu unu a indicilor rândurilor care au fost „după” șterse.

10. Cum se completează tabelul de valori dacă numele coloanelor sunt conținute în variabile?

NewRow = ValuesTable.Add ();
NewString [ColumnName] = Valoare;


11. Cum să completați întreaga coloană a tabelului de valori cu valoarea necesară?
Coloana FiscalAccount Flag din tabelul valuesValuesTable trebuie completată cu valoarea False

ValuesTable.FillValues ​​​​(False, „FiscalAccounting Flag”);


Aplicați metoda FillValues ​​() la tabelul de valori. Primul parametru este valoarea care trebuie completată. Al doilea parametru este numele coloanei care trebuie completată.

12. Cum se completează tabelul de valori „RecipientTable” cu datele din tabelul de valori „SourceTable”?

Dacă Tabelul Destinatari nu există încă în momentul operațiunii sau nu trebuie să fie salvate coloanele sale anterioare, îl puteți crea ca o copie completă a originalului

ReceiverTable = SourceTable.Copy ();


Opțiunea a doua: tabelul TableRecipient există și este păcat să-și piardă coloanele și restricțiile privind tipurile de date ale coloanelor. Dar trebuie să completați datele pentru coloane, ale căror nume coincid cu numele tabelului sursă.

Transfer parțial de date pentru coloanele cu nume care se potrivesc:

Pentru fiecare rând SourceTable din bucla SourceTable
FillPropertyValues ​​(NewRow, SourceTableRow);
Sfârșitul ciclului


Pentru fiecare rând al tabelului sursă, se adaugă un nou rând la tabelul de primire, iar valorile sunt completate în acele coloane ale noului tabel, ale căror nume coincid cu numele coloanelor din tabelul original.

Dacă tabelele nu au coloane cu aceleași nume, tabelul secundar va conține tot atâtea rânduri cu valori goale cât sunt rândurile din tabelul sursă.
Dacă pentru unele coloane cu același nume, tipul valorii datelor din tabelul sursă nu se încadrează în matricea de tipuri de coloane permise din tabelul de primire, vom obține valori goale în astfel de câmpuri.
Să luăm în considerare al treilea caz. În cazul coloanelor cu același nume, coloana tabelului primitor trebuie adusă în deplină conformitate cu coloana tabelului sursă.

Copie completă a datelor pentru coloanele cu nume care se potrivesc

Coloane eponime = New Array ();

Pentru fiecare coloană din tabelul sursă, buclă de coloane
MatchingColumn = TableRecipient.Columns.Find (Column.Name);

Dacă MatchingColumn<>Nedefinit Atunci

// Obține proprietățile coloanei.
Nume = Coloană.Nume;
ValueType = Column.ValueType;
Titlu = Column.Heading;
Latime = Column.Width;

// Înlocuiește coloanele din tabelul de primire.
Index = TableReceiver.Columns.Index (MatchingColumn);

TableReceiver.Columns.Remove (Index);
TableReceiver.Columns.Insert (Index, Name, ValueType, Header, Width);

// Adăugați următorul nume al coloanelor care se potrivesc în matrice.
Coloane cu același nume.Add (Column.Name);

EndIf;

Sfârșitul ciclului;

// Buclă printre rândurile tabelului sursă.
Pentru fiecare rând SourceTable din bucla SourceTable

// Adăugați un nou rând la tabelul destinatar.
NewRow = TableRecipient.Add ();

// Completați valorile în celulele care se potrivesc.
Pentru fiecare buclă de coloane de nume din coloane asemănătoare
NewRow [ColumnName] = SourceTableRow [ColumnName];

Sfârșitul ciclului;

Sfârșitul ciclului;


Va trebui să înlocuim coloana din tabelul de primire cu una nouă, ale cărei proprietăți vor corespunde pe deplin coloanei din tabelul sursă.
Prin urmare, dacă în tabelul destinatar se găsește o coloană cu același nume, colectăm toate proprietățile pentru noua coloană în variabile. Apoi, ștergeți-l pe cel vechi și creați o coloană nouă. Apoi parcurgem rândurile tabelului sursă.
În buclă, adăugați un nou rând la tabelul de primire și deschideți bucla pentru iterare peste numele coloanelor din matricea de coloane care se potrivesc.
În interiorul acestei bucle imbricate, umplem celulele tabelului de primire cu datele celulei tabelului sursă.

13. Cum să adăugați coloane la tabelul de valori „ValuesTable” cu constrângeri după tip?

Când adăugați o coloană, puteți să specificați pur și simplu numele acesteia și să lăsați neatins al doilea parametru al metodei Add (). În acest caz, tipul de date al coloanei este arbitrar.

Adăugarea unei coloane fără a specifica un tip de date

// Adăugați o coloană fără restricții de tip.
ValuesTable.Columns.Add ("Obiect");


Puteți completa valoarea celui de-al doilea parametru. Acolo trebuie transmisă descrierea tipului permis pentru coloană. Descrierea in sine poate fi obtinuta folosind constructorul, trecand acestuia din urma ca parametru numele tipului de sir (daca sunt multe tipuri, apoi separate prin virgula) sau un tablou de tipuri admisibile.

Adăugarea unei coloane care indică tipul de date

// Restricții privind tipurile de date coloane:
// Numai elementele căutării „Contractanți”.
TableValues.Columns.Add ("Contractant", Noua descriere a tipurilor ("ReferenceLink.Contractors"));


Dacă există un șir printre tipurile permise pentru completarea datelor coloanei, puteți limita adâncimea de biți (lungimea) acestuia, puteți specifica utilizarea unei lungimi variabile sau fixe. Toate acestea sunt realizate prin crearea unui obiect folosind constructorul String Qualifiers. În plus, acest obiect va fi folosit ca unul dintre parametrii constructorului TypeDescription.

Utilizarea calificatorilor pentru a califica tipul de date al unei coloane de valori din tabel

// Pregătește și stabilește restricții pentru datele de tip String.
String Qualifiers = NewString Qualifiers (20, ValidLength.Variable);
AllowedTypes = NewTypeDescription („String”, StringQifiers);
ValuesTable.Columns.Add ("NoteStringShort", AllowedTypes);


Puteți face același lucru pentru calificativele de dată și dată.
Vă rugăm să rețineți: descrierea tipului poate fi construită de constructor atât „de la zero”, cât și puteți utiliza o descriere a tipului existentă ca bază.

Utilizarea descrierilor de tip existente pentru a specifica tipul de date al unei coloane de tabel de valori

// Extindere a descrierii tipului utilizat anterior.
QualifiersNumber = New QualifiersNumber (10, 2, ValidSign.Non-negative);
Calificări de dată = Calificări de date noi (DateParts.Date);
ExtendedAllowedTypes = NewTypeDescription (AllowedTypes, „Number, Date”, Number Qualifiers, Data Qualifiers);

ValuesTable.Columns.Add („Notă”, ExtendedAllowedTypes);

Tabelul de valori din platforma 1C 8.3 (8.2) este o colecție universală de valori pe care un dezvoltator o poate folosi în dezvoltarea de software pentru a-și implementa algoritmii. De fapt, un tabel de valori 1C este un set dinamic de valori care au coloane și coloane.

Articole despre alte colecții universale de valori în 1C

Învățați programarea în 1C din cartea mea „Programați în 1C în 11 pași”

  1. Cartea este scrisă într-un limbaj clar și simplu - pentru un începător.
  2. Învață să înțelegi arhitectura lui 1C;
  3. Veți începe să scrieți cod în limbajul 1C;
  4. Stăpânește tehnicile de bază de programare;
  5. Consolidați cunoștințele acumulate cu ajutorul unei cărți de probleme;

Un ghid excelent pentru dezvoltarea într-o aplicație gestionată 1C, atât pentru dezvoltatori începători, cât și pentru programatori experimentați.

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

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


Dacă această lecție te-a ajutat să rezolvi orice problemă, ți-a plăcut sau s-a dovedit a fi utilă, atunci îmi poți susține proiectul transferând orice sumă:

poti plati manual:

Yandex.Bani - 410012882996301
Web Money - R955262494655

Alăturați-vă grupurilor mele.

Un tabel de valori este un obiect generic specific pentru stocarea datelor într-o vizualizare de tabel. Diferența cheie dintre tabele și obiectele aplicației este că acestea nu sunt legate de tabelele fizice ale bazei de date. Tabelul de valori există numai în RAM, care, pe de o parte, oferă oportunități unice, iar pe de altă parte, impune anumite restricții. Cu toate acestea, capacitatea de a interacționa cu un tabel este comparabilă cu interacțiunea cu obiecte care există de fapt în baza de date.

Din punct de vedere istoric, tabelul de valori din 1C are un dublu scop, fiind un analog virtual al tabelelor existente, dar în același timp este și un element de control. Odată cu trecerea la o aplicație gestionată, cea mai mare parte a acestei funcționalități a fost depreciată, dar acum poate fi și un element de interfață cu utilizatorul, dar cu o serie de limitări semnificative.

Structura tabelului de valori ca obiect

Proprietățile unui tabel de valori sunt definite prin combinații a două colecții predefinite: coloanele și rândurile sale.

Tabelul de valori Coloane

Coloana tabelului de valori este proprietatea sa definitorie. Este setul de coloane din tabel care determină structura acestuia. Coloanele corespund câmpurilor tabelelor fizice sau coloanelor secțiunii tabelare sau jurnalului de documente care sunt familiare din interfața cu utilizatorul. O coloană poate avea un nume intern, un tip de valoare și un titlu care este afișat atunci când interacționați cu tabelul.

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

Rând tabel de valori

Din punct de vedere al interfeței de programare, șirurile sunt o colecție separată încorporată într-un tabel de valori. Ele sunt analoge înregistrărilor tabelelor fizice, adică rândurilor secțiunii tabulare sau jurnalului de documente care sunt familiare utilizatorului. Fiecare rând luat separat este un obiect cu un set de proprietăți denumite, ale căror nume corespund cu numele coloanelor din tabel.

Astfel, interacțiunea cu un șir este foarte asemănătoare cu interacțiunea cu alte obiecte. Puteți citi și scrie proprietățile acestuia, inclusiv folosind funcția predefinită „FillPropertyValues ​​​​()”. Deoarece rândurile sunt colecția principală a tabelului de valori, metoda „Clear ()” este folosită pentru a șterge toate rândurile din tabel.

Creați un tabel de valori

Există multe modalități de a obține un tabel de valori gata de utilizare. Să aruncăm o privire la unele dintre ele. Fiecare exemplu va fi furnizat ca liste de coduri cu comentarii.

Crearea unui tabel de către designer

Metoda principală care vă permite să creați un astfel de tabel de care are nevoie dezvoltatorul este, din păcate, cea mai consumatoare de timp, deoarece necesită specificarea manuală a tuturor proprietăților necesare tabelului.

DemoTable = NewValuesTable; // În primul rând, inițializam TOR // În continuare, definim parametrii necesari pentru noile coloane și îi adăugăm în colecție // Cream coloana „Nomenclatură” Nume = „Nomenclatură”; ValueType = NewDescription of Types ("ReferenceLink.Nomenclature"); Titlu = „Nomenclatură (produs)”; DemoTable.Columns.Add (Nume, ValueType, Titlu); // Creați o coloană „Cantitate” Nume = „Cantitate”; ValueType = NewTypeDescription ("Număr"); DemoTable.Columns.Add (Nume, ValueType); // Ca urmare a acestor manipulări, am creat un tabel gol cu ​​coloane tastate // Dacă trebuie să utilizați o tastare mai precisă a tipurilor primitive, atunci ar trebui să utilizați sintaxa extinsă a constructorului „Descrierea tipurilor”

Crearea unui tabel prin copiere

Dacă aveți la îndemână o referință cu o structură și/sau o compoziție adecvată, puteți copia sau descărca tabelul de referință cu valori. Dacă referința este un alt tabel, atunci este necesar să aplicați metoda „Copiați tabelele de referință”. Dacă aveți de-a face cu o secțiune tabelară sau un set de înregistrări de registru, trebuie să utilizați metoda „Descărcați tabelul de valori”. Dacă aveți nevoie doar de o structură, atunci puteți utiliza metoda „CopyColumns”.

// Opțiune cu copierea tuturor rândurilor din standardul tehnic, dar păstrând doar cele două coloane specificate Coloanele Standardului = „Nomenclatură, Cantitate”; DemoTable = TableDefault.Copy (, ColumnDefault); // Opțiune cu copierea rândurilor preselectate din șablonul TZ, păstrând cele două coloane specificate. ColumnsStandard = "Nomenclatură, Cantitate"; DemoTable = TableDefault.Copy (RowsDefault, ColumnDefault); // Opțiune cu copierea rândurilor din standardul TZ prin filtrul specificat, păstrând o coloană „Nomenclatură” // Toate rândurile vor fi selectate unde valoarea din coloana Cantitate este 0, doar coloana Nomenclatură va fi inclusă în tabelul rezultat ., 0); ColumnStandard = "Nomenclatură"; DemoTable = TableDefault.Copy (RowsDefault, ColumnDefault); // Opțiune cu copierea completă a tabelului și ștergerea ulterioară a unui rând cu valoarea cantității câmpului egală cu zero și ștergerea întregii coloane „Cantitate” Selectarea liniilor = Structură nouă („Cantitate”, 0); ColumnStandard = "Nomenclatură"; DemoTable = TableDefault.Copy (RowsDefault, ColumnDefault); TableRow = DemoTable.Find (0, „Cantitate”); DemoTable.Delete (TableRow); DemoTable.Columns.Remove ("Cantitate"); // Opțiuni similare și modificările acestora pot fi aplicate secțiunilor de tabel și seturi de înregistrări

Crearea unui tabel cu o interogare

Dacă baza de date conține un șablon pentru tabelul de care aveți nevoie, atunci puteți utiliza o interogare pentru a crea rapid un tabel cu structura dorită.

// Un exemplu de creare a unui tabel gol pe baza structurii registrului de acumulare // Nu este greu de ghicit că în acest fel puteți obține un tabel umplut Interogare = Nouă interogare ("SELECT THE FIRST 0 * Din Registrul de acumulare. Produse în magazin"); QueryResult = Query.Run (); DemoTable = QueryResult.Upload (); // Un exemplu de creare a unui tabel gol pentru tipuri și nume de câmpuri specificate în mod explicit Interogare = Interogare nouă; Query.Text = "SELECT FIRST 0 | Value (Directory.Nomenclature.EmptyLink) AS Nomenclature, | EXPRESS (0 AS NUMĂR (15, 3)) AS Cantitate"; QueryResult = Query.Run (); DemoTable = QueryResult.Upload (); // IMPORTANT! Nu uitați că tipurile de valori ale coloanei obținute dintr-o interogare conțin întotdeauna tipul Null // Astfel, atribuirea tehnică creată de o interogare are întotdeauna tipuri de coloane compuse

Concluzie

În acest scurt articol, am acoperit proprietățile de bază și cele mai bune practici pentru crearea unui tabel de valori, suficient pentru a începe și a înțelege. Obiectul tabelului de valori în sine este atât de multifațetat încât o descriere detaliată a capacităților sale necesită scrierea unui articol separat despre tehnici și metode de lucru.

Top articole similare