1s 8,2 tabuľková časť dostať. Ako získať údaje z tabuľkovej časti dokumentov? Ako získať a obísť vybrané riadky tabuľkovej časti

Domov Pre začínajúcich vývojárov Učíme sa programovať

Ako získať údaje z tabuľkovej časti dokumentov?

Predstavte si napríklad situáciu, keď potrebujete získať všetky položky položiek špecifikované v tabuľkovej časti Tovar Dokumenty Predaj tovaru a služieb.

Na tento účel môžete použiť žiadosť s nasledujúcim textom:

VYBERTE RÔZNE Predaj tovaru a služieb Tovar Nomenklatúra AS Nomenklatúra Z dokumentu Predaj tovaru a služieb Tovar AS Predaj tovaru a služieb Tovar

Ako zdroj uvádzame tabuľkovú časť dokumentov – tabuľku Dokument Predaj Tovaru a Služieb Tovar. Výstupné pole deklarujeme ako pole Nomenklatúra, ktorý je súčasťou zdrojovej tabuľky. Okrem toho, keďže tá istá položka produktu, prirodzene, môže byť v dokumentoch viac ako raz, používame RÔZNY získať iba odlišné riadky vo výstupnej tabuľke dotazu.

Vytvorme si napríklad spracovanie Zoznam produktov, kde je vybraný dokument Predaj tovaru a služieb a kliknutím na príslušné tlačidlo sa v okne správy zobrazí zoznam neopakujúcich sa položiek nomenklatúry obsiahnutých v tabuľkovej časti tohto dokumentu.

Aby sme výber položiek obmedzili len na položky z tabuľkovej časti konkrétneho dokladu, používame parameter Link v stave v žiadosti ( KDE...):

VYBERTE RÔZNE Predaj tovaru a služieb Tovar Nomenklatúra AKO Nomenklatúra Z dokumentu Predaj tovaru a služieb Tovar AKO Predaj tovaru a služieb Tovar KDE Predaj tovaru a služieb Tovar Odkaz = &Odkaz

Tabuľkové časti existujú pre mnoho objektov v 1C:

  • Adresáre
  • Dokumentácia
  • Správy a spracovanie
  • Účtovné osnovy
  • Plány charakteristického typu
  • Plány typu výpočtu
  • Obchodné procesy a úlohy

Tabuľkové časti umožňujú uložiť neobmedzené množstvo štruktúrovaných informácií patriacich k jednému objektu.

Pozrime sa na niektoré techniky práce s tabuľkovými časťami.

Ako obísť tabuľkovú časť

Na prechod stolovou časťou môžete použiť slučku Pre každý

Pre každý riadok z tabuľkovej časti cyklu

Report(String. Atribút TabularPart) ;

EndCycle ;

Pri každej iterácii do premennej Linka prenáša sa ďalší riadok tabuľkovej časti. Hodnoty podrobností riadku možno získať výrazom Riadok.Názov atribútu.

Ako získať a obísť vybrané riadky tabuľkovej časti

Ak chcete zobraziť informácie z tabuľkovej časti objektu, použite prvok formulára Pole tabuľky. Ak chcete povoliť možnosť výberu viacerých riadkov v poli tabuľky, musíte nastaviť hodnotu Viacnásobné na jeho majetku Režim výberu.

Ak chcete získať zoznam vybraných riadkov, použite nasledujúci kód:

Slučka sa používa na iteráciu cez vybrané riadky. Pre každý:

SelectedRows = FormElements. TableFieldName. SelectedRows;

Pre každý riadok z vybraných riadkov slučka

//obsah slučky

EndCycle ;

Ako programovo vybrať riadky tabuľkovej časti (pole tabuľky) a zrušiť ich výber

Ak chcete programovo zrušiť výber riadkov poľa tabuľky:

Prvky formulára. TableFieldName. SelectedRows. Jasný() ;

Ak chcete programovo vybrať všetky riadky poľa tabuľky:

Pre každý CurrentRow From TabularPart Loop
Prvky formulára. TableFieldName. SelectedLines. Add(CurrentRow) ;
EndCycle ;

Ako vyčistiť časť stola

TabularPart. Jasný() ;

Ako získať aktuálny riadok sekcie tabuľky

Aktuálny riadok je obdobie, v ktorom má používateľ tento moment kurzor sa nachádza. Ak ho chcete získať, musíte získať prístup k ovládaciemu prvku vo formulári, ktorý je spojený s tabuľkovou časťou.

Pre bežné formuláre bude kód vyzerať takto:

Prvky formulára. TableFieldName. CurrentData;

Pre spravované formuláre:

Prvky. TableFieldName. CurrentData;

Ako pridať nový riadok do časti tabuľky

Pridanie nového riadku na koniec časti tabuľky:

NewRow = TablePart. Add() ;

Pridanie nového riadku kdekoľvek v sekcii tabuľky (nasledujúce riadky budú posunuté):

NewRow = TablePart. Vložiť (index)
//Index - číslo pridaného riadku. Číslovanie riadkov začína od nuly.

Nový riadok. Props1 = "Hodnota" ;

Ako programovo vyplniť podrobnosti o riadku tabuľky

Ak potrebujete programovo vyplniť podrobnosti riadka sekcie tabuľky, ktorý pridá používateľ, musíte použiť obslužný program udalosti sekcie tabuľky Pri spustení úprav.

Procedúra vytvorená obsluhou má tri parametre:

  • Element- obsahuje ovládací prvok TabularField.
  • Nový riadok- boolovský. Obsahuje hodnotu Pravda, ak sa pridá nový riadok tabuľky, a lož, ak používateľ začal upravovať už existujúci riadok.
  • Kopírovať- boolovský. Obsahuje hodnotu Pravda, ak používateľ skopíruje riadok, a Klamať v iných prípadoch.

Pozrime sa na príklad. Povedzme, že potrebujeme vyplniť podrobnosti tabuľkovej časti ÚčetÚčet, v prípade, že sa pridá nový riadok. Pri úprave existujúceho riadku nemusíte meniť účtovný účet.

Procedúra TabularPartAtStartEditing(Element, NewRow, Copy)

//Ak používateľ upraví existujúci riadok, neurobíme nič
Ak NIE JE NewRow Then
Návrat;
Koniec Ak ;

//Ak je riadok nový, nastavte účtovný účet
TechString = Položka. CurrentData; //Získajte aktuálny riadok tabuľkovej časti
TechString. Účtovníctvo = Účtovné osnovy. Samonosné. Požadovaný účet;
Koniec procedúry

Na účtovanie peňazí a tovaru sa v podnikaní široko používajú rôzne tabuľky. Takmer každý dokument je tabuľka.

V jednej tabuľke je uvedený tovar na odoslanie zo skladu. V ďalšej tabuľke sú uvedené povinnosti platiť za tento tovar.

Preto v 1C práca s tabuľkami zaujíma popredné miesto.

Tabuľky v 1C sa tiež nazývajú „tabuľkové časti“. Adresáre, dokumenty a iné ich majú.

Dotaz po vykonaní vráti tabuľku, ku ktorej je možné pristupovať dvoma rôznymi spôsobmi.

Prvý - rýchlejší - výber, získavanie riadkov z neho je možné len v poradí. Druhým je nahranie výsledku dotazu do tabuľky hodnôt a následný náhodný prístup k nemu.

//Možnosť 1 – sekvenčný prístup k výsledkom dotazu

//získajte stôl
Select = Query.Run().Select();
// prejdeme postupne všetky riadky výsledku dotazu
Zatiaľ čo Select.Next() Loop
Report(Selection.Name);
EndCycle;

//Možnosť 2 – nahrávanie do tabuľky hodnôt
Request = New Request("SELECT Name FROM Directory.Nomenclature");
//získajte stôl
Tabuľka = Query.Run().Unload().
//ďalej môžeme tiež iterovať cez všetky riadky
Pre každý riadok z cyklu tabuľky
Report(String.Name);
EndCycle;
//alebo ľubovoľný prístup k reťazcom
Riadok = Table.Find("Lopata", "Nazov");

Dôležitou vlastnosťou je, že v tabuľke získanej z výsledku dotazu budú všetky stĺpce presne napísané. To znamená, že vyžiadaním poľa Názov z adresára Nomenklatúra získate stĺpec typu String s povolenou dĺžkou najviac N znakov.

Tabuľka vo formulári (hrubý klient)

Používateľ pracuje s tabuľkou, keď je umiestnená na formulári.

Základné princípy práce s formulármi sme rozoberali na hodine a na hodine

Položme teda tabuľku na formulár. Ak to chcete urobiť, potiahnite tabuľku z panela Ovládacie prvky. Podobne môžete z ponuky vybrať položku Form/Insert Control.

Dáta je možné uložiť do konfigurácie – vtedy je potrebné vybrať existujúcu (predtým pridanú) tabuľkovú časť konfiguračného objektu, ktorého formulár upravujete.

Kliknite na tlačidlo "..." vo vlastnosti Data. Aby ste videli zoznam tabuľkových častí, musíte rozbaliť vetvu Object.

Keď vyberiete tabuľkovú časť, 1C sám pridá stĺpce do tabuľky vo formulári. Riadky zadané používateľom do takejto tabuľky sa automaticky uložia spolu s referenčnou knihou/dokumentom.

V rovnakej vlastnosti Data môžete zadať ľubovoľný názov a vybrať typ Tabuľka hodnôt.

To znamená, že bola vybratá ľubovoľná tabuľka hodnôt. Nebude automaticky pridávať stĺpce, ani sa nebude automaticky ukladať, ale môžete si s ním robiť, čo chcete.

Kliknutie kliknite pravým tlačidlom myši do tabuľky môžete pridať stĺpec. Vo vlastnostiach stĺpca môžete zadať jeho názov (pre referenciu v kóde 1C), záhlavie stĺpca vo formulári, spojenie s atribútom tabuľkovej časti (druhá - ak nie je vybratá ľubovoľná tabuľka, ale tabuľková časť).

Vo vlastnostiach tabuľky vo formulári môžete určiť, či môže používateľ pridávať/odstraňovať riadky. Pokročilejším formulárom je začiarkavacie políčko View Only. Tieto vlastnosti je vhodné použiť na organizovanie tabuliek určených na zobrazovanie informácií, ale nie na úpravu.

Ak chcete spravovať tabuľku, musíte vo formulári zobraziť panel príkazov. Vyberte položku ponuky Formulár/Vložiť ovládací/Príkazový riadok.

Vo vlastnostiach panela príkazov začiarknite políčko Automatické dopĺňanie, aby sa tlačidlá na paneli zobrazovali automaticky.

Tabuľka vo formulári (tenký/spravovaný klient)

Na spravovanom formulári tieto akcie vyzerajú trochu inak. Ak potrebujete umiestniť tabuľkovú časť do formulára, rozbaľte vetvu Objekt a potiahnite jednu z tabuľkových častí doľava. To je všetko!

Ak potrebujete umiestniť tabuľku hodnôt, pridajte nový atribút formulára a v jeho vlastnostiach uveďte typ – tabuľka hodnôt.

Ak chcete pridať stĺpce, kliknite pravým tlačidlom myši na tento atribút formulára a vyberte Pridať stĺpec atribútu.

Potom tiež potiahnite tabuľku doľava.

Ak chcete, aby tabuľka mala panel príkazov, vo vlastnostiach tabuľky vyberte hodnoty v časti Použitie – Umiestnenie panela príkazov.

Nahrávanie tabuľky do Excelu

Akúkoľvek tabuľku 1C umiestnenú vo formulári je možné vytlačiť alebo nahrať do Excelu.

Ak to chcete urobiť, kliknite pravým tlačidlom myši na voľné miesto v tabuľke a vyberte položku Zoznam.

V spravovanom (tenkom) klientovi je možné podobné akcie vykonávať pomocou položky ponuky Všetky akcie/Zobraziť zoznam.