Kako postaviti pametne telefone i računala. Informativni portal
  • Dom
  • Windows Phone
  • 1c rad s tabličnim dijelom dokumenta. Kako programski ispuniti pojedinosti retka odjeljka tablice

1c rad s tabličnim dijelom dokumenta. Kako programski ispuniti pojedinosti retka odjeljka tablice

Tablični dijelovi postoje za mnoge objekte u 1C:

  • Imenici
  • Dokumenti
  • Izvješća i obrada
  • Grafikoni računa
  • Karte karakterističnih tipova
  • Grafikoni tipova izračuna
  • Poslovni procesi i zadaci

Tablični odjeljci omogućuju pohranjivanje neograničene količine strukturiranih informacija koje pripadaju jednom objektu.

Razmotrimo neke tehnike za rad s tabličnim dijelovima.

Kako zaobići tabelarni dio

Za prelazak tabelarnog odjeljka možete koristiti petlju Za svakoga

Za svaki red iz petlje TabularPart

Izvješće (String. TabularSection Props);

Kraj ciklusa;

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

Kako dobiti i zaobići odabrane retke tabelarnog odjeljka

Za prikaz informacija iz tabličnog dijela objekta koristite element obrasca Polje tablice... Da biste omogućili mogućnost odabira više redaka u polju tablice, postavite vrijednost Višestruko svoje vlasništvo Način odabira.

Sljedeći kod se koristi za dobivanje popisa istaknutih redaka:

Kako bi se zaobišli odabrani redovi, koristi se petlja Za svakoga:

Odabrani redovi = Elementi obrasca. Naziv tabličnog polja. Odabrane linije;

Za svaki red odabranih redaka petlja

// sadržaj petlje

Kraj ciklusa;

Kako programski odabrati retke tabelarnog odjeljka (polje tablice) i poništiti njihov odabir

Da biste programski poništili odabir redaka polja tablice:

Elementi forme. Naziv tabličnog polja. Namjenski redovi. Čisto ();

Za programski odabir svih redaka polja tablice:

Za svaki CurrentRow From TabularPart Loop
Elementi forme. Naziv tabličnog polja. Odabrani redovi. Dodaj (trenutni redak);
Kraj ciklusa;

Kako izbrisati tabelarni dio

Tablični dio. Čisto ();

Kako dobiti trenutni red tabličnog odjeljka

Trenutni redak je vrijeme u kojem korisnik trenutno ima pokazivač. Da biste je dobili, trebate se obratiti na kontrolu na obrascu, koja je povezana s tabličnim odjeljkom.

Za normalne forme, kod će izgledati ovako:

Elementi forme. Naziv tabličnog polja. CurrentData;

Za upravljane obrasce:

Elementi. Naziv tabličnog polja. CurrentData;

Kako dodati novi red u tabelarni dio

Dodavanje novog retka na kraj tabličnog odjeljka:

NoviRed = Tablični odjeljak. Dodati() ;

Dodavanje novog retka bilo gdje u tabličnom odjeljku (sljedeći retki bit će pomaknuti):

NoviRed = Tablični odjeljak. umetnuti (indeks)
// Indeks je broj dodanog retka. Numeriranje redaka počinje od nule.

Nova linija. Props1 = "Vrijednost";

Kako programski ispuniti pojedinosti retka odjeljka tablice

Ako trebate programski ispuniti atribute retka tabličnog odjeljka koji korisnik dodaje, morate koristiti rukovatelj događaja tabličnog odjeljka Na početku uređivanja.

Procedura koju kreira rukovatelj ima tri parametra:

  • Element- sadrži kontrolu Tablično polje.
  • Nova linija- boolean. Sadrži vrijednost Pravi ako se doda novi red tabličnog odjeljka, i Laž, ako je korisnik počeo uređivati ​​već postojeći redak.
  • Kopiranje- boolean. Sadrži vrijednost Pravi ako korisnik kopira niz, i Laž u drugim slučajevima.

Pogledajmo primjer. Recimo da trebamo popuniti rekvizite tabelarnog dijela Račun Račun, u slučaju da se doda novi redak. Prilikom uređivanja postojećeg retka, ne morate mijenjati računovodstveni račun.

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

// Ako korisnik uređuje postojeći redak, ne čini ništa
Ako NE NewString Onda
Povratak;
Završi ako;

// Ako je redak nov, postavite računski račun
Tekstni niz = Element. CurrentData; // Dobiva trenutni red tablice
Tekstni niz. Račun Račun = Planovi računa. Samonosivi. Potreban račun;
Završetak postupka

U okviru ovog članka napisat ćemo obradu popunjavanja tabličnog 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.

Ova je uputa za upravljane obrasce (8.2 i 8.3). Za obične oblike (8.1, 8.2) možete koristiti.

Napravite novi tretman i spremite ga na svoje računalo. Prvo morate izvršiti neke korake registracije.

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

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

Ispunjavanje tabelarnog dijela dokumenta

Kreirajmo novi obrazac za obradu.

Sada moramo dodati novu naredbu u kreirani obrazac. Pretpostavlja se da će automatski mijenjati podatke u tabličnom dijelu jednog i više dokumenata (njihov popisni oblik) istovremeno, a kasnije ih bilježiti.

U okviru našeg primjera obradit će se već postojeći tablični odjeljak "Proizvodi". Ručni popust od 5% bit će postavljen za svaku liniju. Također, izračunat ćemo i sam iznos ovog popusta, jednak količini robe u redu, pomnoženoj s 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. PostotakManualDiscount = 5; String TK. Ručni iznos popusta = String TK. Iznos * 0. 05; Kraj ciklusa; Objekat narudžbe kupca. Napišite (); Kraj ciklusa; Završetak postupka

Registracija vanjske obrade

Pokrenite 1C u načinu "Enterprise" i otvorite direktorij "Dodatna izvješća i obrada". Pronaći ćemo ga kroz izbornik "Sve funkcije".

Napravite novi element u otvorenom direktoriju i upotrijebite istoimeni gumb za učitavanje obrade iz datoteke. Istodobno ćemo ga postaviti na obrazac liste i na obrazac same kartice dokumenta.

Sada će se u obliku popisa dokumenata "Nalog klijenta" nalaziti gumb "Ispuni ..."

Ovaj gumb također će biti dostupan na kartici samog dokumenta.

Za obračun novca i robe u poslovanju se široko koriste različite tablice. Gotovo svaki dokument je tablica.

U jednoj tablici su navedeni artikli za otpremu iz skladišta. U drugoj tablici nalaze se obveze plaćanja ove robe.

Stoga u 1C istaknuto mjesto zauzima rad s tablicama.

Tablice u 1C nazivaju se i "tabelarni odjeljci". Priručnici, dokumenti i ostalo ih imaju.

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

Prvi - brži - odabir, dohvaćanje redaka 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

// dobiti stol
Odabir = Query.Run (). Odaberite ();
// redom prolazimo kroz sve retke rezultata upita
Dok Dohvati.Next () Petlja
Izvješće (Uzorak. Naziv);
Kraj ciklusa;

// Opcija 2 - istovar u tablicu vrijednosti
Zahtjev = Novi zahtjev ("ODABIR Naziv IZ Imenika.Nomenklatura");
// dobiti stol
Tablica = Upit.Pokreni (). Učitaj ().
// tada također možemo proći kroz sve retke
Za svaki redak iz petlje tablice
Izvješće (String.Name);
Kraj ciklusa;
// ili proizvoljno pristupiti nizovima
Linija = Tablica. Pronađite ("Lopata", "Ime");

Važna značajka je da će u tablici koja se dobiva iz rezultata upita svi stupci biti snažno upisani. To znači da ćete zahtjevom za polje Ime iz Nomenklature priručnika dobiti stupac tipa String s dopuštenom duljinom od najviše N znakova.

Tablica na obrascu (debeli klijent)

Korisnik radi s tablicom kada je postavljena na obrazac.

O osnovnim principima rada s oblicima razgovarali smo na satu i na satu

Dakle, stavimo tablicu na obrazac. Da biste to učinili, možete povući tablicu s upravljačke ploče. Slično, možete odabrati u izborniku Form / Insert Control.

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

Kliknite gumb "..." u svojstvu Podaci. Da biste vidjeli popis tabličnih odjeljaka, morate proširiti granu Objekt.

Prilikom odabira tabličnog odjeljka, 1C će sam dodati stupce u tablicu na obrascu. Redovi koje je korisnik unio u takvu tablicu automatski će se pohraniti zajedno s referencom/dokumentom.

U isto svojstvo podataka možete unijeti proizvoljan naziv i odabrati tip ValuesTable.

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

Desnim klikom na tablicu možete dodati stupac. U svojstvima stupca možete odrediti njegov naziv (za referencu u 1C kodu), naslov stupca na obrascu, vezu s atributom tabličnog odjeljka (potonji - ako nije proizvoljna tablica, ali je tablični odjeljak odabran).

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

Za upravljanje tablicom morate prikazati traku naredbi na obrascu. Odaberite stavku izbornika Obrazac / Umetanje upravljačke / Naredbene ploče.

U svojstvima naredbene trake označite potvrdni okvir Autocomplete kako bi se gumbi na traci automatski pojavili.

Tablica na obrascu (tanki / upravljani klijent)

U upravljanom obliku, ove radnje izgledaju malo drugačije. Ako trebate postaviti tablični odjeljak na obrazac, otvorite granu Objekt i povucite jedan od tabličnih odjeljaka ulijevo. I to je to!

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

Da biste dodali stupce, upotrijebite izbornik desnom tipkom miša na ovom atributu obrasca, stavka stupca Dodaj atribut.

Zatim također povucite tablicu ulijevo.

Da bi tablica imala naredbenu traku, u svojstvima tablice odaberite vrijednosti u odjeljku Upotreba - Položaj trake naredbi.

Izvezite tablicu u Excel

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

Da biste to učinili, desnom tipkom miša kliknite prazan prostor u tablici i odaberite Popis.

U upravljanom (tankom) klijentu slične se radnje mogu izvesti pomoću stavke izbornika Sve radnje / Prikaz popisa.

Vrhunski povezani članci