1c táblázatos dokumentum visszafejtési feldolgozás. A már hozzárendelt nevek megtekintése

1c táblázatos dokumentum visszafejtési feldolgozás.  A már hozzárendelt nevek megtekintése
1c táblázatos dokumentum visszafejtési feldolgozás. A már hozzárendelt nevek megtekintése

Ebben a leckében megtanuljuk, hogyan hozhatunk létre táblázatos elrendezéseket az 1C-ben, amelyeket később felhasználhatunk.

Például, hogyan generáltam elrendezéseket a számára.

Megnyitottam a feldolgozási űrlapot, és az "Elrendezések" lapra léptem:

Megnyílik a táblázatszerkesztő:

A szerkesztőben való munka sok tekintetben hasonlít a szerkesztőben való munkához Excel program, de vannak olyan funkciók, amelyeken szeretnék elidőzni.

Mit értek régió alatt? Ez több sor és több cella, általában egy táblázatos dokumentum bármely része, amelyet a bal egérgombbal kiválaszthatunk.

Itt van egy válogatás két sorból:

És itt van a kiválasztott terület 2 oszloppal:

És most kijelöljük az első két sor és az első két oszlop metszéspontjában lévő területet:

Így. Ha sikerült kiválasztani a számunkra szükséges területet, akkor arra kattintva Jobb klikkés a "Tulajdonságok" elem kiválasztásával nevet adhatunk neki, amelyben a kódunkból hivatkozunk rá, nyomtathatót alkotva:

Ez az az alapvető készség, amelyet el kell sajátítanunk ahhoz, hogy táblázatos elrendezéseket tudjunk készíteni.

A már hozzárendelt nevek megtekintése

És lássuk, milyen nevek vannak már hozzárendelve a területekhez az elrendezésben?

Ehhez válassza ki a konfiguráló menüből:

Itt van az újonnan hozzárendelt "Fejléc" területünk:

És ha most kiválasztjuk a párbeszédablakban, és megnyomjuk a "Kiválasztás" gombot, akkor a megfelelő kiválasztásra kerül a szerkesztőben. cella területe:

A hatókör paraméterének beállítása

A nyomtatható terület kialakításakor gyakran nem csak a területet kell eltávolítani az elrendezésből. Bizonyos cellákat is ki kell tölteni bizonyos paraméterekkel.

Ezeket a paramétereket beállítjuk a területre, és a megadott értékek automatikusan a kívánt cellákba esnek.

Ehhez a szükséges cella tulajdonságaiban (ahol a paraméter értéke megjelenik) ...

A "Kitöltés" mezőben adja meg a "Paraméter" értéket, és a "Paraméter" mezőbe írjuk be azt a nevet, amellyel a kódból erre a paraméterre hivatkozunk:

Ha a kitöltésben nem "Paramétert", hanem "Sablont" ad meg, akkor magában a cellában is lehet valamilyen szöveget (sablont) jelezni a paraméternévvel szögletes zárójelben:

Ebben az esetben a paraméter neve (és pozíciója a sablonban) szögletes zárójelben van.

Hogyan állítsuk be a visszafejtési lehetőséget?

A visszafejtési paraméter neve ugyanabban a cellatulajdonságban van beállítva:

Később a kódból ehhez a paraméterhez ("Nómenklatúra dekódolás" néven) hozzárendeljük a kívánt értéket (hivatkozás a nómenklatúra tételére).

És amikor a felhasználó duplán rákattint erre a cellára, megnyílik a visszafejtési paraméterhez rendelt érték (ebben az esetben a nómenklatúra elem formája nyílik meg).

További búcsúszavak

Lefedtük a szükséges alapokat. Most alaposan vizsgálja meg.

Töltse le ezt az adatbázist. benne a "Tesztek feldolgozása" feldolgozás.

Elrendezései táblázatos opciókkal rendelkeznek. Fedezze fel őket a lehető legalaposabban, a fentebb tárgyalt technikákra támaszkodva.

Kérdés: Kérem, adjon tanácsot, hogyan tegye a következőket.

Van kimenetem táblázatos dokumentum lekérdezés eredménye, van egy dekódolás a cellához.

Szeretnék duplán kattintani egy cellára egy olyan eljárás futtatásához, amely például jelentést indít a cella dekódolásáról.

Válasz: A visszafejtés szabványos és nem szabványos.

i) Normál:

közvetlenül egy táblázatkezelő dokumentumban és egy SpreadsheetDocumentField objektumban is használható (azaz olyan táblázatdokumentumban, amelyet nem helyeztek el külön ablak, hanem közvetlenül az űrlapon).

Ahhoz, hogy a visszafejtés működjön, 3 feltételnek kell teljesülnie:

1) A táblázatkezelő dokumentum azon cellájánál, ahonnan a Decryption-t szeretnénk meghívni, a propertyDecryptionParameter paramétert kell beállítani. Például szeretnénk, ha a partner nevét tartalmazó cellára duplán kattintunk, hogy megnyíljon az Ügyfél referenciakönyvének elemének formája, így tisztázni tudjuk a jelentésben nem szereplő adatokat. Állítsa be a DecryptionParameter tulajdonságot valamilyen értékre, például AccountDecryption.

2) Az elrendezési területeknek az eredményül kapott táblázatkezelő dokumentumba történő kiadása során KÖTELEZŐ hozzárendelni a kívánt típus értékét a visszafejtési paraméterhez, például:

Code 1C v 8.x TabDoc = Új táblázatkezelő dokumentum;
Selection = Directories.Contractors.Select();



// .................................................
Scope.Parameters.DecryptionAccountant = Selection.Reference;
TabDoc.Output(Régió);
EndCycle;

3) Meg kell tiltani egy cella visszafejtéssel történő szerkesztését, pl. meg kell adni

TabDoc.ViewOnly = Igaz;

egyébként a kurzor ígéretes megjelenése ellenére egy cella fölé húzva annyit lehet rákattintani, amennyit csak akarunk, de nem történik semmi.

II) Nem szabványos:

ha duplán kattint egy dekódoló cellára, meghívhatja saját eljárását. Ennek megvalósításához több feltételnek kell teljesülnie:

1) A táblázatkezelő dokumentum kimenetét a SpreadsheetDocument Field objektumban kell végrehajtani;

2) A ParameterDecryption cellatulajdonsághoz értéket kell rendelni, például DecryptionAccount.

3) Az Ügyfél visszafejtése dekódolási paraméter kitöltve van a táblázatkezelő dokumentum generálásakor. kívánt értékeketÉrtéklista, vagy gyakrabban struktúra. Különösen egy szabványos konfigurációs jelentés neve és a jelentés űrlapon beállítandó paraméterek adhatók át, mint például a dátum időszak, számlaszám stb. És akkor ezt a jelentést eljárásnak nevezik.

4) A SpreadsheetDocument Field objektum ViewOnly tulajdonságát True értékre kell állítani.

5) A felhasználói eljárás kódja az eljárásba kerül

1C v 8.x kód
// benne az első sor ilyen legyen:
StandardProcessing = False;

Mondok egy kis példát, amely megnyit egy alárendelt könyvtárat a "kattintott" partner számára.

Kód 1C v 8.x eljárás GombGeneratePress(Button)
Vállalkozók = Directories.Contractors;
Selection = Counterparties.Select();
Tab = FormElements.SpreadsheetDocumentField1;
Layout = GetLayout("Layout");
While Selection.Next() Loop
Ha Selection.ThisGroup = False Akkor
Régió = Layout.GetRegion("String");
Scope.Parameters.Account = Selection.Description;
.................................................................................................
StructDecryption = Új struktúra;
StructureDecoding.Insert("Számla", Selection.Reference);
StructureDecryption.Insert(".......",.........);
.........................................................................
Scope.Parameters.DecryptionAccountant = StructureDecryption;
FormElements.SpreadsheetDocumentField1.Output(Area);
Másképp
Folytatni;
EndIf;
EndCycle;
FormElements.SpreadsheetDocumentField1.ViewOnly = Igaz;
Vége eljárás

eljárást
StandardProcessing = False;
Szerződések = Directories.Contracts.GetListForm();
Contracts.ParameterSelectionByOwner = Magyarázat.Vállalkozó;
Szerződések.Open();
Vége eljárás