Tukaj je nekaj dejstev za začetek - preprosti primeri dela s tabelo vrednosti:
1. Ustvarite tabelo vrednosti
ValueTable = Nova tabela vrednosti;
ValueTable.Columns.Add("Ime");
Tabela vrednosti.Columns.Add("Priimek");
NewLine.Name = "Vasilij";
NewLine.LastName = "Pupkin";
FoundRow = ValueTable.Find(SearchValue);
FoundRow = ValueTable.Find(SearchValue, "Dobavitelj, Kupec");
SearchStructure = Structure("Employee", SearchValue);
Niz najdenih vrstic = ValueTable.FindRows(SearchStructure);
7. Kako ponoviti tabelo vrednosti v naključnem vrstnem redu
Za vsako trenutno vrstico iz zanke tabele vrednosti
Poročilo (Ime trenutne vrstice);
EndCycle;
Ista stvar z uporabo indeksov:
SeniorIndex = ValueTable.Quantity() - 1;
Za račun = 0 do cikla SeniorIndex
Poročilo(TableValues[Account].Name);
EndCycle;
ValueTable.Delete(Vrstica za brisanje);
po indeksu
ValueTable.Delete(0);
ValueTable.Columns.Delete(ColumnDeleted);
ValueTable.Columns.Delete(0);
Upoštevati je treba, da bo brisanje vrstice (ali stolpca) "s sredine" tabele vrednosti povzročilo zmanjšanje za eno v indeksih vrstic, ki se nahajajo "za" izbrisanim
10. Kako izpolniti tabelo vrednosti, če so imena stolpcev v spremenljivkah?
Nova vrstica = Tabela vrednosti.Dodaj();
Nova vrstica[imestolpca] = vrednost;
Tabela vrednosti. Izpolnite vrednosti (False, "Zastavica davčnega računovodstva");
12. Kako lahko izpolnim tabelo vrednosti “Receiver Table” s podatki iz tabele vrednosti “SourceTable”?
Če tabela prejemnikov v času operacije še ne obstaja ali njenih prejšnjih stolpcev ni treba shraniti, jo lahko ustvarite kot popolno kopijo izvirnika
Tabela prejemnikov = Izvorna tabela.Kopiraj();
Delni prenos podatkov za stolpce z ujemajočimi se imeni:
Za vsako vrstico izvorne tabele iz cikla izvorne tabele
FillPropertyValues(NewRow, SourceTableRow);
Konec cikla
Če tabele nimajo stolpcev z enakimi imeni, bo ciljna tabela na koncu vsebovala toliko vrstic z ničelnimi vrednostmi, kot je bilo vrstic v izvorni tabeli.
Če za nekatere istoimenske stolpce tip vrednosti podatkov iz izvorne tabele ne spada v matriko dovoljenih vrst stolpcev ciljne tabele, bomo v takih poljih dobili prazne vrednosti.
Razmislimo o tretjem primeru. V primeru istoimenskih stolpcev mora biti stolpec ciljne tabele popolnoma skladen s stolpcem izvorne tabele.
Popolno kopiranje podatkov za stolpce z ujemajočimi se imeni
Isti stolpci = Nova matrika ();
Za vsak stolpec iz SourceTable.Columns Cycle
UjemanjeColumn = TableReceiver.Columns.Find(Column.Name);
Če se ujema stolpec<>Nedefinirano Potem
// Pridobi lastnosti stolpca.
Ime = Ime stolpca;
ValueType = Column.ValueType;
Glava = Column.Header;
Širina = Column.Width;
// Zamenjaj stolpce v ciljni tabeli.
Index = TableReceiver.Columns.Index(MatchingColumn);
TableReceiver.Columns.Delete(Index);
ReceiverTable.Columns.Insert(Index, Name, ValueType, Header, Width);
// Dodajte naslednje ime ujemajočih se stolpcev v matriko.
Same Columns.Add(Column.Name);
endIf;
EndCycle;
// Kroženje po vrsticah izvorne tabele.
Za vsako vrstico izvorne tabele iz cikla izvorne tabele
// Dodajanje nove vrstice v ciljno tabelo.
NewRow = TableReceiver.Add();
// Izpolnite vrednosti v ujemajoče se celice.
Za vsako ime Stolpci iz stolpcev z istim imenom Cikel
Nova Vrstica[ImeStolpca] = Vrstica IzvorneTabele[ImeStolpca];
EndCycle;
EndCycle;
13. Kako dodati stolpce v tabelo vrednosti »ValueTable« z omejitvami vrste?
Ko dodajate stolpec, lahko preprosto določite njegovo ime in pustite drugi parameter metode Add() nedotaknjen. V tem primeru je podatkovni tip stolpca poljuben.
Dodajanje stolpca brez podajanja vrste podatkov
// Dodajte stolpec brez omejitev glede vrste.
ValueTable.Columns.Add("Object");
Dodajanje stolpca, ki označuje vrsto podatkov
// Omejitve podatkovnih tipov stolpcev:
// Samo elementi imenika "Nasprotne stranke".
Tabela vrednosti.Columns.Add("Račun", Nov opis vrst("DirectoryLink.Accounts"));
Uporaba kvalifikatorjev za podajanje podatkovnega tipa stolpca tabele vrednosti
// Priprava in nastavitev omejitev za podatke tipa String.
Kvalifikatorji nizov = Novi kvalifikatorji nizov (20, AllowedLength.Variable);
ValidTypes = NewTypeDescription("Niz", StringQualifiers);
ValueTable.Columns.Add("NoteStringShort", ValidTypes);
Uporaba obstoječih deklaracij tipa za podajanje podatkovnega tipa stolpca tabele vrednosti
// Razširitev predhodno uporabljenega opisa tipa.
QualifiersNumbers = Nova števila QualifiersNumbers(10, 2, ValidSign.Non-negative);
DateQualifiers = New DateQualifiers(DateParts.Date);
Extended ValidTypes = New TypeDescription(ValidTypes, "Številka, datum", kvalifikatorji številk, kvalifikatorji datumov);
ValueTable.Columns.Add("Opomba", ExtendedAcceptableTypes);
Objavljeno 21. septembra 2011
V tem članku vam bom povedal, kako delati s tabelo vrednosti "neznane" strukture, kako iterirati po stolpcih tabele vrednosti, kako ekstrahirati podatke iz stolpcev in vrstic brez uporabe imen stolpcev. (Ta članek spada v serijo člankov 1C iz nič; programiranje 1C iz nič; tabela vrednosti 1C)
Za razlago gradiva in za izvajanje primerov kode v živo jih potrebujemo testna tabela vrednosti 1C. Nekateri naši primeri bodo izvlekli podatke iz tabele vrednosti, zato bomo naredili tabelo s tremi stolpci »Priimek«, »Ime«, »Srednje ime« in vanjo vnesli majhno količino podatkov - kar 3 vrstice :)
MyTZ = Nova tabela vrednosti; // ustvarite novo tabelo vrednosti, shranjenih v spremenljivki "MyTZ" MyTZ.Columns.Add("Last Name"); // ustvari stolpec "Priimek" MyTZ.Columns.Add("Ime"); // ustvarite stolpec "Ime" MyTZ.Columns.Add("Patronymic"); // ustvarite stolpec "Middle name" // dodajte prvo vrstico v našo tabelo vrednosti NewLine = MyTZ.Add(); NewString.LastName = "Chapaev"; NewLine.Name = "Vasilij"; NewString.Middle name = "Ivanovich"; // dodamo drugo vrstico NewLine = MyTZ.Add(); NewString.LastName = "Dzerzhinsky"; NewRow.Name = "Felix"; NewString.Middle name = "Edmundovich"; // dodamo tretjo vrstico NewLine = MyTZ.Add(); NewLine.LastName = "Kotovsky"; NewLine.Name = "Gregory"; NewString.Middle name = "Ivanovich";
Naša testna tabela je sestavljena iz treh stolpcev: ime, priimek, patronim; in ima tri zapolnjene vrstice z imeni junakov državljanske vojne.
Naš cikel bo prikazal vsa imena stolpcev v oknu sporočila 1C:
Ime stolpca: Priimek Ime stolpca: Ime Ime stolpca: Srednje ime
Vidimo, da se za ponavljanje po stolpcih uporablja poseben cikel ponavljanja zbirke, podoben ciklu ponavljanja vrstic (v prejšnjem članku). MyTK.Stolpci- to je zbirka stolpcev tabele vrednosti 1C "MyTZ". Zbirka vsebuje objekte tipa "Stolpec tabele vrednosti" Vsak objekt te vrste je stolpec tabele vrednosti in vsebuje lastnosti in metode. Z dostopom do teh lastnosti in metod pridobimo potrebne informacije o enem stolpcu ali izvedemo z njim kakšna druga dejanja.
Na primer dostop do nepremičnine "Ime" (Ime stolpca) dobimo ime trenutnega stolpca.
Opozoril bi vas na naslov serije: »Za vsakogar Stolpec Iz MyTZ.Column Cycle" Spremenljivka z imenom "Stolpec" ki smo ga izumili mi. Ni nujno, da uporabite isto ime. To spremenljivko lahko na primer imenujete kakor koli želite "Moj trenutni stolpec" Potem bi zgornji primer izgledal takole:
// prikaz imen vseh stolpcev TK za vsak MyCurrentColumn From MyTK.Columns Cycle Report("Ime stolpca: " + MyCurrentColumn.Name); EndCycle;
Ko izvajalni podsistem 1C naleti na cikel te vrste, z vsakim prehodom cikla spremenljivki z določenim imenom dodeli en element iz naše zbirke, v tem primeru - en zbirni element stolpce tabele vrednosti MyTK.Stolpci Nato dostopamo do spremenljivke, ki vsebuje trenutni stolpec, in uporabimo lastnost "Ime".
Predlagam, da poleg imena stolpca prikažete številko vsakega stolpca v zbirki stolpcev:
// prikaži število in imena vseh stolpcev tabele vrednosti za vsak stolpec iz cikla MyTZ.Columns ColumnNumber = MyTZ.Columns.Index(Column); // pridobite številko stolpca ColumnName = Column.Name; // pridobi ime stolpca Report("Številka stolpca:" + Številka stolpca + " Ime stolpca: " + Ime stolpca); EndCycle;
V oknu s sporočilom 1C bo prikazano naslednje besedilo:
Številka stolpca:0 Ime stolpca: Priimek Številka stolpca:1 Ime stolpca: Ime Številka stolpca:2 Ime stolpca: Srednje ime
Upoštevajte, da so stolpci v tabeli vrednosti 1C oštevilčeni od nič, tako kot vrstice tabele vrednosti.
Če želite izvedeti število stolpcev v tabeli vrednosti, uporabimo metodo "Count()" na zbirki stolpcev.
Število stolpcev = MyTK.Columns.Quantity(); Poročilo (število stolpcev);
Na zaslonu se prikaže številka "3". Dejansko ima naša tabela tri stolpce: "Priimek", "Ime", "Patronim"
Naredimo cikel iskanja po vseh stolpcih tabele vrednosti z uporabo stolpčnih indeksov (številk). Ne pozabite, da se številčenje stolpcev začne od nič. Zato moramo povečati števec ciklov "Sch" z nič na število, ki je enako številu stolpcev minus ena.
Za račun = 0 po MyTZ.Columns.Quantity() - 1 cikel CurrentColumn = MyTZ.Columns[Act]; Poročilo(TrenutniColumn.Name); EndCycle;
Na zaslonu bomo dobili naslednje
Polno ime
Mislim, da je bil ta primer jasen. Obrnili smo se na metodo količina() zbirke stolpcev" MyTZ.Columns.Quantity()", dobil število stolpcev in začel zanko s števcem iz nič prej število stolpcev minus ena. Znotraj zanke dobimo vsak stolpec iz zbirke stolpcev in trenutni predmet stolpca dodelimo spremenljivki CurrentColumn Nato spremenljivka CurrentColumn dostopamo do nepremičnine Ime in prikažite vrednost te lastnosti na zaslonu: Poročilo(TrenutniColumn.Name);
Lastnost je določena statična vrednost in dostop do nje je npr. zapisan brez oklepaja CurrentColumn.Name. Metoda je v bistvu postopek ali funkcija objekta, klici postopkov in funkcij pa so vedno zapisani z oklepaji (tudi če ni vhodnih parametrov). Na primer: MyTZ.Columns.Quantity()
Če dostopamo do metode in pozabimo napisati oklepaj, nam bo tolmač 1C izdal sporočilo o napaki in ne bo zagnal kode. Ker bo tolmač menil, da ne dostopamo do metode, ampak do lastnosti - ker ni oklepajev. Vendar ne bo mogel najti lastnosti s tem imenom (ker obstaja samo metoda s tem imenom) - kar bo navedeno v sporočilu o napaki.
To bo zapisal tolmač, če pozabim dati oklepaj v klic metode na tako nepravilen način MyTK.Columns.Quantity(brez oklepajev za "Quantity()"):
Polja predmeta ni bilo mogoče najti (količina)
V tem primeru je treba "polje" in "lastnino" razumeti kot sinonima ali netočnost v terminologiji razvijalcev 1C. Obe besedi uporabljata za označevanje istega koncepta. Čeprav lahko v drugih programskih jezikih ti izrazi pomenijo različne stvari.
Za začetek vam ponujam preprost primer pridobivanja podatkov iz prve vrstice naše tabele. Upoštevajte, da uporabljamo predhodno izpolnjeno tabelo z začetka članka. Zagotovo vemo, da ima tabela prvo vrstico in vsaj en stolpec. Če ta primer uporabimo za prazno tabelo, bo prišlo do napake. torej:
FirstLine = MyTK; // pridobi prvo vrstico (oštevilčeno od nič) FirstColumnValue = FirstRow; // pridobi vrednost prvega stolpca (številčenje stolpcev je prav tako od začetka) Report(Vrednost prvega stolpca); // prikaži vrednost prvega stolpca v prvi vrstici tabele
Na zaslonu se prikaže:
Čapajev
Najprej smo pridobili objekt vrstice tabele vrednosti z dostopom do tabele vrednosti z uporabo operatorja [...]. (če ste pozabili, kako se to naredi, si lahko ogledate prejšnje članke) Znotraj operatorja smo posredovali argument “0”. To je indeks prve vrstice tabele vrednosti. FirstLine = MyTK;
Poleg tega imamo tudi pravico do dostopa do objekta niza z uporabo operatorja [...]. Znotraj tega operatorja smo posredovali številko stolpca tabele vrednosti, v tem primeru tudi “0”. In tako smo prejeli vrednost stolpca s številko "0" za trenutno vrstico tabele s številko "0". To vrednost smo prikazali na zaslonu in predstavlja niz "Chapaev".
Malce zapletimo naš primer:
FirstLine = MyTK; // pridobi prvo vrstico (številčenje od nič) Report(FirstLine); // prikaži vrednost prvega stolpca v prvi vrstici tabele Report(FirstRow); // prikaži vrednost drugega stolpca v prvi vrstici tabele Report(FirstRow); // prikaži vrednost tretjega stolpca v prvi vrstici tabele
Zdaj smo prikazali vrednosti iz vseh treh stolpcev prve vrstice naše tabele vrednosti:
Čapajev Vasilij Ivanovič
Zdaj bom tudi ta primer spremenil, tako da bomo lahko brez spremenljivke "Prva vrsta"
Poročilo (MyTZ); // prikaz vrednosti prvega stolpca v prvi vrstici tabele Report(MyTZ); // prikaži vrednost drugega stolpca v prvi vrstici tabele Report(MyTZ); // prikaži vrednost tretjega stolpca v prvi vrstici tabele
Enako bo na ekranu
Čapajev Vasilij Ivanovič
V zgornjem primeru smo videli, da lahko za dostop do vrednosti v določeni vrstici in določenem stolpcu tabele vrednosti uporabimo zaporedni klic dveh operaterjev [...] v tej obliki: Tabela vrednosti[Indeks vrstice][Indeks stolpca]
Tako smo pripravljeni ustvariti zanko in pridobiti podatke vseh vrstic in vseh stolpcev z uporabo indeksov vrstic in stolpcev:
For RowCounter = 0 By MyTZ.Quantity() - 1 Loop // cikel skozi vrstice For ColumnCounter = 0 By MyTZ.Columns.Quantity() - 1 Loop // ugnezdena zanka skozi stolpce // pridobi vrednost celice (iz trenutne vrstice in trenutni stolpci) CellValue = MyTK[RowCounter][ColumnCounter]; // prikaz številke vrstice, številke stolpca in vrednosti celice Report("Row No" + Row Count + "column No" + Column Count + " = " + CellValue); EndCycle; EndCycle;
Na zaslonu bo prikazano naslednje:
Vrstica št. 0 stolpec št. 0 = Chapaev Linija št. 0 stolpec št. 1 = Vasilij Linija št. 0 stolpec št. 2 = Ivanovič Vrstica št. 1 stolpec št. 0 = Dzerzhinsky Linija št. 1 stolpec št. 1 = Felix Vrstica št. 1 stolpec št. 2 = Edmundovich Vrstica št. 2 stolpec št. 0 = Kotovsky Linija št. 2 stolpec št. 1 = Grigorij Vrstica št. 2 stolpec št. 2 = Ivanovič
Z dvema cikloma, od katerih je eden ugnezden v drugem, smo prikazali vrednosti vseh stolpcev iz vseh vrstic tabele vrednosti 1C. V tem primeru nismo uporabili imen stolpcev, temveč smo do stolpcev in vrstic dostopali z njihovimi indeksi. Za boljše razumevanje bodite pozorni na komentarje v primeru.
Na koncu predlagam, da nekoliko spremenimo naš primer, tako da namesto številk stolpcev na zaslonu prikaže njihova imena. In poleg tega bom naredil bolj predstavljiv dizajn za prikaz vsebine na zaslonu.
For LineCounter = 0 By MyTZ.Quantity() - 1 Loop // zanka skozi vrstice Poročilo(" ======= Št. vrstice " + LineCounter + " ======="); Poročati(" "); // podajanje vrstice (vstavljanje prazne vrstice) For ColumnCounter = 0 By MyTZ.Columns.Quantity() - 1 Loop // ugnezdena zanka skozi stolpce // pridobi vrednost celice (iz trenutne vrstice in trenutnega stolpca) CellValue = MyTZ [Števec vrstic][ Števec stolpcev]; // pridobi ime stolpca ColumnName = MyTK.Columns[ColumnCounter].Name; // prikaz imena stolpca in vrednosti celice Report(ColumnName + ": " + CellValue); EndCycle; Poročati(" "); // podajanje vrstice (vstavljanje prazne vrstice) EndCycle;
Zdaj so na našem zaslonu informacije postale bolj reprezentativne:
Vrstica št. 0 ======= Priimek: Chapaev Ime: Vasilij Patronim: Ivanovič ======= Vrstica št. 1 ======= Priimek: Dzerzhinsky Ime: Felix Patronim: Edmundovich ===== == Vrstica št. 2 ======= Priimek: Kotovsky Ime: Grigorij Patronim: Ivanovich
Ja, skoraj sem pozabil. Pri uporabi dveh [...][...] operatorjev v vrsti lahko posredujemo ime tega stolpca namesto indeksa stolpca: Tabela vrednosti[indeks vrstice][imestolpca]
For LineCounter = 0 By MyTZ.Quantity() - 1 Loop // zanka skozi vrstice Poročilo(" ======= Št. vrstice " + LineCounter + " ======="); Poročati(" "); // podajanje vrstice (vstavljanje prazne vrstice) For ColumnCounter = 0 By MyTZ.Columns.Quantity() - 1 Loop // ugnezdena zanka skozi stolpce ColumnName = MyTZ.Columns[ColumnCounter].Name; // pridobite ime stolpcaCell Value = MyTZ[RowCounter][ColumnName]; //
Bodite pozorni na vrstico, označeno s puščico ". V tej vrstici namesto indeksa trenutnega stolpca posredujemo ime trenutnega stolpca argumentu v oglatih oklepajih [...] Rezultat bo enak.
In zdaj, zadnja stvar v tem članku.
V primeru sta bili uporabljeni dve zanki. Zanka za zanko skozi zbirko stolpcev je ugnezdena znotraj zanke za zanko po vrsticah. Če ste pregledali zgornje primere in prebrali prejšnje članke, potem ne boste imeli težav razumeti, kako ta primer deluje.
Na koncu bom zmanjšal število vrstic kode v našem zadnjem primeru, kolikor je mogoče, tako da bom odstranil uporabo vmesnih spremenljivk. Dobili bomo vzorec "industrijske kode", ki se uporablja v resničnih problemih.
To storite le, če dobro razumete, kaj počnete. Če je koda zelo zapletena, je sprejemljivo pustiti vmesne spremenljivke, da boste kasneje lažje razumeli lastno kodo. Prav tako mora biti vsaka koda vsaj minimalno komentirana, da bo čez nekaj časa lažje razumeti programska besedila.
Za vsako CurrentLine iz cikla MyTZ // ponavljanje vrstic Report(" ======= Line No. " + MyTZ.Index(CurrentLine) + " =======" + Symbols.PS); Za vsak CurrentColumn iz zanke MyTZ.Columns // ponovitev stolpcev Report(CurrentColumn.Name + ": " + CurrentRow[CurrentColumn.Name]); EndCycle; Poročati(" "); EndCycle;
Izpis na zaslonu se ni spremenil, ostaja enak kot v prejšnjem primeru:
2 TEDENSKI TEČAJ
"PROGRAMIRANJE V 1C ZA ZAČETNIKE"
Tečaj bo poslan po elektronski pošti. Postanite programer z izpolnjevanjem nalog po korakih.
Za sodelovanje potrebujete le računalnik in internet
Brezplačen dostop do tečaja:
Sp-force-hide ( display: none;).sp-form ( display: block; background: #eff2f4; padding: 5px; width: 270px; max-width: 100%; border-radius: 0px; -moz-border -radius: 0px; -webkit-border-radius: font-family: "Helvetica Neue", sans-serif: no-repeat;) .sp-form input (prikaz: inline-block; motnost: 1; vidnost: vidna;).sp-form .sp-form-fields-wrapper ( margin: 0 auto; width: 260px;).sp-form .sp -form-control (ozadje: #ffffff; border- color: #cccccc; border-width: 15px; padding-right: 4px; 4px; webkit-border-radius: 4px; width: 100%;).sp-form .sp-field label (barva: #444444; font-style: normal; font-weight: krepko; ).sp-form .sp-gumb (polmer-obrobe: 4px; -moz-polmer-obrobe: 4px; -webkit-polmer-obrobe: 4px; barva ozadja: #f4394c; barva: #ffffff; širina: 100% ; slog pisave: normalen; družina pisav: Arial, "Helvetica Neue", sans-serif; box-shadow: brez; -moz-box-shadow: brez; -webkit-box-shadow: brez; ozadje: linearni gradient (na vrh, #e30d22, #f77380);).sp-forma .sp-button-container (text-align: center; width: auto;)
Za obračunavanje denarja in blaga se v poslovanju pogosto uporabljajo različne tabele. Skoraj vsak dokument je tabela.
Ena tabela navaja blago, ki bo odpremljeno iz skladišča. Druga tabela prikazuje obveznosti plačila tega blaga.
Zato v 1C delo s tabelami zavzema vidno mesto.
Tabele v 1C se imenujejo tudi "tabelarni deli". Imajo jih imeniki, dokumenti in drugo.
Ko se poizvedba izvede, vrne tabelo, do katere lahko dostopate na dva različna načina.
Prvi - hitrejši - izbor, pridobivanje vrstic iz njega je možno le po vrstnem redu. Drugi je nalaganje rezultata poizvedbe v tabelo vrednosti in nato naključni dostop do nje.
//Možnost 1 – zaporedni dostop do rezultatov poizvedbe
//dobi tabelo
Izberite = Query.Run().Select();
// pregledamo vse vrstice rezultata poizvedbe po vrstnem redu
Medtem ko Select.Next() Loop
Poročilo (ime izbora);
EndCycle;
//Možnost 2 – nalaganje v tabelo vrednosti
Zahteva = Nova zahteva ("IZBERI ime IZ Imenika. Nomenklatura");
//dobi tabelo
Tabela = Query.Run().Unload().
//naprej lahko tudi ponavljamo skozi vse vrstice
Za vsako vrstico iz cikla tabele
Poročilo(String.Name);
EndCycle;
//ali poljubno dostopati do nizov
Vrstica = Table.Find("Lopata", "Ime");
Pomembna lastnost je, da bodo v tabeli, ki jo dobimo iz rezultata poizvedbe, vsi stolpci strogo tipizirani. To pomeni, da boste z zahtevo po polju Ime iz imenika Nomenklatura prejeli stolpec tipa Niz z dovoljeno dolžino največ N znakov.
Tabela na obrazcu (debela stranka)
Uporabnik dela s tabelo, ko je postavljena na obrazec.
O osnovnih načelih dela z obrazci smo razpravljali v učni uri in v učni uri
Torej, postavimo tabelo na obrazec. Če želite to narediti, lahko povlečete tabelo iz nadzorne plošče. Podobno lahko v meniju izberete Nadzor obrazca/vstavi.
Podatke lahko shranite v konfiguracijo - takrat morate izbrati obstoječi (prej dodan) tabelarični del konfiguracijskega objekta, katerega obrazec urejate.
Kliknite gumb "..." v lastnosti Podatki. Če želite videti seznam tabelarnih delov, morate razširiti vejo Objekt.
Ko izberete tabelarični del, bo 1C sam dodal stolpce v tabelo na obrazcu. Vrstice, ki jih uporabnik vnese v tako tabelo, se samodejno shranijo skupaj z referenčno knjigo/dokumentom.
V isto lastnost Data lahko vnesete poljubno ime in izberete vrsto Tabela vrednosti.
To pomeni, da je bila izbrana poljubna tabela vrednosti. Ne bo samodejno dodal stolpcev, niti se ne bo samodejno shranil, vendar lahko z njim počnete, kar želite.
Z desnim klikom na tabelo lahko dodate stolpec. V lastnostih stolpca lahko določite njegovo ime (za referenco v kodi 1C), naslov stolpca na obrazcu, povezavo z atributom tabelarnega dela (slednje - če ni izbrana poljubna tabela, ampak tabelarnega dela).
V lastnostih tabele na obrazcu lahko določite, ali lahko uporabnik dodaja/briše vrstice. Naprednejša oblika je potrditveno polje Samo ogled. Te lastnosti je priročno uporabljati za organiziranje tabel, namenjenih prikazovanju informacij, ne pa tudi urejanju.
Za upravljanje tabele morate na obrazcu prikazati ukazno ploščo. Izberite menijsko točko Obrazec/Vstavi kontrolnik/Ukazna vrstica.
V lastnostih ukazne vrstice izberite potrditveno polje Samodejno izpolnjevanje, da se gumbi na plošči prikažejo samodejno.
Tabela na obrazcu (lahki/upravljani odjemalec)
Na upravljanem obrazcu so ta dejanja videti nekoliko drugače. Če morate na obrazec postaviti tabelarični del, razširite vejo Objekt in enega od tabelaričnih delov povlecite v levo. To je vse!
Če morate postaviti tabelo vrednosti, dodajte nov atribut obrazca in v njegovih lastnostih določite vrsto – tabela vrednosti.
Če želite dodati stolpce, uporabite meni z desnim klikom na tem atributu obrazca in izberite Dodaj stolpec atributa.
Nato tudi povlecite tabelo v levo.
Da bo tabela imela ukazno vrstico, v lastnostih tabele izberite vrednosti v razdelku Uporaba – Položaj ukazne vrstice.
Nalaganje tabele v Excel
Vsako tabelo 1C, ki se nahaja na obrazcu, je mogoče natisniti ali naložiti v Excel.
To storite tako, da z desno miškino tipko kliknete prazen prostor v tabeli in izberete Seznam.
V upravljanem (lahkem) odjemalcu lahko podobna dejanja izvedete z menijsko postavko Vsa dejanja/Prikaži seznam.