1s 8 umetnite redak u tablicu vrijednosti. Koje metode postoje i kako tražiti nekoliko vrijednosti istovremeno

19.11.2019 Savjet

Tablica vrijednosti je specifični univerzalni objekt dizajniran za pohranjivanje podataka u tabličnom prikazu. Ključna razlika između tablice i aplikacijskih objekata je nedostatak vezanja na fizičke tablice baze podataka. Tablica vrijednosti postoji samo u RAM memorija, koji, s jedne strane, pruža jedinstvene mogućnosti, as druge nameće određena ograničenja. Ipak, mogućnosti interakcije s tablicom usporedive su s interakcijom s objektima koji stvarno postoje u bazi podataka.

Povijesno gledano, tablica vrijednosti u 1C ima dvostruku svrhu, budući da je virtualni analog postojećih tablica, ali je istovremeno i kontrolni element. S prelaskom na upravljanu aplikaciju, velik dio ove funkcionalnosti je zastario, ali sada također može biti element korisničkog sučelja, ali uz neka značajna ograničenja.

Struktura tablice vrijednosti kao objekta

Svojstva tablice vrijednosti određena su kombinacijama dviju unaprijed definiranih kolekcija: njezinih stupaca i redaka.

Tablica vrijednosti Stupci

Stupac tablice vrijednosti je njegovo definirajuće svojstvo. Skup stupaca tablice određuje njezinu strukturu. Stupci odgovaraju poljima fizičkih tablica ili onima poznatim iz korisničko sučelje stupci tabelarnog odjeljka ili dnevnika dokumenata. Stupac može imati interni naziv, vrstu vrijednosti i naslov koji se prikazuje prilikom interaktivnog rada s tablicom.

Budući da su stupci zbirka objekata, možete dodavati, brisati i uređivati ​​stupce.

Red tablice vrijednosti

Iz perspektive softverskog sučelja, nizovi su zasebna zbirka ugrađena u tablicu vrijednosti. Oni su analogni zapisima u fizičkim tablicama, to jest redovima koji su korisniku poznati u tabelarnom odjeljku ili dnevniku dokumenata. Svaki pojedinačni red je objekt sa skupom imenovanih svojstava, čija imena odgovaraju nazivima stupaca tablice.

Stoga je interakcija s nizom vrlo slična interakciji s drugim objektima. Možete čitati i pisati njegova svojstva, uključujući korištenje unaprijed definirane funkcije "FillPropertyValues()". Budući da su redovi glavna zbirka tablice vrijednosti, metoda "Clear()" koristi se za brisanje svih redaka tablice.

Napravite tablicu vrijednosti

Postoji mnogo načina da se tablica vrijednosti pripremi za upotrebu. Pogledajmo neke od njih. Svaki primjer bit će dostavljen kao popis kodova s ​​komentarima.

Izrada tablice pomoću konstruktora

Glavna metoda koja vam omogućuje stvaranje točno one tablice koju programer treba je, nažalost, najintenzivnija jer zahtijeva ručno određivanje svih potrebnih svojstava tablice.

DemoTable = Nova tablica vrijednosti; // Prije svega, inicijaliziramo TK // Zatim određujemo potrebne parametre za nove stupce i dodajemo ih u kolekciju // Kreiranje stupca "Nomenklatura" Name = "Nomenklatura"; ValueType = New TypeDescription("DirectoryLink.Nomenclature"); Naslov = "Nomenklatura (proizvod)"; DemoTable.Columns.Add(Name, ValueType, Header); // Stvaranje stupca "Količina" Name = "Količina"; ValueType = New TypeDescription("Broj"); DemoTable.Columns.Add(Name, ValueType); // Kao rezultat ovih manipulacija, stvorili smo praznu tablicu s upisanim stupcima // Ako trebate koristiti preciznije upisivanje primitivnih tipova, tada biste trebali koristiti proširenu sintaksu konstruktora "Opis tipova"

Izrada tablice kopiranjem

Ako pri ruci imate referencu odgovarajuće strukture i/ili sastava, možete kopirati ili preuzeti referentnu tablicu vrijednosti. Ako je referentna tablica druga tablica, tada morate koristiti metodu "Kopiraj referentne tablice". Ako se bavite tablični dio ili skup unosa u registar, morate koristiti metodu "Učitaj tablicu vrijednosti". Ako trebate samo strukturu, možete koristiti metodu "Kopiraj stupce".

// Opcija s kopiranjem svih redaka iz standarda tehničke specifikacije, ali zadržavanjem samo dva navedena stupca. Stupci standarda = "Nomenklatura, količina"; DemoTablica = TablicaEtalon.Kopiraj(, StupciEtalon); // Opcija s kopiranjem unaprijed odabranih redaka iz standarda tehničke specifikacije, uz očuvanje dva navedena stupca Redovi standarda = SelectIntoArrayReci koji su nam potrebni iz tablice standarda(); ColumnsStandard = "Nomenklatura, količina"; DemoTable = TableEtalon.Copy(RowsEtalon, ColumnsEtalon); // Mogućnost kopiranja redaka iz standarda tehničke specifikacije pomoću navedenog filtra, uz očuvanje jednog stupca “Nomenklatura” // Svi redovi u kojima je vrijednost u stupcu Količina 0 bit će odabrani, samo stupac Nomenklatura Odabir retka = Nova struktura(" Količina" pojavit će se u rezultirajućoj tablici , 0); ColumnsStandard = "Nomenklatura"; DemoTable = TableEtalon.Copy(RowsEtalon, ColumnsEtalon); // Opcija s potpunom kopijom tablice i naknadnim brisanjem jednog retka s vrijednošću polja količine jednakom nuli i brisanjem cijelog stupca “Količina” Odabir retka = Nova struktura("Količina", 0); ColumnsStandard = "Nomenklatura"; DemoTable = TableEtalon.Copy(RowsEtalon, ColumnsEtalon); TableRow = DemoTable.Find(0, "Količina"); DemoTable.Delete(TableRow); DemoTable.Columns.Delete("Količina"); // Slične opcije i njihove izmjene mogu se primijeniti na tablične dijelove i skupove registarskih zapisa

Izrada tablice s upitom

Ako predložak tablice koja vam je potrebna postoji u bazi podataka, tada možete upotrijebiti upit za brzo stvaranje tablice sa potrebnom strukturom.

// Primjer kreiranja prazne tablice na temelju strukture registra akumulacije // Lako je pogoditi da se na ovaj način može dobiti i popunjena tablica Query = New Query("SELECT FIRST 0 * From Accumulation Register. Products u skladištu"); RequestResult = Request.Execute(); DemoTablica = Rezultat upita.Istovar(); // Primjer kreiranja prazne tablice korištenjem eksplicitno navedenih tipova i naziva polja Query = New Query; Query.Text = "SELECT TOP 0 | Value(Directory.Nomenclature.EmptyLink) AS Nomenclature, | EXPRESS(0 AS NUMBER(15, 3)) AS Količina"; RequestResult = Request.Execute(); DemoTablica = Rezultat upita.Istovar(); // VAŽNO! Ne zaboravite da tipovi vrijednosti stupaca dobivenih iz zahtjeva uvijek sadrže tip Null // Dakle, TK stvoren zahtjevom uvijek ima kompozitne tipove stupaca

Zaključak

U ovom kratkom članku pogledali smo osnovna svojstva i praktične tehnike za izradu tablice vrijednosti, dovoljne za razumijevanje i početak korištenja. Sam objekt tablice vrijednosti toliko je višestruk da Detaljan opis njegove mogućnosti zahtijevaju pisanje posebnog članka o tehnikama i metodama rada.

Za obračun novca i robe u poslovanju se široko koriste razne tablice. Gotovo svaki dokument je tablica.

U jednoj tablici navedena je roba za otpremu iz skladišta. Druga tablica prikazuje obveze plaćanja ove robe.

Stoga u 1C rad s tablicama zauzima istaknuto mjesto.

Tablice u 1C također se nazivaju "tabularnim dijelovima". Imenici, dokumenti i drugi ih imaju.

Upit, kada se izvrši, vraća tablicu kojoj se može pristupiti na dva različita načina.

Prvi - brži - odabir, dobivanje redaka iz njega moguće je samo redom. Drugi je učitavanje rezultata upita u tablicu vrijednosti i zatim nasumični pristup njoj.

//Opcija 1 – sekvencijalni pristup rezultatima upita

//uzmi tablicu
Odaberite = Query.Run().Select();
// prolazimo redom kroz sve retke rezultata upita
Dok Select.Next() Petlja
Izvješće(Odabir.Naziv);
EndCycle;

//Opcija 2 – učitavanje u tablicu vrijednosti
Zahtjev = Novi zahtjev("SELECT Name FROM Directory.Nomenclature");
//uzmi tablicu
Tablica = Query.Run().Unload().
//dalje također možemo iterirati kroz sve retke
Za svaki redak iz ciklusa tablice
Izvješće(String.Name);
EndCycle;
//ili proizvoljno pristupiti nizovima
Redak = Table.Find("Lopata", "Ime");

Važna značajka je da će u tablici koja se dobije iz rezultata upita svi stupci biti striktno tipizirani. To znači da ćete zahtjevom za polje Naziv iz imenika Nomenklatura dobiti stupac tipa String s dopuštenom duljinom od najviše N znakova.

Tablica na obrascu (debeli klijent)

Korisnik radi s tablicom kada je postavljena na obrazac.

O osnovnim principima rada s oblicima razgovarali smo u lekciji na i u lekciji na

Dakle, postavimo tablicu na obrazac. Da biste to učinili, možete povući tablicu s upravljačke ploče. Slično, možete odabrati Form/Insert Control iz izbornika.

Podatke je moguće pohraniti u konfiguraciju - tada je potrebno označiti postojeći (prethodno dodani) tablični dio konfiguracijskog objekta čiju formu uređujete.

Kliknite gumb "..." u svojstvu podataka. Da biste vidjeli popis tabelarnih dijelova potrebno je proširiti granu Objekt.

Kada odaberete tabularni dio, 1C će sam dodati stupce u tablicu na obrascu. Reci koje korisnik unese u takvu tablicu automatski će se spremiti zajedno s referentnom knjigom/dokumentom.

U isto svojstvo podataka možete unijeti proizvoljan naziv i odabrati vrstu tablice vrijednosti.

To znači da je odabrana proizvoljna tablica vrijednosti. Neće automatski dodavati stupce, niti će se automatski spremati, ali s njim možete raditi što god želite.

Desnim klikom na tablicu možete dodati stupac. U svojstvima stupca možete odrediti njegov naziv (za referencu u 1C kodu), naslov stupca na obrascu, vezu s atributom tabelarnog dijela (potonji - ako nije odabrana proizvoljna tablica, već tablični dio).

U svojstvima tablice na obrascu možete odrediti može li korisnik dodavati/brisati retke. Napredniji oblik je potvrdni okvir Samo prikaz. Ova su svojstva prikladna za korištenje za organiziranje tablica namijenjenih prikazu informacija, ali ne i uređivanju.

Za upravljanje tablicom morate prikazati naredbenu ploču na obrascu. Odaberite stavku izbornika Form/Insert Control/Command Bar.

U svojstvima naredbene trake odaberite potvrdni okvir Automatsko popunjavanje tako da se gumbi na ploči pojavljuju automatski.

Tablica na obrascu (tanki/upravljani klijent)

Na upravljanom obrascu te radnje izgledaju malo drugačije. Ako na obrazac trebate postaviti tabularni dio, proširite granu Objekt i povucite jedan od tabularnih dijelova ulijevo. To je sve!

Ako trebate postaviti tablicu vrijednosti, dodajte novi atribut obrasca iu njegovim svojstvima odredite tip – tablica vrijednosti.

Za dodavanje stupaca upotrijebite izbornik desnom tipkom miša na ovom atributu obrasca, odaberite Dodaj stupac atributa.

Zatim također povucite tablicu ulijevo.

Kako bi tablica imala naredbenu traku, u svojstvima tablice odaberite vrijednosti u odjeljku Upotreba – Položaj naredbene trake.

Prijenos tablice u Excel

Bilo koja 1C tablica koja se nalazi na obrascu može se ispisati ili učitati u Excel.

Da biste to učinili, desnom tipkom miša kliknite slobodan prostor u tablici i odaberite Popis.

U upravljanom (tankom) klijentu slične radnje mogu se izvršiti korištenjem stavke izbornika Sve akcije/Popis prikaza.

Potražite u tablici 1C vrijednosti

Koje metode postoje i kako tražiti nekoliko vrijednosti istovremeno.

Postoje dvije posebne metode za pretraživanje tablice vrijednosti:

1. Pronađite

TVHorizon = Direktoriji.Nomenklatura.FindByName("TVHorizon");
FoundString = TZNomenclature.Find(TVHorizon);
//također možemo odrediti u kojim se stupcima traži da ubrzamo pretragu
FoundString = TZNomenclature.Find(TVHorizon, "Nomenclature");

Ova metoda vraća prvi pronađeni red sa željenom vrijednošću ili Nedefinirano ako ga ne pronađe. Stoga je prikladno koristiti ga za pretraživanje jedinstvene vrijednosti, jer u suprotnom, kada je vrijednost pronađena, morat ćete je ukloniti iz tablice kako biste pronašli sljedeću.

Da biste izbjegli ovu gnjavažu, postoji sljedeća metoda koja vam omogućuje pronalaženje niza odgovarajućih nizova:

2. Pronađite nizove


Struktura odabira.Insert("Nomenklatura", TVHorizon); // prvo navedite stupac gdje tražiti, a zatim što tražiti.

Ova metoda uvijek vraća niz, ali može biti prazan ako se ništa ne pronađe. I ova metoda, kao i prethodna, vraća same retke tablice vrijednosti, a ne same vrijednosti u zasebnom nizu. Stoga, promjenom vrijednosti u nizu polja ili, kao u prethodnoj metodi, za pronađeni niz, promijenit ćete vrijednost u obrađenoj tablici vrijednosti.

Još jedna dobra stvar kod ove metode je da može pretraživati ​​nekoliko stupaca tablice vrijednosti odjednom:


SelectionStructure = Nova struktura;
Struktura odabira.Insert("Nomenklatura", TVHorizon);
Struktura odabira.Insert("Količina", 10);
Pronađeni niz redaka = TZNomenclature.FindLines(SelectionStructure);

Jedina negativna stvar, kao što vidite, jest da ne možete koristiti druge vrste usporedbe osim "jednako"

Tablica vrijednosti u platformi 1C 8.3 (8.2) je univerzalna zbirka vrijednosti koju programer može koristiti kada razvoj softvera za implementaciju vaših algoritama. U biti, 1C tablica vrijednosti je dinamički skup vrijednosti koje imaju stupce i stupce.

Članci o drugim univerzalnim zbirkama vrijednosti u 1C

Naučite programirati u 1C u mojoj knjizi “Programiranje u 1C u 11 koraka”

  1. Knjiga je napisana jasnim i jednostavnim jezikom- za početnika.
  2. Naučite razumjeti 1C arhitekturu;
  3. Počet ćete pisati kod u 1C jeziku;
  4. Ovladati osnovnim tehnikama programiranja;
  5. Učvrstite svoje znanje uz pomoć knjige zadataka;

Izvrstan vodič za razvoj u upravljanoj 1C aplikaciji, kako za programere početnike tako i za iskusne programere.

  1. Vrlo pristupačan i razumljiv jezik prezentacije
  2. Knjiga se šalje na elektronička pošta V PDF format. Može se otvoriti na bilo kojem uređaju!
  3. Razumjeti ideologiju upravljane 1C aplikacije
  4. Naučite kako razviti upravljanu aplikaciju;
  5. Naučite se razvijati upravljani oblici 1C;
  6. Moći ćete raditi s osnovnim i potrebnim elementima upravljanih obrazaca
  7. Programiranje pod upravljanom aplikacijom postat će jasno

Promo kod za 15% popusta - 48PVXHeYu


Ako vam je ova lekcija pomogla riješiti bilo koji problem, svidjela vam se ili smatrate korisnom, tada možete podržati moj projekt doniranjem bilo kojeg iznosa:

Možete platiti ručno:

Yandex.Money - 410012882996301
Web Money - R955262494655

Pridružite se mojim grupama.