1s 8 a táblázatos szakasz aktuális sora. Hogyan lehet programozottan kitölteni egy táblázatsor adatait

19.11.2019 Tippek

Az 1C-ben számos objektumhoz léteznek táblázatos részek:

  • Útmutató könyvek
  • A dokumentumok
  • Jelentések és feldolgozás
  • Számlatáblázatok
  • A jellemzők típusainak tervei
  • Számítási típusú tervek
  • Üzleti folyamatok és feladatok

A táblázatos részek lehetővé teszik egy objektumhoz tartozó korlátlan mennyiségű strukturált információ tárolását.

Nézzünk néhány módszert a táblázatos részekkel való munkavégzésre.

Hogyan lehet megkerülni a táblázatos részt

A táblázatos részen hurkot használhat Mindenkinek

A TabularPart Loop minden sorához

Jelentés(String.TablePartAttribute) ;

EndCycle ;

Minden iterációnál egy változóba Vonal a táblázatos rész következő sora átkerül. A karakterlánc attribútumértékei a kifejezéssel kaphatók meg String.AttributeName.

A táblázatos rész kiválasztott sorainak lekérése és megkerülése

Az űrlap elem az objektum táblázatos részéből származó információk megjelenítésére szolgál. táblázat mező. Ha engedélyezni szeretné több sor kijelölését egy táblázat mezőjében, be kell állítania az értéket Többszörös ingatlanán Kiválasztási mód.

A kiválasztott sorok listájának megtekintéséhez használja a következő kódot:

A hurok a kiválasztott sorokon való iterációra szolgál Mindenkinek:

SelectedLines = FormElements. TableFieldName. Válogatott vonalak;

Minden sorhoz a kiválasztott sorokból Loop

//hurok tartalom

EndCycle ;

A táblázatos rész (táblamező) sorainak programozott kijelölése és a kijelölés eltávolítása

Sorok kijelölésének programozott törléséhez egy táblázatmezőben:

ElementsForm. TableFieldName. SelectedStrings. Egyértelmű() ;

Egy táblázatmező összes sorának programozott kijelölése:

Minden aktuális sorhoz a TablePart Loopból
ElementsForm. TableFieldName. Kiválasztott sorok. Add(aktuális sor) ;
EndCycle ;

Hogyan lehet törölni a táblázatot

TabularPart. Egyértelmű() ;

Hogyan lehet lekérni egy táblázatos szakasz aktuális sorát

Az aktuális sor az az időszak, amelyen a felhasználó rendelkezik Ebben a pillanatban a kurzor található. Megszerzéséhez hivatkozni kell az űrlap vezérlőelemére, amely a táblázatos részhez van társítva.

Normál űrlapok esetén a kód így néz ki:

ElementsForm. TableFieldName. CurrentData;

Kezelt űrlapok esetén:

Elemek. TableFieldName. CurrentData;

Új sor hozzáadása a táblázathoz

Új sor hozzáadása a táblázatos rész végéhez:

NewRow = Táblázatrész. Add() ;

Új sor hozzáadása a táblázatos részben (a következő sorok eltolódnak):

NewRow = Táblázatrész. Beillesztés (index)
//Index - a hozzáadott sor száma. A sorszámozás nullától kezdődik.

Új sor. Attribútum1 = "Érték" ;

Hogyan lehet programozottan kitölteni egy táblázatsor adatait

Ha programozottan kell kitöltenie a felhasználó által hozzáadott táblázatos szakasz sorának adatait, akkor a táblázatos szakasz eseménykezelőjét kell használnia. AtStartEditing.

A kezelő által létrehozott eljárásnak három paramétere van:

  • Elem- vezérlőt tartalmaz Táblázatmező.
  • Új sor- logikai. Értéket tartalmaz Igaz ha hozzáadjuk új sor táblázatos szakasz, és Hazugság, ha a felhasználó elkezdett szerkeszteni egy már létező sort.
  • másolás- logikai. Értéket tartalmaz Igaz ha a felhasználó másolja a karakterláncot, és Hazugság más esetekben.

Vegyünk egy példát. Tegyük fel, hogy ki kell töltenünk a táblázatos rész adatait AccountAccount, abban az esetben, ha új sor kerül hozzáadásra. Meglévő sor szerkesztésekor nem kell módosítani a főkönyvi számlát.

Eljárás TabularPartAt EditingStart (Elem, Új sor, Másolás)

//Ha a felhasználó egy meglévő sort szerkeszt, akkor ne tegyen semmit
Ha NEM NewString Akkor
Visszatérés;
EndIf ;

//Ha a karakterlánc új, állítsa be a fiókot
TextString = Elem. CurrentData; //A táblázatos rész aktuális sora érkezett
TekString. AccountAccount = Számlatáblázatok. Önfenntartó. kívánt számla;
Vége eljárás

Hogyan állítsuk be a karakterláncot 8.2-ben ( Kezelt űrlapok) olvas .

Először is szeretném emlékeztetni, hogy a dokumentum (vagy értéktáblázat) táblázatos részének adatai és a táblázat mezője különböző objektumok. Néhány vizuális művelet elvégzéséhez táblázatmezővel dolgozunk. Ebben az esetben a "CurrentRow" tulajdonságát fogjuk használni, ami pontosan az, ami felelős azért, hogy melyik sor aktív.

A táblázat mezőben a szükséges sor kiválasztásához két lépésre van szükségünk:

1. Keresse meg a szükséges karakterláncot a táblázat mezőben megjelenő adatobjektumban
Hangsúlyozom, hogy itt adatobjektumra van szükség. Például van egy „Áruk és szolgáltatások megvalósítása” dokumentumunk, amelynek táblázatos része „Áruk” van, és úgy döntöttünk, hogy a 2. sort aktívvá tesszük a dokumentum űrlapon. Ezután a dokumentum űrlap modulba írjuk:


// a második sor indexe eggyel egyenlő
RequiredString = Termékek;

Vagy tudjuk, hogy a Nómenklatúra oszlop második sorában a Code elem "001"-el egyenlő, akkor a következőt használjuk:


// először keresse meg a hivatkozási elemet a Nómenklatúra kód szerint
// majd keresd meg a "Termékek" táblázatos részben
RequiredString = Products.Find(Directories.Nomenclature.FindByCode("001"));

2. Állítsa be az aktuális sor értékét a talált sorra
Most hozzá kell rendelnünk a DesiredRow változó értékét a CurrentRow táblamező tulajdonsághoz:


// ha a táblamezőnket Áruknak is nevezik
FormElements.Products.CurrentLine = DesiredLine;

// ha a táblázat mező neve TableField1

Ennek eredményeként a kódsorok így nézhetnek ki:

RequiredString = Products.Find(Directories.Nomenclature.FindByCode("001"));
FormElements.TableField1.CurrentRow = Kívánt sor;

Először is meg kell értenie, hogy van egy objektum, amely adatokat tartalmaz, például a FormDataCollection, és van egy objektum, amely vizuálisan jeleníti meg az adatokat - egy táblázat.

A táblázatban csak az aktuális sor van, nem lehet mindent kideríteni belőle meglévő értékeket FormData Az a gyűjtemény, amelyhez társítva van. A FormDataCollection viszont nem rendelkezik aktuális sorral. Ezen objektumok 1s-ben történő összekapcsolásához az Identifier-t használjuk, mert a sorok sorsorrendje mind a vizuális részben, mind az adatokban módosítható, de a kapcsolat nem szakad meg.

Nézzük ezt egy példával:

Az űrlapnak van egy TK típusú attribútuma (ValueTable) – zárójelben, mert a tényleges típus FormDataCollection

A kellék táblázat formájában jelenik meg az űrlapon.

Az Értéktábla sorának meghatározása a táblázat aktuális sorával

Annak meghatározásához, hogy a TK melyik sora aktuális, először be kell szereznie a sorazonosítót a táblázatban, majd ennek segítségével meg kell keresnie a sort a TK-ban.

RowId = Elemek.TK.Aktuális sor; // Az azonosító lekérése a táblázatban StringT3 = T3.FindByIdentifier(RowId);

Az aktuális sor beállítása egy táblázatban

Az aktuális táblázatsor beállításához az ellenkezőjét kell tennie. Először szerezze be a TK azonosítóját, majd állítsa be rajta a táblázat aktuális sorát.

StringT3 = FormDataCollection; // például vegyük az 1. sort StringID = StringT3.GetIdentifier(); Elements.TK.CurrentLine = Vonalazonosító;

A jobb megértés érdekében letöltheti