Kako podesiti pametne telefone i računare. Informativni portal
  • Dom
  • Recenzije
  • 1c popuniti tabelarni dokument iz tablice vrijednosti.

1c popuniti tabelarni dokument iz tablice vrijednosti.

Za istovar tabelarnog odeljka (dokument, priručnik, obrada, itd.) u tabela vrijednosti morate koristiti metodu istovar ()... Kada se koristi, stvoriće se tabela vrijednosti sa istim skupom kolona (isti tipovi podataka) i sa istim podacima kao u tabelarni dio... Treba napomenuti da ova tabela nema nikakve veze tabelarni dio i promjena podataka u njemu neće promijeniti podatke u njemu, u stvari, to je njegova kopija, ali sa malo drugačijim svojstvima i metodama.

Takođe, ako imate tabelu sa istim skupom kolona kao u tabelarnom delu, tada se podaci iz tabele vrednosti mogu učitati u tabelarni deo. Za to se primjenjuje metoda Skinuti(<Таблица>) , tabelarni dio. Ovo može biti potrebno ako su podaci za učitavanje primljeni zahtjevom. I umjesto da petljate kroz rezultat upita, možete ga jednostavno učitati u tabelarni dio.

Istovariti tabelarni dio 1c. Primjer

Učitajte tabelarni dio. Primjer

Pretpostavimo da je u varijabli Objekt sadrži objekt dokumenta koji ima tabelarni dio Usluge... I u varijablu Upit, sadrži zahtjev koji prikuplja podatke za tabelarni dio.

Metoda se zasniva na upotrebi objekta Report Builder je objekat koji omogućava, na osnovu navedenog teksta upita ili izvora podataka, kao i postavki, da dobijete rezultat i prikažete ga u dokumentu ili dijagramu proračunske tablice.

Opis metode

1. Dobijte područje ćelija dokumenta tabele koje želite da postavite u tabelu vrednosti. Dobijanje oblasti treba da bude postavljeno na takav način da uključuje red naslova kolona (pogledajte sliku 1), što je karakteristika objekta ReportBuilder.

CellScope = TabDocument.Area (1, 1, LastRow, Last Column);


2. Na osnovu oblasti ćelije dokumenta tabele, kreirajte opis izvora podataka.

DataSource = NewDataSourceDescription (CellScope);

3. Kreirajte objekt ReportBuilder, navedite izvor podataka umjesto teksta upita i napravite izvještaj.



Rezultat čitanja podataka iz izvora nakon pozivanja metode Izvrši () nalazi se u posjedu Rezultat... Ovo svojstvo sadrži objekat tipa QueryResult; objekat istog tipa se vraća kada se upit izvrši.

4. Isčitajmo rezultat u tablicu vrijednosti (vidi sliku 2) pozivanjem Unload () metode RequestResult objekta.

ValuesTable = ReportBuilder.Result.Upload ();

Od očiglednih nedostataka, vrijednosti stupaca su tipa string. Takođe, objekat ReportBuilder je dostupan samo na serveru, moraćete da vozite tabelarni dokument od klijenta do servera.

Konačni programski kod

Funkcija ConvertTableDocumentToTableValues ​​(TabDocument)
LastRow = TabDocument.Table Height;
LastColumn = TabDocument.TableWidth;
CellScope = TabDocument.Area (1, 1, LastRow, Last Column);
// Kreirajte opis izvora podataka na osnovu područja ćelije dokumenta proračunske tablice.
DataSource = NewDataSourceDescription (CellScope);
// Kreirajte objekt za inteligentnu konstrukciju izvještaja,
// odredimo izvor podataka i napravimo izvještaj.
ReportBuilder = NewReportBuilder;
Report Builder.DataSource = Izvor podataka;
Report Builder.Run ();
// Učitajte rezultat u tablicu vrijednosti.
ValuesTable = ReportBuilder.Result.Upload ();
Vraćanje TabValues
EndFunction

Obrada sa implementacijom ove metode može se preuzeti

Tabela vrijednosti je specifični generički objekt za pohranjivanje podataka u prikazu tablice. Ključna razlika između tablica i objekata aplikacije je u tome što oni nisu vezani za fizičke tablice baze podataka. Tablica vrijednosti postoji samo u RAM-u, što, s jedne strane, pruža jedinstvene mogućnosti, as druge strane nameće određena ograničenja. Međutim, mogućnost interakcije s tablicom je usporediva s interakcijom s 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. Prelaskom na upravljanu aplikaciju, većina ove funkcionalnosti je zastarjela, ali 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 njeno definirajuće svojstvo. To je skup kolona u tabeli koji određuje njenu strukturu. Kolone odgovaraju poljima fizičkih tabela ili kolonama tabelarnog odeljka ili dnevnika dokumenata koji su poznati iz korisničkog interfejsa. Kolona može imati interno ime, tip vrijednosti i naslov koji se prikazuje kada stupite u interakciju s tablicom.

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

Red tabele vrednosti

Sa stanovišta programskog interfejsa, stringovi su zasebna kolekcija ugrađena u tabelu vrednosti. Oni su analogni zapisima fizičkih tabela, odnosno redovima tabelarnog dijela ili dnevnika dokumenata koji su poznati korisniku. Svaki red uzet zasebno 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 ​​()". Budući da su redovi glavna zbirka tablice vrijednosti, metoda "Clear ()" se koristi za brisanje svih redova u tabeli.

Kreirajte tablicu vrijednosti

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

Kreiranje stola od strane dizajnera

Glavna metoda koja vam omogućava da kreirate upravo takvu tablicu koja je potrebna programeru, nažalost, oduzima najviše vremena, jer zahtijeva ručno navođenje svih potrebnih svojstava tablice.

DemoTable = NewValuesTable; // Prije svega, inicijaliziramo TOR // Zatim definiramo potrebne parametre za nove stupce i dodamo ih u kolekciju // Kreiramo kolonu "Nomenklatura" Naziv = "Nomenklatura"; ValueType = NewDescription of Types ("ReferenceLink.Nomenclature"); Naslov = "Nomenklatura (proizvod)"; DemoTable.Columns.Add (Ime, ValueType, Title); // Kreirajte kolonu "Količina" Naziv = "Količina"; ValueType = NewTypeDescription ("Broj"); DemoTable.Columns.Add (Ime, 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 "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 referenca druga tabela, onda je potrebno primijeniti metodu "Kopiraj referentne tablice". Ako imate posla sa tabelarnim odeljkom ili skupom registarskih zapisa, morate koristiti metodu "Unload Table of Values". Ako vam je potrebna samo struktura, onda možete koristiti metodu "CopyColumns".

// Mogućnost kopiranja svih redova iz tehničkog standarda, ali zadržavanje samo dvije navedene kolone Kolone standarda = "Nomenklatura, količina"; DemoTable = TableDefault.Copy (, ColumnDefault); // Opcija s kopiranjem unaprijed odabranih redova iz TZ šablona, ​​zadržavajući dvije navedene kolone. ColumnsStandard = "Nomenklatura, količina"; DemoTable = TableDefault.Copy (RowsDefault, ColumnDefault); // Opcija s kopiranjem redova iz TZ-standarda po navedenom filteru, zadržavajući jednu kolonu “Nomenklatura” // Svi redovi će biti odabrani gdje je vrijednost u stupcu Količina 0, samo će kolona Nomenklatura biti uključena u rezultirajuću tablicu ., 0); ColumnStandard = "Nomenklatura"; DemoTable = TableDefault.Copy (RowsDefault, ColumnDefault); // Opcija sa potpunim kopiranjem tabele i naknadnim brisanjem jednog reda sa vrednošću polja za količinu jednakom nuli i brisanjem cele kolone “Količina” Izbor redova = Nova struktura ("Količina", 0); ColumnStandard = "Nomenklatura"; DemoTable = TableDefault.Copy (RowsDefault, ColumnDefault); TableRow = DemoTable.Pronađi (0, "Količina"); DemoTable.Delete (TableRow); DemoTable.Columns.Remove ("Količina"); // Slične opcije i njihove modifikacije mogu se primijeniti na sekcije tablica i registarske skupove zapisa

Kreiranje tabele sa upitom

Ako baza podataka sadrži predložak za tabelu koja vam je potrebna, tada možete koristiti upit za brzo kreiranje tablice sa željenom strukturom.

// Primjer kreiranja prazne tabele na osnovu strukture registra akumulacije // Nije teško pogoditi da na ovaj način možete dobiti popunjenu tabelu Query = New Query ("IZABIR PRVI 0 * Iz registra akumulacije. Proizvodi u trgovini"); QueryResult = Query.Run (); DemoTable = QueryResult.Upload (); // Primjer kreiranja prazne tablice za eksplicitno specificirane tipove i imena polja Query = New Query; Query.Text = "IZABIR PRVO 0 | Vrijednost (Directory.Nomenclature.EmptyLink) KAO nomenklatura, | EXPRESS (0 KAO BROJ (15, 3)) KAO količina"; QueryResult = Query.Run (); DemoTable = QueryResult.Upload (); // BITAN! Ne zaboravite da tipovi vrijednosti stupaca dobivenih upitom uvijek sadrže tip Null // Dakle, tehnički zadatak kreiran upitom uvijek ima složene tipove stupaca

Zaključak

U ovom kratkom članku pokrili smo osnovna svojstva i najbolje prakse za kreiranje tablice vrijednosti, dovoljno da počnete i razumijete. Sam objekt tablice vrijednosti toliko je višestruk da detaljan opis njegovih mogućnosti zahtijeva pisanje posebnog članka o tehnikama i metodama rada.

Top srodni članci