A dokumentum táblázatos részének 1s 8 formája. Hogyan lehet programozottan kitölteni egy táblázatsor adatait

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

  • Könyvtárak
  • Dokumentumok
  • Jelentések és feldolgozás
  • Számlatáblázatok
  • Jellegzetes típustervek
  • 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 meg néhány technikát a táblázatos részekkel való munkavégzéshez.

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

Az asztalrész áthaladásához hurkot használhat Mindenkinek

Minden sorhoz a ciklus táblázatos részéből

Report(String. TabularPart attribútum) ;

EndCycle ;

Minden iterációnál a változóba Vonal a táblázatos rész következő sora kerül továbbításra. A sorrészletek értékeit a kifejezéssel kaphatjuk meg Line.AttributeName.

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

Az objektum táblázatos részéből származó információk megjelenítéséhez használjon űrlapelemet 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öbb az ő birtokán Kiválasztási mód.

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

A kiválasztott sorokon való iterációhoz használjon hurkot Mindenkinek:

SelectedRows = Űrlapelemek. TableFieldName. SelectedRows;

Minden sorhoz a kiválasztott sorokból Loop

//hurok tartalma

EndCycle ;

A táblázatos rész (táblamező) sorainak programozott kijelölése és kijelölésük megszüntetése

A sorok kijelölésének programozott megszüntetése táblázat mező:

Űrlapelemek. TableFieldName. SelectedRows. Clear() ;

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

Minden aktuális sorhoz a TabularPart Loopból
Űrlapelemek. TableFieldName. SelectedLines. Add(aktuális sor) ;
EndCycle ;

Hogyan kell törölni az asztali részt

TabularPart. Clear() ;

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

Az aktuális sor az az időszak, amelyen a felhasználó rendelkezik pillanatnyilag a kurzor található. Ennek eléréséhez el kell érnie a táblázatos részhez társított űrlap vezérlőelemét.

Mert szabályos formák a kód így fog kinézni:

Űrlapelemek. TableFieldName. CurrentData;

Mert kezelt űrlapok:

Elemek. TableFieldName. CurrentData;

Hogyan adjunk hozzá új sort egy táblázatszakaszhoz

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

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

Új sor hozzáadása bárhol a táblázat szakaszában (a következő sorok eltolódnak):

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

NewRow. Props1 = "É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 szakaszsor adatait, akkor a táblázatos szakasz eseménykezelőjét kell használnia. A szerkesztés megkezdésekor.

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

  • Elem- vezérlőelemet tartalmaz Táblázatmező.
  • NewString- logikai. Értéket tartalmaz Igaz, ha hozzáadjuk új vonal táblázatos rész, és Hazugság, ha a felhasználó elkezdett szerkeszteni egy már meglévő sort.
  • Másolat- logikai. Értéket tartalmaz Igaz, ha a felhasználó másolja a sort, és Hazugság más esetekben.

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

Eljárás táblázatos rész kezdetén szerkesztés (elem, új sor, másolás)

//Ha a felhasználó szerkeszt egy létező sort, akkor nem teszünk semmit
Ha NEM NewRow Akkor
Visszatérés;
EndIf ;

//Ha a sor új, állítsa be a könyvelési számlát
TechString = Elem. CurrentData; //A táblázatos rész aktuális sorának lekérése
TechString. Számvitel = Számlatáblázatok. Önfenntartó. RequiredAccount;
Az eljárás vége

A pénz és az áruk elszámolására különféle táblázatokat széles körben használnak az üzleti életben. Szinte minden dokumentum egy táblázat.

Az egyik táblázat felsorolja a raktárból kiszállítandó árukat. Egy másik táblázat az ezen áruk fizetési kötelezettségeit mutatja.

Ezért az 1C-ben az asztalokkal való munka előkelő helyet foglal el.

Az 1C táblázatokat „táblázatos részeknek” is nevezik. A címtárak, dokumentumok és egyebek rendelkeznek velük.

A lekérdezés végrehajtásakor egy táblát ad vissza, amely két különböző módon érhető el.

Az első - gyorsabb - kijelölés, sorok beszerzése belőle csak sorrendben lehetséges. A második a lekérdezés eredményének feltöltése egy értéktáblázatba, majd véletlenszerű hozzáférés hozzá.

//1. lehetőség – szekvenciális hozzáférés a lekérdezések eredményeihez

//szerezd meg az asztalt
Select = Query.Run().Select();
// sorrendben végigmegyünk a lekérdezés eredményének minden során
Míg Select.Next() Loop
Jelentés(Kiválasztás.Név);
EndCycle;

//2. lehetőség – feltöltés értéktáblázatba
Request = New Request("SELECT Name FROM Directory.Nomenclature");
//szerezd meg az asztalt
Table = Query.Run().Unload().
//továbbá az összes sort is iterálhatjuk
A táblázatciklus minden sorához
Report(String.Name);
EndCycle;
//vagy tetszőlegesen hozzáférhet a karakterláncokhoz
Row = Table.Find("Shovel", "Name");

Fontos jellemzője, hogy a lekérdezés eredményeként kapott táblázatban minden oszlop szigorúan be van írva. Ez azt jelenti, hogy a Név mező lekérésével a Nomenclature könyvtárból egy String típusú oszlopot kap, amelynek megengedett hossza legfeljebb N karakter.

Táblázat az űrlapon (vastag kliens)

A felhasználó akkor dolgozik a táblázattal, amikor az az űrlapon van.

A leckében és a leckében megbeszéltük a formákkal való munka alapelveit

Tehát helyezzük el a táblázatot az űrlapon. Ehhez húzza a táblázatot a Vezérlőpultról. Hasonlóképpen kiválaszthatja a Form/Insert Control menüpontot a menüből.

Az adatok a konfigurációban tárolhatók - ekkor ki kell választani a konfigurációs objektum meglévő (korábban hozzáadott) táblázatos részét, amelynek űrlapját szerkeszti.

Kattintson a "..." gombra az Adat tulajdonságban. A táblázatos részek listájának megtekintéséhez ki kell bontani az Objektum ágat.

Amikor kiválasztja a táblázatos részt, az 1C maga is hozzáad oszlopokat az űrlapon lévő táblázathoz. A felhasználó által egy ilyen táblázatba beírt sorok automatikusan mentésre kerülnek a referenciakönyvvel/dokumentummal együtt.

Ugyanabban az Adat tulajdonságban megadhat egy tetszőleges nevet, és kiválaszthatja az Értéktábla típusát.

Ez azt jelenti, hogy egy tetszőleges értéktáblázat került kiválasztásra. Nem ad hozzá automatikusan oszlopokat, és nem is menti automatikusan, de bármit megtehetsz vele.

A táblázatra jobb gombbal kattintva hozzáadhat egy oszlopot. Egy oszlop tulajdonságainál megadhatjuk a nevét (az 1C kódban való hivatkozáshoz), az űrlapon lévő oszlopfejlécet, a kapcsolatot a táblázatos rész attribútumával (utóbbi - ha nem tetszőleges táblázat, de táblázatos rész) van kiválasztva).

Az űrlapon a táblázat tulajdonságainál megadhatja, hogy a felhasználó hozzáadhat-e/törölhet-e sorokat. Egy fejlettebb űrlap a Csak megtekintése jelölőnégyzet. Ezek a tulajdonságok kényelmesek az információk megjelenítésére, de nem szerkesztésére szolgáló táblázatok rendszerezésére.

A táblázat kezeléséhez meg kell jelenítenie egy parancspanelt az űrlapon. Válassza ki a Form/Insert Control/Command Bar menüpontot.

A parancssor tulajdonságainál jelölje be az Automatikus kitöltés jelölőnégyzetet, hogy a panelen lévő gombok automatikusan megjelenjenek.

Táblázat az űrlapon (vékony/felügyelt kliens)

A kezelt űrlapon ezek a műveletek kicsit másképp néznek ki. Ha táblázatos részt kell elhelyeznie az űrlapon, bontsa ki az Objektum ágat, és húzza balra az egyik táblázatos részt. Ez minden!

Ha értéktáblázatot kell elhelyeznie, adja hozzá új kellékekűrlapot, és a tulajdonságaiban adja meg a típust - értéktáblázat.

Oszlopok hozzáadásához kattintson a jobb gombbal az űrlapattribútumra, és válassza az Attribútumoszlop hozzáadása lehetőséget.

Ezután húzza a táblázatot is balra.

Annak érdekében, hogy egy táblának legyen parancssora, a táblázat tulajdonságainál válassza ki az értékeket a Használat – Parancssor pozíció szakaszban.

Táblázat feltöltése Excelbe

Az űrlapon található bármely 1C táblázat kinyomtatható vagy feltölthető Excelbe.

Ehhez kattintson a jobb gombbal egy üres helyre a táblázatban, és válassza a Lista menüpontot.

Felügyelt (vékony) kliensben a Minden művelet/Megjelenítési lista menüpont segítségével hasonló műveletek hajthatók végre.

Ebben a cikkben egy feldolgozást írunk le az 1C 8.3 táblázatos szakaszának kitöltéséhez egy tipikus 1C:ERP 2.1 konfigurációhoz. Tételezzük fel, hogy a feladat célja egy adott bizonylat összes tételére 5%-os kézi engedmény beállítása. A cikkből származó példa letölthető innen, vagy más hasonló feldolgozás innen.

Ez az utasítás kezelt űrlapokhoz készült (8.2 és 8.3). A közönséges űrlapokhoz (8.1, 8.2) használhatja a .

Hozzon létre és mentsen el egy új feldolgozást a számítógépére. Először meg kell tennie néhány regisztrációs lépést.

Nyissa meg az objektummodult, és írja be az alábbi kódot (a fent megadott feldolgozásból is átvehető). Általában a szerkezet nem változik a helyzettől függően. Csak néhány beállítási paraméter szerkeszthető, valamint szükség esetén a változónevek is.

Ebben a cikkben nem foglalkozunk részletesen a regisztrációval külső kezelésekÉs nyomtatott űrlapok 1C-ben. Mindezek az információk a többi cikkünkben találhatók.

A dokumentum táblázatos részének kitöltése

Hozzon létre egy új feldolgozási űrlapot.

Most hozzá kell adnunk a létrehozott űrlaphoz új csapat. Feltételezzük, hogy egyidejűleg automatikusan módosítja az adatokat egy és több dokumentum táblázatos részében (a lista űrlapjaiban), majd rögzíti azokat.

Példánkban a már meglévő „Termékek” táblázatos rész kerül feldolgozásra. Soronként 5% kézi kedvezmény kerül megállapításra. Ezenkívül magának a kedvezménynek az összegét is kiszámítjuk, amely megegyezik a sorban szereplő áruk mennyiségének 0,05-tel szorozva.

&A kiszolgálói eljáráson Parancs végrehajtása (parancs, hozzárendelési objektumok) minden egyes hozzárendelési objektumból származó vevői rendeléshez Ciklusza a Customer OrderObject = Ügyfélrendelés. GetObject() ;

A Customer OrderObject minden egyes TK-sorához. Termékek Cycle LineTZ. Manual DiscountPercent = 5 ;

LineTZ. ManualDiscount Amount = TK Line. Összeg * 0 . 05 ;

EndCycle ; CustomerOrderObject. Write() ; EndCycle ;

Az eljárás vége

Külső feldolgozás regisztrációja

Választás