1c găsiți valoarea în matrice. Cum se creează o matrice fixă

Acasă / Sisteme de operare

O matrice 1C este un set simplu de valori. Puteți adăuga valori de diferite tipuri la o matrice 1C. După adăugare, prezența valorilor în matricea 1C poate fi verificată folosind căutarea încorporată.

Matricea 1C este adesea folosită:
A) Pentru selecții
B) Pentru a salva o listă de valori pentru a o utiliza în continuare, de exemplu, transmiteți-o ca parametru unei funcții/proceduri.

Lucrul cu matrice 1C

Să creăm o matrice 1C cu 2 valori:
Array = New Array(); //matrice fără un număr fix de valori

Array.Add(RNG.RandomNumber(0, 1000));
Array.Add(RNG.RandomNumber(0, 1000));

// parcurge fiecare valoare a tabloului 1C, indiferent câte sunt

Raport (Valoare);
EndCycle;

Să creăm o matrice 1C cu 10 valori:
Array = New Array(10); //matrice cu un număr fix de valori
RNG = NewRandomNumberGenerator(); //vom umple cu numere aleatorii

//indexul matricei începe de la zero, nu de la unul
//10 bucăți sunt de la 0 la 9
Pentru Sch = 0 până la 9 Ciclu
//acces la arrayArrayName[Index]
Matrice[RNG] = RNG.RandomNumber(0, 1000); //număr aleator de la 0 la 1000
EndCycle;

//recercă fiecare valoare de matrice, indiferent câte sunt
Pentru fiecare valoare din ciclul de matrice
Raport (Valoare);
EndCycle;

//notă - există 10 valori de matrice, asta înseamnă că există 10 dintre ele în mod implicit și fiecare valoare este NEDEFINITĂ până când setăm alta
//asta nu înseamnă că nu putem adăuga o altă valoare, 11e, folosind ArrayName.Add();

Matrice multidimensională

Să creăm o matrice multidimensională 1C 2x2. O matrice multidimensională este 1C, ceea ce înseamnă că fiecare celulă a matricei 1C conține nu o valoare, ci și o matrice 1C.

O matrice multidimensională 1C nu trebuie să fie fixată. Să facem o matrice multidimensională 1C 2x2 fără a specifica un număr fix de valori:

Crearea unui tablou 1C de la zero

Obținerea datelor este o procedură care necesită timp și resurse. Prin urmare, dacă trebuie să lucrați cu datele primite de mai multe ori, este logic să le primiți o dată și să le salvați într-o matrice 1C pentru a lucra în continuare cu datele deja primite și salvate.

De exemplu, linia versiunii programului arată astfel: „11.0.9.5” - patru numere separate prin puncte. Putem traduce versiunea într-un format „computer” - o matrice de patru valori numerice. Apoi putem compara în continuare versiunile între ele:

Obținerea unui tablou 1C gata făcut cu date

O matrice 1C poate fi obținută dintr-o listă de valori folosind metoda spList.UnloadValues() și dintr-un tabel de valori folosind metoda tableTable.UnloadColumn().

În exemplul de mai jos, facem o interogare - selectăm toate legăturile documentelor din baza de date.

  • RequestResult = Request.Execute() //execută cererea
  • tzResult = Query Result Upload() //încarcă rezultatul în tabelul de valori
  • mArray of Links = tzResult.UnloadColumn("ColumnName") //descărcă o coloană de tabel într-o matrice

Obținerea unei matrice 1C de la alte obiecte și utilizarea acesteia ca selecție într-o solicitare

Când o listă de documente (sau un tabel de valori) se află pe formular, utilizatorul poate selecta o linie cu cursorul. De asemenea, puteți permite selectarea mai multor linii în același timp. Pentru a selecta mai multe linii (dacă formularul nu permite acest lucru), trebuie să țineți apăsată tasta CTRL sau SHIFT.

Adăugați un tabel de valori la formularul de client gros și selectați DocumentList.DocumentName ca tip. În proprietățile sale, selectați modul de selecție – multiplu.

Putem obține în mod programatic lista șirurilor selectate:

Dacă utilizați un formular gestionat, atunci trebuie să adăugați mai întâi un atribut de formular cu tipul DynamicList, iar în proprietățile acestuia selectați tabelul principal - documentul solicitat. Trageți recuzita pe formular. În proprietățile elementului de formular (!), selectați și – modul de selecție – multiplu (setat astfel implicit).

Accesarea matricei 1C a șirurilor selectate va arăta astfel:
Elements.FormAttributeName. Rânduri selectate

Despre ce este acest articol?

Acest articol continuă seria de articole „Primii pași în dezvoltarea 1C”. Acesta acoperă principiile de lucru cu colecții universale. După ce ați citit articolul, veți învăța:

  • Ce sunt colecțiile universale și când și în ce cazuri ar trebui utilizate?
  • Ce au în comun toate colecțiile universale? Ce tehnici poți folosi pentru a lucra cu toate acestea?
  • Ce este o matrice, cum și când să o folosești? Ce metode are?
  • De ce să folosiți o structură? Cum este diferit de o matrice?
  • Când ar trebui să utilizați o listă de valori? Cum se afișează în formular?
  • Conformitate – ce este și când să o folosești? Care sunt avantajele in ceea ce priveste structura?
  • Pentru ce este folosit tabelul de valori? Cum să-i descriu structura? Cum se adaugă/elimină linii? Cum se afișează în formular?
  • Arborele valorilor - pentru ce este folosit? Cum se completează și se afișează formularul? Cum să lucrezi cu el?

Aplicabilitate

Articolul discută platforma 1C:Enterprise 8.3 a ediției actuale.

Cum să lucrați cu colecții universale în 1C

O colecție de valori este un container care poate conține de obicei orice număr de elemente. Cu toate acestea, adesea nu există restricții stricte privind tipul de date.

Puteți adăuga valori la o colecție generică. Toate valorile din colecție pot fi parcurse. Aceste colecții sunt utilizate în principal pentru un fel de procesare în algoritmi. Aceste. Acestea sunt câteva structuri dinamice care există în timp ce algoritmul rulează.

Este important de înțeles că colecțiile nu sunt stocate într-o bază de date (nu vorbim despre tipul de date Value Store, care poate stoca aproape orice tip de date).

Există diferite tipuri de colecții generice: Array, Structure, Match, Fixed Array, Value Table, Parte tabulară etc. Dar toate colecțiile au un comportament similar.

O colecție poate fi creată ca rezultat al funcționării unei funcții (funcția returnează o colecție universală ca valoare).

Poate fi obținut noua colectie manual accesând constructorul și creând o instanță a clasei.

De exemplu: OurArray = matrice nouă;

Constructorii pentru multe colecții generice sunt parametrizați.

Deci, în constructorul pentru Puteți specifica numărul de membri în dimensiunile corespunzătoare. Aceste. puteți declara imediat multidimensional .

Descrierea corespunzătoare a constructorului este în asistentul de sintaxă.

Astfel, folosind parametrii constructorului, puteți seta imediat comportamentul dorit al unui obiect dat.

Dar parametrii sunt opționali, dezvoltatorul nu poate să-i seteze și să definească în continuare comportamentul Array-ului după cum crede de cuviință.

Aproape orice colecție universală poate fi creată folosind un constructor (excepție fac părțile de tabel, care acționează ca obiecte de configurare).

Pentru colecțiile universale, există concepte comune precum index și număr. Fiecare element al colecției are un index. În acest caz, indicele începe de la zero.

Pentru a accesa un element OurArray, puteți utiliza accesul la index pentru aceasta, indexul este indicat între paranteze drepte.

De exemplu, OurArray. Vă rugăm să rețineți că în acest caz sistemul returnează elementul Array cu index 3, iar în ordine acesta este al patrulea element al Array.

Pentru unele colecții există și conceptul de număr de linie. Numărul liniei începe cu unu. De exemplu, pentru partea tabelară există o astfel de proprietate ca numărul rândului. Este important de reținut că, dacă cunoaștem numărul liniei și dorim să accesăm prin index, atunci valoarea cu unul mai mică decât numărul rândului ar trebui folosită ca index.

Conceptul de număr de linie nu există în toate colecțiile, ci în principal în cele care pot fi afișate în interfața cu utilizatorul.

Toate colecțiile folosesc traversarea elementului de colecție. Bypass-ul este posibil în două moduri: ciclu PentruŞi ciclu Pentru fiecare dintre.

Pentru majoritatea colecțiilor generice, metodele care se aplică sunt Count, Index, Add, Insert, Delete și Find.

Count este o funcție care returnează numărul de elemente dintr-o colecție. Poate fi folosit înainte de un ciclu Pentru, după cum se arată în figură.

Metoda Index nu există pentru toate colecțiile, ci doar pentru cele ale căror elemente pot fi referite. Un exemplu este Tabelul Valorilor.

Tabelul Valorilor– aceasta este o colecție specifică de rânduri, rândurile pot conține diferite coloane cu diferite tipuri valorile.

Fiecare linie reprezintă o entitate independentă. Puteți obține un link către acesta prin această linie puteți accesa valorile coloanelor din această linie.

Metoda Index vă permite să determinați ce index corespunde unui rând dat (adică poziția curentă a rândului în tabel). Valorile indexului încep de la zero.

Aproape orice colecție universală are metode pentru adăugarea de noi valori la o colecție dată. Figura arată cum să umpleți un Array cu valori de la 0 la 10 în două moduri.

Pentru a adăuga un element la Array putem folosi metoda Adăuga, indicați valoarea de adăugat între paranteze. În acest caz, valoarea va fi adăugată la sfârșitul listei, adică. Matricea va crește constant datorită ultimei poziții.

O altă metodă care vă permite să adăugați valori unei colecții este Introduce. Este diferit de metoda Adăuga prin faptul că puteți specifica unde să inserați elementul adăugat.

Sintaxă: Inserați (,)

Primul parametru specifică indexul în care va fi inserată noua valoare. Aceste. de exemplu, putem specifica că fiecare valoare trebuie inserată la începutul listei (a doua metodă din figura de mai sus).

Pentru a elimina elemente dintr-o colecție, utilizați metoda Şterge. Metoda Delete specifică prin index ce element vom șterge.

Sintaxă: Şterge()
Exemplu de utilizare: OurArray.Delete(5);

Trebuie remarcat faptul că pentru acele colecții în care șirurile reprezintă o entitate independentă (de exemplu, pentru Tabele de valori), putem folosi și metoda de obținere a indexului pentru a șterge ulterior acest rând.

Aproape toate colecțiile au o metodă de căutare a unei valori - Găsi. Valoarea pe care vrem să o găsim este transmisă metodei. Unele colecții vă permit să stabiliți anumite restricții.

De exemplu, în Tabel de valori puteți specifica rândurile și coloanele în care doriți să căutați.

Dacă valoarea este găsită, atunci această metodă returnează indexul sau șirul specificat. Dacă valoarea nu este găsită, este returnată o valoare de tip Nedefinit. În legătură cu un Array, returnează Index, sau valoare Nedefinit.

Exemplu de utilizare: OurVariable = OurArray.Find(8);

Colecțiile universale pot fi șterse foarte rapid, de ex. elimina absolut toate elementele. În acest scop se utilizează metoda Clar(), care elimină elementele Array, rândurile Tabele de valori, sau date din alte colecții.

Metode suplimentare pentru Array

Metodă BBorder() returnează numărul de elemente minus unu. Aceste. dacă folosim o buclă Pentru, apoi în locul metodei Cantitate putem folosi imediat metoda Frontieră().

În special, variabila QuantityInArray ar putea fi definită diferit:

QuantityInArray = OurArray.InBorder();
Apoi, atunci când descriem ciclul în sine, nu ar trebui să fie scăzut din această variabilă.

Metoda Set vă permite să atribuiți o valoare unui element Array prin index.

Sintaxă: Instala(,)

Exemplu: OurArray.Set(2,8);

Alternativă: OurArray = 8;

Puteți utiliza metoda pentru un Array Obţine, pentru citirea unei valori la un index fără a recurge la utilizarea parantezelor drepte.

Sintaxă: Obţine()

Exemplu: OurVariable = OurArray.Get(2);

Alternativă: OurVariable = OurArray;

Structura de colectare universală

O Structură, ca și un Array, poate avea un număr nelimitat de elemente, dar conținutul elementului diferă de Array.

Structura este o colecție, fiecare valoare constă dintr-o pereche. Primul element al perechii se numește Cheie. Al doilea element al perechii este Sens.

Cheie este un tip de date strict șir care descrie o valoare. De exemplu, La cheie„Cod” poate corespunde valorii 113; La cheie„Nume” înseamnă „Vasya”. Valoarea în sine nu este supusă unei restricții de tip de date.

Structura este foarte convenabilă de utilizat dacă dorim să creăm o anumită listă de parametri. Dacă aceasta Structura numit Structura noastră, atunci ne vom referi la cele două valori ale sale după cum urmează: OurStructure.Code și OurStructure.Name.

Acest tip de acces este mult mai convenabil decât dacă am defini toți parametrii dintr-un Array și i-am accesa prin index.

Structura face codul programului lizibil (înțeles). Structure este folosită destul de des, mult mai des decât Array.

Este folosit pentru a descrie anumiți parametri, dintre care adesea există un număr destul de mare în toți algoritmii.

În plus, Structura este utilizată dacă procedura și funcția conțin un număr mare de parametri trecuți.

Atunci este mult mai convenabil să scrieți toți parametrii în Structură și să îi transmiteți mai departe. Aceste. parametrii procedurilor și funcțiilor sunt „ambalate”.

Separat, trebuie remarcat faptul că ca Cheie Nu poate apărea absolut orice linie în Structură. Se aplică anumite restricții.

Cheie ar trebui să acționeze ca un identificator. Aceasta înseamnă că în Klyuche nu trebuie să existe spații și nu poate începe cu un număr.

Început acceptabil Cheie cu o literă sau subliniere. Astfel, Cheie trebuie să îndeplinească cerințele pentru crearea identificatorilor.

Să observăm cum altfel o structură diferă de o matrice. Există o metodă în Structură Introduce, există două metode de inserare în Array: Introduce(la o anumita pozitie) si Adăuga(până la sfârșitul listei). Într-un Array, toate elementele sunt ordonate.

Structura este un fel de set neordonat. Acesta este motivul pentru care există doar o metodă de inserare pentru o Structură.

Valoarea este inserată nu într-o anumită poziție, ci în setul specificat. O Structură nu poate fi accesată prin index, ca și alte colecții generice.

Elementele de structură sunt accesate numai după numele cheii. Cu toate acestea, bucla For Each funcționează și pentru Structură, dar nu ar trebui să vă bazați pe ordinea elementelor Structurii.

O structură este creată în același mod ca și alte colecții generice folosind constructorul New, specificând tipul de date Structure.

La fel ca un Array, constructorul unei structuri poate avea parametri. Aceste. este posibil să descriem însuși conținutul unei Structuri folosind un constructor.

Spre deosebire de un Array, unde puteți specifica pur și simplu numărul de elemente pentru toate dimensiunile, într-o Structură puteți specifica conținutul în sine.

De exemplu: OurStructure = New Structure („Cod, Nume”, 133, „Vasya”);

Separate prin virgule, numele cheilor sunt enumerate mai întâi, apoi, în consecință, în aceeași ordine, valorile parametrilor.

Există o metodă de a adăuga o nouă valoare structurii Introduce, care inserează o nouă pereche (Cheie și valoare).

De exemplu: OurStructure.Insert(„Membrii familiei”,3);

Structura este caracterizată de o altă metodă care este folosită destul de des. Aceasta este metoda Proprietate.

Folosind această metodă, puteți înțelege dacă există un element în această Structură a cărui Cheie are un nume sau altul.

Dacă un astfel de element există, sistemul va returna valoarea True, în altfel- Minti.

De exemplu, expresia OurStructure.Property („Membrii familiei”) va fi egală cu valoarea True. Această metodă este folosită destul de des atunci când se analizează Structura.

Ca în orice colecție universală, este posibil să accesați proprietățile unei Structuri prin index. Dar indexul pentru Structură este o valoare șir.

De exemplu: Raport (Structura noastră[„Membrii familiei”]);

Totuși, nu trebuie să uităm că o Structură este un set neordonat de obiecte, motiv pentru care accesarea prin indexul 0, 1, 2 este inacceptabilă.

Colecție generică Listă de valori

ListValues este o listă liniară de elemente de orice tip de date.

Fiecare element este format din mai multe valori. Schematic, o listă de valori poate fi reprezentată ca o listă cu patru coloane.

Prima coloană - Marca. Are un tip de date boolean și permite utilizatorului fie să bifeze, fie să debifeze casetele.

Cealaltă coloană este o imagine care poate reprezenta cumva vizual acest element, adică. potriviți acest șir cu o imagine.

A treia coloană este însăși valoarea stocată, adică acesta este orice tip de date și poate fi diferit în linii diferite.

A patra coloană este prezentarea, adică acesta este un fel de descriere șir a unei valori date. Vizualizarea va fi afișată utilizatorului atunci când acesta vizualizează acest element. În acest caz, dacă reprezentarea nu este specificată, sistemul va încerca să obțină reprezentări pentru elementul conținut în această poziție.

ListValues– acesta este obiectul cu care utilizatorul poate lucra vizual. Aceste. ListValues poate fi afișat pe formular.

Utilizatorul poate efectua unele acțiuni cu acesta. Pe langa asta, ListValues poate fi dedus independent folosind metode, de ex. afișați pe ecran într-o ramură a algoritmului (cu excepția codului serverului), astfel încât utilizatorul să selecteze o linie sau să bifeze unele casete.

Vom găsi ListValuesîn asistentul sitax. Constructor ListValues nu este parametrizat (nu puteți seta nicio valoare implicită).

Există metode precum:

  • Insert(,) ;
  • Adăuga(,);
  • Cantitate();
  • Index().

Există și metode speciale, de exemplu, UnloadValues(). Aceasta creează o matrice în care este copiată lista de valori. De exemplu:

Array of Elements = Lista de PriceTypes.OutloadValues();

Există și o metodă inversă:
ListPriceTypes.LoadValues(ArrayItems);

Există metode de căutare:
FindByValue(); FindByIdentifier().

Există o metodă de copiere:
ListCopy = PriceTypeList.Copy();
Această metodă are scopul de a face un fel de modificare a copiei.

Există metode:
SortByValue();
SortByView().

Metode SelectItem(,)Şi MarkItems() apelează o casetă de dialog modală care oprește execuția algoritmului până când utilizatorul închide fereastra.

Pentru a utiliza aceste metode în proprietățile de configurare Modul de utilizare a modalității trebuie setat la Utilizare.

Exemplu de cod apelat dintr-un modul de aplicație gestionată:

Afișați acest cod în modul utilizator (dialog modal).

De mai jos ListValues folosit ca tip disponibil date pentru detaliile formularului. Creăm un nou atribut pentru formularul de procesare și definim tipul acestuia ListValuesși afișați-l pe formular.

Crearea unei noi echipe Completați Cadouri, transferați-l în formular și definiți un handler de acțiuni pentru acesta.

În modul utilizator, când faceți clic pe butonul Completați cadourile din formularul de procesare, va apărea o listă completată.

Dacă se dorește, lista poate fi editată: unele elemente pot fi adăugate, altele pot fi eliminate.

Conformitate versatilă de colectare

Această colecție este foarte asemănătoare cu Structura. La fel ca Structura, Mapările sunt seturi de valori care constau dintr-o cheie și valoarea în sine.

Principala diferență este că orice tip de date poate fi specificat ca Cheie, precum și pentru valoare. Având în vedere această caracteristică, este necesar să se acceseze valoarea de potrivire după index, valoarea cheii este indicată ca valoare a indexului.

Cheia poate fi un alt tip de date decât un șir. Proprietățile și metodele de lucru cu Compliance sunt aproape aceleași cu cele ale Structure.

Constructorul de conformitate, spre deosebire de Structură, nu conține capacitatea de a specifica parametri.

Exemplu de utilizare:

Corespondența este convenabilă de utilizat atunci când trebuie să conectați oricare două structuri. De exemplu, fiecare rând din secțiunea tabelară trebuie să fie asociat cu un rând din tabelul de valori.
În acest caz, rândul secțiunii tabelului este folosit ca cheie de potrivire și este indicată valoarea corespunzătoare.

Când se inserează elemente într-o colecție, se potrivește în plus față de metodă Introduce(,) O altă modalitate de a insera o valoare este utilizarea operatorului obișnuit de atribuire.

De exemplu: OurMatch = NewMatch;
Potrivire = 999;

Aceste. dacă un element nu a fost prezent în colecție, atunci acesta va fi adăugat folosind operatorul de atribuire, iar dacă a fost prezent, va fi actualizat.

Acest lucru este în contrast cu Structura.

Tabelul de Valori al Colectării Universale

Tabelul Valorilor este un tabel cu un număr arbitrar de rânduri și un număr arbitrar de coloane. Intersecția poate stoca valori de orice tip de date. Dacă este necesar, pot fi tastate coloane, adică puteți determina în ce coloană ce tip de date sunt stocate.

Puteți lăsa coloanele netipizate, apoi valorile de diferite tipuri pot fi stocate într-o coloană pe rânduri diferite.

Diferențele Tabele de valori dintr-o matrice bidimensională:

  • acesta este un obiect cu care utilizatorul poate lucra (tabelul de valori poate fi afișat pe ecran, utilizatorul îl poate completa, iar datele introduse pot fi apoi citite);
  • construirea de indici pentru căutare rapidă;
  • clonarea, umplerea unei întregi coloane cu o anumită valoare, descărcarea tuturor coloanelor într-o matrice.

Tabelul Valorilor folosit ca un fel de buffer de stocare a informațiilor. Tabelul Valorilor este returnat și acceptat ca parametru de multe metode de sistem. Este posibil să construiți o interogare pe Tabelul de Valori.

Aşa, Tabelul Valorilor constă dintr-un set de rânduri și un set de coloane. Atât rândurile, cât și coloanele sunt colecții.

Aceste. in interiorul colectiei Tabelul Valorilor mai sunt două colecții. Să apelăm la asistentul de sintaxă și să găsim Tabelul Valorilor.

Tipuri de date acceptate: în sine Tabelul Valorilor, care constă din șiruri. Fiecare rând este reprezentat de un tip de date RowTableValues, care are propriile sale proprietăți și propriile sale metode. Disponibil Colecție de valori de coloane de tabel are și anumite proprietăți.

Punct important! Procedura care creează Tabelul Valorilor, trebuie să compileze &OnServer.

Înainte de a începe să lucrați cu Tabelul Valorilor, trebuie să determinați ce coloane va conține (adică să le creați). Sintaxă:

Adăuga(,)
(optional)
Tip: șir.
(optional)
Tip: DescriptionTypes
(optional)
Tip: șir.
(optional)
Tip: Număr.

De exemplu:

Pentru a apela această procedură vom folosi comanda.

În descriere Tabele de valori elementele colecţiei sunt tocmai RowsTableValues.

Spre deosebire de coloanele, care constau numai din proprietăți (Nume, Tip, Antet, Lățime), în RowTableValues există atât proprietăți (acces prin numele coloanei) cât și metode (puteți obține și seta valoarea, lucrați cu proprietarii).

Pentru a adăuga un nou rând la tabel, trebuie să utilizați fie metoda Adăuga(), sau Introduce(). În al doilea caz, ar trebui să indicați în ce poziție trebuie plasată linia necesară.

Pentru a atribui o valoare unei coloane, folosim un punct pentru a accesa numele coloanei sau indexul (folosind paranteze drepte).

De completat Tabele de valori Se pot folosi următoarele metode:

Clar()– pentru a elimina toate rândurile din Tabele de valori.

FillValues(,)– vă permite să completați toate coloanele sau coloanele selectate cu o singură valoare.
LoadColumn(,)– încarcă o coloană din matrice.
DescărcațiColumn()– descarcă coloana într-o matrice.

Ultimele două metode sunt convenabile de utilizat atunci când trebuie să transferați o coloană dintr-un tabel de valori în altul.

Copie(,)– vă permite să creați unul nou pe baza unui tabel existent Tabelul Valorilor, și nu toate rândurile și toate coloanele, ci doar unele dintre ele. Valoarea returnată - Tabelul Valorilor.

Puteți copia structura Tabele de valori. Există o metodă corespunzătoare pentru aceasta CopyColumns(). Vom primi unul gol Tabelul Valorilor cu structura cerută.

ÎN Tabel de valori exista o metoda Total(). Puteți specifica coloana în care doriți să însumați valorile numerice. În raport cu codul afișat anterior în tablou, puteți calcula valoarea: TK.Total („Suma”).

ÎN Tabel de valori este posibilă gruparea (restrângerea) valorilor numerice după valori identice ale anumitor coloane folosind metoda Colaps(,).

În raport cu codul afișat anterior în tablou, puteți calcula valoarea: TK.Collapse(„Ziua săptămânii”, „Sumă”).

Tabelul Valorilor poate fi afișat pe ecranul utilizatorului, astfel încât să puteți efectua orice acțiuni cu acesta. Dar spre deosebire de ListValues din codul programului Nu poți doar să apelezi o masă pe ecran.

Pentru a afișa Tabelul Valorilor pe ecran, creați un atribut de formular și atribuiți-i un tip de date Tabelul Valorilor.

După aceea, tabelul rezultat ar trebui să fie afișat pe formular.

În modulul formular de la sfârșitul algoritmului compilat anterior (în Procedura pentru crearea unui tabel de valori), ar trebui să adăugați:
ValueInFormData(TK, Table);

Colecția universală Arborele valorilor

o colecție universală care seamănă foarte mult cu Tabelul Valorilor. Diferența față de un tabel este că rândurile arborelui pot fi subordonate unul altuia, adică. se poate forma un fel de ierarhie.

Acest lucru se poate reflecta și pe ecran. Un arbore de valori constă în mod explicit dintr-o colecție de rânduri și o colecție de coloane. Există două proprietăți în arbore: Rânduri și Coloane.

Deoarece rândurile pot fi subordonate unul altuia, fiecare rând poate avea un părinte, precum și rândurile sale subordonate.

Să creăm comanda Tree corespunzătoare și procedura de procesare a acesteia.

Să creăm în care există un rând părinte și două rânduri subordonate.

Să creăm atributele formularului DerZn(tip de date – Arborele valorii).

Pentru acest atribut, vom crea coloanele An și Luna.

Mutați elementul corespunzător DerZn pe formular.

La sfârșitul Proceduri TreeOnServer() hai sa adaugam:

ValueInFormData(TreeZn, DerZn);

Să verificăm ce s-a întâmplat în modul utilizator.

Folosind un buton Adăuga puteți adăuga linii noi. De asemenea, pot forma o ierarhie.

Pentru a parcurge toate elementele arborelui de valori, va trebui să folosim recursiunea, i.e. apelând o procedură de la sine. De exemplu, procesarea unui arbore de valori poate arăta astfel:

Aceasta încheie prima noastră cunoștință cu colecțiile universale.

În articolul următor ne vom uita la ce mecanism important poate folosi un dezvoltator pentru a simplifica accesul la un element de director din codul programului.

Conceptul de „matrice” a fost folosit de mult timp în programare și, cel mai adesea, este înțeles ca o anumită structură în memorie constând dintr-o secvență de elemente. O matrice în 1C este cea mai simplă dintre colecțiile universale de valori. În plus față de matrice, colecțiile universale includ:

  1. Lista de valori (spre deosebire de o matrice, valorile din listă au o reprezentare, este implementată capacitatea de a sorta și afișa colecția într-o interfață);
  2. Un tabel de valori este o colecție care are coloane pentru o descriere extinsă a valorii, o structură similară poate fi obținută prin executarea unei interogări;
  3. Un arbore este foarte asemănător cu un tabel, complet cu o structură de subordonare;
  4. Structura - set dinamic nume și valori ale variabilelor;
  5. Potrivire - similar cu o structură, numai variabilele sunt potrivite nu cu reprezentări în șir, ci între ele.

Metode de matrice

Crearea programatică a unei instanțe de matrice are loc utilizând operatorul New() (Fig. 1).

După cum se poate observa din exemplul de mai sus, tablourile pot fi create fie cu un număr fix de elemente, fie fără această limitare.

Înainte de a începe să discutăm despre metodele de lucru cu o matrice, să definim două concepte:

  • Indicele elementului – poate fi reprezentat ca un număr de serie al unei singure valori;
  • Număr de elemente – numărul de elemente din colecție este disponibil prin metoda Quantity().

Este important de știut: în 1C, numărarea numărului de valori ale oricărei colecții începe de la 1, iar distribuirea indicilor de la 0, adică primul element din matrice are indicele 0. Astfel, parcurgerea unei colecții folosind o buclă cu un iterator ar trebui să înceapă de la 0 și să se termine cu numărul de elemente minus 1, în caz contrar sistemul vă va anunța despre apariția unei excepții folosind fereastra (Fig. 2).

Fig.2

Orice obiect de configurare are propriile metode de lucru, o matrice nu face excepție, să le enumerăm cu câteva explicații:

  • InBorder() – folosind metoda puteți obține indicele maxim al unui element pentru o matrice goală va fi returnată valoarea (-1);
  • Insert() – această metodă are doi parametri: index și value, index indică unde se inserează un nou element în matrice, valoarea adăugată poate fi goală;
  • Add() – această metodă de inserare a unei valori poate fi folosită atunci când plasarea unui element este neimportantă cu ajutorul acestuia, se vor scrie date noi la sfârșitul matricei existente;
  • Find() – dacă are succes, returnează indexul valorii specificate între paranteze, în caz contrar returnează „Nedefinit”;
  • Clear() – șterge colecția;
  • Get() – citește datele aflate în matrice la indexul specificat, poate fi înlocuit cu paranteze drepte;
  • Delete() – șterge elementul cu indexul specificat;
  • Set() – înlocuiește datele din celula matricei specificată.

Matrice unidimensionale și multidimensionale

În cel mai simplu caz, o matrice unidimensională poate conține valori de diferite tipuri (Fig. 3)

Fig.3.

Rezultatul executării codului de mai sus este prezentat în Fig. 4

Fig.4

Astfel, am primit o matrice unidimensională constând dintr-o valoare șir, un link către un element de director și o dată. Mai mult, la adăugarea elementelor, am folosit două diverse metode Add() și Insert(), dacă am fi folosit metoda Add() la adăugarea unei date, rezultatul nostru ar fi avut un aspect ușor diferit.

În liceu, este introdus conceptul de matrice bidimensională. Acesta este un set de date, fiecare element având doi indici (în cel mai simplu caz, un număr de serie vertical și orizontal), care ilustrează cel mai bine conceptul de matrice bidimensională.

Când creați o astfel de matrice, puteți specifica numărul de rânduri și coloane care vor fi utilizate.

Să presupunem că ne confruntăm cu sarcina de a crea o matrice cu numele de familie, prenumele și patronimul a doi angajați. Folosind codul (Fig. 5), creăm o matrice corespunzătoare cu un număr fix de coloane și rânduri.

Fig.5

Pentru a o parcurge avem nevoie de două bucle, în prima buclă parcurgem tabloul linie cu linie, în a doua parăm linia în elemente. Acest lucru se poate face fie folosind ciclul „Pentru fiecare .... De la" (Fig. 6)

Fig.6

Sau folosind o buclă cu iteratorul „Pentru... de” (Fig. 7)

Fig.7

În principiu, numărul de dimensiuni ale unei anumite matrice poate fi oricare, un alt lucru este că în cazul respectiv cantitate mare niveluri de detaliu, este destul de dificil să creezi un constructor care să citească datele.

Utilizarea unui Array

Matricele în 1C sunt cele mai des folosite pentru:

  1. Crearea diferitelor selecții utilizate atunci când lucrați cu interogări și alte colecții de valori;
  2. Trecerea listelor ca parametri între proceduri și funcții;
  3. Schimbați date cu componente externe conectate la folosind COM tehnologii.

Desigur, aceasta este departe de a fi o listă completă a scopurilor pentru care poate fi utilizat obiectul „Matrice”.

Un tablou din 1C este un set de valori. Valorile dintr-o matrice pot fi de diferite tipuri.

Matricea poate fi obținută prin executarea diferitelor funcții, de exemplu, DescărcațiColumn() tabele de valori; puteți obține rândurile selectate ca o matrice lista dinamica etc. De asemenea, puteți crea o matrice manual.

Crearea unui Array

1. Cum să creați o matrice de dimensiunea necesară

pArray = nou Array(4) ; //a creat o matrice de 4 elemente

PMarray[ 0 ] = „Noi” ;
pArray[ 1 ] = „creat” ;
pArray[ 2 ] = "nou" ;
pArray[ 3 ] = "matrice" ;

2. Cum să creați o matrice goală și să adăugați elemente la acesta

pArray = nou Array; //a creat o matrice goală

//Introduceți valorile elementelor matricei

PMassiv. Adaugă ("Noi");


3. Cum se creează o matrice multidimensională.

Să luăm în considerare această problemă folosind exemplul unei matrice bidimensionale, deoarece matricele de dimensiuni mari sunt utilizate mult mai rar, iar mecanismul de funcționare a acestora nu diferă de unul bidimensional.

pArray = nou Array(4, 2); //creat o matrice 4x2

//Introduceți valorile elementelor matricei, numerotând fiecare cuvânt

PMarray[ 0 ] [ 0 ] = "1."
pArray[ 0 ] [ 1 ] = „Noi” ;
pArray[ 1 ] [ 0 ] = "2".
pArray[ 1 ] [ 1 ] = „creat” ;
pArray[ 2 ] [ 0 ] = "3."
pArray[ 2 ] [ 1 ] = "multidimensional" ;
pArray[ 3 ] [ 0 ] = "4."
pArray[ 3 ] [ 1 ] = "matrice" ;

4. Cum se creează o matrice fixă

O matrice fixă ​​diferă de o matrice obișnuită prin faptul că nu poate fi modificată. Nu puteți adăuga, șterge sau modifica valorile elementelor unei astfel de matrice.

O matrice fixă ​​poate fi obținută dintr-una obișnuită:

pArray = nou Array;

PMassiv. Adaugă ("Noi");
pArray. Adaugă(„creat”);
pArray. Adaugă(„nou”);
pArray. Adăugați(„matrice”);

FAarray = nou FixedArray(pArray) ; // a creat o matrice fixă

Funcții pentru lucrul cu matrice

Vom lua în considerare funcționarea funcțiilor folosind exemplul unui tablou unidimensional pArray, creat mai sus și format din 4 elemente:

  1. "creat"
  2. "nou"
  3. „matrice”.
Funcția VBorder()

Obține cel mai mare indice al unui element de matrice. Este întotdeauna cu unul mai mic decât numărul de elemente ale matricei.

Index = pArray. BBorder() // 3;

Funcția Insert().

Inserează o valoare în elementul de matrice la indexul specificat. Elementele ulterioare ale matricei sunt deplasate

pArray. Inserați(3, „valoare nouă”) //Acum tabloul este format din 5 elemente

Funcția Add()

Creează un nou element la sfârșitul matricei și inserează acolo valoarea dată

pArray. Adăugați("." ) // a adăugat un punct la al cincilea element al matricei;

Funcție Cantitate()

Returnează numărul de elemente ale matricei.

pArray. Cantitate() ; // 4

Funcția Find().

Caută într-o matrice un element dat. Dacă este găsit, returnează indexul său. Dacă nu este găsit, revine Nedefinit.

Index = pArray. Find("matrice");
// 3 Index = pArray. Găsi("linie care nu a existat"

);

// Nedefinit

Funcția Clear().

Îndepărtează toate valorile din matrice.

pArray. Clear() ;

Funcția Get().
Obține valoarea unui tablou după index. Aceeași problemă poate fi rezolvată folosind .

Valoare = pArray. Get(3) // „matrice”

Valoare= pArray[ 3 ];

// "matrice"

Funcția Delete().

Îndepărtează un element de matrice după index

pArray. Delete(3) ;
Set de funcții()

Setează valoarea unui element de matrice după index. Funcționează în același mod.

pArray. Set(3, "matrice!");

pArray[ 3 ] = "matrice!" ;
Cum să traversezi o matrice
Puteți repeta peste toate elementele unui tablou fără a specifica un index:

Pentru fiecare element al matricei din bucla pArray

Raport (ArrayElement) ;
EndCycle ;
Puteți repeta peste toate elementele unui tablou fără a specifica un index:

Puteți folosi indexul când parcurgeți:

Pentru Index= 0 prin pArray. BBorder() Buclă

Raport (pArray[Index]);
Cum să traversezi o matrice multidimensională
O matrice multidimensională este parcursă folosind aceleași bucle (vezi mai sus), dar o buclă trebuie să fie imbricată în alta.
Puteți repeta peste toate elementele unui tablou fără a specifica un index:
Puteți repeta peste toate elementele unui tablou fără a specifica un index:

Pentru fiecare Element1 din mArray Cycle

Pentru fiecare Element2 din Ciclul Element1

Raport(Element1) ;
Sau folosind indici.
mArray= nou Array(3, 4);
Puteți repeta peste toate elementele unui tablou fără a specifica un index:
Puteți repeta peste toate elementele unui tablou fără a specifica un index:

Pentru Index1 = 0 prin mArray. BBorder() Buclă

Pentru Index2 by mArray[ Index1 ] . BBorder() Buclă Raport (mArray[ Index1 ] [ Index2 ] ) ;

Sortați o matrice Pentru a sorta matricea, avem nevoie de un obiect auxiliar de tip
ListValues. ValueList = noua ValueList;
// creează o listă de valori ListValue. LoadValues(pArray) ;
// încărcați valorile din matrice în listă ListValue. SortByValue(SortDirection.Age) ;
//sortează în ordine crescătoare // aruncați valorile sortate înapoi în matrice

Compararea a două matrice

Înainte de a trece la descrierea funcției de comparare, să fim de acord că tablourile sunt considerate identice dacă au același număr de elemente și elementele corespunzătoare ale tablourilor sunt egale. Apoi, pentru comparație, puteți utiliza următoarea funcție (apropo, o astfel de funcție este deja prezentă în unele configurații standard):

Funcția CompareArrays(Matrice1, Matrice2)

Dacă Array1. Cantitate()<>Matrice 2. Cantitate() Atunci
returnează FALSE; // Matricele nu sunt egale, nu are rost să compari elemente.
EndIf ;

Pentru Index= 0 prin Array1. BBorder() Buclă
Dacă Matrice1[Index]<>Array2[Index] Apoi
Returnează fals; //aceste elemente nu sunt egale, ceea ce înseamnă că tablourile nu sunt egale
EndIf ;
Puteți repeta peste toate elementele unui tablou fără a specifica un index:

Returnează Adevărat; // Dacă ați ajuns aici, atunci tablourile sunt egale
EndFunction

Trebuie să treceți 2 matrice pentru a compara cu funcția. Funcția returnează valoarea Adevărat, dacă tablourile sunt egale și Minciună, dacă nu este egal.

Utilizarea tablourilor în 1C ajută la organizarea elementelor utilizate în lucru.

Acesta este un set de elemente software. Acesta servește pentru:

  • Selectarea valorilor.
  • Triere. Fiecărei poziții din matrice i se atribuie un index. Acest lucru facilitează căutarea. Și vă puteți referi la un obiect scriindu-i numărul.
  • Combinarea și salvarea înregistrărilor.
  • Separarea grupurilor, crearea subșirurilor.
  • O matrice este un obiect în sine. O variabilă va fi legată de aceasta. Puteți face referire la părți individuale ale acestuia sau îl puteți utiliza în întregime în proceduri. De exemplu, puteți combina grupul de valori „Angajații Departamentului N” și puteți introduce acolo numele și prenumele angajaților.

Să facem o analogie. Imaginează-ți o bibliotecă. Cărțile din el sunt aranjate în diferite „celule”. Dacă țineți înregistrări, veți ști unde se află fiecare obiect. Și îl puteți obține fără dificultate. Dar dacă cărțile, revistele și ziarele sunt împrăștiate haotic pe masă, căutarea celui potrivit va dura mult timp. Deși acest lucru nu reflectă toate posibilitățile colecțiilor unice.

Creare

Lucrul cu matrice 1C începe cu crearea acestora. Aveți nevoie de o „locație” - un câmp în care veți introduce codul.

  1. Deschideți „Configurator” („Configurare”).
  2. Clic clic dreapta faceți clic pe elementul „Procesare”.
  3. Selectați „Adăugați”.
  4. Apare submeniul Procesare1. Selectați-l. Informațiile despre aceasta vor fi afișate în zona de lucru.
  5. În fila De bază, introduceți Nume. Să spunem „TestArray”.
  6. Deschideți secțiunea „Formulare”.
  7. Faceți clic pe pictograma lupă.
  8. Bifați opțiunea „Formular de procesare”.
  9. Faceți clic pe „Terminat”.
  10. Se va deschide o fereastră cu trei rame. În dreapta sus, accesați fila „Echipe”.
  11. Pictograma plus pentru a adăuga o poziție.
  12. Va apărea elementul „Team1”. Selectați-l.
  13. În câmpul „Nume”, introduceți un nume. De exemplu, „TestValues”. Copiați-l în „Header”.
  14. În linia „Acțiune”, faceți clic pe lupă.
  15. Elementul „Creare pe client” și „OK”.
  16. Iată modulul în care poți introduce codul.

Pentru a afișa un rezultat intermediar, creați un „buton”. De ce este necesar în matrice - veți înțelege puțin mai târziu.

  1. Accesați fila „Formulare”. Ea e jos.
  2. Faceți clic dreapta pe „Bara de comandă”.
  3. "Adăugați - Buton".
  4. Da-i orice nume. Sau o poți lăsa pe cea implicită.
  5. În câmpul „Nume echipă”, faceți clic pe pictograma cu puncte de suspensie.
  6. Selectați „TestValues”. Dacă echipa a fost numită diferit, va exista un alt titlu.

Acum puteți începe să lucrați cu colecții. Dar să nu credeți că în 1C puteți descompune imediat un șir într-o matrice. Este mai bine să începi cu ceva mai ușor. Deși toate funcțiile sunt un set de operatori pe care trebuie doar să-ți amintești.

  1. Deschideți fila „Modul”.
  2. Textul care vine după două bare oblice (două bare oblice - „//”) poate fi șters. Arată cam așa „//Inserează conținutul handlerului”. Acestea sunt explicații. Sunt scrise de programatori pentru a nu se confunda în cod.
  3. Scrieți textul între operatorii „Procedură” și „Sfârșitul procedurii”.
  4. Acum creați un set de valori. Vino cu o variabilă care o va denota în mod condiționat. Să spunem „FirstArray”.
  5. Trebuie să fie asociat cu un obiect. Pentru a face acest lucru, introduceți comanda „FirstArray = Matrice nouă()". Aceasta este o colecție care poate conține un număr nelimitat de elemente. Dacă aveți o dimensiune fixă, specificați-o după comanda din paranteze „New Array (5)”. În consecință, colecția bidimensională va arăta ca „New Array (7, 5)”. Puteți crea seturi multidimensionale.
  6. Pe măsură ce tastați, pot apărea sugestii care sugerează operatori potriviți.
  7. Cuvintele variază în culoare. Variabilele au o culoare, funcțiile au alta.
  8. După fiecare comandă, plasați un punct și virgulă „;”. Și pentru comoditate, începeți cu un nou paragraf.
  9. Nu poți face nimic cu un set gol. Nu organizați, nici scoateți, nici descompuneți șirul într-o matrice în 1C. Prin urmare, trebuie să inserăm elemente în el.
  10. Introduceți „FirstArray.Add(Value1);”. Apoi „FirstArray.Add(Value2);” și așa mai departe.
  11. Obiectele sunt numerotate de la zero. Adică variabilei „Valoare1” i se va atribui indicele „0”. Puteți completa singur colecția cu „Valoare0” pentru a nu vă încurca.

Pentru ce sunt toate acestea? Și de ce acel „buton” misterios? Să încercăm să rulăm o funcție simplă.

  1. Sub colecție, scrieți comanda „Raport (FirstArray);” Indicele elementului este indicat între paranteze drepte. Adică adresa „Valoarea0” noastră.
  2. Formatați modulul. Aceasta este o verificare a erorilor. În blocurile mari, ceva poate fi lăsat neterminat din cauza neatenției: neadăugarea unui punct și virgulă, neînchiderea unei paranteze sau scrierea incorect a unei variabile. Compilatorul va indica acest lucru.
  3. Faceți clic pe butonul sub forma unui semn „Play” (un triunghi într-un cerc) pentru a rula programul pe care l-ați scris.
  4. Faceți clic pe „Service” și selectați butonul dvs.
  5. Faceți clic pe el.
  6. Apare mesajul „Value0”. Acesta este rezultatul execuției funcției.

Arata cel mai mult operare simplă, astfel încât să înțelegeți cum funcționează în general matricele. Cu ele puteți crea programe complexe și pe mai multe niveluri. Afișați obiecte, sortați, eliminați repetițiile, împărțiți într-un set de subșiruri, combinați, împărțiți, căutați informații. Trebuie doar să cunoști operatorii.

Funcții

Toate funcțiile disponibile sunt în cartea de referință a programului. Să enumerăm câteva pentru a arăta principiul.

Cum se transformă o matrice 1C într-un șir:

TestArray = New Array(4);
TestArray = Aceasta;
TestArray = Terminat;
TestArray = Deci;
RowTest = ValueInRowInt(TestArray);
Raport (Test șir);

Trimiteți-l la „Buton” și obțineți fraza. Acesta poate face parte dintr-un modul mai mare - caz în care declarația Raport nu este necesară.

Pentru a descompune un șir într-o matrice de subșiruri în 1C, aveți nevoie de un separator. Un semn condiționat după care textul va fi împărțit. Să presupunem că există cuvântul „Protocol”. Și vom pune separatorul „O”. Introduceți comanda „TestArray = ExpandStringInArray(Protocol, „O”);” Veți obține „Pr”, „T”, „K” și „L” separat. Separatorul este șters. Și cuvântul este împărțit în mai multe subșiruri.

Iată cum să o puneți în practică. Aveți o matrice cu numele complete ale angajaților. Și aveți nevoie de câmpurile „Nume”, „Prenume” și „Patronimic” pentru a fi completate automat atunci când selectați o poziție. Pentru a face acest lucru, numele complet trebuie împărțit în trei componente. Utilizați „spațiul” ca separator.

În mod obișnuit, se folosește un modul complex pentru aceasta: o buclă cu un număr mare de instrucțiuni. Blocurile ciclice cu o condiție sunt construite după principiul „Dacă (condiție), atunci (acțiunea1), altfel (acțiunea2)”. În primul rând, programul verifică dacă condiția este adevărată. Dacă da, atunci rulează prima funcție. Daca nu, al doilea.

Bucla va verifica fiecare caracter din șir. Dacă nu există niciun separator acolo, acesta continuă mai departe. Dacă există un delimitator acolo, acesta adaugă valoarea la setul de subșiruri. Alți operatori pot fi utilizați acolo: de exemplu, „AbcrLP” este o abreviere a anumitor caractere la dreapta și la stânga liniei.

Fiecare modul trebuie să fie „terminat”, astfel încât utilitarul să oprească executarea procedurii. Într-o buclă cu „If”, această declarație este „EndIf”. Pe un ciclu fără condiții - „Sfârșitul ciclului”. Fiecare funcție trebuie finalizată separat.

Căutați și sortați

Colecțiile pot conține o cantitate imensă de date. Trebuie să învățăm să le căutăm și să le sortăm.

Pentru a efectua o căutare într-o matrice în 1C, utilizați operatorul „Find”. Puteți găsi și vizual valoarea dorită. Dar dacă există sute de elemente, este mai bine să creați un modul suplimentar și să rulați o subrutină. Să o arătăm folosind o funcție simplă ca exemplu. Dar acesta este potrivit pentru orice blocuri.

ArrayTest = New Array(3);
ArrayTest = „Telefon”;
ArrayTest = "Laptop";
ArrayTest = „Computer”;
Index = ArrayTest.Find("Telefon");
Dacă Index ‹› Nedefinit Atunci
Raport ("Căutare finalizată" + ArrayTest[Index]);

Și nu uitați să puneți „declarația de încheiere”.

Colecția este oferită ca exemplu. Am creat un set de trei valori. Și am făcut un ciclu scurt. Dacă utilitarul nu găsește un element potrivit, va afișa mesajul „Nedefinit”. Dacă o găsește, va arăta rezultatul.

Sortarea unei matrice 1C este pur și simplu de neînlocuit atunci când lucrați cu cantități mari de date. Trebuie să le navighezi cumva. Este mai bine să le aranjați într-o anumită ordine. Să presupunem că aveți o colecție numită „YourArray”. Să-l pună în ordine

TestList = New ValueList;
TestList.LoadValues(YourArray);
TestList.SortByValue(SortDirection.Age);
YourArray = TestList.UnloadValues();

În loc de „Ascending” puteți pune „Descendent”. Rezultatul poate fi, de asemenea, încărcat într-un tabel de valori:

TestTable = New ValueTable;
TestTable.Columns.Add("Coloană");
TestTable.LoadColumn(YourArray, „Column”);
TestTable.Sort("Coloană descendentă");
YourArray = TestTable.UnloadColumn(„Coloană”)

Există și metode complexe de sortare: „Bubble”, „Quick”, „Shaker”, „Recursion”. Au algoritmi multi-nivel și lungi.

Tabele și liste

Informațiile pot fi transferate între diferite tipuri de colecții. Pentru a transfera o matrice într-un tabel de valori în 1C:

ArrayTelephone = Matrice nouă;
ArrayPhone.Add(„Smartphone”);
ArrayPhone.Add(„Tabletă”);
ArrayPhone.Add(„Telefon”);
TableTest = New ValueTable;
TableTest.Columns.Add(„Telefoane mobile”);
TableTest.Add();
TableTest.Add();
TableTest.Add();
TableTest.LoadColumn(ArrayTelephone, „Telefoane mobile”);
Pentru fiecare rând din ciclul TableTest
Raport (String.Mobile);

Nu uitați să adăugați o instrucțiune de terminare a buclei la sfârșit.

Convertirea unei matrice într-o listă de valori în 1C este destul de simplă. Trebuie doar să încărcați date dintr-o colecție în alta.

NewList = NewValueList();
NewList.LoadValues(YourArray);

În programare, o problemă poate fi rezolvată în moduri diferite. Și 1C nu face excepție. Algoritmi liniari, bucle, bucle condiționate, bucle contor. Există multe opțiuni. Pentru a naviga în matrice, aveți nevoie de niște abilități 1C.

© 2024 ermake.ru -- Despre repararea PC-ului - Portal de informații