itthon / Windows leckék / 1c dolgozzon a dokumentum táblázatos részével. Hogyan lehet programozottan kitölteni egy táblázatsor adatait

1c dolgozzon a dokumentum táblázatos részével. Hogyan lehet programozottan kitölteni egy táblázatsor adatait

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 a kezelt űrlapokhoz (8.2 és 8.3) készült. 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.

Ebben a cikkben nem foglalkozunk részletesen a külső feldolgozás és a nyomtatott űrlapok 1C-ben történő regisztrálásával. 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 egy új parancsot kell hozzáadnunk a létrehozott űrlaphoz. 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 lévő á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. Ír() ; EndCycle ; Az eljárás vége

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

Indítsa el az 1C-t „Vállalati” módban, és nyissa meg a „További jelentések és feldolgozás” könyvtárat. Keressük meg az "Összes funkció" menüben.

Hozzon létre egy új elemet a megnyíló könyvtárban, és kattintson az azonos nevű gombra a feldolgozás fájlból való betöltéséhez. Helyezzük el egyszerre a listalapon és magán az okmánykártya nyomtatványán is.

Most a „Vásárlói rendelés” bizonylatlista űrlapon megjelenik a „Kitöltés...” gomb, amellyel egyszerre több bizonylatnál is módosítható a kézi termékkedvezmény.

Ez a gomb magán a dokumentumkártyán is elérhető lesz.

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ázatait „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 van kiválasztva, hanem egy táblázatos rész).

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, adjon hozzá egy új űrlapattribútumot, és annak tulajdonságaiban adja meg a típust – értéktábla.

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.

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

  • Könyvtárak
  • Dokumentáció
  • 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

A táblázatrész áthaladásához hurkot használhat Az egyes

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öbbszörös 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 egy hurok szolgál. Az egyes:

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 táblázatmező sorainak programozott kijelölésének megszüntetése:

Űrlapelemek. TableFieldName. SelectedRows. Egyértelmű() ;

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

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

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

TabularPart. Egyértelmű() ;

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

Az aktuális sor az az idővonal, amelyen a felhasználó jelenleg a kurzort tartja. Ennek eléréséhez el kell érnie a táblázatos részhez társított űrlap vezérlőelemét.

A normál űrlapoknál a kód így fog kinézni:

Űrlapelemek. TableFieldName. CurrentData;

Kezelt űrlapok esetén:

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.

Új sor. Props1 = "Érték" ;

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

Ha programozottan ki kell töltenie egy, a felhasználó által hozzáadott táblázatszakasz sor részleteit, akkor a táblázatszakasz 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ő.
  • Új sor- logikai. Értéket tartalmaz Igaz, ha új táblázatsor kerül hozzáadásra, és Fekszik, 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 Fekszik 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 meglévő 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