Kako pridobiti podatke iz tabelarnega dela dokumentov? 1s dostop do tabelarnega dela dokumenta

Tabelarni deli obstajajo za številne predmete v 1C:

  • Referenčne knjige
  • Dokumentacija
  • Poročila in obdelave
  • Kontni načrti
  • Načrti vrst značilnosti
  • Načrti vrste izračuna
  • Poslovni procesi in naloge

Tablični deli vam omogočajo shranjevanje neomejene količine strukturiranih informacij, ki pripadajo enemu objektu.

Oglejmo si nekaj metod dela s tabelarnimi deli.

Kako zaobiti tabelarični del

Za premikanje tabelarnega dela lahko uporabite zanko Za vsakogar

Za vsako vrstico iz zanke TabularPart

Poročilo(String.TablePartAttribute) ;

Končni cikel ;

Pri vsaki ponovitvi v spremenljivko Linija naslednja vrstica tabelarnega dela se prenese. Vrednosti atributov nizov lahko dobite z izrazom String.AttributeName.

Kako pridobiti in zaobiti izbrane vrstice tabelarnega dela

Element forme služi za prikaz informacij iz tabelarnega dela objekta. polje tabele. Če želite omogočiti izbiro več vrstic v polju tabele, morate nastaviti vrednost Večkraten na svoji lastnini Izbirni način.

Za pridobitev seznama izbranih vrstic uporabite naslednjo kodo:

Zanka se uporablja za ponavljanje izbranih vrstic Za vsakogar:

SelectedLines = FormElements. TableFieldName. Izbrane vrstice;

Za vsako vrstico iz zanke izbranih vrstic

//zanka vsebine

Končni cikel ;

Kako programsko izbrati vrstice tabelarnega dela (polje tabele) in odstraniti izbor

Če želite programsko preklicati izbiro vrstic v polju tabele:

ElementsForm. TableFieldName. Izbrani nizi. Počisti();

Če želite programsko izbrati vse vrstice v polju tabele:

Za vsako CurrentRow From TabularPart Loop
ElementsForm. TableFieldName. Izbrane vrstice. Dodaj(trenutna vrstica);
Končni cikel ;

Kako počistiti preglednico

TabularPart. Počisti();

Kako pridobiti trenutno vrstico tabelarnega odseka

Trenutna vrstica je obdobje, v katerem ima uporabnik ta trenutek kazalec se nahaja. Če ga želite dobiti, se morate sklicevati na kontrolnik na obrazcu, ki je povezan s tabelarnim delom.

Za običajne obrazce bi bila koda videti takole:

ElementsForm. TableFieldName. CurrentData;

Za upravljane obrazce:

Elementi. TableFieldName. CurrentData;

Kako dodati novo vrstico v preglednico

Dodajanje nove vrstice na konec tabelarnega dela:

Nova Vrstica = Del Tabele. Dodaj();

Dodajanje nove vrstice kjer koli v tabelarnem delu (naslednje vrstice bodo premaknjene):

Nova Vrstica = Del Tabele. Prilepi (indeks)
//Indeks - številka dodane vrstice. Številčenje vrstic se začne od nič.

Nova linija. Atribut1 = "Vrednost" ;

Kako programsko izpolniti podrobnosti vrstice tabele

Če morate programsko izpolniti podrobnosti vrstice tabelarnega odseka, ki ga doda uporabnik, morate uporabiti obravnavo dogodkov tabelarnega odseka AtStartEditing.

Postopek, ki ga ustvari upravljavec, ima tri parametre:

  • Element- vsebuje nadzor TableField.
  • Nova linija- logično. Vsebuje vrednost Prav, če je dodana nova vrstica tabelarnega dela in laž,če je uporabnik začel urejati že obstoječo vrstico.
  • kopiranje- logično. Vsebuje vrednost Pravče uporabnik kopira niz in laž v drugih primerih.

Razmislite o primeru. Recimo, da moramo izpolniti podrobnosti tabelarnega dela AccountAccount, v primeru, da je dodana nova vrstica. Ko urejate obstoječo vrstico, vam ni treba spremeniti računa glavne knjige.

Postopek TabularPartAt EditingStart(Element, NewRow, Copy)

//Če uporabnik ureja obstoječo vrstico, ne stori ničesar
Če NI NewString Potem
Vrnitev;
EndIf ;

//Če je niz nov, nastavite račun
TextString = Element. CurrentData; //Prejeto trenutno vrstico tabelarnega odseka
TekString. AccountAccount = Kontni načrti. Samonosna. Želeni račun;
EndProcedure

Da bi upoštevali denar in blago, se v poslovanju pogosto uporabljajo različne tabele. Skoraj vsak dokument je tabela.

Ena tabela navaja blago, ki bo odpremljeno iz skladišča. V drugi tabeli - obveznost plačila za to blago.

Zato v 1C delo s tabelami zavzema vidno mesto.

Tabele v 1C se imenujejo tudi "deli tabele". Imajo jih referenčne knjige, dokumenti in drugo.

Poizvedba kot rezultat svoje izvedbe 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 razkladanje rezultata poizvedbe v tabelo vrednosti in nato naključni dostop do nje.

//Možnost 1 - zaporedni dostop do rezultatov poizvedbe

// pridobi tabelo
Izbira = Query.Execute().Select();
// obide vse vrstice rezultata poizvedbe po vrstnem redu
Medtem ko Selection.Next() Loop
Poročilo (Ime izbora);
EndCycle;

//Možnost 2 - nalaganje v tabelo vrednosti
Poizvedba = Nova poizvedba ("IZBERI ime IZ Imenika. Nomenklatura");
// pridobi tabelo
Tabela = Query.Execute().Upload().
// potem lahko tudi obidemo vse vrstice
Za vsako vrstico iz zanke tabele
Poročilo(String.Name);
EndCycle;
//ali poljubno dostopati do nizov
String = 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 pri iskanju po nomenklaturi prejeli stolpec vrste 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 z nadzorne plošče. Podobno lahko v meniju izberete kontrolnik Obrazec/Vstavi.

Podatke je mogoče shraniti v konfiguracijo - potem morate izbrati obstoječo (prej dodano) tabelarnega dela konfiguracijski objekt, katerega obrazec urejate.

Kliknite gumb "..." v lastnosti Podatki. Če želite videti seznam tabelarnih delov, morate razširiti vejo Objekt.

Pri izbiri tabelarnega dela bo 1C sam dodal stolpce v tabelo na obrazcu. Nizi, ki jih uporabnik vnese v tako tabelo, se samodejno shranijo skupaj z imenikom/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, ne bo samodejno shranjen, 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 tabelarični del).

V lastnostih tabele na obrazcu lahko določite, ali lahko uporabnik dodaja/briše vrstice. Naprednejša oblika je potrditveno polje ViewOnly. Te lastnosti so uporabne 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 nadzor/Ukazna plošča.

V lastnostih ukazne vrstice izberite potrditveno polje Samodokončanje, da se gumbi v orodni vrstici prikažejo samodejno.

Tabela na obrazcu (lahki/upravljani odjemalec)

Vklopljeno upravljana oblika ta dejanja izgledajo nekoliko drugače. Če morate na obrazec postaviti tabelarični del, razširite vejo Objekt in povlecite enega od tabelaričnih odsekov v levo. In to je to!

Č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 gumbom miške na tem atributu obrazca, element 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.

Izvoz tabele v Excel

Vsako tabelo 1C, ki se nahaja na obrazcu, je mogoče natisniti ali naložiti v Excel.

Če želite to narediti, z desno miškino tipko kliknite prosti prostor v tabeli in izberite Prikaži seznam.

V upravljanem (lahkem) odjemalcu lahko podobna dejanja izvedete z menijsko postavko Vsa dejanja/Prikaži seznam.

Dom za razvijalce začetnike Naučite se programirati

Kako pridobiti podatke iz tabelarnega dela dokumentov?

Na primer, razmislite o situaciji, ko želite pridobiti vse postavke zaloge, podane v tabelarnem delu Blago dokumenti Realizacija blaga in storitev.

Če želite to narediti, lahko uporabite poizvedbo z naslednjim besedilom:

IZBERITE DRUGO Realizacija blaga storitev Blago.Nomenklatura KOT Nomenklatura IZ Dokumenta Realizacija blaga storitev Blago KOT Realizacija blaga storitev Blago

Kot vir navajamo tabelarični del dokumentov – tabelo Dokument.Prodaja blagaStoritve.Blago. Deklarirajte polje kot izhodno polje Nomenklatura A, ki je del izvorne tabele. Poleg tega, ker je ista blagovna postavka v dokumentih seveda lahko prisotna večkrat, uporabljamo RAZLIČNO da dobite samo različne vrstice v izhodni tabeli poizvedbe.

Na primer, ustvarimo obdelavo Seznam izdelkov kjer je dokument izbran Realizacija blaga in storitev, s klikom na ustrezen gumb pa se v sporočilnem oknu izpiše seznam neponavljajočih se postavk nomenklature, ki jih vsebuje tabelarični del tega dokumenta.

Da omejimo izbiro nomenklature le na nomenklaturo iz tabelarnega dela določenega dokumenta, uporabimo parameter Povezava v stanju v povpraševanju ( KJE...):

SELECT DIFFERENT Realizacija blaga storitev Blago Nomenklatura KOT Nomenklatura IZ Dokumenta Realizacija blaga storitev Blago KOT Realizacija blaga storitev Blago WHERE Realizacija blaga storitev Blago Link = & Link




Vrh