1c Cum să obțineți o valoare din matrice. Cum se creează o matrice fixă

O serie de 1c este un set de valori. Valorile într-o singură matrice pot fi de diferite tipuri.

O matrice poate fi obținută ca urmare a efectuării diferitelor funcții, de exemplu, Descărcare ()tabele de valori; În forma unei matrice, puteți obține linii selectate ale listei dinamice etc. Puteți crea o matrice și "manual".

Crearea unei matrice

1. Cum se creează o serie de dimensiuni dorite

pMAassive \u003d Noua matrice (4); // a creat o matrice de 4 elemente

PMassiv [0] \u003d "Noi";
Pmaassive [1] \u003d "Creat";
Pmaassive [2] \u003d "nou";
PMassiv [3] \u003d "matrice";

2. Cum de a crea o matrice goală și adăugați elemente la ea

pMAassive \u003d Noua matrice; // a creat o matrice goală

// face valorile elementelor matricei

Pmaassive. Adăugați ("noi");


3. Cum se creează o matrice multidimensională.

Luați în considerare această problemă cu privire la exemplul unei matrice bidimensionale, deoarece marginea dimensiunilor mari sunt folosite mult mai rar, iar mecanismul muncii lor nu este diferit de cele două dimensiuni.

pMAassive \u003d matrice noi (4, 2); // a creat o matrice de 4x2

// face valorile elementelor matricei, numerotate fiecare cuvânt

Pmaassive [0] [0] \u003d "1.";
PMassiv [0] [1] \u003d "noi";
PMassiv [1] [0] \u003d "2.";
Pmaassive [1] [1] \u003d "creat";
PMAassive [2] [0] \u003d "3.";
PMassiv [2] [1] \u003d "multidimensional";
Pmaassive [3] [0] \u003d "4.";
PMAassive [3] [1] \u003d "matrice";

4. Cum se creează o matrice fixă

O matrice fixă \u200b\u200bdiferă de obiceiul în care nu poate fi schimbat. Nu puteți adăuga, șterge sau modifica valorile elementelor unei astfel de matrice.

Matricea fixă \u200b\u200bpoate fi obținută de la normal:

pMAassive \u003d Noua matrice;

Pmaassive. Adăugați ("noi");
Pmaassive. Adăugați ("creat");
Pmaassive. Adăuga nou");
Pmaassive. Adăugați ("matrice");

FMASSIV \u003d Noua fixă \u200b\u200b(Pmaassive); // a creat o matrice fixă

Funcții pentru lucrul cu matricele

Vom lua în considerare activitatea funcțiilor pe exemplul unei matrice unidimensionale pmaassiv.Creat mai sus și constând din 4 elemente:

  1. "Creată"
  2. "nou"
  3. "Array".
Vurban ()

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

Index \u003d pmaassive. Vban () // 3;

Pastă ()

Introduce o anumită valoare unui element de matrice cu indicele specificat. Elementele ulterioare ale matricea s-au schimbat

pmaassive. Inserare (3, "New Wise") // Acum, matricea este formată din 5 elemente

Adăugați () funcția

Creează un element nou la capătul matricei și inserează existența unei valori date.

pmaassive. Adăuga (".") // punct de vedere la al cincilea element al matricei;

Numărul funcției ()

Returnează numărul de elemente de matrice.

pmaassive. Număr() ; // patru.

Găsiți funcția ()

Căutând un element specificat în matrice. Dacă constată, își întoarce indicele. Dacă nu se găsește, se întoarce Nedefinit.

Index \u003d pmaassive. Găsiți ("matrice"); // 3.
Index \u003d pmaassive. A găsi( "Șirul care nu a fost"); // nedefinit

Clar ()

Îndepărtează toate valorile din matrice.

pmaassive. Clar ();

Funcția obține ()

Obține valoarea matricei în index. Aceeași sarcină poate fi rezolvată prin.

Valoare \u003d Pmaassive. Obțineți (3) // "matrice"
Valoare \u003d PMassiv [3]; // "matrice"

Eliminați funcția ()

Șterge un element de matrice prin index

pmaassive. Îndepărtați (3);

Instalare ()

Setează valoarea unui element de matrice prin index. Funcționează în mod similar.

pmaassive. Instalați (3, "matrice!");
PMassiv [3] \u003d "Array!" ;

Cum să ocoliți o matrice

Puteți obține în jurul tuturor elementelor matricei fără a specifica indicele:

Pentru fiecare element membru din ciclul Pmaassive
Raport (elementmassiv);
Endcycle;

Puteți utiliza indexul în jurul valorii de bypass:

Pentru index \u003d 0 de Pmaassive. Vurbani () Ciclu
Raport (PMASSIV [index]);
Endcycle;

Cum să ajungeți în jurul matricei multidimensionale

Matricea multidimensională se face folosind aceleași cicluri (vezi mai sus), dar un ciclu trebuie să fie investit în altul.

Pentru fiecare element1 din ciclul Mmaassive
Pentru fiecare element2 din ciclul elementului1
Raport (element1);
Endcycle;
Endcycle;

Sau cu utilizarea indexurilor.

mmaassive \u003d o matrice nouă (3, 4);

Pentru index1 \u003d 0 de către MMassiv. Vurbani () Ciclu
Pentru index2 de către Mmaassive [index1]. Vurbani () Ciclu
Raport (MMASSIV [index1] [index2]);
Endcycle;
Endcycle;

Sortarea masivei.

Pentru a sorta matricea, avem nevoie de obiect auxiliar cu tipul Lista de alunecare.

Valoarea listei \u003d noua listă de cazare; // Creați o listă de valori
Listă. Descărcarea (PMassiv); // Încărcați în lista de valori din matrice
Listă. Sortare (directoare. Cap); // Sortați prin creșterea
Listă. Sortare (direcții. Decession); // sau descendent.
Pmaassive \u003d lista. Descărcare (); // descărcați valori sortate înapoi la matrice

Compararea a doi masiversi

Înainte de a vă deplasa la descrierea funcției de comparație, suntem de acord că matricele sunt considerate identice dacă aveți același număr de elemente, iar elementele corespunzătoare ale matricei 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 tipice):

Funcția de comparareMass (Array1, Array2)

Dacă o matrice1. Număr()<> Array2. Cantitate ()
Returnarea minciunilor; // Arrays nu sunt egale, nu are sens să compare elementele.
Încheiat;

Pentru index \u003d 0 prin array1. Vurbani () Ciclu
Dacă o array1 [index]<> Array 2 [index] Apoi
Returnarea minciunilor; // aceste elemente nu sunt egale, atunci matricele nu sunt egale
Încheiat;
Endcycle;

Întoarcerea adevărului; // dacă au ajuns aici, atunci arrays sunt egale
Endfunction

Funcția are nevoie de 2 matrice comparate. Funcția returnează valoarea AdevăratDacă matricele sunt egale și Falsdacă nu este egal.

Conceptul de "matrice" a fost folosit de mult timp în programare și, cel mai adesea, sub ea înțelege o anumită structură în memorie constând dintr-o secvență de elemente. O matrice în 1c este cea mai simplă colecții universale de valori. În plus față de matricea către colecții universale:

  1. Lista valorilor (spre deosebire de matricea pentru valorile din listă există o vedere, este implementată posibilitatea de sortare și interfață a colecției);
  2. Tabelul de valori - o colecție care are coloane pentru o descriere extinsă a valorii, o astfel de structură poate fi obținută prin efectuarea unei cereri;
  3. Arborele este foarte asemănător cu o masă, o structură suplimentară de subordonare;
  4. Structura - setul dinamic de nume și valori ale variabilelor;
  5. Conformitatea este similară cu structura, numai variabilele sunt mapate nu pentru reprezentările șirurilor, dar reciproc.

Metode masive

Crearea de software a unei instanțe de matrice are loc cu ajutorul unui nou () operator (fig.1).

După cum se poate vedea din exemplul de mai sus, se pot crea o cantitate fixă \u200b\u200bde elemente și fără această limitare.

Înainte de a începe discutarea metodelor de lucru cu o matrice, să decidem cu două concepte:

  • Indicele elementului - poate fi reprezentat ca număr de secvență al unei singure valori;
  • Numărul de elemente este numărul de elemente din colecție, definiția sa este disponibilă utilizând metoda cantității ().

Este important să știți: în numărarea 1c Numărul de valori ale oricărei colecții începe cu 1, și distribuția indicilor C 0, adică primul element din matrice are un index 0. Astfel, ocolind colecția folosind un ciclu cu Un iterator ar trebui să înceapă cu 0 și să se încheie cu numărul de elemente minus 1, altfel, sistemul cu ajutorul ferestrei (Fig.2) va notifica apariția unei situații excepționale.

Fig.2.

Orice obiect de configurare are propriile metode de lucru, o matrice nu este o excepție, listați-le cu unele decodare:

  • Vurban () - Folosind metoda pe care o puteți obține indicele maxim al elementului, valoarea (-1) va fi returnată pentru o matrice goală;
  • Inserare () - Această metodă are doi parametri: Index și valoare, indicele indică unde la o matrice introduceți un element nou, valoarea adăugată poate fi goală;
  • Adăugați () - Această metodă de inserție poate fi utilizată atunci când locul de plasare al elementului nu este aplicabil, cu ajutorul său, noile date vor fi înregistrate la sfârșitul matricei existente;
  • Găsirea () - În cazul executării reușite, returnează indicele valorii specificate în paranteze, altfel returnează "nedefinit";
  • Clar () este o colecție;
  • Obțineți () - Citește datele situate în matrice la indexul specificat, pot fi înlocuite cu paranteze pătrate;
  • Ștergeți () - elimină elementul cu indicele specificat;
  • Instalați () - Înlocuiește datele din celula de matrice specificată.

Rețeaua unidimensională și multidimensională

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

Fig.3.

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

Fig.4.

Astfel, am primit o matrice unidimensională constând dintr-o valoare de șir, legături către cartea de referință și datele. În același timp, la adăugarea de articole, am folosit două metode diferite pentru a adăuga () și introduceți () dacă, atunci când adăugați data, am folosit metoda Adăugare (), rezultatul nostru ar avea un aspect ușor diferit.

În clasele de liceu, este dată o idee despre conceptul de matrice bidimensională. Acesta este un astfel de set de date, fiecare element al cărui element are două indici (în cel mai simplu caz, numărul de serie pe verticală și orizontal) este cel mai bun din toate ilustrarea conceptului de o matrice bidimensională.

Crearea unei matrice similare, puteți specifica numărul de rânduri și coloane care vor fi utilizate.

Să presupunem că facilităm sarcina de a crea o matrice din numele, numele și patronimul a doi angajați. Folosind codul (fig.5), creăm o matrice adecvată cu un număr fix de coloane și rânduri.

Fig.5.

Pentru bypass-ul său, vom avea nevoie de două cicluri, în primul ciclu ocupăm o serie de rânduri, în al doilea vom analiza linia la elemente. Acest lucru se poate face fie folosind ciclul "pentru fiecare .... De la "(figura 6)

Fig.6.

Fie folosind un ciclu cu un iterator "pentru ... de" (Fig.7)

Fig.7.

În principiu, numărul măsurătorilor unei anumite matrice poate fi orice altceva este că, în cazul unui număr mare de niveluri detaliate, este destul de dificil să se creeze un constructor pentru citirea datelor.

Utilizarea matricei

Masives în 1c sunt utilizate cel mai adesea pentru:

  1. Crearea diferitelor selecții utilizate atunci când lucrați cu solicitări și alte colecții de valori;
  2. Transferul listelor ca parametri între proceduri și funcții;
  3. Schimb de date cu componente externe conectate utilizând tehnologia COM.

Desigur, aceasta este o listă mult incompletă a obiectului "matry" poate fi utilizat.

Massif 1c este un set simplu de valori. Într-o serie de 1c, puteți adăuga valori de diferite tipuri. După adăugarea prezenței într-o matrice 1c, puteți verifica căutarea încorporată.

Massif 1c este adesea folosit:
A) Pentru selecții
B) Pentru a salva lista valorilor pentru ao utiliza în continuare, de exemplu, transferați ca parametru funcției / procedurii.

Lucrați cu masivii 1c

Creați o serie de 1c de la 2 valori:
Array \u003d matrice noi (); // matrice fără un număr fix de valori

O matrice. Adauga (GSH.Suntexed (0, 1000));
O matrice. Adauga (GSH.Suntexed (0, 1000));

// ciclul trecerii fiecărei valori a masivului 1c, indiferent cât de mult

Raport (SCH);
Endcycle;

Creați o serie de 1c din 10 valori:
Array \u003d matrice noi (10); // matrice cu un număr fix de valori
Gpg \u003d noul generator gratuit (); // vom completa numere aleatorii

// Indicele de matrice începe cu zero și nu de la unul
// 10 buc - este de la 0 la 9
Pentru ciclul SCH \u003d 0 până la 9
// Apel la ArraymeMassiva [Index]
Masiv [SC] \u003d gsh.stundix (0, 1000); // număr aleatoriu de la 0 la 1000
Endcycle;

// trecerea ciclului fiecărei valori a matricei, indiferent cât de mult
Pentru fiecare zen din gama de ciclu
Raport (SCH);
Endcycle;

// Notă - 10 valori masive, înseamnă că acestea sunt în mod implicit 10 buc și fiecare valoare este incertă până când am instalat altul
// aceasta nu înseamnă că nu putem adăuga o altă valoare, 11e, folosind NameMassiva. Adăugați ();

Matrice multidimensionale.

Creați o matrice multidimensională 1C 2x2. Matricea multidimensională 1C, ceea ce înseamnă că fiecare celulă a unui matrice 1c nu conține valoare, ci și o serie de 1c.

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

Crearea unui matrice 1c de la zero

Procedura de primire a timpului și a resurselor de date și a resurselor. Prin urmare, dacă este necesar cu datele obținute, se repetă repetate - are sens să le obțineți o dată și să se mențină într-o serie de 1c pentru a lucra mai departe cu date deja obținute și salvate.

De exemplu, linia versiunii programului este după cum urmează "11.0.9.5" - patru numere separate prin puncte. Putem transfera versiunea în formatul "Computer" - o serie de valori numerice numerice. Apoi, atunci putem compara versiunile unul cu celălalt:

Obținerea unui masiv final 1c cu date

O serie de 1C poate fi obținută din lista de valori utilizând metoda SPSSS. Descărcați () și din tabelul de valori cu ajutorul metodei TTABLIN. Maglipcolong ().

În exemplul de mai jos, facem o cerere - Selectați toate legăturile din baza de date.

  • Rezultat Supply \u003d interogare. Completați () // cerere
  • factura \u003d Recrutarea rezultatelor. Descărcați () // descărcați rezultatul în tabelul de valori
  • mMASSYL LIFTORS \u003d factură. Maglip-modelare ("NameContami") // descărcați o coloană a unei mese într-o matrice

Obținerea unei matrice de 1c de la alte obiecte și utilizarea ca selecție în cerere

Când se află o listă de documente (sau tabelul de valori) pe formular - utilizatorul poate selecta o linie cu un cursor. De asemenea, puteți fi permis să alocați mai multe linii în același timp. Pentru a selecta mai multe linii (dacă nu este permisă nici o formă), trebuie să apăsați tasta CTRL sau SHIFT.

Adăugați un tabel de valori la un client gros și selectați lista de documente ca tastați. În proprietățile sale, selectați modul de selecție - multiplu.

Putem obținem programatic o listă de linii selectate:

Dacă utilizați o formă gestionată, trebuie mai întâi să adăugați formularul de recuzită formular cu tipul de listă dinamică și în proprietățile sale, selectați tabelul principal - documentul dorit. Trageți recuzită pe formular. În proprietățile elementului de formă (!) Selectați și modul de selecție - multiplu (instalat atât de implicit).

Apelul la linii evidențiate de matrice 1C va arăta ca:
Elemente. Equalevisitforms. Alocat preferință

A luat (nu întrebi de ce) să găsească și să analizeze toate combinațiile posibile de gama de lungime arbitrară. Sarcina este găzduită. Deoarece numărul de elemente posibile și lungimea combinației la etapa de setare nu este definită, soluția recursivă sugerează el însuși. Și ce găsesc pe subiect? Nimic pentru 1c, ci mai multe implementări diferite despre Sime, Delphs și chiar VBA.

Ei bine, cred - este necesar să se traducă. Tradus la 1c. Dar era necesar ca combinațiile rezultate să fie fără repetări ale aceluiași element. A început adăugarea și editarea. Ca urmare, nimic nu rămâne din algoritmul inițial, iar realizarea însăși a devenit mai scurtă decât a fost oferită pe C, și chiar cu o opțiune suplimentară fără a repeta elemente în posibilele combinații.

Funcția însăși:

// Mellents - o serie de elemente arbitrare care formează o combinație. Arbitrar. // Lengstores - numărul de elemente în combinație. Întreg. // Performanță - un semn al necesității de a obține ca rezultat al unei combinații în care același element al corpului ar fi îndeplinit mai mult de 1 timp. Booleo. Implicit - False. Funcția de permutare (meliuri, presetări de lungime, diagrame \u003d falsă, bază \u003d nedefinită, mezzanom \u003d ignorant, debit \u003d 0) export dacă baza \u003d este pe termen nelimitat de bază \u003d o matrice nouă; Dacă Messural \u003d este pe o perioadă nedeterminată, megul \u003d o nouă matrice de încheiere; Dacă curge< ДлинаПерестановки - 1 Тогда Для Каждого Элемент Из мЭлементов Цикл Если БезПовторов И НЕ Основание.Найти(Элемент) = Неопределено Тогда Иначе Основание.Добавить(Элемент); мРезультата = Перестановки(мЭлементов, ДлинаПерестановки, БезПовторов, Основание, мРезультата, ТекУровень + 1); Основание.Удалить(Основание.Количество() - 1); КонецЕсли; КонецЦикла; Иначе Для Каждого Элемент Из мЭлементов Цикл Если БезПовторов И НЕ Основание.Найти(Элемент) = Неопределено Тогда Иначе Основание.Добавить(Элемент); мРезультата.Добавить(Новый ФиксированныйМассив(Основание)); Основание.Удалить(Основание.Количество()-1); КонецЕсли; КонецЦикла; КонецЕсли; Возврат мРезультата; КонецФункции

Pentru argumente, toată lumea, sper, este de înțeles din descriere. Conform rezultatelor: La ieșire obținem o serie de matrici fixe. Matricea fixă \u200b\u200beste o combinație posibilă, iar numărul de elemente ale matricei rezultate și există o serie de combinații (posibile) găsite. Fiecare matrice fixă \u200b\u200bconstă în lungimea elementelor de interpretare a matricei Mellert - adică există un fel de elemente ale setului inițial de valori. Sau una dintre combinațiile posibile.

Lucrul evident, dar încă avertizează. În cazul în care pre-abstinența în argumente va fi mai mare decât numărul de elemente din gama de poetoare, iar starea unicității va fi adevărul, ca rezultat veți obține o serie minunată, dar o gamă largă de rezultate. De ce? Da, pentru că este imposibil să se colecteze de la x elemente posibile o combinație în Y, fără a repeta, dacă x

Utilizarea matricelor în 1c ajută la simplificarea elementelor utilizate în lucrare.

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

  • Selectarea valorilor.
  • Triere. Fiecare poziție din matrice i se atribuie un indice. E mai ușor de căutat. Și vă puteți referi la obiect prin scrierea numărului său.
  • Combinați și salvați înregistrările.
  • Separarea grupurilor, crearea unui substring.
  • O matrice este obiectul în sine. O variabilă va fi legată de ea. Vă puteți referi la părțile individuale sau puteți utiliza în întregime în proceduri. De exemplu, puteți combina grupul de valori ale "angajaților N" și faceți numele și numele lucrătorilor.

Să tragem o analogie. Imaginați-vă o bibliotecă. Cărțile din acesta sunt plasate pe diferite "celule". Dacă păstrați contabilitatea, veți ști unde se află fiecare obiect. Și fără ea, o veți obține. Dar dacă cărțile, revistele și ziarele sunt împrăștiate aleatoriu pe masă, căutarea lucrurilor dorite va întârzia. Deși acest lucru nu reflectă toate posibilitățile de colecții unice.

Creatură

Lucrul cu matricele 1C începe cu crearea lor. Aveți nevoie de o "scenă" - câmpul în care veți introduce codul.

  1. Deschideți configuratorul ("configurare").
  2. Faceți clic dreapta pe elementul "procesare".
  3. Selectați "Adăugați".
  4. Submeniul "Prelucrare1" va apărea. Evidențiați-o. Informațiile despre acesta vor fi afișate în spațiul de lucru.
  5. În fila "Main", introduceți "NAME". Să spunem "Testsiv".
  6. Deschideți secțiunea "Formulare".
  7. Faceți clic pe pictograma sub formă de geam de lupă.
  8. Verificați opțiunea "Formular de procesare".
  9. Faceți clic pe "Gata".
  10. Se deschide fereastra cu trei cadre. În partea dreaptă sus, mergeți la fila "Comenzi".
  11. Pictograma sub forma unui plus pentru a adăuga o poziție.
  12. Apare "Team1". Evidențiați-o.
  13. În câmpul "Nume", introduceți numele. De exemplu, "Testarea". Copiați-l în "antet".
  14. În șirul de acțiune ", faceți clic pe geamul de lupă.
  15. Elementul "creați pe client" și "OK".
  16. Aici este un modul în care poate fi introdus 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. Faceți clic pe fila "Formulare". Ea este în jos.
  2. Faceți clic dreapta pe "panoul de comandă".
  3. "Adăugați-butoane".
  4. Vino cu numele ei. Sau puteți lăsa implicit emis.
  5. În câmpul "Numele de comandă", faceți clic pe pictograma sub forma unui punct.
  6. Selectați "Testarea". Dacă ați sunat în mod diferit echipa, va exista un antet diferit.

Acum puteți continua să lucrați cu colecții. Dar nu credeți că în 1c puteți descompune imediat șirul în matrice. Este mai bine să începeți cu ceva mai ușor. Deși toate funcțiile sunt un set de operatori pe care trebuie doar să vă amintiți.

  1. Deschideți fila "Modul".
  2. Textul care merge după două feluri de mâncare oblică (două stivuite - "//") poate fi șters. Se pare că acest "// introduceți conținutul manipulatorului." Aceasta este o explicație. Acestea sunt scrise de programatori pentru a nu se confunde în cod.
  3. Scrieți textul între procedura operatori "și" controlul final ".
  4. Acum creați un set de valori. Veniți cu o variabilă care va fi indicată condiționat. Să presupunem că "FirstMassive".
  5. Trebuie să fie asociată cu obiectul. Pentru a face acest lucru, introduceți comanda "Prima potrivire \u003d noua matrice ()". Aceasta este o colecție în care poate fi un număr nelimitat de elemente. Dacă aveți o dimensiune fixă, specificați-o după comanda în paranteze "Noua matrice (5)". În consecință, colecția bidimensională va arăta ca o "nouă matrice (7, 5)". Puteți crea seturi multidimensionale.
  6. Când introduceți, pot apărea sfaturi care oferă operatori adecvați.
  7. Cuvintele diferă în culoare. În variabile variabile, funcțiile sunt diferite.
  8. După fiecare comandă, puneți un punct cu o virgulă ";". Și pentru comoditate, începeți cu un nou paragraf.
  9. Cu un set gol, nu puteți face nimic. Nici raționalizarea, nici ieșirea și nici nu descompune linia într-o matrice în 1c. Prin urmare, este necesar să se introducă elemente în ea.
  10. Introduceți "Primassiune. Adăugați (valoarea1);". Apoi "Prima potrivire. Adăugați (valoarea2);" etc.
  11. Obiectele sunt numerotate de la zero. Aceasta este, variabila "valoare1" va fi atribuită indexului "0". Puteți completa colecția cu "valoare0" pentru a nu confunda.

Ce este totul? Și de ce este butonul misterios "? Să încercăm să conducem o simplă funcție.

  1. Sub colecția, scrieți raportul de comandă "(prima potrivire);" În paranteze pătrate, indicele elementului este specificat. Adică adresa "valorii" noastre.
  2. Formatați modulul. Aceasta este o inspecție pentru erori. În blocuri mari, puteți defecta ceva neatenție: nu puneți un punct cu o virgulă, nu închideți suportul, este greșit să scrieți o variabilă. Compilatorul va indica acest lucru.
  3. Apăsați butonul în forma semnului "PLAY" (Triunghi într-un cerc) pentru a lansa programul pe care l-ați scris.
  4. Faceți clic pe "Service" și selectați butonul.
  5. Apasă-l.
  6. Apare "valoarea0". Acesta este rezultatul funcției.

Cea mai simplă operație este afișată astfel încât să înțelegeți cum funcționează deloc matricele. Cu ele puteți crea programe complexe și multi-nivel. Afișați obiecte, sortați, ștergeți repetările, conectați-vă la un set de substring, îmbinați, divizi, căutați informații. Trebuie doar să cunoști operatorii.

Funcții

Toate funcțiile disponibile sunt în directorul de program. Listează câteva pentru a arăta principiul.

Cum de a transforma o matrice de 1c la șir:

Testmissive \u003d Noua matrice (4);
Testul \u003d IT;
Testul \u003d se face;
Testul \u003d astfel;
Strinkatest \u003d valoare industrială (testMassiv);
Raport (erupție stricată);

Ieșire la "buton" și obțineți fraza. Aceasta poate face parte dintr-un modul mare - în acest caz, operatorul "Raport" nu este necesar.

Pentru a pune o linie într-o serie de substring în 1c, aveți nevoie de un separator. Eticheta condiționată după care textul va împărtăși. Să presupunem că există cuvântul "protocol". Și vom livra separatorul "O". Introduceți comanda "Testmissive \u003d amestecare de expediere (protocol," O ");" Se pare separat "PR", "T", "K" și "L". Separator de abur. Și cuvântul este împărțit în câteva substring.

Acesta este modul în care poate fi aplicat în practică. Aveți o matrice cu numele complet. Și aveți nevoie de faptul că atunci când alegeți o poziție, câmpurile "prenume", "numele" și "patronimic" sunt completate automat. Pentru aceasta, numele trebuie împărțit în trei componente. Utilizați "spațiul" ca separator.

În mod tipic, un modul complex este utilizat pentru acest lucru: un ciclu cu un număr mare de operatori. Blocurile ciclice cu starea sunt construite în conformitate cu principiul "dacă (condiție), apoi (acțiune1), altfel (acțiunea2)." Inițial, programul verifică dacă starea este efectuată. Dacă da, începe prima funcție. Dacă nu - al doilea.

Ciclul va verifica fiecare personaj din șir. Dacă nu există niciun separator, continuă. Dacă există un separator, acesta adaugă o valoare unui set de substring. Alți operatori pot fi utilizați acolo: de exemplu, "Sokrlp" - o reducere a anumitor semne spre dreapta și spre stânga șirului.

Fiecare modul trebuie să "termină", \u200b\u200bastfel încât utilitarul să oprească procedura. În ciclu cu "dacă" acest operator este "încheiat". Pe ciclu fără condiții - "Endcycle". Fiecare funcție trebuie completată separat.

Căutați și sortare

În colecții poate exista o cantitate imensă de date. Trebuie să învățați cum să le căutați și să sortați.

Pentru a începe o căutare într-o matrice în 1c, utilizați operatorul "Găsiți". Puteți găsi valoarea dorită și vizual. Dar dacă există sute de elemente, este mai bine să creați un modul suplimentar și să rulați subrutina. Afișați exemplul unei funcții simple. Dar se va potrivi oricăror blocuri.

Masiv \u003d matrice noi (3);
Masiv \u003d "telefon";
Masiv \u003d "laptop";
Masiv \u003d "computer";
Index \u003d arme. Init ("telefon");
Dacă indicele \u003c\u003e este incert atunci
Raport ("căutare completat" + masiv [index]);

Și nu uitați să puneți "operatorul final".

Colecția este depusă, de exemplu. Am creat un set de trei valori. Și a făcut un ciclu mic. Dacă utilitarul nu găsește un element adecvat, acesta va da mesajului "nedefinit". Dacă detectează, rezultatul va apărea.

Sortarea masivului 1c este pur și simplu indispensabilă atunci când lucrați cu o cantitate mare de date. În ele, trebuie să navigați cumva. Este mai bine să le plasați într-o ordine definită. Să presupunem că aveți o colecție "Vashmassiv". Pentru ao aduce "în ordine"

Test List \u003d Noua listă de cazare;
Lista de testare. Personalizări (Vashmassiv);
Listă de testare. Sortiment de conștientizare (separare direcțională.
Vashmissive \u003d lista de testare. Închiderea video ();

În loc de "dur" puteți pune "descendenți". Rezultatul poate fi, de asemenea, descărcat în tabelul de valori:

TestTlack \u003d Mese noi;
Testarea. Coloana. Adresa ("Coloana");
Test-tellack. Drinkscutton (Vashmassiv, "coloană");
Testtytable.suitable ("coloana descendent");
Vashmissive \u003d Testytable. Maglipchatka ("Coloana")

Există, de asemenea, metode complexe de sortare: "Bubble", "Fast", "agitator", "recursie". Au algoritmi multi-nivel și lung.

Tabele și liste

Informațiile pot fi trimise între diferite tipuri de colecții. Pentru a transfera la 1c o matrice în tabelul de valori:

MASSIVETEF \u003d matrice noi;
Masiv și adăugat ("smartphone");
Masiv, adăugați ("comprimat");
Massigref. Addly ("telefon");
Tablete \u003d mese noi;
Tabletavest. Colorate. Adauga ("Mobile");
Tabeltavest. Addly ();
Tabeltavest. Addly ();
Tabeltavest. Addly ();
Tabletavest. Suficiente (telefoane mobile "masive");
Pentru fiecare rând din ciclul de gunoi de masă
Raport (șir. Mulțimi);

Nu uitați să puneți un operator de terminare a ciclului la sfârșit.

Conversia la matricea 1c la lista de valori este complet simplă. Este suficient doar pentru a încărca date de la o colecție la alta.

Latenps \u003d Noua listă de cazare ();
Iubesc.bublicațiile (Vashviv);

În programare, o problemă poate fi rezolvată în moduri diferite. Și 1c nu este o excepție. Algoritmi liniari, cicluri, cicluri cu o afecțiune, cicluri cu un metru. Multe opțiuni. Pentru a naviga în matrice, aveți nevoie de anumite abilități în 1c.