Kako podesiti pametne telefone i računare. Informativni portal
  • Dom
  • Windows Phone
  • 1c rad sa tabelarnim dijelom dokumenta. Kako programski popuniti detalje reda u odeljku tabele

1c rad sa tabelarnim dijelom dokumenta. Kako programski popuniti detalje reda u odeljku tabele

Tabelarni dijelovi postoje za mnoge objekte u 1C:

  • Imenici
  • Dokumentacija
  • Izvještaji i obrada
  • Grafikoni računa
  • Grafikoni tipova karakteristika
  • Grafikoni tipova kalkulacija
  • Poslovni procesi i zadaci

Tablični dijelovi vam omogućavaju da pohranite neograničenu količinu strukturiranih informacija koje pripadaju jednom objektu.

Razmotrimo neke tehnike za rad sa tabelarnim sekcijama.

Kako zaobići tabelarni dio

Da biste prešli tabelarni dio, možete koristiti petlju Za sve

Za svaki red iz TabularPart petlje

Izvještaj (String. TabularSection Props);

Kraj ciklusa;

Na svakoj iteraciji u varijablu Linija prenosi se sljedeći red tabelarnog dijela. Vrijednosti atributa niza mogu se dobiti pomoću izraza String.PropsName.

Kako dobiti i zaobići odabrane redove tabelarnog odjeljka

Za prikaz informacija iz tabelarnog dijela objekta koristite element forme Polje tabele... Da biste omogućili mogućnost odabira više redova u polju tabele, postavite vrijednost Višestruko svoju imovinu Način odabira.

Sljedeći kod se koristi za dobivanje liste istaknutih linija:

Da bi se zaobišle ​​odabrane linije, koristi se petlja Za sve:

SelectedRows = Elementi obrasca. TabularField Name. SelectedLines;

Za svaki red odabranih redova petlja

// sadržaj petlje

Kraj ciklusa;

Kako programski odabrati redove tabelarnog odeljka (polje tabele) i poništiti njihov izbor

Da programski poništite odabir redova polja tabele:

Elementi forme. TabularField Name. Dedicated Rows. Očisti ();

Da programski odaberete sve redove polja tabele:

Za svaki CurrentRow From TabularPart Loop
Elementi forme. TabularField Name. Odabrani redovi. Dodaj (CurrentLine);
Kraj ciklusa;

Kako obrisati tabelarni dio

TabularPart. Očisti ();

Kako dobiti trenutni red tabelarnog odjeljka

Trenutni red je vrijeme u kojem korisnik trenutno ima kursor. Da biste je dobili, potrebno je da se pozovete na kontrolu na obrascu, koja je povezana sa tabelarnim odeljkom.

Za normalne forme, kod će izgledati ovako:

Elementi forme. TabularField Name. CurrentData;

Za upravljane forme:

Elementi. TabularField Name. CurrentData;

Kako dodati novi red u tabelarni dio

Dodavanje novog reda na kraj tabelarnog dijela:

NewRow = Tabularni odjeljak. Dodati() ;

Dodavanje novog reda bilo gdje u tabličnom dijelu (sljedeći redovi će biti pomjereni):

NewRow = Tabularni odjeljak. umetnuti (indeks)
// Indeks je broj dodane linije. Numeracija linija počinje od nule.

Nova linija. Props1 = "Vrijednost";

Kako programski popuniti detalje reda u odeljku tabele

Ako trebate programski popuniti atribute reda tabelarnog odjeljka koji korisnik dodaje, morate koristiti obrađivač događaja tabelarnog odjeljka Na početku uređivanja.

Procedura koju kreira rukovalac ima tri parametra:

  • Element- sadrži kontrolu TabularField.
  • Nova linija- boolean. Sadrži vrijednost Tačno ako se doda novi red tabelarnog dijela, i laž, ako je korisnik počeo uređivati ​​već postojeću liniju.
  • Kopiranje- boolean. Sadrži vrijednost Tačno ako korisnik kopira string, i Lazi u drugim slučajevima.

Pogledajmo primjer. Recimo da trebamo popuniti rekvizite tabelarnog dijela Račun Račun, u slučaju da se doda novi red. Prilikom uređivanja postojeće linije, ne morate mijenjati računski račun.

Procedura TabularParton Početak uređivanja (stavka, novi red, kopija)

// Ako korisnik uređuje postojeću liniju, ne čini ništa
Ako NIJE NewString Onda
Povratak;
EndIf;

// Ako je linija nova, postavite računski račun
TextString = Element. CurrentData; // Dobivamo trenutni red tabelarnog odeljka
TextString. Račun Račun = Planovi računa. Samonosivi. RequiredAccount;
Kraj procedure

U okviru ovog članka napisat ćemo obradu popunjavanja tabelarnog odjeljka u 1C 8.3 za tipičnu konfiguraciju 1C: ERP 2.1. Pretpostavimo da je cilj zadatka postaviti ručni popust od 5% za sve stavke nomenklature ovog dokumenta. Primjer iz članka može se preuzeti putem ili druge slične obrade.

Ovo uputstvo je za upravljane forme (8.2 i 8.3). Za obične forme (8.1, 8.2) možete koristiti.

Kreirajte novi tretman i sačuvajte ga na računaru. Prvo morate izvršiti neke korake registracije.

Otvorite objektni modul i napišite kod ispod (možete ga preuzeti i iz gornje obrade). Generalno, struktura se neće mijenjati ovisno o situaciji. Uređuju se samo neki od parametara podešavanja, kao i, ako je potrebno, nazivi varijabli.

U okviru ovog članka nećemo se zadržavati na registraciji eksternih obrazaca za obradu i štampanje u 1C. Sve ove informacije nalaze se u našim drugim člancima.

Popunjavanje tabelarnog dela dokumenta

Kreirajmo novi obrazac za obradu.

Sada moramo dodati novu naredbu na kreiranu formu. Pretpostavlja se da će automatski mijenjati podatke u tabelarnom dijelu i jednog i više dokumenata (njihov oblik liste) istovremeno, s tim što će ih kasnije evidentirati.

U okviru našeg primjera obradit će se već postojeći tabelarni dio „Proizvodi“. Za svaku liniju biće postavljen ručni popust od 5%. Takođe, izračunaćemo i sam iznos ovog popusta, jednak količini robe u redu, pomnoženoj sa 0,05.

& OnServer procedura RunCommand (Command, AssignmentObjects) Za svaki OrderClient iz AssignmentObjects Ciklus OrderClientObject = OrderClient. GetObject (); Za svaki String TK iz CustomerOrderObject. Robni ciklus String TZ. PercentageManualDiscount = 5; String TK. Iznos ručnog popusta = String TK. Iznos * 0. 05; Kraj ciklusa; Customer OrderObject. Pisati (); Kraj ciklusa; Kraj procedure

Registracija eksterne obrade

Pokrenite 1C u načinu rada "Enterprise" i otvorite direktorij "Dodatni izvještaji i obrada". Pronaći ćemo ga kroz meni "Sve funkcije".

Kreirajte novi element u otvorenom direktoriju i koristite dugme istog imena da učitate svoju obradu iz datoteke. Postavićemo ga istovremeno na obrazac liste i na obrazac same kartice dokumenta.

Sada će u obliku liste dokumenata "Nalog klijenta" biti dugme "Popuni..."

Ovo dugme će takođe biti dostupno na kartici samog dokumenta.

Za obračun novca i robe u poslovanju se široko koriste različite tabele. Skoro svaki dokument je tabela.

U jednoj tabeli su navedeni artikli za otpremu iz skladišta. U drugoj tabeli su obaveze plaćanja ove robe.

Stoga, u 1C, istaknuto mjesto zauzima rad sa tablicama.

Tabele u 1C se također nazivaju "tabelarni dijelovi". Priručnici, dokumenti i ostalo ih imaju.

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

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

// Opcija 1 - sekvencijalni pristup rezultatima upita

// dobijemo tabelu
Odabir = Query.Run (). Odaberite ();
// redom prolazimo kroz sve redove rezultata upita
Dok Fetch.Next () Petlja
Izvještaj (Uzorak. Naziv);
Kraj ciklusa;

// Opcija 2 - istovar u tablicu vrijednosti
Zahtjev = Novi zahtjev ("IZABERI Ime IZ Direktorija.Nomenklature");
// dobijemo tabelu
Tabela = Query.Run (). Učitaj ().
// tada također možemo proći kroz sve redove
Za svaki red iz petlje tabele
Izvještaj (String.Name);
Kraj ciklusa;
// ili proizvoljno pristupiti nizovima
Linija = Tabela Nađi ("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 Nomenklature referentne knjige dobiti kolonu tipa String sa dozvoljenom dužinom od najviše N karaktera.

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 u izborniku Form / Insert Control.

Podaci se mogu pohraniti u konfiguraciju - 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 sekcija, morate proširiti granu Objekt.

Prilikom odabira tabelarnog odjeljka, 1C će sam dodati stupce u tablicu na obrascu. Redovi koje je korisnik uneo u takvu tabelu biće automatski sačuvani zajedno sa referencom/dokumentom.

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

To znači da je odabrana proizvoljna tablica vrijednosti. Neće automatski dodavati kolone, neć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 navesti njeno ime (za referencu u 1C kodu), naslov kolone na obrascu, vezu sa atributom tabelarnog odeljka (potonji - ako nije proizvoljna tabela, ali tabelarni deo je odabrano).

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

Da biste upravljali tabelom, morate prikazati komandnu traku 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 pojavila automatski.

Tabela na obrascu (tanki / upravljani klijent)

U upravljanom obliku, ove radnje izgledaju malo drugačije. Ako trebate postaviti tabelarni dio na obrazac, otvorite granu Objekt i prevucite jedan od tabelarnih odjeljaka na lijevo. I to je to!

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

Da biste dodali kolone, koristite meni desnim klikom na ovaj atribut obrasca, stavku kolone Dodaj atribut.

Zatim povucite tabelu ulijevo.

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

Izvezite tabelu u Excel

Bilo koja tablica 1C koja se nalazi na obrascu može se ispisati ili preuzeti 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 / Prikaz liste.

Top srodni članci