Tabelarni dio u tabeli vrijednosti 1s 8.3. Tako je jednostavno

Skladištar treba učitati listu svih stavki koje nemaju postavljenu zastavicu za brisanje. Polja za istovar:

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

Ovako će izgledati Excel tabela nakon učitavanja:

Razmotrite dva načina rješavanja: bez programiranja i uz učešće programera.

Programiranje

Da bismo izbacili nomenklaturu u XLS datoteku, formiraćemo upit baze podataka da bismo dobili nomenklaturu i smjestili rezultat u tabelarni dio obrade istovara. Evo obrasca za obradu:

Klikom na dugme "Popuni" popunjava se tabelarni deo obrade "Učitaj podatke" u koji se dodaju odgovarajući detalji. Rukovalac za ovo dugme ima sledeće programski kod:

Procedura ButtonPerformPress(Button) Query = Novi upit; Zahtjev. Tekst = " ODABIR | Nomenklatura. Referentna AS nomenklatura, | Nomenklatura. Šifra dobavljača, | Nomenklatura. Nomenklatura tipa, | Nomenklatura. Tip Nomenklatura. Tip nomenklature AS Tip nomenklature |OD| Imenik . Nomenklatura AS Nomenklatura GDJE | NE Nomenklatura. FlagRemoval | I NE Nomenklatura. Ova grupa" ; DataTable = Upit. Izvrši () . Učitaj() ; Prenesi podatke. Učitaj (Tabelu podataka) ; Završi proceduru

Ovdje bi sve trebalo biti jasno. Zabava počinje kada kliknete na dugme "Sačuvaj". Prvo se poziva dijalog za izbor putanje za spremanje XLS tabele. Zatim se, koristeći podatke iz tabelarnog dijela obrade, popunjava tabelarni dokument prema prethodno kreiranom rasporedu. Izgled koji je dodan obradi je sljedeći:

Procedura MainActionsFormsAction(Dugme) // Pozovite dijalog za odabir datoteke za spremanje XLS tablice Mode = FileSelectionDialogMode. Preservation; FileOpenDialog = NewFileSelectDialog(Mode) ; Dijalog za otvaranje datoteke. FullFileName = " " ; Dijalog za otvaranje datoteke. Višestruki odabir = False ; Tekst = "ru = ""XLS sto"" ; en =" "XLS tabela " " " ; Filter = NStr(tekst) + " (*.xls) |*.xls xls" ;FileOpenDialog.Filter = Filter;FileOpenDialog.Title = " Odaberite put za spremanje" ; Ako FileOpenDialog. Select() Onda FilePath = FileOpenDialog. FullFileName; Else Text = " Putanja za spremanje nije odabrana!" ; Upozorenje (tekst) ; Povratak ; EndIf ; // Kreirajte dokument proračunske tablice TableSave = New SpreadsheetDocument; // Dobivamo izgled ispune i područja rasporeda Layout = OvajObjekat. GetLayout(" TableUloads" ) ; AreaHat = Layout. GetArea(" Header " ) ; AreaString = Layout. GetArea(" Linija" ) ; // Izlaz podataka u tabelarni dokument TableSave. Izlaz (zaglavlje regije) ; Za svaku stranicu iz petlje za otpremanje podataka FillPropertyValues(AreaString. Parameters, Page) ; TableSave. Izlaz(AreaString) ; EndCycle ; // Sačuvajte tabelarni dokument na disk TableSave. Write(FilePath, SpreadsheetDocumentFileType.XLS) ; EndProcedure

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

Korisnik može sam

Zapravo, za takav zadatak nije potrebna sudbina programera. Korisnik može sve učiniti sam bez ikakvih trikova.

Na primjer, odlaskom na listu stavki i izvršavanjem naredbe "Sve radnje" -> "Prikaži listu" sa liste stavki, korisnik će dobiti listu stavki u generisanom dokumentu tabele.

Nakon što se generira tabelarni dokument, 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 otpremanje nije potrebna obrada. Naravno, ako imate prilično jednostavan slučaj sa učitavanjem podataka.

Dakle, sve je jednostavno?

Sve je zaista jednostavno, nije potrebno povezivati ​​vanjske komponente. Osim toga, na ovaj način možemo prenijeti ne samo datoteke u Excel formatu proračunskih tablica, već i druge formate koje podržava platforma.

Obrada s primjerom iz članka možete preuzmite sa linka.

Za obračun novca i robe, poslovanje se široko koristi različiti stolovi. Skoro svaki dokument je tabela.

U jednoj tabeli je navedena roba koja se otprema iz skladišta. U drugoj tabeli - obaveza plaćanja ove robe.

Stoga u 1C rad sa tablicama zauzima istaknuto mjesto.

Tabele u 1C nazivaju se i "dijelovi stola". Priručnici, dokumenti i ostalo ih imaju.

Upit vraća tabelu kao rezultat njegovog izvršenja, kojoj se može pristupiti na dva različita načina.

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

//Opcija 1 - sekvencijalni pristup rezultatima upita

// dobiti tablicu
Selection = Query.Execute().Select();
// zaobići sve redove rezultata upita po redu
Dok Selection.Next() petlja
Izvještaj(Izbor.Naziv);
EndCycle;

//Opcija 2 - učitavanje u tablicu vrijednosti
Upit = Novi upit("IZABIR Naziv IZ Direktorija.Nomenklature");
// dobiti tablicu
Tabela = Query.Execute().Upload().
// tada također možemo zaobići sve linije
Za svaki red iz petlje tabele
Izvještaj(String.Name);
EndCycle;
//ili proizvoljno pristupiti nizovima
String = Table.Find("Lopata", "Ime");

Važna karakteristika je da će u tabeli, koja se dobija iz rezultata upita, sve kolone biti snažno otkucane. To znači da ćete zahtjevom za polje Ime iz pretraživanja nomenklature dobiti stupac tipa String sa 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 kontrolne table. Slično, možete odabrati kontrolu Obrazac/Umetanje iz menija.

Podaci se mogu pohraniti u konfiguraciji - tada trebate 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.

Prilikom odabira tabelarnog dijela, 1C će sam dodati stupce u tablicu na obrascu. Nizovi koje je korisnik uneo u takvu tabelu automatski će biti sačuvani zajedno sa direktorijumom/dokumentom.

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

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

Klikanje desni klik na tabeli možete dodati kolonu. U svojstvima stupca možete odrediti njegovo ime (za referencu u 1C kodu), naslov stupca na obrascu, vezu s atributom tabelarnog dijela (potonji - ako nije odabrana proizvoljna tablica, ali tabelarni deo).

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

Da biste upravljali tabelom, morate prikazati komandnu tablu na obrascu. Odaberite stavku menija Form/Insert Control/Command Panel.

U svojstvima komandne trake potvrdite izbor u polju za potvrdu Autocomplete kako bi se dugmad na traci sa alatkama pojavila automatski.

Tabela na obrascu (tanki/upravljani klijent)

On upravljani oblik ove akcije izgledaju malo drugačije. Ako trebate postaviti tabelarni dio na obrazac, proširite granu Objekt i povucite jedan od tabelarnih odjeljaka ulijevo. I to je to!

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

Da dodate kolone, koristite meni desnog dugmeta miša na ovom atributu obrasca, stavci 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.

Izvoz tabele u Excel

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

Da biste to učinili, kliknite desnim tasterom miša slobodan prostor u tabeli i izaberite Prikaži listu.

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

Tabela vrijednosti je određeni generički objekt dizajniran za pohranjivanje podataka u prikazu tablice. Ključna razlika između tablice i objekata aplikacije je u tome što ona nije povezana s fizičkim tablicama baze podataka. Tabela vrijednosti postoji samo u ram memorijašto, s jedne strane, daje jedinstvene mogućnosti, as druge strane 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 u isto vrijeme - i kontrolni element. Sa prelaskom na upravljanu aplikaciju, većina ove funkcionalnosti je zastarjela, ali čak i sada može biti i element korisničkog sučelja, ali uz niz značajnih ograničenja.

Struktura tablice vrijednosti kao objekta

Svojstva tabele vrednosti su definisana kombinacijama dve unapred definisane kolekcije: njenih kolona i redova.

Tabela vrijednosti Kolone

Kolona tablice vrijednosti je njegovo definirajuće svojstvo. To je skup kolona u tabeli koji određuje njenu strukturu. Kolone odgovaraju poljima u fizičkim tabelama ili poznatim iz korisnički interfejs kolone tabelarnog dela ili dnevnika dokumenata. Kolona može imati interno ime, tip vrijednosti i zaglavlje koje se prikazuje prilikom interakcije s tablicom.

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

Red tablice vrijednosti

Sa stanovišta programskog interfejsa, stringovi su posebna kolekcija ugrađena u tabelu vrednosti. Analogne su zapisima fizičkih tabela, odnosno redovima tabelarnog dela ili dnevnika dokumenata koji su poznati korisniku. Svaki pojedinačni red je objekat sa skupom imenovanih svojstava čija imena odgovaraju imenima 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 tabele vrednosti, metoda "Clear()" se koristi za brisanje svih redova tabele.

Kreirajte tablicu vrijednosti

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

Kreiranje tabele sa konstruktorom

Glavni metod, koji vam omogućava da kreirate upravo onu vrstu tabele koja je potrebna programeru, nažalost oduzima najviše vremena, jer zahteva da ručno navedete sva potrebna svojstva tabele.

DemoTable = Nova tablica vrijednosti; // Prije svega, inicijaliziramo TK // Zatim definiramo potrebne parametre za nove kolone i dodajemo ih u kolekciju // Kreiranje stupca "Nomenclature" Naziv = "Nomenclature"; ValueType = New TypeDescription("ReferenceReference.Nomenclature"); Naslov = "Nomenklatura (stavka)"; DemoTable.Columns.Add(Name, ValueType, Title); // Kreiranje kolone "Iznos" Naziv = "Iznos"; ValueType = NewTypeDescription("Broj"); DemoTable.Columns.Add(Name, ValueType); // Kao rezultat ovih manipulacija, kreirali smo praznu tablicu sa upisanim stupcima // Ako trebate koristiti preciznije kucanje primitivnih tipova, trebali biste koristiti proširenu sintaksu konstruktora “TypeDescription”

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 referenca druga tabela, onda morate primijeniti metodu "Kopiraj referentnu tablicu". Ako imate posla sa tabelarnim dijelom ili skupom registarskih zapisa, morate koristiti metodu "Unload table of values". Ako vam je potrebna samo struktura, onda možete koristiti metodu "CopyColumns".

// Varijanta sa kopiranjem svih redova iz TK-standarda ali sa pohranjivanjem samo dvije specificirane kolone Reference Columns = "Nomenklatura, količina"; DemoTable = TableReference.Copy(, ColumnsReference); // Varijanta sa kopiranjem preliminarno odabranih redova iz TK-standarda, uz očuvanje dva navedena stupca. Referentne kolone = "Nomenklatura, količina"; DemoTable = TableReference.Copy(RowsReference, ColumnsReference); // Opcija sa kopiranjem redova iz TK-standarda prema navedenom filteru, uz zadržavanje jedne kolone “Nomenklatura” // Svi redovi će biti odabrani gdje je vrijednost u stupcu Količina 0, samo će kolona Nomenklatura biti uključena u rezultirajuća tabela Odabir reda = Nova struktura("Količina" , 0); Referentne kolone = "Nomenklatura"; DemoTable = TableReference.Copy(RowsReference, ColumnsReference); // Varijanta sa puna kopija tabela i naknadno brisanje jednog reda sa vrijednošću polja za količinu jednakom nuli i brisanje cijele kolone “Broj” Izbor reda = Nova struktura("Broj", 0); Referentne kolone = "Nomenklatura"; DemoTable = TableReference.Copy(RowsReference, ColumnsReference); TableString = DemoTable.Find(0, "Broj"); DemoTable.Delete(TableString); DemoTable.Columns.Delete("Količina"); // Slične opcije i njihove modifikacije mogu se primijeniti na dijelove tablice i skupove zapisa registra

Kreiranje tabele sa upitom

Ako baza podataka ima predložak tabele koja vam je potrebna, onda možete koristiti upit za brzo stvaranje tabele sa željenom strukturom.

// Primjer kreiranja prazne tabele po strukturi registra akumulacije // Lako je pretpostaviti da na ovaj način možete dobiti i popunjenu tabelu Zahtjev = Novi zahtjev("SELECT FIRST 0 * Iz registra akumulacije. Roba u skladištu "); QueryResult = Query.Execute(); DemoTable = QueryResult.Upload(); // Primjer kreiranja prazne tablice eksplicitno specificiranim tipovima i nazivima polja Query = New Query; Query.Text = "IZABIR PRVO 0 | Vrijednost(Catalog.Nomenclature.NullReference) KAO nomenklatura, | EXPRESS(0 KAO BROJ(15, 3)) KAO količina"; QueryResult = Query.Execute(); DemoTable = QueryResult.Upload(); // BITAN! Ne zaboravite da je tip Null uvijek prisutan u tipovima vrijednosti stupaca dobivenim iz upita // Dakle, TM kreiran upitom uvijek ima složene tipove stupaca

Zaključak

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



Učitavanje...
Top