Kako podesiti pametne telefone i računare. Informativni portal
  • Dom
  • Greške
  • 1c polje tablice postavlja trenutni red. Kako dobiti i zaobići odabrane redove tabelarnog odjeljka

1c polje tablice postavlja trenutni red. Kako dobiti i zaobići odabrane redove tabelarnog odjeljka

Kako postaviti string u čitanju 8.2 (Upravljani obrasci). .

Za početak želim da vas podsjetim da su podaci tabelarnog dijela dokumenta (ili tablice vrijednosti) i polja tabele različiti objekti. Da bismo napravili neke vizuelne radnje, radimo sa poljem tabele. U ovom slučaju, koristićemo njegovo svojstvo "CurrentRow", koje je upravo ono što je odgovorno za koji red je aktivan.

Da bismo odabrali red koji nam je potreban u polju tabele, potrebna su nam dva koraka:

1. Pronađite string koji nam je potreban u objektu podataka koji polje tabele prikazuje
Naglašavam da vam je ovdje potreban objekt podataka. Na primjer, imamo dokument Realizacija roba i usluga koji ima tabelarni dio "Roba" i odlučili smo da 2. red bude aktivan na obrascu dokumenta. Zatim ćemo u modul formulara dokumenta napisati:


// drugi red ima indeks jednak jedan
RequiredString = Proizvodi;

Ili znamo da je u drugom redu u koloni Nomenklatura element Code jednak "001", tada koristimo konstrukciju:


// prvo pronalazimo nomenklaturu referentne stavke prema kodu
// a zatim ga potražite u tabličnom dijelu "Proizvodi"
RequiredString = Products.Find(Directories.Nomenclature.FindByCode("001"));

2. Postavite vrijednost tekuće linije na pronađenu liniju
Sada trebamo dodijeliti vrijednost varijable DesiredRow svojstvu polja tablice CurrentRow:


// ako se naše polje tabele takođe zove Goods
FormElements.Products.CurrentLine = DesiredLine;

// ako se polje tabele zove TableField1

Kao rezultat, linije koda mogu izgledati ovako:

RequiredString = Products.Find(Directories.Nomenclature.FindByCode("001"));
FormElements.TableField1.CurrentRow = DesiredRow;

Prvo morate razumjeti da postoji objekt koji sadrži podatke, na primjer FormDataCollection i postoji objekt koji vizualno prikazuje podatke - tablica.

Tabela ima samo trenutni red, ne može se koristiti za pronalaženje svih postojećih vrijednosti FormDataCollection s kojima je povezana. Zauzvrat, FormDataCollection nema trenutni red. Za povezivanje ovih objekata u 1s koristi se Identifier, jer se redoslijed redova može mijenjati kako u vizualnom dijelu tako iu podacima, ali veza ne bi trebala biti prekinuta.

Pogledajmo ovo na primjeru:

Obrazac ima atribut tipa TK (ValueTable) - u zagradama jer je stvarni tip FormDataCollection

Rekvizit je prikazan na obrascu u obliku tabele.

Određivanje reda tabele vrednosti trenutnim redom tabele

Da biste utvrdili koja je linija TK-a trenutno aktuelna, prvo morate dobiti ID reda u tabeli, a zatim ga koristiti za pronalaženje linije u TK-u

RowId = Elements.TK.CurrentRow; // Dobivamo identifikator u tablici StringT3 = T3.FindByIdentifier(RowId);

Postavljanje trenutnog reda u tabeli

Da biste postavili trenutni red tabele, morate učiniti suprotno. Prvo nabavite identifikator TK-a, a zatim postavite trenutni red tabele na njega.

StringT3 = FormDataCollection; // na primjer, uzmimo red 1 StringID = StringT3.GetIdentifier(); Elements.TK.CurrentLine = LineID;

Za bolje razumijevanje, možete preuzeti

Tabelarni dijelovi postoje za mnoge objekte u 1C:

  • Referentne knjige
  • Dokumentacija
  • Izvještaji i obrada
  • Kontni planovi
  • Planovi tipova karakteristika
  • Planovi tipa kalkulacije
  • Poslovni procesi i zadaci

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

Pogledajmo neke metode rada sa tabelarnim dijelovima.

Kako zaobići tabelarni dio

Možete koristiti petlju za prelazak kroz tabelarni dio Za sve

Za svaki red iz TabularPart petlje

Izvještaj(String.TablePartAttribute) ;

EndCycle ;

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

Kako dobiti i zaobići odabrane redove tabelarnog odjeljka

Element forme koristi se za prikaz informacija iz tabelarnog dijela objekta. polje tabele. Da biste omogućili mogućnost odabira više redova u polju tabele, morate postaviti vrijednost Višestruko na svom imanju Način odabira.

Da biste dobili listu odabranih linija, koristite sljedeći kod:

Petlja se koristi za ponavljanje preko odabranih linija Za sve:

SelectedLines = FormElements. TableFieldName. Odabrane linije;

Za svaki red iz petlje odabranih redova

//sadržaj petlje

EndCycle ;

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

Da programski poništite odabir redova u polju tabele:

ElementsForm. TableFieldName. SelectedStrings. Clear() ;

Da programski odaberete sve redove u polju tabele:

Za svaku petlju CurrentRow From TablePart
ElementsForm. TableFieldName. Odabrane linije. Dodaj (TrenutniRed) ;
EndCycle ;

Kako očistiti tabelu

TabularPart. Clear() ;

Kako dobiti trenutni red tabelarnog odeljka

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

Za obične forme, kod bi izgledao ovako:

ElementsForm. TableFieldName. CurrentData;

Za upravljane forme:

Elementi. TableFieldName. CurrentData;

Kako dodati novi red u tabelu

Dodavanje novog reda na kraj tabelarnog dijela:

NewRow = TablePart. Dodati() ;

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

NewRow = TablePart. Zalijepi (indeks)
//Indeks - broj dodane linije. Numerisanje redova počinje od nule.

Nova linija. Atribut1 = "Vrijednost" ;

Kako programski popuniti detalje reda tabele

Ako trebate programski popuniti detalje retka tabelarnog odjeljka koji korisnik dodaje, morate koristiti obrađivač događaja tabelarnog odjeljka AtStartEditing.

Procedura koju kreira rukovalac ima tri parametra:

  • Element- sadrži kontrolu TableField.
  • 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ći red.
  • kopiranje- boolean. Sadrži vrijednost Tačno ako korisnik kopira string, i Lazi u drugim slučajevima.

Razmotrimo primjer. Recimo da moramo popuniti detalje tabelarnog dijela AccountAccount, u slučaju kada se dodaje novi red. Kada uređujete postojeći red, ne morate mijenjati račun glavne knjige.

Procedura TabularPartAt EditingStart(Element, NewRow, Copy)

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

//Ako je string nov, postavite nalog
TextString = Element. CurrentData; //Primio trenutni red tabelarnog odeljka
TekString. Račun Račun = Kontni planovi. Samonosivi. Željeni račun;
EndProcedure

Top Related Articles