1c pronađite vrijednost u nizu. Kako kreirati fiksni niz

Dom / Operativni sistemi

1C niz je jednostavan skup vrijednosti. Možete dodati vrijednosti različitih tipova u jedan 1C niz. Nakon dodavanja, prisutnost vrijednosti u 1C nizu može se provjeriti pomoću ugrađene pretrage.

Niz 1C se često koristi:
A) Za odabir
B) Da biste spremili listu vrijednosti kako biste je dalje koristili, na primjer, proslijedite je kao parametar funkciji/proceduri.

Rad sa 1C nizovima

Kreirajmo 1C niz od 2 vrijednosti:
Niz = Novi niz(); //niz bez fiksnog broja vrijednosti

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

//prolazimo kroz svaku vrijednost 1C niza, bez obzira koliko ih ima

Izvještaj(vrijednost);
EndCycle;

Kreirajmo 1C niz od 10 vrijednosti:
Niz = Novi niz(10); //niz s fiksnim brojem vrijednosti
RNG = NewRandomNumberGenerator(); //popunit ćemo nas slučajnim brojevima

//indeks niza počinje od nule, a ne od jedinice
//10 komada je od 0 do 9
Za Sch = 0 do 9 ciklusa
//pristup nizuImeArray[Index]
Niz[RNG] = RNG.Slučajni broj(0, 1000); //slučajni broj od 0 do 1000
EndCycle;

//petlja kroz svaku vrijednost niza, bez obzira koliko ih ima
Za svaku vrijednost iz ciklusa niza
Izvještaj(vrijednost);
EndCycle;

//napomena - postoji 10 vrijednosti niza, to znači da ih ima 10 prema zadanim postavkama i svaka vrijednost je NEDEFINisana dok ne postavimo drugu
//ovo ne znači da ne možemo dodati drugu vrijednost, 11e, koristeći ArrayName.Add();

Višedimenzionalni niz

Kreirajmo višedimenzionalni 1C 2x2 niz. Višedimenzionalni niz je 1C, što znači da svaka ćelija 1C niza ne sadrži vrijednost, već i 1C niz.

1C višedimenzionalni niz ne mora biti fiksiran. Napravimo višedimenzionalni 1C 2x2 niz bez navođenja fiksnog broja vrijednosti:

Kreiranje 1C niza od nule

Dobijanje podataka je postupak koji zahtijeva vrijeme i resurse. Stoga, ako trebate raditi s primljenim podacima više puta, ima smisla da ih jednom primite i spremite u 1C niz kako biste dalje radili s već primljenim i spremljenim podacima.

Na primjer, linija verzije programa izgleda ovako: “11.0.9.5” - četiri broja razdvojena tačkama. Verziju možemo prevesti u "kompjuterski" format - niz od četiri numeričke vrijednosti. Zatim možemo dalje međusobno upoređivati ​​verzije:

Dobijanje gotovog 1C niza sa podacima

1C niz se može dobiti iz liste vrijednosti pomoću metode spList.UnloadValues() i iz tablice vrijednosti pomoću metode tableTable.UnloadColumn().

U primjeru ispod, pravimo upit - biramo sve veze dokumenata iz baze podataka.

  • RequestResult = Request.Execute() //izvršava zahtjev
  • tzResult = Query Result Upload() //prenosi rezultat u tablicu vrijednosti
  • mArray of Links = tzResult.UnloadColumn("ColumnName") //otčitava kolonu tabele u niz

Dobivanje 1C niza od drugih objekata i korištenje kao selekcija u zahtjevu

Kada se lista dokumenata (ili tabela vrijednosti) nalazi na obrascu, korisnik može odabrati jedan red pomoću kursora. Također možete dozvoliti da se istovremeno odaberete više linija. Da biste odabrali više redova (ako obrazac to ne dozvoljava), trebate držati pritisnutu tipku CTRL ili SHIFT.

Dodajte tablicu vrijednosti u debeli obrazac klijenta i odaberite DocumentList.DocumentName kao njen tip. U njegovim svojstvima odaberite način odabira – višestruki.

Programski možemo dobiti listu odabranih nizova:

Ako koristite upravljani obrazac, tada morate prvo dodati atribut obrasca s tipom DynamicList i u njegovim svojstvima odabrati glavnu tablicu - potreban dokument. Prevucite rekvizite na formu. U svojstvima elementa obrasca (!) također odaberite – način odabira – višestruko (podešeno na ovaj način).

Pristup 1C nizu odabranih nizova će izgledati ovako:
Elements.FormAttributeName. Odabrani redovi

O čemu je ovaj članak?

Ovaj članak nastavlja seriju članaka „Prvi koraci u razvoju 1C“. Pokriva principe rada sa univerzalnim kolekcijama. Nakon čitanja članka naučit ćete:

  • Šta su univerzalne kolekcije i kada i u kojim slučajevima ih treba koristiti?
  • Šta je zajedničko svim univerzalnim kolekcijama? Koje tehnike možete koristiti za rad sa svima njima?
  • Šta je niz, kako i kada ga koristiti? Koje metode ima?
  • Zašto koristiti strukturu? Po čemu se razlikuje od niza?
  • Kada biste trebali koristiti listu vrijednosti? Kako to prikazati na obrascu?
  • Usklađenost – šta je to i kada je koristiti? Koje su prednosti u pogledu strukture?
  • Za šta se koristi tabela vrijednosti? Kako opisati njegovu strukturu? Kako dodati/ukloniti linije? Kako to prikazati na obrascu?
  • Stablo vrijednosti - čemu služi? Kako popuniti i prikazati obrazac? Kako raditi s tim?

Primjenjivost

Članak govori o platformi 1C:Enterprise 8.3 trenutnog izdanja.

Kako raditi s univerzalnim kolekcijama u 1C

Zbirka vrijednosti je kontejner koji obično može sadržavati bilo koji broj elemenata. Međutim, često ne postoje stroga ograničenja za tip podataka.

Možete dodati vrijednosti u generičku kolekciju. Sve vrijednosti u kolekciji se mogu preći. Ove kolekcije se uglavnom koriste za neku vrstu obrade u algoritmima. One. Ovo su neke dinamičke strukture koje postoje dok algoritam radi.

Važno je shvatiti da se zbirke ne pohranjuju u bazi podataka (ne govorimo o tipu podataka Skladište vrijednosti, koji može pohraniti gotovo sve vrste podataka).

Postoje različite vrste generičkih kolekcija: niz, struktura, podudaranje, fiksni niz, tablica vrijednosti, Tablični dio itd. Ali sve kolekcije imaju slično ponašanje.

Kolekcija se može kreirati kao rezultat operacije funkcije (funkcija vraća univerzalnu kolekciju kao vrijednost).

Može se dobiti nova kolekcija ručno pristupanjem konstruktoru i kreiranjem instance klase.

na primjer: NašArray = Novi niz;

Konstruktori za mnoge generičke kolekcije su parametrizirani.

Dakle, u konstruktoru za Možete odrediti broj članova u odgovarajućim dimenzijama. One. možete odmah proglasiti višedimenzionalnim .

Odgovarajući opis konstruktora nalazi se u pomoćniku za sintaksu.

Dakle, koristeći parametre konstruktora, možete odmah postaviti željeno ponašanje datog objekta.

Ali parametri su opcioni, programer ih ne može podesiti i dalje definirati ponašanje niza kako on smatra prikladnim.

Gotovo svaka univerzalna kolekcija može se kreirati pomoću konstruktora (izuzetak su dijelovi tablice, koji djeluju kao konfiguracijski objekti).

Za univerzalne kolekcije postoje uobičajeni koncepti kao što su indeks i broj. Svaki element kolekcije ima indeks. U ovom slučaju, indeks počinje od nule.

Za pristup elementu OurArray, možete koristiti pristup indeksu za ovo, indeks je naznačen u uglastim zagradama.

na primjer, OurArray. Imajte na umu da u ovom slučaju sistem vraća element niza sa indeksom 3, a po redu je to četvrti element niza.

Za neke kolekcije postoji i koncept broja reda. Broj linije počinje sa jedan. Na primjer, za tabelarni dio postoji takva osobina kao što je broj reda. Važno je imati na umu da ako znamo broj reda i želimo pristupiti po indeksu, onda kao indeks treba koristiti vrijednost jedan manju od broja reda.

Koncept broja reda ne postoji u svim zbirkama, već uglavnom u onima koje se mogu prikazati u korisničkom interfejsu.

Sve kolekcije koriste obilazak elementa kolekcije. Zaobići je moguće na dva načina: ciklus Za I ciklus Za svaki od.

Metode koje se primjenjuju na većinu generičkih kolekcija su Count, Index, Add, Insert, Delete i Find.

Count je funkcija koja vraća broj elemenata u kolekciji. Može se koristiti prije ciklusa Za, kao što je prikazano na slici.

Metoda Index ne postoji za sve kolekcije, već samo za one čiji se elementi mogu referencirati. Primjer je Tabela vrijednosti.

Tabela vrijednosti– ovo je posebna kolekcija redova, redovi mogu sadržavati različite stupce različite vrste vrijednosti.

Svaka linija predstavlja nezavisni entitet. Možete dobiti vezu do njega kroz ovu liniju možete pristupiti vrijednostima stupaca u ovom redu.

Metoda Index vam omogućava da odredite koji indeks odgovara datom redu (tj. trenutnoj poziciji reda u tabeli). Vrijednosti indeksa počinju od nule.

Gotovo svaka univerzalna kolekcija ima metode za dodavanje novih vrijednosti datoj kolekciji. Slika pokazuje kako popuniti niz vrijednostima od 0 do 10 na dva načina.

Za dodavanje elementa u niz možemo koristiti metodu Dodaj, naznačite vrijednost koju treba dodati u zagradama. U ovom slučaju, vrijednost će biti dodana na kraj liste, tj. Niz će se stalno povećavati zbog posljednje pozicije.

Druga metoda koja vam omogućava da dodate vrijednosti u kolekciju je Insert. Razlikuje se od metode Dodaj u kojoj možete odrediti gdje da umetnete dodani element.

sintaksa: umetnuti (,)

Prvi parametar specificira indeks u koji će se umetnuti nova vrijednost. One. na primjer, možemo odrediti da svaka vrijednost treba biti umetnuta na početak liste (drugi metod na gornjoj slici).

Da biste uklonili elemente iz kolekcije, koristite metodu Izbriši. Metoda Delete određuje indeksom koji element ćemo obrisati.

sintaksa: Izbriši()
Primjer upotrebe: OurArray.Delete(5);

Treba napomenuti da za one kolekcije u kojima nizovi predstavljaju nezavisni entitet (na primjer, for Tabele vrijednosti), također možemo koristiti metodu dobivanja indeksa kako bismo kasnije izbrisali ovaj red.

Gotovo sve kolekcije imaju metodu za traženje vrijednosti - Nađi. Vrijednost koju želimo pronaći se prosljeđuje metodi. Neke kolekcije vam omogućavaju da postavite neka ograničenja.

Na primjer, u Tabela vrijednosti Možete odrediti redove i stupce u kojima želite pretraživati.

Ako je vrijednost pronađena, ova metoda vraća indeks ili navedeni string. Ako vrijednost nije pronađena, vraća se vrijednost tipa Nedefinisano. U odnosu na niz, vraća Indeks, ili vrijednost Nedefinisano.

Primjer upotrebe: NašaVarijabla = NašArray.Find(8);

Univerzalne kolekcije se mogu vrlo brzo izbrisati, tj. ukloniti apsolutno sve elemente. U tu svrhu se koristi metoda Clear(), koji uklanja elemente niza, redove Tabele vrijednosti, ili podatke iz drugih zbirki.

Dodatne metode za niz

Metoda BBorder() vraća broj elemenata minus jedan. One. ako koristimo petlju Za, tada umjesto metode količine možemo odmah koristiti metodu Border().

Konkretno, varijabla QuantityInArray bi se mogla definirati drugačije:

QuantityInArray = OurArray.InBorder();
Zatim, kada se opisuje sam ciklus, ne treba se oduzimati od ove varijable.

Metoda Set vam omogućava da dodijelite vrijednost elementu niza po indeksu.

sintaksa: Instaliraj(,)

primjer: NašArray.Set(2,8);

Alternativa: NašArray = 8;

Možete koristiti metodu za niz Get, za čitanje vrijednosti u indeksu bez pribjegavanja korištenju uglastih zagrada.

sintaksa: Get()

primjer: NašaVariable = OurArray.Get(2);

Alternativa: NašaVarijabla = NašArray;

Univerzalna kolekcija Struktura

Struktura, kao i niz, može imati neograničen broj elemenata, ali sadržaj elementa se razlikuje od niza.

Struktura je kolekcija, čija se svaka vrijednost sastoji od para. Prvi element para se zove Ključ. Drugi element para je Značenje.

Ključ je strogo string tip podataka koji opisuje vrijednost. na primjer, Do ključa"Šifra" može odgovarati vrijednosti 113; Do ključa“Ime” znači “Vasja”. Sama vrijednost ne podliježe ograničenju tipa podataka.

Struktura je vrlo zgodna za korištenje ako želimo kreirati određenu listu parametara. Ako ovo Struktura pozvao OurStructure, tada ćemo se odnositi na njegove dvije vrijednosti na sljedeći način: OurStructure.Code i OurStructure.Name.

Ovakav pristup je mnogo praktičniji nego da smo definirali sve parametre u nizu i pristupili im po indeksu.

Struktura čini programski kod čitljivim (razumljivim). Struktura se koristi prilično često, mnogo češće od niza.

Koristi se za opisivanje određenih parametara kojih u svim algoritmima često ima prilično velik broj.

Osim toga, struktura se koristi ako procedura i funkcija sadrže veliki broj proslijeđenih parametara.

Tada je mnogo zgodnije upisati sve parametre u strukturu i proslijediti ih dalje. One. parametri procedura i funkcija su „upakovani“.

Odvojeno, treba napomenuti da kao Ključ U strukturi se ne može pojaviti apsolutno nijedna linija. Primjenjuju se određena ograničenja.

Ključ treba da služi kao identifikator. To znači da u Klyuche ne smije biti razmaka i ne može početi brojem.

Prihvatljiv početak Ključ sa slovom ili donjom crtom. dakle, Ključ moraju zadovoljiti zahtjeve za kreiranje identifikatora.

Zapazimo kako se drugačije struktura razlikuje od niza. U strukturi postoji metoda Insert, postoje dvije metode za umetanje u niz: Insert(na određenu poziciju) i Dodaj(do kraja liste). U nizu su svi elementi poredani.

Struktura je vrsta neuređenog skupa. Zbog toga postoji samo metoda umetanja za strukturu.

Vrijednost se ne ubacuje na određenu poziciju, već u navedeni skup. Strukturi se ne može pristupiti preko indeksa, kao drugim generičkim kolekcijama.

Elementima strukture se pristupa samo po imenu ključa. Međutim, petlja For Each također radi za strukturu, ali se ne biste trebali oslanjati na redoslijed elemenata strukture.

Struktura se kreira na isti način kao i druge generičke kolekcije pomoću konstruktora New, specificirajući tip podataka Struktura.

Kao i niz, konstruktor strukture može imati parametre. One. moguće je opisati sam sadržaj strukture koristeći konstruktor.

Za razliku od niza, gdje možete jednostavno odrediti broj elemenata za sve dimenzije, u strukturi možete specificirati sam sadržaj.

na primjer: Naša struktura = Nova struktura (“Šifra, ime”, 133, “Vasya”);

Razdvojeni zarezima, prvo se navode nazivi ključeva, a zatim, u skladu s tim, istim redoslijedom, vrijednosti parametara.

Postoji metod za dodavanje nove vrijednosti u strukturu Insert, koji umeće novi par (ključ i vrijednost).

na primjer: OurStructure.Insert(“Članovi porodice”,3);

Strukturu karakteriše još jedan metod koji se često koristi. Ovo je metoda Nekretnina.

Koristeći ovu metodu, možete razumjeti da li postoji element u ovoj strukturi čiji ključ ima takvo i takvo ime.

Ako takav element postoji, sistem će vratiti vrijednost True, in inače- Laži.

Na primjer, izraz OurStructure.Property (“Članovi porodice”)će biti jednaka vrijednosti True. Ova metoda se često koristi pri analizi strukture.

Kao i kod svake univerzalne kolekcije, svojstvima strukture je moguće pristupiti po indeksu. Ali indeks za strukturu je vrijednost niza.

na primjer: Izvještaj(Naša struktura[“Članovi porodice”]);

Međutim, ne treba zaboraviti da struktura nije uređen skup objekata, zbog čega je pristup po indeksu 0, 1, 2 neprihvatljiv.

Generička zbirka Lista vrijednosti

ListValues je linearna lista elemenata bilo kojeg tipa podataka.

Svaki element se sastoji od nekoliko vrijednosti. Šematski se lista vrijednosti može predstaviti kao lista sa četiri kolone.

Prva kolona - Mark. Ima Boolean tip podataka i omogućava korisniku da potvrdi ili poništi okvire.

Druga kolona je slika koja na neki način može vizuelno predstaviti ovaj element, tj. spojite ovaj niz sa slikom.

Treća kolona je sama pohranjena vrijednost, tj. ovo je bilo koja vrsta podataka i mogu se razlikovati u različitim redovima.

Četvrta kolona je prezentacija, tj. ovo je vrsta string opisa date vrijednosti. Pogled će biti prikazan korisniku kada pogleda ovaj element. U ovom slučaju, ako reprezentacija nije specificirana, sistem će pokušati dobiti reprezentacije za element koji se nalazi na ovoj poziciji.

ListValues– ovo je objekt s kojim korisnik može vizualno raditi. One. ListValues može se prikazati na obrascu.

Korisnik može izvršiti neke radnje s njim. pored ovoga, ListValues može se zaključiti nezavisno korišćenjem metoda, tj. prikazati na ekranu u nekoj grani algoritma (sa izuzetkom serverskog koda) tako da korisnik odabere neki red ili potvrdi neke okvire.

Naći ćemo ListValues u sitax asistentu. Konstruktor ListValues nije parametriran (ne možete postaviti nijednu zadanu vrijednost).

Postoje metode kao što su:

  • Insert(,) ;
  • Dodaj(,);
  • Količina();
  • Indeks().

Postoje i posebne metode, npr. UnloadValues(). Ovo stvara niz u koji se kopira lista vrijednosti. na primjer:

Niz elemenata = Lista tipova cijena.OutloadValues();

Postoji i obrnuta metoda:
ListPriceTypes.LoadValues(ArrayItems);

Postoje metode pretraživanja:
FindByValue(); FindByIdentifier().

Postoji metoda kopiranja:
ListCopy = PriceTypeList.Copy();
Ova metoda ima za cilj da napravi neku vrstu modifikacije na kopiji.

Postoje metode:
SortByValue();
SortByView().

Metode Odaberi stavku(,) I MarkItems() pozvati modalni dijaloški okvir koji zaustavlja izvršavanje algoritma sve dok korisnik ne zatvori prozor.

Za korištenje ovih metoda u svojstvima konfiguracije Način korištenja modaliteta mora biti postavljeno na Koristi.

Primjer koda pozvanog iz modula upravljane aplikacije:

Prikažite ovaj kod u korisničkom modu (modalni dijalog).

Ispod ListValues koristi se kao dostupan tip podatke za detalje obrasca. Kreiramo novi atribut za obrazac za obradu i definiramo njegov tip ListValues i prikazati na obrascu.

Stvaranje novog tima Ispunite poklone, prenesite ga u obrazac i definirajte rukovatelja radnjom za njega.

U korisničkom modu, kada kliknete na dugme Popuni poklone u obrascu za obradu, pojavit će se popunjena lista.

Po želji, lista se može uređivati: neki elementi se mogu dodati, neki se mogu ukloniti.

Raznovrsna usklađenost kolekcije

Ova kolekcija je veoma slična Struktura. Baš kao i struktura, podudaranje predstavlja skupove vrijednosti koji se sastoje od ključa i same vrijednosti.

Glavna razlika je u tome što se bilo koji tip podataka može specificirati kao ključ, kao i za vrijednost. S obzirom na ovu osobinu, potrebno je pristupiti vrijednosti podudaranja po indeksu;

Ključ može biti tip podataka koji nije niz. Svojstva i metode rada sa Compliance-om su skoro iste kao i kod Structure.

Konstruktor usklađenosti, za razliku od strukture, ne sadrži mogućnost specificiranja parametara.

Primjer upotrebe:

Prepiska je zgodna za korištenje kada trebate povezati bilo koje dvije strukture. Na primjer, svaki red tabelarnog dijela mora biti uparen sa redom iz tablice vrijednosti.
U ovom slučaju, red sekcije tabele se koristi kao ključ za podudaranje i odgovarajuća vrednost je naznačena.

Prilikom umetanja elemenata u kolekciju Match pored metode umetnuti(,) Drugi način umetanja vrijednosti je korištenje regularnog operatora dodjele.

na primjer: OurMatch = NewMatch;
Podudaranje = 999;

One. ako element nije bio prisutan u kolekciji, tada će biti dodan pomoću operatora dodjeljivanja, a ako je bio prisutan, bit će ažuriran.

Ovo je u suprotnosti sa strukturom.

Univerzalna zbirka vrijednosti

Tabela vrijednosti je tabela sa proizvoljnim brojem redova i proizvoljnim brojem kolona. Raskrsnica može pohraniti vrijednosti bilo kojeg tipa podataka. Po potrebi se mogu kucati kolone, odnosno možete odrediti u kojoj koloni se koji tip podataka pohranjuje.

Kolone možete ostaviti neupisane, tada se vrijednosti različitih tipova mogu pohraniti u jednu kolonu u različitim redovima.

Razlike Tabele vrijednosti iz dvodimenzionalnog niza:

  • ovo je objekt s kojim korisnik može raditi (tabela vrijednosti se može prikazati na ekranu, korisnik je može popuniti, a uneseni podaci se zatim mogu pročitati);
  • izgradnja indeksa za brzo pretraživanje;
  • kloniranje, popunjavanje cijele kolone određenom vrijednošću, istovar svih kolona u niz.

Tabela vrijednosti koristi se kao vrsta bafera za skladištenje informacija. Tabela vrijednosti se vraća i prihvata kao parametar od strane mnogih sistemskih metoda. Moguće je napraviti upit prema tablici vrijednosti.

dakle, Tabela vrijednosti sastoji se od skupa redova i niza kolona. I redovi i kolone su kolekcije.

One. unutar kolekcije Tabela vrijednosti postoje još dvije kolekcije. Okrenimo se pomoćniku za sintaksu i pronađimo Tabela vrijednosti.

Podržani tipovi podataka: sam Tabela vrijednosti, koji se sastoji od nizova. Svaki red je predstavljen tipom podataka RowTableValues, koji ima svoja svojstva i svoje metode. Dostupan Kolekcija vrijednosti stupaca tablice takođe ima određena svojstva.

Važna tačka! Procedura koja stvara Tabela vrijednosti, mora kompajlirati &OnServer.

Prije nego počnete raditi sa Tabela vrijednosti, morate odrediti koje će stupce sadržavati (tj. kreirati ih). sintaksa:

Dodaj(,)
(opciono)
Vrsta: String.
(opciono)
Tip: DescriptionTypes
(opciono)
Vrsta: String.
(opciono)
Tip: Broj.

na primjer:

Za pozivanje ove procedure koristićemo naredbu.

U opisu Tabele vrijednosti elementi kolekcije su upravo RowsTableValues.

Za razliku od kolona koje se sastoje samo od svojstava (Naziv, Vrsta, Naslov, Širina), in RowTableValues postoje i svojstva (pristup prema imenu kolone) i metode (možete dobiti i postaviti vrijednost, raditi sa vlasnicima).

Da biste dodali novi red u tabelu, potrebno je da koristite metod Dodaj(), ili Insert(). U drugom slučaju, trebali biste naznačiti na kojoj poziciji treba postaviti traženu liniju.

Da bismo dodijelili vrijednost stupcu, koristimo tačku za pristup imenu kolone ili indeksu (koristeći uglaste zagrade).

Za popunjavanje Tabele vrijednosti Mogu se koristiti sljedeće metode:

Clear()– za uklanjanje svih redova iz Tabele vrijednosti.

FillValues(,)– omogućava vam da popunite sve kolone ili odabrane kolone jednom vrijednošću.
LoadColumn(,)– učitava kolonu iz niza.
UnloadColumn()– učitava kolonu u niz.

Posljednje dvije metode su zgodne za korištenje kada trebate prenijeti kolonu iz jedne tablice vrijednosti u drugu.

Kopiraj(,)– omogućava vam da kreirate novu na osnovu postojeće tabele Tabela vrijednosti, i to ne svi redovi i svi stupci, već samo neki od njih. Povratna vrijednost – Tabela vrijednosti.

Možete kopirati strukturu Tabele vrijednosti. Za to postoji odgovarajuća metoda CopyColumns(). Dobićemo praznu Tabela vrijednosti sa potrebnom strukturom.

IN Tabela vrijednosti postoji metoda ukupno(). Možete odrediti kolonu u kojoj želite da zbrojite numeričke vrijednosti. U odnosu na prethodno prikazani kod u tabeli, možete izračunati vrijednost: TZ.Total (“Iznos”).

IN Tabela vrijednosti moguće je grupirati (sažmiti) numeričke vrijednosti po identičnim vrijednostima određenih kolona koristeći metodu Sažmi(,).

U odnosu na prethodno prikazani kod u tabeli, možete izračunati vrijednost: TK.Collapse(“Dan u sedmici”, “Iznos”).

Tabela vrijednosti može biti prikazan na korisnički ekran, tako da možete izvršiti bilo koju radnju s njim. Ali za razliku ListValues od programski kod Ne možete samo pozvati sto na ekranu.

Za prikaz Tabela vrijednosti na ekranu kreirajte atribut obrasca i dodijelite mu tip podataka Tabela vrijednosti.

Nakon toga, rezultirajuća tabela treba biti prikazana na obrascu.

U modulu obrasca na kraju prethodno sastavljenog algoritma (u proceduri za kreiranje tabele vrednosti) treba da dodate:
ValueInFormData(TK, Table);

Univerzalna kolekcija Drvo vrijednosti

univerzalna kolekcija koja je vrlo slična Tabela vrijednosti. Razlika od tabele je u tome što redovi stabla mogu biti podređeni jedan drugome, tj. može se formirati neka vrsta hijerarhije.

Ovo se takođe može odraziti na ekranu. Stablo vrijednosti se eksplicitno sastoji od kolekcije redova i kolekcije stupaca. Postoje dva svojstva u stablu: Redovi i Kolone.

Pošto redovi mogu biti podređeni jedan drugome, svaki red može imati Roditelja, kao i njemu podređeni redovi.

Kreirajmo odgovarajuću naredbu Tree i njenu proceduru obrade.

Kreirajmo u kojem se nalazi jedan roditeljski i dva podređena reda.

Kreirajmo atribute forme DerZn(tip podataka – Stablo vrijednosti).

Za ovaj atribut kreiraćemo kolone Godina i Mjesec.

Pomerite odgovarajući element DerZn na obrascu.

Na kraju Procedure TreeOnServer() dodajmo:

ValueInFormData(TreeZn, DerZn);

Hajde da proverimo šta se desilo u korisničkom režimu.

Koristeći dugme Dodaj možete dodati nove linije. Oni takođe mogu formirati hijerarhiju.

Da bismo prešli sve elemente stabla vrijednosti, morat ćemo koristiti rekurziju, tj. pozivanje procedure iz samog sebe. Na primjer, obrada stabla vrijednosti može izgledati ovako:

Ovo završava naše prvo upoznavanje sa univerzalnim kolekcijama.

U sljedećem članku ćemo pogledati koji važan mehanizam programer može koristiti da pojednostavi pristup elementu direktorija iz programskog koda.

Koncept "niza" se dugo koristi u programiranju i najčešće se podrazumijeva kao određena struktura u memoriji koja se sastoji od niza elemenata. Niz u 1C je najjednostavniji od univerzalnih kolekcija vrijednosti. Pored niza, univerzalne kolekcije uključuju:

  1. Lista vrijednosti (za razliku od niza, vrijednosti sa liste imaju reprezentaciju, implementirana je mogućnost sortiranja i prikaza kolekcije u interfejsu);
  2. Tablica vrijednosti je kolekcija koja ima stupce za prošireni opis vrijednosti, slična struktura se može dobiti izvršavanjem upita;
  3. Stablo je vrlo slično tablici, upotpunjeno strukturom podređenosti;
  4. Struktura – dinamički set imena i vrijednosti varijabli;
  5. Podudaranje - slično strukturi, samo se varijable ne podudaraju sa stringovskim reprezentacijama, već jedna s drugom.

Metode niza

Programsko kreiranje instance niza se dešava pomoću operatora New() (slika 1).

Kao što se može vidjeti iz gornjeg primjera, nizovi se mogu kreirati ili sa fiksnim brojem elemenata ili bez ovog ograničenja.

Prije nego počnemo raspravljati o metodama za rad s nizom, definirajmo dva koncepta:

  • Indeks elementa – može se predstaviti kao serijski broj jedne vrijednosti;
  • Broj elemenata – broj elemenata u kolekciji je dostupan pomoću metode Quantity().

Važno je znati: u 1C, brojanje vrijednosti bilo koje kolekcije počinje od 1, a distribucija indeksa od 0, odnosno, prvi element u nizu ima indeks 0. Dakle, prelazeći kolekciju pomoću petlje sa iteratorom treba početi od 0 i završiti sa brojem elemenata minus 1, inače će vas sistem obavijestiti o pojavi izuzetka pomoću prozora (slika 2).

Fig.2

Svaki konfiguracijski objekat ima svoje metode za rad, niz nije izuzetak, hajde da ih navedemo s nekim objašnjenjem:

  • InBorder() – pomoću metode možete dobiti maksimalni indeks za prazan niz vrijednost (-1) će biti vraćena;
  • Insert() – ova metoda ima dva parametra: indeks i vrijednost, indeks označava gdje treba umetnuti novi element u niz, dodana vrijednost može biti prazna;
  • Add() – ovaj način umetanja vrijednosti može se koristiti kada je postavljanje elementa nevažno uz njegovu pomoć, novi podaci će biti upisani na kraj postojećeg niza;
  • Find() – ako je uspješan, vraća indeks vrijednosti navedene u zagradama, u suprotnom vraća “Nedefinirano”;
  • Clear() – briše kolekciju;
  • Get() – čita podatke koji se nalaze u nizu na navedenom indeksu, može se zamijeniti uglastim zagradama;
  • Delete() – briše element sa navedenim indeksom;
  • Set() – zamjenjuje podatke u navedenoj ćeliji niza.

Jednodimenzionalni i višedimenzionalni nizovi

U najjednostavnijem slučaju, jednodimenzionalni niz može sadržavati vrijednosti različitih tipova (slika 3)

Fig.3.

Rezultat izvršavanja gornjeg koda je prikazan na slici 4

Fig.4

Tako smo dobili jednodimenzionalni niz koji se sastoji od vrijednosti stringa, veze do elementa direktorija i datuma. Štaviše, prilikom dodavanja elemenata koristili smo dva razne metode Add() i Insert(), da smo koristili metodu Add() prilikom dodavanja datuma, naš rezultat bi imao malo drugačiji izgled.

U srednjoj školi se uvodi koncept dvodimenzionalne matrice. Ovo je skup podataka, čiji svaki element ima dva indeksa (u najjednostavnijem slučaju, vertikalni i horizontalni serijski broj), što najbolje ilustruje koncept dvodimenzionalnog niza.

Prilikom kreiranja takve matrice, možete odrediti broj redova i stupaca koji će se koristiti.

Recimo da smo suočeni sa zadatkom kreiranja niza prezimena, imena i patronimija dvoje zaposlenih. Koristeći kod (slika 5), ​​kreiramo odgovarajući niz sa fiksnim brojem kolona i redova.

Fig.5

Da bismo ga prešli, potrebne su nam dvije petlje, u prvoj petlji prelazimo niz red po red, u drugoj raščlanimo liniju na elemente. To se može uraditi ili korištenjem ciklusa „Za svaki .... Od" (sl. 6)

Fig.6

Ili pomoću petlje sa iteratorom “For ... by” (slika 7)

Fig.7

U principu, broj dimenzija određenog niza može biti bilo koji, druga stvar je to u slučaju velika količina nivoa detalja, prilično je teško kreirati graditelja za čitanje podataka.

Korištenje niza

Nizovi u 1C najčešće se koriste za:

  1. Kreiranje različitih selekcija koje se koriste pri radu sa upitima i drugim zbirkama vrijednosti;
  2. Prenošenje lista kao parametara između procedura i funkcija;
  3. Razmijenite podatke sa vanjskim komponentama na koje su povezane koristeći COM tehnologije.

Naravno, ovo je daleko od potpune liste svrha u koje se može koristiti objekt „Niz“.

Niz u 1C je skup nekih vrijednosti. Vrijednosti u jednom nizu mogu biti različitih tipova.

Niz se može dobiti izvršavanjem različitih funkcija, npr. UnloadColumn() tablice vrijednosti; možete dobiti odabrane redove kao niz dinamička lista itd. Niz možete kreirati i ručno.

Kreiranje niza

1. Kako kreirati niz potrebne veličine

pArray = novi niz(4) ; //kreirao niz od 4 elementa

PMarray[ 0 ] = "Mi" ;
pArray[ 1 ] = "kreirano" ;
pArray[ 2 ] = "novo" ;
pArray[ 3 ] = "niz" ;

2. Kako napraviti prazan niz i dodati elemente u njega

pArray = novi niz; //kreirao prazan niz

//Unesite vrijednosti elemenata niza

PMassiv. Dodaj("Mi");


3. Kako kreirati višedimenzionalni niz.

Razmotrimo ovo pitanje na primjeru dvodimenzionalnog niza, jer se nizovi velikih dimenzija koriste mnogo rjeđe, a mehanizam njihovog rada ne razlikuje se od dvodimenzionalnog.

pArray = novi niz(4, 2); //kreirao niz 4x2

//Unesite vrijednosti elemenata niza, numerirajući svaku riječ

PMarray[ 0 ] [ 0 ] = "1."
pArray[ 0 ] [ 1 ] = "Mi" ;
pArray[ 1 ] [ 0 ] = "2."
pArray[ 1 ] [ 1 ] = "kreirano" ;
pArray[ 2 ] [ 0 ] = "3."
pArray[ 2 ] [ 1 ] = "višedimenzionalni" ;
pArray[ 3 ] [ 0 ] = "4."
pArray[ 3 ] [ 1 ] = "niz" ;

4. Kako kreirati fiksni niz

Fiksni niz se razlikuje od regularnog niza po tome što se ne može mijenjati. Ne možete dodavati, brisati ili mijenjati vrijednosti elemenata takvog niza.

Fiksni niz se može dobiti iz redovnog:

pArray = novi niz;

PMassiv. Dodaj("Mi");
pArray. Dodaj("kreirano") ;
pArray. Dodaj("novo") ;
pArray. Dodaj("niz") ;

FArray = novi FixedArray(pArray) ; // kreirao fiksni niz

Funkcije za rad sa nizovima

Razmotrit ćemo rad funkcija na primjeru jednodimenzionalnog niza pArray, kreiran iznad i sastoji se od 4 elementa:

  1. "stvorio"
  2. "novo"
  3. "niz".
Funkcija VBorder()

Dobiva najviši indeks elementa niza. Uvijek je jedan manji od broja elemenata niza.

Indeks = pArray. BBorder() // 3;

Insert() funkcija

Umeće vrijednost u element niza na navedenom indeksu. Naredni elementi niza se pomjeraju

pArray. Insert(3, "nova vrijednost") //Sada se niz sastoji od 5 elemenata

Funkcija Add()

Kreira novi element na kraju niza i tamo ubacuje datu vrijednost

pArray. Dodaj("." ) // dodao tačku na peti element niza;

Funkcija Količina()

Vraća broj elemenata niza.

pArray. Količina() ; // 4

Funkcija Find().

Pretražuje niz za dati element. Ako se pronađe, vraća svoj indeks. Ako nije pronađen, vraća se Nedefinisano.

Indeks = pArray. Find("niz") ;
// 3 Indeks = pArray. Pronađi("linija koja nije postojala"

) ;

// Nedefinirano

Clear() funkcija

Uklanja sve vrijednosti iz niza.

pArray. Clear() ;

Funkcija Get().
Dobiva vrijednost niza po indeksu. Isti problem se može riješiti korištenjem .

Vrijednost = pArray. Get(3) // "niz"

Vrijednost= pArray[ 3 ];

// "niz"

Delete() funkcija

Uklanja element niza po indeksu

pArray. Izbriši(3) ;
Skup funkcija()

Postavlja vrijednost elementa niza po indeksu. Radi na isti način.

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

pArray[ 3 ] = "niz!" ;
Kako preći niz
Možete iterirati sve elemente niza bez navođenja indeksa:

Za svaki element niza iz pArray petlje

Izvještaj(Element niza) ;
EndCycle ;
Možete iterirati sve elemente niza bez navođenja indeksa:

Možete koristiti indeks prilikom prelaska:

Za Index= 0 od strane pArray. BBorder() petlja

Izvještaj(pArray[Indeks]);
Kako preći višedimenzionalni niz
Višedimenzionalni niz se prelazi pomoću istih petlji (vidi gore), ali jedna petlja mora biti ugniježđena u drugu.
Možete iterirati sve elemente niza bez navođenja indeksa:
Možete iterirati sve elemente niza bez navođenja indeksa:

Za svaki Element1 ciklusa mArray

Za svaki Element2 ciklusa Element1

Izvještaj(Element1) ;
Ili pomoću indeksa.
mArray= novi niz(3, 4);
Možete iterirati sve elemente niza bez navođenja indeksa:
Možete iterirati sve elemente niza bez navođenja indeksa:

Za Indeks1 = 0 po mArray. BBorder() petlja

Za Index2 by mArray[Index1] . BBorder() petlja Izvještaj(mArray[Indeks1] [Indeks2]) ;

Sortiraj niz Da sortiramo niz, potreban nam je pomoćni objekat tipa
ListValues. ValueList = nova ValueList;
// kreiramo listu vrijednosti ListValue. LoadValues(pArray) ;
// učitava vrijednosti iz niza u listu ListValue. SortByValue(SortDirection.Age) ;
// sortiraj uzlaznim redoslijedom // izbaci sortirane vrijednosti nazad u niz

Poređenje dva niza

Prije nego što pređemo na opis funkcije poređenja, složimo se da se nizovi smatraju identičnim ako imaju isti broj elemenata i ako su odgovarajući elementi nizova jednaki. Zatim za usporedbu možete koristiti sljedeću funkciju (usput, takva funkcija je već prisutna u nekim standardnim konfiguracijama):

Funkcija CompareArrays(Niz1, Niz2)

Ako je niz1. Količina()<>Niz2. Količina() Zatim
return FALSE; // Nizovi nisu jednaki, nema smisla upoređivati ​​elemente.
EndIf ;

Za indeks= 0 po nizu1. BBorder() petlja
Ako niz1[indeks]<>Niz2[Indeks] Zatim
Return False ; //ovi elementi nisu jednaki, što znači da nizovi nisu jednaki
EndIf ;
Možete iterirati sve elemente niza bez navođenja indeksa:

Return True ; // Ako ste stigli ovdje, onda su nizovi jednaki
EndFunction

Morate proslijediti 2 niza da biste uporedili sa funkcijom. Funkcija vraća vrijednost Istina, ako su nizovi jednaki, i Lazi, ako nije jednako.

Upotreba nizova u 1C pomaže u organizaciji elemenata koji se koriste u radu.

Ovo je softverski skup elemenata. Služi za:

  • Odabir vrijednosti.
  • Sortiranje. Svakoj poziciji u nizu je dodijeljen indeks. Ovo olakšava pretragu. I možete se pozvati na objekat tako što ćete napisati njegov broj.
  • Kombinovanje i čuvanje zapisa.
  • Razdvajanje grupa, kreiranje podstringova.
  • Niz je objekat sam po sebi. Varijabla će biti vezana za njega. Možete se pozivati ​​na pojedinačne njegove dijelove ili ga u potpunosti koristiti u procedurama. Na primjer, možete kombinirati grupu vrijednosti “Zaposleni odjela N” i tamo unijeti imena i prezimena zaposlenih.

Hajde da napravimo analogiju. Zamislite policu za knjige. Knjige u njemu raspoređene su u različite “ćelije”. Ako vodite evidenciju, znat ćete gdje se svaki objekt nalazi. I možete ga dobiti bez poteškoća. Ali ako su knjige, časopisi i novine haotično razbacani po stolu, potraga za pravom stvari će dugo trajati. Iako to ne odražava sve mogućnosti jedinstvenih kolekcija.

Stvaranje

Rad sa 1C nizovima počinje njihovim kreiranjem. Potrebna vam je “lokacija” - polje u koje ćete unijeti kod.

  1. Otvorite "Konfigurator" ("Konfiguracija").
  2. Kliknite desni klik kliknite na stavku "Obrada".
  3. Odaberite "Dodaj".
  4. Pojavljuje se podmeni Processing1. Odaberite ga. Informacije o tome će biti prikazane u radnom području.
  5. Na kartici Osnovno unesite Ime. Recimo "TestArray".
  6. Otvorite odjeljak "Obrasci".
  7. Kliknite na ikonu povećala.
  8. Označite opciju “Obrada obrasca”.
  9. Kliknite na "Gotovo".
  10. Otvoriće se prozor sa tri okvira. U gornjem desnom uglu idite na karticu "Timovi".
  11. Ikona plus za dodavanje pozicije.
  12. Pojavit će se stavka “Tim1”. Odaberite ga.
  13. U polje "Ime" unesite ime. Na primjer, “TestValues”. Kopirajte ga u "Header".
  14. U redu „Akcija“ kliknite na lupu.
  15. Stavka “Kreiraj na klijentu” i “OK”.
  16. Evo modula u koji možete unijeti kod.

Da biste prikazali srednji rezultat, kreirajte “dugme”. Zašto je to potrebno u nizu - shvatit ćete malo kasnije.

  1. Idite na karticu "Obrasci". Ona je dole.
  2. Desni klik na "Command Bar".
  3. "Dodaj - Dugme".
  4. Dajte mu bilo koje ime. Ili možete ostaviti zadanu.
  5. U polju „Naziv tima“ kliknite na ikonu trotočke.
  6. Odaberite "TestValues". Ako je tim drugačije imenovan, bit će drugačija naslovnica.

Sada možete početi raditi sa kolekcijama. Ali nemojte misliti da u 1C možete odmah razložiti niz u niz. Bolje je početi s nečim lakšim. Iako su sve funkcije skup operatora koje samo trebate zapamtiti.

  1. Otvorite karticu "Modul".
  2. Tekst koji dolazi nakon dvije kose crte naprijed (dvije kose crte - “//”) može se obrisati. Izgleda otprilike ovako "//Insert handler contents". Ovo su objašnjenja. Napisali su ih programeri kako se ne bi zbunili u kodu.
  3. Napišite svoj tekst između operatora “Procedure” i “End of Procedure”.
  4. Sada kreirajte skup vrijednosti. Smislite varijablu koja će je uslovno označiti. Recimo "FirstArray".
  5. Mora biti povezan sa objektom. Da biste to učinili, unesite naredbu “FirstArray = Novi niz()". Ovo je kolekcija koja može sadržavati neograničen broj elemenata. Ako imate fiksnu veličinu, navedite je nakon naredbe u zagradi "Novi niz (5)". U skladu s tim, dvodimenzionalna kolekcija će izgledati kao “Novi niz (7, 5)”. Možete kreirati višedimenzionalne skupove.
  6. Dok kucate, mogu se pojaviti prijedlozi koji predlažu odgovarajuće operatore.
  7. Riječi se razlikuju po boji. Varijable imaju jednu boju, funkcije drugu.
  8. Nakon svake naredbe stavite tačku i zarez ";". I radi praktičnosti, počnite s novim paragrafom.
  9. Ne možete ništa da uradite sa praznim setom. Niti organizirajte, niti izlazite, niti rastavljajte string u niz u 1C. Stoga moramo u njega umetnuti elemente.
  10. Unesite "FirstArray.Add(Value1);". Zatim “FirstArray.Add(Value2);” i tako dalje.
  11. Objekti su numerisani od nule. To jest, varijabli “Vrijednost1” će biti dodijeljen indeks “0”. Kolekciju možete sami popuniti sa “Vrijednost0” kako se ne biste zbunili.

čemu sve ovo? A čemu to tajanstveno “dugme”? Pokušajmo pokrenuti jednostavnu funkciju.

  1. Ispod kolekcije napišite naredbu “Izvještaj (FirstArray);” Indeks elementa je naveden u uglastim zagradama. To jest, adresa naše “Vrijednosti0”.
  2. Formatirajte modul. Ovo je provjera grešaka. U velikim blokovima nešto može ostati nedovršeno zbog nepažnje: nedodavanje tačke i zareza, ne zatvaranje zagrada ili pogrešno pisanje varijable. Prevodilac će to ukazati.
  3. Kliknite na dugme u obliku znaka "Pusti" (trokut u krugu) da pokrenete program koji ste napisali.
  4. Kliknite na "Servis" i odaberite svoje dugme.
  5. Kliknite na njega.
  6. Pojavljuje se poruka “Vrijednost0”. Ovo je rezultat izvršenja funkcije.

Najviše prikazano jednostavan rad, tako da razumijete kako nizovi općenito funkcioniraju. Pomoću njih možete kreirati složene programe na više nivoa. Prikažite objekte, sortirajte, uklonite ponavljanja, podijelite u skup podnizova, kombinirajte, podijelite, tražite informacije. Samo trebate znati operatere.

Funkcije

Sve dostupne funkcije nalaze se u priručniku programa. Nabrojimo nekoliko da pokažemo princip.

Kako pretvoriti 1C niz u niz:

TestArray = Novi niz(4);
TestArray = Ovo;
TestArray = Gotovo;
TestArray = Dakle;
RowTest = ValueInRowInt(TestArray);
Izvještaj(StringTest);

Iznesite ga na “Dugme” i dobijte frazu. Ovo može biti dio većeg modula - u tom slučaju izjava Report nije potrebna.

Da biste rastavili niz u niz podstringova u 1C, potreban vam je separator. Uslovna oznaka nakon koje će se tekst podijeliti. Recimo da postoji riječ "protokol". I stavićemo separator "O". Unesite naredbu “TestArray = ExpandStringInArray(Protocol, “O”) ;” Zasebno ćete dobiti “Pr”, “T”, “K” i “L”. Razdjelnik se briše. I riječ je podijeljena u nekoliko podnizova.

Evo kako to primijeniti u praksi. Imate niz sa punim imenima zaposlenih. I potrebno je da se polja “Prezime”, “Ime” i “Patronim” automatski popune prilikom odabira pozicije. Da biste to učinili, puno ime mora biti podijeljeno u tri komponente. Koristite "razmak" kao separator.

Obično se za to koristi složeni modul: petlja sa velikim brojem iskaza. Ciklični blokovi sa uslovom grade se po principu „Ako (uslov), onda (akcija1), inače (akcija2)“. Prvo, program provjerava da li je uslov tačan. Ako da, onda pokreće prvu funkciju. Ako ne, drugi.

Petlja će provjeriti svaki karakter u nizu. Ako tu nema separatora, nastavlja se dalje. Ako tamo postoji graničnik, on dodaje vrijednost skupu podnizova. Tu se mogu koristiti i drugi operatori: na primjer, “AbcrLP” je skraćenica određenih znakova desno i lijevo od reda.

Svaki modul mora biti "završen" tako da uslužni program prestane da izvršava proceduru. U petlji sa "If" ova izjava je "EndIf". U ciklusu bez uslova - „Kraj ciklusa“. Svaka funkcija se mora izvršiti zasebno.

Pretražujte i sortirajte

Kolekcije mogu sadržavati ogromnu količinu podataka. Moramo naučiti da ih tražimo i sortiramo.

Da biste pokrenuli pretragu u nizu u 1C, koristite operator "Pronađi". Željenu vrijednost možete pronaći i vizualno. Ali ako postoje stotine elemenata, bolje je kreirati dodatni modul i pokrenuti potprogram. Pokažimo to koristeći jednostavnu funkciju kao primjer. Ali ovo je pogodno za sve blokove.

ArrayTest = Novi niz(3);
ArrayTest = "Telefon";
ArrayTest = "Laptop";
ArrayTest = "Računar";
Indeks = ArrayTest.Find("Telefon");
If Index ‹› Undefined Then
Izvještaj("Pretraga je završena" + ArrayTest[Indeks]);

I ne zaboravite staviti "izjavu o prekidu".

Kolekcija je data kao primjer. Napravili smo skup od tri vrijednosti. I napravili smo kratak ciklus. Ako uslužni program ne pronađe odgovarajući element, prikazat će poruku “Nedefinirano”. Ako ga nađe, pokazaće rezultat.

Sortiranje 1C niza jednostavno je nezamjenjivo kada radite s velikim količinama podataka. Morate se nekako snaći u njima. Bolje ih je rasporediti određenim redoslijedom. Recimo da imate kolekciju pod nazivom “YourArray”. Da to dovedem u red

TestList = Nova ValueList;
TestList.LoadValues(VašArray);
TestList.SortByValue(SortDirection.Age);
VašArray = TestList.UnloadValues();

Umjesto "Uzlazno" možete staviti "Silazno". Rezultat se također može učitati u tablicu vrijednosti:

TestTable = Nova tablica vrijednosti;
TestTable.Columns.Add("Kolona");
TestTable.LoadColumn(VašArray, “Kolona”);
TestTable.Sort("Slazna kolona");
YourArray = TestTable.UnloadColumn("Column")

Postoje i složene metode sortiranja: „Mjehurić“, „Brzo“, „Shaker“, „Rekurzija“. Imaju višeslojne i dugačke algoritme.

Tabele i liste

Informacije se mogu prenositi između različitih vrsta kolekcija. Da biste prenijeli niz u tablicu vrijednosti u 1C:

ArrayTelephone = Novi niz;
ArrayPhone.Add("Smartphone");
ArrayPhone.Add("Tablet");
ArrayPhone.Add("Telefon");
TableTest = Nova tablica vrijednosti;
TableTest.Columns.Add("Mobilni telefoni");
TableTest.Add();
TableTest.Add();
TableTest.Add();
TableTest.LoadColumn(ArrayTelephone, “Mobilni telefoni”);
Za svaki red iz ciklusa TableTest
Izvještaj(String.Mobilni);

Nemojte zaboraviti dodati naredbu za završetak petlje na kraju.

Pretvaranje niza u listu vrijednosti u 1C je prilično jednostavno. Vi samo trebate prenijeti podatke iz jedne kolekcije u drugu.

NewList = NewValueList();
NewList.LoadValues(VašArray);

U programiranju se može riješiti jedan problem na različite načine. I 1C nije izuzetak. Linearni algoritmi, petlje, uslovne petlje, kontra petlje. Postoji mnogo opcija. Da biste se kretali nizom, potrebne su vam neke 1C vještine.

© 2024 ermake.ru -- O popravci računara - Informativni portal