Kako podesiti pametne telefone i računare. Informativni portal

Iskrcaj kolonu tabele 1c. Tako je jednostavno

Tabela vrijednosti je specifičan univerzalni objekat dizajniran za pohranjivanje podataka u tabličnom prikazu. Ključna razlika između tablice i objekata aplikacije je nedostatak vezivanja za fizičke tablice baze podataka. Tablica vrijednosti postoji samo u RAM-u, što, s jedne strane, pruža jedinstvene mogućnosti, as druge nameće određena ograničenja. Ipak, mogućnosti interakcije sa tabelom su uporedive sa interakcijom sa objektima koji stvarno postoje u bazi podataka.

Istorijski gledano, tablica vrijednosti u 1C ima dvostruku svrhu, jer je virtualni analog postojećih tablica, ali je istovremeno i kontrolni element. Sa prelaskom na upravljanu aplikaciju, veliki dio ove funkcionalnosti je zastario, ali sada može biti i element korisničkog interfejsa, ali uz neka značajna ograničenja.

Struktura tablice vrijednosti kao objekta

Svojstva tabele vrednosti određuju se kombinacijama dve unapred definisane kolekcije: njenih kolona i redova.

Tabela vrijednosti Kolone

Stupac tablice vrijednosti je njegovo definirajuće svojstvo. To je skup kolona tabele koji određuje njenu strukturu. Kolone odgovaraju poljima fizičkih tabela ili kolona poznatih iz korisničkog interfejsa tabelarnog odeljka ili dnevnika dokumenata. Kolona može imati interno ime, tip vrijednosti i naslov koji se prikazuje kada se radi interaktivno s tablicom.

Pošto su kolone kolekcija objekata, možete dodavati, brisati i uređivati ​​stupce.

Red tablice vrijednosti

Iz perspektive softverskog interfejsa, stringovi su zasebna kolekcija ugrađena u tabelu vrednosti. Oni su analogni zapisima u fizičkim tabelama, odnosno redovima poznatim korisniku u tabelarnom dijelu ili dnevniku dokumenata. Svaki pojedinačni red je objekat sa skupom imenovanih svojstava, čija imena odgovaraju nazivima kolona tabele.

Stoga je interakcija sa stringom vrlo slična interakciji s drugim objektima. Možete čitati i pisati njegova svojstva, uključujući korištenje unaprijed definirane funkcije “FillPropertyValues()”. Pošto su redovi glavna kolekcija tablice vrijednosti, metoda “Clear()” se koristi za brisanje svih redova tablice.

Kreirajte tablicu vrijednosti

Postoji mnogo načina da pripremite tablicu vrijednosti za upotrebu. Pogledajmo neke od njih. Svaki primjer će biti dat kao popis kodova s ​​komentarima.

Kreiranje tabele pomoću konstruktora

Glavna metoda koja vam omogućava da kreirate upravo onu tablicu koja je potrebna programeru je, nažalost, najzahtjevnija, jer zahtijeva ručno navođenje 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" Naziv = "Nomenklatura"; ValueType = New TypeDescription("DirectoryLink.Nomenclature"); Naslov = "Nomenklatura (proizvod)"; DemoTable.Columns.Add(Name, ValueType, Header); // Kreiranje kolone "Količina" Naziv = "Količina"; ValueType = New TypeDescription("Broj"); DemoTable.Columns.Add(Name, ValueType); // Kao rezultat ovih manipulacija, kreirali smo praznu tablicu sa upisanim stupcima // Ako trebate koristiti preciznije kucanje primitivnih tipova, onda biste trebali koristiti proširenu sintaksu konstruktora "Description of Types"

Kreiranje tabele kopiranjem

Ako imate pri ruci referencu sa odgovarajućom strukturom i/ili sastavom, možete kopirati ili preuzeti referentnu tablicu vrijednosti. Ako je referentna tabela druga tabela, onda morate koristiti metodu „Kopiraj referentne tabele“. Ako imate posla sa tabelarnim dijelom ili skupom registarskih zapisa, morate koristiti metodu “Unload table of values”. Ako vam je potrebna samo struktura, možete koristiti metodu “Kopiraj kolone”.

// Opcija sa kopiranjem svih redova iz standarda tehničke specifikacije, ali sa očuvanjem samo dvije specificirane kolone Kolone standarda = "Nomenklatura, količina"; DemoTable = TableEtalon.Copy(, ColumnsEtalon); // Opcija s kopiranjem unaprijed odabranih redova iz standarda tehničke specifikacije, uz očuvanje dvije specificirane kolone Redovi standarda = SelectIntoArrayRedovi koji su nam potrebni iz tablice standarda(); ColumnsStandard = "Nomenklatura, količina"; DemoTable = TableEtalon.Copy(RowsEtalon, ColumnsEtalon); // Opcija za kopiranje redova iz standarda tehničke specifikacije pomoću specificiranog filtera, uz očuvanje jedne kolone “Nomenklatura” // Svi redovi u kojima je vrijednost u stupcu Količina 0 će biti odabrani, samo kolona Nomenklatura Odabir redaka = Nova struktura(" Količina" će se pojaviti u rezultirajućoj tabeli , 0); ColumnsStandard = "Nomenklatura"; DemoTable = TableEtalon.Copy(RowsEtalon, ColumnsEtalon); // Opcija sa kompletnom kopijom tabele i naknadnim brisanjem jednog reda sa vrednošću polja za količinu jednakom nuli i brisanjem čitave kolone “Količina” Odabir reda = 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 modifikacije mogu se primijeniti na tabelarne dijelove i skupove registarskih zapisa

Kreiranje tabele sa upitom

Ako predložak tabele koja vam je potrebna postoji u bazi podataka, onda možete koristiti upit za brzo kreiranje tabele sa željenom strukturom.

// Primjer kreiranja prazne tablice na osnovu strukture registra akumulacije // Lako je pretpostaviti da na ovaj način možete dobiti i popunjenu tablicu Query = New Query("SELECT FIRST 0 * Iz registra akumulacije. Proizvodi u skladištu"); RequestResult = Request.Execute(); DemoTable = Query Result.Unload(); // Primjer kreiranja prazne tablice koristeći eksplicitno specificirane tipove i imena polja Query = New Query; Query.Text = "IZABIR VRH 0 | Vrijednost(Directory.Nomenclature.EmptyLink) KAO nomenklatura, | EXPRESS(0 KAO BROJ(15, 3)) KAO količina"; RequestResult = Request.Execute(); DemoTable = Query Result.Unload(); // BITAN! Ne zaboravite da tipovi vrijednosti stupaca dobiveni iz zahtjeva uvijek sadrže tip Null // Dakle, TK kreiran zahtjevom uvijek ima složene tipove stupaca

Zaključak

U ovom kratkom članku pogledali smo osnovna svojstva i praktične tehnike za kreiranje tablice vrijednosti, dovoljne za razumijevanje i početak korištenja. Sam objekat tabele vrednosti je toliko višeslojan da detaljan opis njegovih mogućnosti zahteva pisanje posebnog članka o tehnikama i metodama rada.

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

U jednoj tabeli je navedena roba koja se otprema iz skladišta. Druga tabela prikazuje obaveze plaćanja ove robe.

Stoga u 1C rad sa tablicama zauzima istaknuto mjesto.

Tabele u 1C nazivaju se i „tabelarni dijelovi“. Imenici, dokumenti i ostalo 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, dobijanje redova 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

//uzmite sto
Odaberite = Query.Run().Select();
// prolazimo redom kroz sve redove rezultata upita
Dok Select.Next() petlja
Izvještaj(Izbor.Naziv);
EndCycle;

//Opcija 2 – učitavanje u tablicu vrijednosti
Zahtjev = Novi Zahtjev("IZABERI Ime IZ Direktorija.Nomenklature");
//uzmite sto
Tabela = Query.Run().Unload().
// nadalje možemo iterirati kroz sve redove
Za svaki red iz ciklusa tabele
Izvještaj(String.Name);
EndCycle;
//ili proizvoljno pristupiti nizovima
Red = Table.Find("Lopata", "Ime");

Važna karakteristika je da će u tabeli koja se dobija iz rezultata upita sve kolone biti striktno otkucane. To znači da ćete zahtjevom za polje Ime iz imenika Nomenklature dobiti stupac tipa String s dozvoljenom dužinom od najviše N znakova.

Tabela na obrascu (debeli klijent)

Korisnik radi sa tabelom kada je postavljena na obrazac.

O osnovnim principima rada sa formama razgovarali smo u lekciji i u lekciji dalje

Dakle, stavimo tabelu na obrazac. Da biste to uradili, možete prevući tabelu sa panela Kontrole. Slično, možete odabrati Form/Insert Control iz menija.

Podaci se mogu pohraniti u konfiguraciju - tada je potrebno odabrati postojeći (prethodno dodan) tabelarni dio konfiguracijskog objekta čiji obrazac uređujete.

Kliknite na dugme "..." u svojstvu Podaci. Da biste vidjeli listu tabelarnih dijelova, potrebno je proširiti granu Objekt.

Kada odaberete tabelarni dio, 1C će sam dodati stupce u tablicu na obrascu. Redovi koje korisnik unese u takvu tabelu biće automatski sačuvani zajedno sa referentnom knjigom/dokumentom.

U istom svojstvu podataka možete unijeti proizvoljno ime i odabrati tip tablice vrijednosti.

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

Desnim klikom na tabelu možete dodati kolonu. U svojstvima kolone možete odrediti njen naziv (za referencu u 1C kodu), naslov kolone na obrascu, vezu s atributom tabelarnog dijela (potonji - ako nije odabrana proizvoljna tabela, već tabelarni deo).

U svojstvima tabele na obrascu možete odrediti da li korisnik može dodavati/brisati redove. Napredniji obrazac je okvir za potvrdu Samo prikaz. Ova svojstva su zgodna za korištenje za organiziranje tabela namijenjenih za prikaz informacija, ali ne i za uređivanje.

Da biste upravljali tabelom, morate prikazati komandni panel na obrascu. Odaberite stavku menija Form/Insert Control/Command Bar.

U svojstvima komandne trake potvrdite izbor u polju za potvrdu Automatsko popunjavanje tako da se dugmad na panelu automatski pojavljuju.

Tabela na obrascu (tanki/upravljani klijent)

Na upravljanom obrascu ove akcije izgledaju malo drugačije. Ako trebate postaviti tabelarni dio na obrazac, proširite granu Objekt i povucite jedan od tabelarnih dijelova ulijevo. To je sve!

Ako trebate postaviti tablicu vrijednosti, dodajte novi atribut forme i u njegovim svojstvima navedite tip – tablicu vrijednosti.

Da biste dodali kolone, koristite meni desnim klikom na ovaj atribut obrasca, odaberite Dodaj kolonu atributa.

Zatim povucite tabelu ulijevo.

Da bi tabela imala komandnu traku, u svojstvima tabele izaberite vrednosti u odeljku Upotreba – Položaj komandne trake.

Učitavanje tabele u Excel

Bilo koja tabela 1C koja se nalazi na obrascu može se ispisati ili prenijeti u Excel.

Da biste to uradili, kliknite desnim tasterom miša na prazan prostor u tabeli i izaberite Lista.

U upravljanom (tankom) klijentu, slične radnje se mogu izvesti pomoću stavke menija Sve akcije/Prikaži listu.

Skladištar treba učitati listu svih stavki koje nisu označene za brisanje. Polja za upload:

  1. Ime.
  2. Šifra dobavljača.
  3. Vrsta nomenklature.
  4. Vrsta stavke.

Ovako će izgledati Excel tabela nakon učitavanja:

Razmotrimo dva rješenja: bez programiranja i uz učešće programera.

Programiranje

Da bismo prenijeli stavku u XLS datoteku, kreirat ćemo upit bazi podataka za dobivanje stavke i smjestiti rezultat u tabelarni dio obrade otpremanja. Evo obrasca za obradu:

Klikom na dugme "Popuni" popunjava se tabelarni deo "Istovar podataka" obrade, sa dodavanjem odgovarajućih detalja. Rukovalac za ovo dugme ima sledeći kod:

Procedura ButtonExecutePress(Button) Zahtjev = Novi zahtjev; Zahtjev. Tekst = " ODABIR | Nomenklatura. Link AS nomenklatura, | Nomenklatura. Šifra dobavljača, | Nomenklatura. Vrsta nomenklature, | Nomenklatura. Vrsta nomenklature. Tip nomenklature AS Tip nomenklature |OD| Imenik . Nomenklatura AS Nomenklatura|GDJE | NE Nomenklatura. FlagDeletion | A NE Nomenklatura. Ova grupa" ; DataTable = Upit. Izvrši () . Učitaj() ; Prenesi podatke. Učitaj(DataTable) ; Završi proceduru

Ovdje bi sve trebalo biti jasno. Zabava počinje kada kliknete na dugme „Sačuvaj“. Prvo se poziva dijalog za odabir putanje za spremanje XLS tabele. Zatim se, koristeći podatke u tabelarnom dijelu obrade, popunjava tabelarni dokument prema prethodno kreiranom izgledu. Izgled dodan u obradu je sljedeći:

Procedura BasicActionsFormsAction(Button) // Pozovite dijalog za odabir datoteke da biste spremili XLS tablicu Mode = FileSelectionDialogMode. Preservation; OpenFileDialog = NewFileSelectDialog(Mode); OpenFile dijalog. FullFileName = " " ; OpenFile dijalog. MultipleSelect = False ; Tekst = "ru = " "XLS sto" " ; en =" " XLS tabela " " " ; Filter = NStr(tekst) + " (* . xls) |* . xls" ; Dijalog za otvaranje datoteka. Filter = Filter; Otvori dijalog za datoteke. Naslov = " Odaberite putanju za spremanje" ; Ako FileOpenDialog. Select() Onda FilePath = FileOpenDialog.FullFileName; U suprotnom Text = " Nije odabrana nijedna staza za spremanje!" ; Upozorenje (tekst) ; Povratak ; EndIf ; // Kreirajte dokument proračunske tablice TableSave = Novi TableDocument; // Dobiva raspored dopuna i područja rasporeda Layout = OvajObjekat. GetLayout(" Stol za istovar" ); AreaHeader = Layout. GetArea(" Header "); AreaString = Layout. GetArea(" Linija" ) ; // Izlaz podataka u tabelarni dokument TableSave. Izlaz (Glava površine) ; Za svaku stranicu iz petlje DataUpload FillPropertyValues(AreaString.Parameters, Page); TableSave. Izlaz(AreaString) ; EndCycle ; // Sačuvajte tabelarni dokument na disk TableSave. Write(FilePath, TabularDocumentFileType. XLS) ; Kraj procedure

Nakon spremanja, na disku će se nalaziti Excel tabela sa listom prenesenih stavki. Možete vidjeti primjer datoteke na početku članka.

Korisnik može

Zapravo, programer nije potreban za takav zadatak. Korisnik može sve učiniti sam bez ikakvih trikova.

Na primjer, tako što ćete otići na listu stavki i pokrenuti naredbu "Sve radnje" -> "Prikaži listu" sa liste stavki, korisnik će dobiti listu stavki u generisanom dokumentu tabele.

Nakon što je dokument proračunske tabele generisan, klikom na dugme "Sačuvaj" ili preko menija "Datoteka->Sačuvaj", korisnik može da upiše tabelarni dokument u XLS datoteku navodeći njegovo ime i odredišni direktorijum.

To je sve! Za istovar nije potrebna obrada. Naravno, ako imate prilično jednostavan slučaj preuzimanja podataka.

Je li to tako jednostavno?

Zaista je jednostavno, ne morate povezivati ​​nikakve vanjske komponente. Osim toga, na ovaj način možemo prenijeti ne samo datoteke u formatu Excel tablice, već i u druge formate koje platforma podržava.

Možete obraditi primjer iz članka preuzmi sa linka.

Najbolji članci na ovu temu