itthon / Munka az interneten / Töltse ki a táblázatos részt egy másik dokumentumból. A táblázatos rész kiválasztott sorainak lekérése és megkerülése

Töltse ki a táblázatos részt egy másik dokumentumból. A táblázatos rész kiválasztott sorainak lekérése és megkerülése

1. A probléma megfogalmazása

Ebben a cikkben a legegyszerűbb írási folyamatot nézzük meg külső feldolgozás táblázatos rész kitöltése 1C 8 használó konfigurációkhoz normál alkalmazás. Például végezze el a következő feladatot: „A konfigurációban 1C: Számvitel 2.0 külső feldolgozás létrehozása a táblázat szakaszának kitöltéséhez Áruk dokumentum, a kitöltendő adatok a táblázatos részből kerülnek átvételre Áruk dokumentum Áruk és szolgáltatások átvétele" Így az átvett áruk alapján kell kitöltenünk az eladási tételeket, ez a feladat az 1C programozó gyakorlatában elég gyakori.

2. Hozzon létre külső feldolgozást

Menjünk-hoz 1C 8 módban Konfigurátor. A menü használata Fájl -> Új vagy piktogramok új dokumentumot hozzunk létre egy újat külső feldolgozás.

A terepen Név jelezni fogjuk: „A táblázatos rész legegyszerűbb kitöltése”, és elmentjük a külső feldolgozást HDD menü segítségével Fájl -> Mentés vagy piktogram Megment vagy billentyűparancsot Ctrl+S.

Az ág kiválasztása Kellékek a feldolgozási metaadatfában, és kattintson a gombra Hozzáadás(gomb zöld pluszjel) létrehozni új kellékek külső feldolgozás - Dokumentumnyugták, válasszon típust hozzá DocumentLink. Áruk és szolgáltatások átvétele, erre az attribútumra van szükségünk egy dokumentum kiválasztásához Áruk és szolgáltatások átvétele, amely alapján a megvalósítás kitöltésre kerül.

Az átvételi bizonylat kiválasztásához külön nyomtatványra lesz szükségünk. Az ág kiválasztása Űrlapokés ugyanazzal a gombbal - Hozzáadás Hozzon létre egy külső feldolgozási űrlapot. Megnyílik az űrlaptervező ablak; nem kell semmilyen változtatást végrehajtania a tervező első oldalán, ezért csak kattintson a gombra További.

A tervező második oldalán ki kell választanunk a kellékeket Dokumentumnyugták(hogy megjelenjen létrehozott formát) és nyomja meg a gombot Kész.

Ezt követően megnyílik a létrehozott űrlap, amelyen a felhasználónak ki kell választania az átvételi bizonylatot és be kell zárnia. Tehát amikor megnyomja a gombot Végrehajtás Az űrlapnak csak be kell zárnia. Ennek megvalósításához válassza ki a gombot Végrehajtás, kattintson rá jobb gombbal, és válassza ki Tulajdonságok. A gomb tulajdonságainál, a sorban Akció válassz egy műveletet - Bezárás. Ezzel befejeződik a munka az űrlappal, zárjuk be.

3. Programozás

Kezdjük el programozni a táblázatos rész kitöltésének feldolgozását. Menjünk-hoz Objektum modul külső feldolgozás (az alsó feldolgozó panelen van egy gomb Műveletek -> Objektummodul megnyitása).

Ebben egy export eljárást kell létrehoznunk Inicializálás.

Eljárás Inicializálás Export Az eljárás vége

vegye figyelembe, hogy eljárást Inicializálás, valamint minden paramétere kötelező a táblázatos rész kitöltésének külső feldolgozásához, ha nem hozza létre, vagy nem adja meg az összes paramétert, a feldolgozás egyszerűen nem fog működni.

Most kezdjük el írni a programkódot. Először is hozzunk létre egy változót a dokumentum táblázatos részének Áruk és szolgáltatások értékesítése amit majd kitöltünk.

TabularPart = Objektum[TabularPartName];

Amikor egy paraméterben végrehajt egy eljárást Egy tárgy tartalmazza a kitöltendő dokumentum objektumot és a paramétert TabularPartName egy sor az általunk kitöltendő táblázatos rész nevével. Tehát ez a kódsor kap táblázatos rész dokumentumot, amelyet az ő nevével kell kitölteni.

A felhasználónak ki kell választania egy dokumentumot Áruk és szolgáltatások átvétele, ezért írjuk meg a kódot a dokumentumválasztó űrlap megnyitásához. Először is tegyük ezt az űrlapot változóba külső feldolgozási módszerrel GetForm(<Форма>, <Владелец>, <КлючУникальности>) . Csak ki kell töltenünk ennek a metódusnak az első paraméterét úgy, hogy átadunk egy karakterláncot az űrlapunk nevével.

ReceiptSelectionForm = GetForm("Űrlap");

Most nyissuk meg a kapott űrlapot modális megnyitással (amíg az űrlap nyitva van, az összes többi 1C ablak nem érhető el), mert ezzel a megnyitási móddal a további kódunk az eljárásban Inicializálás nem kerül végrehajtásra, amíg a felhasználó be nem zárja az űrlapot.

ReceiptSelectionForm.OpenModal();

Miután a felhasználó bezárta az űrlapot, ellenőriznünk kell, hogy az adatok kitöltve vannak-e Dokumentumnyugták(ha az átvételi bizonylatot nem választották ki). Ha ellenőrzés után Dokumentumnyugtáküres, akkor a további feldolgozásnak nincs értelme, és meg kell szakítani.

Ha NEM ValueFilled(ReceiptDocument) akkor Report(); Visszatérés ; EndIf ;

Annak ellenőrzésére, hogy a részletek teljesek-e, itt a globális kontextusfüggvényt kell használni ValueFilled(<Значение>) , ellenőrzi, hogy a paraméterben átadott érték eltér-e az azonos típusú alapértelmezett értéktől. Eljárás Jelenteni megjeleníti a megadott szöveget az 1C 8 üzenetablakban. Kulcsszó Visszatérés megszakítja az eljárás végrehajtását.

Kezdjünk el írni egy lekérdezést, amely táblázatos adatokat jelöl ki Áruk dokumentum Áruk és szolgáltatások átvétele. Hozzunk létre egy új kérést:

Request = Új kérés;

Request.SetParameter( "Dokumentumnyugták",Átvételi bizonylat);

Írjuk meg a kérés szövegét, és végezzük el a segítségével Lekérdezés konstruktor. A kérés szövegét nem ajánlott manuálisan megírni, ez nem hatékony és sok időt vesz igénybe. Először is írjuk fel a sort:

Request.Text = "" ;

Vigye a kurzort az idézőjelek közé, nyomja meg a jobb egérgombot és válassza ki a kívánt elemet Lekérdezés konstruktor.... Ezt követően a rendszer kéri, hogy hozzon létre egy új kérést, kattintson az „OK” gombra. Megnyílik a tervező ablak, a bal oldalon ott van az összes elérhető adatbázis tábla, szükségünk van egy dokumentumra Áruk és szolgáltatások átvétele. Keressük meg és bontsa ki a „+” jellel, válassza ki a táblázatos részt Árukés húzza át a tervező képernyő második részére, amely az ún Táblázatok(A kívánt táblázatot a „>” gombbal is áthelyezheti.)

Most bontsa ki a táblázatot, amelyet a „+” jellel választottunk ( Áruk átvételeSzolgáltatásokÁruk) és húzza át a táblázatos kitöltéshez szükséges mezőket a tervező képernyő harmadik részébe, melynek neve - Mezők. Nem jelölünk ki minden elérhető mezőt, az alábbi készletre szorítkozunk: Nómenklatúra, Mennyiség, Ár, Összeg, ÁFA kulcs, ÁFA összeg.

Mivel csak egy bizonylat adataira van szükségünk (melyet a kitöltés megkezdése előtt választottunk ki), ezért a „Feltételek” fülön az általunk átadott paraméterrel feltételt szabunk a bizonylat hivatkozásra.

A kérés szövegének létrehozása a tervezőben ezzel befejeződött, kattintson az „OK” gombra. Ennek eredményeként a következő kérés szövegét kaptuk:

Query.Text = "SELECT |FROM |WHERE ;

A létrehozott lekérdezést csak le kell hajtani, és fel kell tölteni egy változóba:

Eredmény = Request.Run().Feltöltés();

Változóban Eredmény a táblázatos rész sorait tartalmazó értéktáblázat kerül tárolásra Áruk az általunk választott dokumentum Áruk és szolgáltatások átvétele. Most elkezdheti a táblázatos rész kitöltését Áruk megvalósításunk. De mielőtt kitöltenéd az adatokat, töröld ki, hátha már van ott néhány sor.

TablePart.Clear();

Hurok segítségével Az egyes Menjünk át az értéktáblázaton a lekérdezés eredményeivel.

Minden egyes eredményelemhez a Result Cycle EndCycle-ből ;

Ebben a ciklusban elkészítjük és kitöltjük a dokumentum táblázatos részének sorait Áruk és szolgáltatások értékesítése. Változó segítségével új sort hozhatunk létre TabularPart, amelyen keresztül bármilyen műveletet végrehajthat vele.

NewRowTC = TabularPart.Add();

Töltse ki a táblázatban a létrehozott sort. a lekérdezési eredmény karakterláncból származó adatok részeit az eljárás segítségével Globális kontextusTöltse ki a PropertyValues(<Приемник>, <Источник>) .

FillPropertyValues(NewRowTC, ResultElement);

De az általunk kitöltött adatok nem elegendőek, ahhoz, hogy a dokumentum feldolgozható legyen, többet kell kitöltenünk tételes könyvelési számlák. Ehhez az exportálást fogjuk használni

eljárást Töltse ki az AccountingInLineTabParts elemet dokumentum objektum modulból Áruk és szolgáltatások értékesítése. Nevezzük a paraméter segítségével Egy tárgy(meg kell jegyezni

hogy csak hívni tudjuk export eljárások a dokumentumobjektum modulból).

Object.FillAccountingInLineTabPart(NewRowTCH, TabularPartName, True);

Ezzel befejeződik a táblázatos rész kitöltésének programozása 1C 8 elkészült. A feldolgozás használható. Az eljárás teljes szövege Inicializálás, így néz ki:

Eljárás Inicializálás (Object, TablePartName = Undefined, ObjectTableField = Undefined) Export TabularPart = Objektum[TabularPartName]; ReceiptSelectionForm = GetForm("Űrlap"); ReceiptSelectionForm.OpenModal(); Ha NINCS ValueFilled(ReceiptDocument) akkor jelentse ( "Nincs kiválasztva a nyugta dokumentum"); Visszatérés ; EndIf ; Request = Új kérés; Request.SetParameter( "Dokumentumnyugták",Átvételi bizonylat); Query.Text = "VÁLASZTÁS | Áruk és szolgáltatások átvétele. Nómenklatúra, | Áruk és szolgáltatások átvétele, áruk. Mennyiség, | Áruk és szolgáltatások átvétele, ÁFA kulcs, | Áruk és szolgáltatások átvétele. Összeg, | Áruk és szolgáltatások átvétele, ÁFA összege, | Áruk és szolgáltatások átvétele Áruk|FROM | Dokumentum Áruk és szolgáltatások átvétele Áruk HOGYAN Áruk és szolgáltatások átvétele Áruk|HOL | GoodsServicesProducts.Link = &DocumentReceipts"; Eredmény = Request.Run().Feltöltés(); TablePart.Clear(); Minden egyes eredményelemhez az eredményciklusból NewRowTC = TabularPart.Add(); FillPropertyValues(NewRowTC, ResultElement); Object.FillAccountingInLineTabPart(NewRowTCH, TabularPartName, True); EndCycle ; Az eljárás vége

A cikk következő része megmondja, hogyan lehet hibakeresést végezni a táblázatos rész kitöltésének folyamatában, és hogyan lehet azt a dokumentumhoz csatlakoztatni.

4. Hibakeresés

Elég gyakran kell hibakeresnie az írt kódot. A táblázatos rész kitöltésének feldolgozásának hibakereséséhez 1C 8 készítsünk kellékeket neki Objektum referencia típus DocumentLink. Áruk és szolgáltatások értékesítése

Szükségünk van rá, hogy a hibakeresés során ki tudjuk választani azt a megvalósítási dokumentumot, amelyet kitöltünk. Ezután létre kell hoznia egy űrlapot a hibakereséshez, és el kell helyeznie a létrehozott attribútumokat Objektum referencia, a hibakereső űrlap létrehozásának folyamata nem különbözik a nyugtabizonylat kiválasztására szolgáló űrlap létrehozásától, ezért nem térünk ki rá részletesen.

Az űrlap létrehozása után menjünk a moduljához. Ott találunk egy automatikusan létrehozott eljárást ButtonExecuteNyomja meg. Ez az eljárás a gomb megnyomásakor fut le Végrehajtás. Hívjunk ki belőle egy eljárást Inicializálás, amely a feldolgozó modulban található, a dokumentum objektumot átadjuk a paramétereknek Áruk és szolgáltatások értékesítése(amit a kellékekből kapunk Objektum referencia) és egy sor a kitöltendő táblázatos rész nevével (esetünkben Áruk).

Eljárás ButtonExecutePress(Button) Initialize(Ref.Object.GetObject(), "Termékek"); Az eljárás vége

Most a létrehozott űrlapot kell a fő feldolgozási formává tenni. Ehhez válassza ki a „Feldolgozási űrlap” mezőben.

Most beállíthat egy töréspontot az eljárás kívánt helyén Inicializálás vagy eljárások ButtonExecuteNyomja meg hibakeresési űrlapokat, és futtassa a táblázatos rész kitöltésének feldolgozását hibakeresési módban 1C: Vállalkozások.

5. Csatlakozzon egy dokumentumhoz

A kitöltési feldolgozás megírása és hibakeresése után csatlakoztassa azt a dokumentumhoz, amelyből végrehajtani fogja. Ehhez menjünk a 1C 8 módban Vállalat, menjünk a menühöz Szolgáltatás -> További jelentésekés feldolgozás -> Táblázatos részek további külső feldolgozásaés add hozzá új elem szakkönyv. A gomb segítségével Cserélje ki a külső feldolgozó fájlt Adjuk hozzá azt a fájlt, amelyet a táblázatos rész kitöltésének feldolgozására hoztunk létre.

Töltse ki a feldolgozási tartozékot a gombbal Kiválasztás válasszon egy dokumentumot Áruk és szolgáltatások értékesítése

És jelezzük, hogy a tölteléket a táblázatos részhez szánjuk Áruk.

nyomja meg a gombot rendbenés ennyi, a töltés feldolgozása elérhető lesz a menüben Tölt táblázatos rész Áruk dokumentum Áruk és szolgáltatások értékesítése. A példához használt feldolgozást letöltheti a címről.

Ebben a cikkben megvizsgáljuk a táblázatos rész kitöltéséhez szükséges legegyszerűbb külső feldolgozás megírásának folyamatát 1C 8 normál alkalmazást használó konfigurációkhoz. Például végezze el a következő feladatot: „A konfigurációban 1C: Számvitel 2.0 külső feldolgozás létrehozása a táblázat szakaszának kitöltéséhez Áruk dokumentum Áruk és szolgáltatások értékesítése, a kitöltendő adatok a táblázatos részből származnak Áruk dokumentum Áruk és szolgáltatások átvétele" Így az átvett áruk alapján kell kitöltenünk az eladási tételeket, ez a feladat az 1C programozó gyakorlatában elég gyakori.

2. Hozzon létre külső feldolgozást

Menjünk-hoz 1C 8 módban Konfigurátor. A menü használata Fájl -> Új vagy piktogramok új dokumentumot hozzunk létre egy újat külső feldolgozás.

A terepen Név jelölje be: „A táblázatos rész legegyszerűbb kitöltése”, és mentse a külső feldolgozást a merevlemezre a menü segítségével Fájl -> Mentés vagy piktogram Megment vagy billentyűparancsot Ctrl+S.

Az ág kiválasztása Kellékek a feldolgozási metaadatfában, és kattintson a gombra Hozzáadás(gomb zöld pluszjel) hozzon létre egy új külső feldolgozási attribútumot - Dokumentumnyugták, válasszon típust hozzá DocumentLink. Áruk és szolgáltatások átvétele, erre az attribútumra van szükségünk egy dokumentum kiválasztásához Áruk és szolgáltatások átvétele, amely alapján a megvalósítás kitöltésre kerül.

Az átvételi bizonylat kiválasztásához külön nyomtatványra lesz szükségünk. Az ág kiválasztása Űrlapokés ugyanazzal a gombbal - Hozzáadás Hozzon létre egy külső feldolgozási űrlapot. Megnyílik az űrlaptervező ablak; nem kell semmilyen változtatást végrehajtania a tervező első oldalán, ezért csak kattintson a gombra További.

A tervező második oldalán ki kell választanunk a kellékeket Dokumentumnyugták(hogy az megjelenjen a létrehozott űrlapon), és nyomja meg a gombot Kész.

Ezt követően megnyílik a létrehozott űrlap, amelyen a felhasználónak ki kell választania az átvételi bizonylatot és be kell zárnia. Tehát amikor megnyomja a gombot Végrehajtás Az űrlapnak csak be kell zárnia. Ennek megvalósításához válassza ki a gombot Végrehajtás, kattintson rá jobb gombbal, és válassza ki Tulajdonságok. A gomb tulajdonságainál, a sorban Akció válassz egy műveletet - Bezárás. Ezzel befejeződik a munka az űrlappal, zárjuk be.

3. Programozás

Kezdjük el programozni a táblázatos rész kitöltésének feldolgozását. Menjünk-hoz Objektum modul külső feldolgozás (az alsó feldolgozó panelen van egy gomb Műveletek -> Objektummodul megnyitása).

Ebben egy export eljárást kell létrehoznunk Inicializálás.

Eljárás Inicializálás Export Az eljárás vége

vegye figyelembe, hogy eljárást Inicializálás, valamint minden paramétere kötelező a táblázatos rész kitöltésének külső feldolgozásához, ha nem hozza létre, vagy nem adja meg az összes paramétert, a feldolgozás egyszerűen nem fog működni.

Most kezdjük el írni a programkódot. Először is hozzunk létre egy változót a dokumentum táblázatos részének Áruk és szolgáltatások értékesítése amit majd kitöltünk.

TabularPart = Objektum[TabularPartName];

Amikor egy paraméterben végrehajt egy eljárást Egy tárgy tartalmazza a kitöltendő dokumentum objektumot és a paramétert TabularPartName egy sor az általunk kitöltendő táblázatos rész nevével. Így ez a kódsor a nevével tölti ki a dokumentum táblázatos részét.

A felhasználónak ki kell választania egy dokumentumot Áruk és szolgáltatások átvétele, ezért írjuk meg a kódot a dokumentumválasztó űrlap megnyitásához. Először is tegyük ezt az űrlapot változóba külső feldolgozási módszerrel GetForm(<Форма>, <Владелец>, <КлючУникальности>) . Csak ki kell töltenünk ennek a metódusnak az első paraméterét úgy, hogy átadunk egy karakterláncot az űrlapunk nevével.

ReceiptSelectionForm = GetForm("Űrlap");

Most nyissuk meg a kapott űrlapot modális megnyitással (amíg az űrlap nyitva van, az összes többi 1C ablak nem érhető el), mert ezzel a megnyitási móddal a további kódunk az eljárásban Inicializálás nem kerül végrehajtásra, amíg a felhasználó be nem zárja az űrlapot.

ReceiptSelectionForm.OpenModal();

Miután a felhasználó bezárta az űrlapot, ellenőriznünk kell, hogy az adatok kitöltve vannak-e Dokumentumnyugták(ha az átvételi bizonylatot nem választották ki). Ha ellenőrzés után Dokumentumnyugtáküres, akkor a további feldolgozásnak nincs értelme, és meg kell szakítani.

Ha NEM ValueFilled(ReceiptDocument) akkor Report(); Visszatérés ; EndIf ;

Annak ellenőrzésére, hogy a részletek teljesek-e, itt a globális kontextusfüggvényt kell használni ValueFilled(<Значение>) , ellenőrzi, hogy a paraméterben átadott érték eltér-e az azonos típusú alapértelmezett értéktől. Eljárás Jelenteni megjeleníti a megadott szöveget az 1C 8 üzenetablakban Kulcsszó Visszatérés megszakítja az eljárás végrehajtását.

Kezdjünk el írni egy lekérdezést, amely táblázatos adatokat jelöl ki Áruk dokumentum Áruk és szolgáltatások átvétele. Hozzunk létre egy új kérést:

Request = Új kérés;

Request.SetParameter( "Dokumentumnyugták",Átvételi bizonylat);

Írjuk meg a kérés szövegét, és végezzük el a segítségével Lekérdezés konstruktor. A kérés szövegét nem ajánlott manuálisan megírni, ez nem hatékony és sok időt vesz igénybe. Először is írjuk fel a sort:

Request.Text = "" ;

Vigye a kurzort az idézőjelek közé, nyomja meg a jobb egérgombot és válassza ki a kívánt elemet Lekérdezés konstruktor.... Ezt követően a rendszer kéri, hogy hozzon létre egy új kérést, kattintson az „OK” gombra. Megnyílik a tervező ablak, a bal oldalon ott van az összes elérhető adatbázis tábla, szükségünk van egy dokumentumra Áruk és szolgáltatások átvétele. Keressük meg és bontsa ki a „+” jellel, válassza ki a táblázatos részt Árukés húzza át a tervező képernyő második részére, amely az ún Táblázatok(A kívánt táblázatot a „>” gombbal is áthelyezheti.)

Most bontsa ki a táblázatot, amelyet a „+” jellel választottunk ( Áruk átvételeSzolgáltatásokÁruk) és húzza át a táblázatos kitöltéshez szükséges mezőket a tervező képernyő harmadik részébe, melynek neve - Mezők. Nem jelölünk ki minden elérhető mezőt, az alábbi készletre szorítkozunk: Nómenklatúra, Mennyiség, Ár, Összeg, ÁFA kulcs, ÁFA összeg.

Mivel csak egy bizonylat adataira van szükségünk (melyet a kitöltés megkezdése előtt választottunk ki), ezért a „Feltételek” fülön az általunk átadott paraméterrel feltételt szabunk a bizonylat hivatkozásra.

A kérés szövegének létrehozása a tervezőben ezzel befejeződött, kattintson az „OK” gombra. Ennek eredményeként a következő kérés szövegét kaptuk:

Query.Text = "SELECT |FROM |WHERE ;

A létrehozott lekérdezést csak le kell hajtani, és fel kell tölteni egy változóba:

Eredmény = Request.Run().Feltöltés();

Változóban Eredmény a táblázatos rész sorait tartalmazó értéktáblázat kerül tárolásra Áruk az általunk választott dokumentum Áruk és szolgáltatások átvétele. Most elkezdheti a táblázatos rész kitöltését Áruk megvalósításunk. De mielőtt kitöltenéd az adatokat, töröld ki, hátha már van ott néhány sor.

TablePart.Clear();

Hurok segítségével Az egyes Menjünk át az értéktáblázaton a lekérdezés eredményeivel.

Minden egyes eredményelemhez a Result Cycle EndCycle-ből ;

Ebben a ciklusban elkészítjük és kitöltjük a dokumentum táblázatos részének sorait Áruk és szolgáltatások értékesítése. Változó segítségével új sort hozhatunk létre TabularPart, amelyen keresztül bármilyen műveletet végrehajthat vele.

NewRowTC = TabularPart.Add();

Töltse ki a táblázatban a létrehozott sort. a lekérdezési eredmény karakterláncból származó adatok részeit az eljárás segítségével Globális kontextus - Töltse ki a PropertyValues(<Приемник>, <Источник>) .

FillPropertyValues(NewRowTC, ResultElement);

De az általunk kitöltött adatok nem elegendőek, ahhoz, hogy a dokumentum feldolgozható legyen, többet kell kitöltenünk tételes könyvelési számlák. Ehhez az exportálást fogjuk használni

eljárást Töltse ki az AccountingInLineTabParts elemet dokumentum objektum modulból Áruk és szolgáltatások értékesítése. Nevezzük a paraméter segítségével Egy tárgy(meg kell jegyezni

hogy csak hívni tudjuk export eljárások a dokumentumobjektum modulból).

Object.FillAccountingInLineTabPart(NewRowTCH, TabularPartName, True);

Ezzel befejeződik a táblázatos rész kitöltésének programozása 1C 8 elkészült. A feldolgozás használható. Az eljárás teljes szövege Inicializálás, így néz ki:

Eljárás Inicializálás (Object, TablePartName = Undefined, ObjectTableField = Undefined) Export TabularPart = Objektum[TabularPartName]; ReceiptSelectionForm = GetForm("Űrlap"); ReceiptSelectionForm.OpenModal(); Ha NINCS ValueFilled(ReceiptDocument) akkor jelentse ( "Nincs kiválasztva a nyugta dokumentum"); Visszatérés ; EndIf ; Request = Új kérés; Request.SetParameter( "Dokumentumnyugták",Átvételi bizonylat); Query.Text = "VÁLASZTÁS | Áruk és szolgáltatások átvétele. Nómenklatúra, | Áruk és szolgáltatások átvétele, áruk. Mennyiség, | Áruk és szolgáltatások átvétele, ÁFA kulcs, | Áruk és szolgáltatások átvétele. Összeg, | Áruk és szolgáltatások átvétele, ÁFA összege, | Áruk és szolgáltatások átvétele Áruk|FROM | Dokumentum Áruk és szolgáltatások átvétele Áruk HOGYAN Áruk és szolgáltatások átvétele Áruk|HOL | GoodsServicesProducts.Link = &DocumentReceipts"; Eredmény = Request.Run().Feltöltés(); TablePart.Clear(); Minden egyes eredményelemhez az eredményciklusból NewRowTC = TabularPart.Add(); FillPropertyValues(NewRowTC, ResultElement); Object.FillAccountingInLineTabPart(NewRowTCH, TabularPartName, True); EndCycle ; Az eljárás vége

A cikk következő része megmondja, hogyan lehet hibakeresést végezni a táblázatos rész kitöltésének folyamatában, és hogyan lehet azt a dokumentumhoz csatlakoztatni.

4. Hibakeresés

Elég gyakran kell hibakeresnie az írt kódot. A táblázatos rész kitöltésének feldolgozásának hibakereséséhez 1C 8 készítsünk kellékeket neki Objektum referencia típus DocumentLink. Áruk és szolgáltatások értékesítése

Szükségünk van rá, hogy a hibakeresés során ki tudjuk választani azt a megvalósítási dokumentumot, amelyet kitöltünk. Ezután létre kell hoznia egy űrlapot a hibakereséshez, és el kell helyeznie a létrehozott attribútumokat Objektum referencia, a hibakereső űrlap létrehozásának folyamata nem különbözik a nyugtabizonylat kiválasztására szolgáló űrlap létrehozásától, ezért nem térünk ki rá részletesen.

Az űrlap létrehozása után menjünk a moduljához. Ott találunk egy automatikusan létrehozott eljárást ButtonExecuteNyomja meg. Ez az eljárás a gomb megnyomásakor fut le Végrehajtás. Hívjunk ki belőle egy eljárást Inicializálás, amely a feldolgozó modulban található, a dokumentum objektumot átadjuk a paramétereknek Áruk és szolgáltatások értékesítése(amit a kellékekből kapunk Objektum referencia) és egy sor a kitöltendő táblázatos rész nevével (esetünkben Áruk).

Eljárás ButtonExecutePress(Button) Initialize(Ref.Object.GetObject(), "Termékek"); Az eljárás vége

Most a létrehozott űrlapot kell a fő feldolgozási formává tenni. Ehhez válassza ki a „Feldolgozási űrlap” mezőben.

Most beállíthat egy töréspontot az eljárás kívánt helyén Inicializálás vagy eljárások ButtonExecuteNyomja meg hibakeresési űrlapokat, és futtassa a táblázatos rész kitöltésének feldolgozását hibakeresési módban 1C: Vállalkozások.

5. Csatlakozzon egy dokumentumhoz

A kitöltési feldolgozás megírása és hibakeresése után csatlakoztassa azt a dokumentumhoz, amelyből végrehajtani fogja. Ehhez menjünk a 1C 8 módban Vállalat, menjünk a menühöz Szerviz -> További jelentések és feldolgozás -> Táblázatos részek további külső feldolgozásaés adjunk hozzá egy új könyvtárelemet. A gomb segítségével Cserélje ki a külső feldolgozó fájlt Adjuk hozzá azt a fájlt, amelyet a táblázatos rész kitöltésének feldolgozására hoztunk létre.

Töltse ki a feldolgozási tartozékot a gombbal Kiválasztás válasszon egy dokumentumot Áruk és szolgáltatások értékesítése

És jelezzük, hogy a tölteléket a táblázatos részhez szánjuk Áruk.

nyomja meg a gombot rendbenés ennyi, a töltés feldolgozása elérhető lesz a menüben Tölt táblázatos rész Áruk dokumentum Áruk és szolgáltatások értékesítése. A példához használt feldolgozást a cikk alján töltheti le.

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őszak, amelyen a felhasználó rendelkezik Ebben a pillanatban 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.

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 kell kitö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 hozzáadjuk új sor táblázatos rész, é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