1s skd átad egy értéktáblázatot. Példa külső adatforrás használatára skd-ben. Kezdésként leírom, hogy mit szeretnénk kimenetként kapni.

25.01.2021 hírek

Ezen a lapon korlátlan számú adatkészletet hozhat létre. Az adatkészlet az adatok forrása.

Többféle adatkészlet létezik:

  • Kérés;
  • Egy tárgy;
  • Egy egyesület.

A kérés normál 1s-es kérés, csak a lekérdezés nyelve van kissé kibővítve. A kényelem érdekében használhatja a lekérdezéskonstruktort.

Az objektum egy külső adathalmaz, például egy értéktáblázat.

Unió - több lekérdezés- és objektumtípus adatkészletének egyesítése.

Ebben a cikkben röviden áttekintjük az adatösszetétel-sématervező összes lapját. Adatkészletek Ezen a lapon korlátlan számú adatkészletet hozhat létre. Az adatkészlet az adatok forrása. Többféle adatkészlet létezik: Kérelem; Egy tárgy; Egy egyesület. A kérés normál 1s-es kérés, csak a lekérdezés nyelve van kissé kibővítve. A kényelem érdekében használhatja a lekérdezéskonstruktort. Az objektum egy külső adathalmaz, például egy értéktáblázat. Unió - több lekérdezés- és objektumtípus adatkészletének egyesítése. Adatkészlet-kapcsolatok Ez a lap az adatkészlet-kapcsolatokat írja le. Itt adhatja meg, hogy mely adatsorokat és milyen mezőkkel és milyen paraméterekkel kapcsolja össze. A legfontosabb dolog, amit meg kell jegyeznünk, hogy egy adatösszetételi sémában a halmazok összekapcsolásakor mindig használja Bal csatlakozás! Számított mezők Ezen a lapon további olyan mezőket hozhat létre, amelyek leírása nem szerepel az Adatkészletek lapon. Az adatösszetétel kifejezési nyelvet, az alapvető adatkészletek mezőit és a nem globális megosztott modulfüggvényeket számítási kifejezésként használhatja. Erőforrások Az erőforrások a csoportosítások összefoglaló adatai. A lapon az adatkészletekből erőforrásként, valamint a számított mezőkből is hozzárendelhet mezőket. Ezenkívül az erőforrások esetében meg van adva, hogy milyen kifejezéssel számítják ki őket, és megadható, hogy milyen csoportosítással kerüljön kiszámításra az erőforrások kifejezése. Az erőforrásértékek alapján a jelentés összesített összege is kiszámításra kerül. Paraméterek Az adatparamétereket általában egy lekérdezési adatkészletben használják. A lekérdezésben leírt összes paraméter megjelenik a Paraméterek lapon. Ezen a lapon megadhatja a címet, az elérhető típusokat, az elérhető értéket és néhány egyéb dolgot. A lehetőségekről később. Elrendezések Alapértelmezés szerint a generált jelentés elrendezését az adatösszeállítási rendszer automatikusan generálja. De a rendszer képes arra is, hogy a fejlesztő megtervezze a jelentés egyes területeit (mezők, csoportok, erőforrások...). Az ezen a lapon létrehozott összes egyedi területelrendezés csak az aktuális jelentéshez kapcsolódik. Beágyazott sémák A beágyazott sémák akkor használatosak, ha az egyik jelentésből származó adatokat egy másikban kell használni. Más szavakkal, az egyik adatösszetételi sémát "beágyazzuk" egy másikba, jelezve a kapcsolatot egy közös mezővel. Ebben a cikkben található példa a beágyazott sémák használatára. Beállítások Ezen a lapon a fejlesztő létrehozza szabványos beállításokat jelentés generálása. Az ablak tetején van beállítva hierarchikus struktúra. A jelentéskészítési struktúra a következő elemekből állhat: Csoportosítás; Asztal; Diagram; Beágyazott séma Az ablak alsó részében a teljes jelentésre és a jelentésstruktúra minden elemére vonatkozóan megadhatók a beállítások. Röviden a beállítások füleken: Kijelölt mezők – a jelentésben megjelenő mezők listája; Kiválasztás – a jelentésrekordok különféle választéka; Rendezés – rekordok rendezése a jelentésben; Adatparaméterek – a jelentés paramétereinek értéke; Egyéni mezők– a felhasználó által létrehozott további jelentésmezők; Feltételes formázás – a jelentésrekordok feltételes formázása be van állítva; Egyéb beállítások - különféle további beállítások mint például: jelentés címe, tervezési elrendezés, mező elrendezése stb...

Szia!
Ma egy olyan témát szeretnék leírni, amit "búvárkodás" nélkül nem lehet kitalálni :) ;)

Búvárkodás arra a tényre, hogy a merülés elég mély. A szakirodalomban kevés utalás található erre a témára, és amíg nem „megérted”, addig nem is érted. Nem is lesz üzenet egy ilyen akcióhoz;) Egyébként a dokumentáció nagyon rosszul és ellentmondásosan mond erről, kell fordulni külső szakirodalomhoz.

Például nagyon ajánlom "Összetett jelentések fejlesztése 1C:Enterprise 8.2-ben". Adatösszetételi rendszer” (részletesebben lásd a 224., 267. és 473. oldalt)

Az SKD-ben 2 féle adatforrás létezik: Query, object és union (ez a dolog nem számít, nem adatforrás, hanem létező kezelő). Lásd az 1. képet:


Tehát, ha többé-kevésbé értjük, hogyan kell dolgozni egy „Kérés” típusú adatforrással (készlettel), akkor az „Objektum” adatkészlettel kapcsolatban nehézségek adódnak.

Kezdésként leírom, hogy mit szeretnénk kimenetként kapni:

Jelentés, a felhasználó megnyomta a gombot " Forma” és az elemek listája jelenik meg (lásd 2. ábra):

Igen, elkövettem egy pontatlanságot, nevezetesen: nincs „ Forma"de van egy gomb" új akció(Kicsit később elmagyarázom, miért történt ez;)

Igen igen! Egy másik pont: ez a teljes lista az "Object" adatkészletből származik:

Megoldás:

  1. Hozzon létre egy külső jelentést;
  2. Adjon hozzá egy ACS-elrendezést, nevezzük "MainData Layout Schema"-nak;
  3. Hozzáadjuk az „Object” adatsort, hozzárendeljük a „Nómenklatúra Lista” nevet (ugyanaz legyen, mint a 3. ábrán);
  4. A riportbeállításokkal nem sokat kísérletezünk, legyen egyszerű (lásd 4. ábra)

Oké, félig kész ;)

Most generáljuk a jelentés fő formáját (igen, még egy pillanat! A konfigurációm normál felületen működik, de szerintem a kezelt űrlapokon találsz megoldást;) Tehát az űrlap:

Itt jön a probléma! Ha rákattint a „generálás” gombra (5. ábra), akkor hibát fogunk látni!


Ezt a cikket ennek a problémának a megoldásának szenteltem!

A „Létrehozás” gomb eseményét nem lehetett lehallgatni, ezért úgy döntöttem, hogy mankót használok. Debug módban futtattam a konfigurációt, és megpróbáltam megtalálni a „generálás” gombot.

Az űrlapba beszúrtam a „Létrehozás” eljárást, de nincs rá hívás, újra kellett definiálnom a „Létrehozás” gomb műveletét az űrlap megnyitása előtt:


ábrán. A 8. ábrán az űrlap műveletének megváltoztatása mellett egy kérésre, annak feldolgozására és a generált adatok ACS-be történő továbbítására is példa látható. Vizsgáljuk meg alaposabban:

  1. Bemeneti adatokat generálunk az ACS számára;
  2. Inicializáljuk az ACS-t;
  3. Az eredményt megjelenítjük AZ ŰRLAPON (erre is figyelj!).

Emlékezzünk vissza az adatösszetételi rendszer objektumai közötti interakciós sémára:

A külső jelentésben szereplő adatösszetételi séma globális objektumként érhető el az űrlapmetódusban DataCompositionScheme. A metódusnak átadva név szerint is hivatkozhatunk rá GetLayout(Lásd: 8. ábra)

A kód fő része az alábbiakban látható:

Request = Új kérés; Query.Text = "SELECT | Nomenclature.Description as Nomenclature |FROM | Directory.Nomenclature AS Nomenclature"; NomenclatureList = Request.Execute().Feltöltés(); DataSets = New Structure("NómenklatúraLista", NomenklatúraLista); //SKD = ​​GetLayout("MainDataCompositionScheme"); SKD = ​​Adatelrendezési séma; LayoutComp = newDataCompositionLayoutLayoutComposer; LayoutComp = CompLayout.Run(SKD, SKD.Default Settings); CompDataProcessor = új CompositionDataProcessor; ProcessorCompData.Initialize(LayoutComp, DataSets); output = new DataCompositionResultOutProcessorIntoSpreadsheetDocument; output.SetDocument(FormElements.Result); output.Output(ProcessorCompData, true);

Igen! Itt egy újabb szórakoztató pillanat!

NÁL NÉL ezt a példát, amint láthatja (lásd a 2. ábrát), a kimenet a formában történik, és nem a táblázatban. dokumentum! Ez pedig nagyon jó, mert tudunk dolgozni a formával (programozottan elkapni a form elem eseményeit, mindenféle trükköt csinálni fogd és vidd stb.;)

Egy táblázatos dokumentumban egyszerűen megjeleníthetjük a képernyőn a feldolgozott adatokat és átadhatjuk a dokumentum irányítását a felhasználónak, ezen tartalom szerkesztésének további folyamatát pedig semmilyen módon nem tudjuk befolyásolni!

Lásd be súgórendszer « Terület táblázatos dokumentum “, és csak egy kivonatot adok az 1s Enterprise 8.2 rendszer beépített dokumentációjából:

„A táblázatos dokumentummező egy űrlapon elhelyezett táblázatos dokumentum. A táblázatkezelő dokumentumok sokféle tervezési lehetősége mellett ez lehetővé teszi a táblázat dokumentummezőjében elhelyezett cellák, képek és egyéb vezérlők kiválasztásakor előforduló események feldolgozásának megszervezését.»

Oké, ahogy mondani szokás, siker a csatában ;)

Figyelem! Íme a lecke próbaverziója, melynek anyagai nem biztos, hogy teljesek.

Jelentkezzen be diákként

Jelentkezzen be tanulóként az iskolai tartalmak eléréséhez

1C 8.3 adatösszetétel rendszer kezdőknek: riport bemutatása diagram formájában

Ma kiegészítjük az utolsó lecke beszámolóját (vagy inkább annak másolatát) azzal a lehetőséggel, hogy ugyanazokat az adatokat diagram formájában jelenítsük meg.

Célt tűztünk ki

  • Készítsen másolatot az utolsó lecke beszámolójáról.
  • Ugyanazokat az adatokat jelenítse meg diagramként.
  • Ebben az esetben a sorozatok (oszlopok, Y-tengely) termékek, a pontok (X-tengely) pedig vásárlók legyenek. Az oszlopok értéke (az Y tengelyen) a vásárló által megrendelt élelmiszer mennyisége lesz.

Az előző jelentés másolatának módosítása

Az utolsó lecke beszámolójáról "Lesson9" néven másolatot készítünk, és ezt a másolatot megnyitjuk a "Gastronom" adatbázis konfigurátorában.

Módosítsa a jelentés nevét "9. lecke"-re, és kattintson az "Adatösszeállítási séma megnyitása" gombra:

Az adatkészleteket nem változtatjuk meg – a feladatunk az, hogy a felhasználó számára megváltoztassuk azok reprezentációját.

Ezért azonnal a "Beállítások" fülre lépünk, és felhívjuk a figyelmünket a bal oldali oszlopra a jelentés lehetőségeivel.

Korábban nem dolgoztunk ezzel a rovattal, de ma elmondom, mi a jelentése.

Minden beállítás, amit ezen a lapon (a varázspálca-konstruktor segítségével vagy alul kézzel) adunk meg, az ablak bal oldali részében kiemelt jelentési lehetőségek egyikére vonatkozik.

Alapértelmezés szerint ez az opció mindig egy, és a neve "Alap". A lényeg az, hogy felhasználói módban könnyedén válthat ezek között a lehetőségek között.

És most megvan a fő lehetőség, amelynek beállításaiban ez szerepel - az adatok táblázat formájában történő megjelenítése:

Nevezzük át ezt az opciót így ( dupla kattintás) és fő a "Táblázat"-ban:

Új jelentési lehetőség hozzáadása

Most egy pluszjel segítségével adunk hozzá egy másik lehetőséget (ahova diagram formájában helyezzük el az adatkimeneti beállítást):

Nevezzük ezt az opciót "diagramnak":

Új jelentés beállítása

Mint látható, ettől a lehetőségtől jobbra (ezt kiemeltük) üres, vagyis nincsenek beállítások. Alkossuk meg őket varázspálcánkkal:

Ezúttal válasszuk a "Diagram..." jelentéstípust:

Megjelenítési mezőként válassza a "Mennyiség" lehetőséget (a táblázathoz hasonlóan):

Sorozatként (Y tengely) az "Élelmiszer" mezőt, pontként (X tengely) pedig a "Vásárlók" mezőt adjuk meg:

Így alakult:

Mentsük el a jelentésünket a konfigurátorban, és futtassuk felhasználói módban:

Egy asztalt látunk... mi az?! És a tény az, hogy csak a jelentés egy másik verzióját kell választania. Kattintson a "Válasszon opciót..." gombra, és válassza a "Diagram" lehetőséget:

A diagram készen áll

Létrehozzuk újra a jelentést:

Nagyszerű, micsoda szépség.

Referenciafeldolgozás, miután elvégezte a leckében szereplő összes lépést

A modul végén

Ezzel az adatösszeállítási rendszer alapjairól szóló tárgyalásunk véget is ért. Megpróbáltam leírni és elmagyarázni egyszerű példák a kezdők számára az ACS-sel való munkavégzéshez szükséges alapok.

Ha a jövőben Azt tanácsolom, hogy ezt az egész iskola befejezése után tegye meg) szükség lesz az adatösszetétel rendszerének mélyebb tanulmányozására - van egy csodálatos könyv E. Yu. Khrustaleva "Összetett jelentések fejlesztése az 1C: Enterprise 8-ban".

Ebben a modulban elegendő tudást és gyakorlati készségeket szereztél ahhoz, hogy elkezdhess komolyabb szakirodalmat olvasni ebben a témában.

Remek munkát végeztünk, ideje pihenni!

Használat adatalkotó rendszerek 1C nélkül lehetetlen adathalmazok. Egy adatösszetételi sémában több is lehet. És bizonyos módon tudnak kommunikálni egymással. Pontosabban akár egyesül. Ebben a cikkben megvizsgáljuk adathalmazok összesítése. Az adatkészletek kombinálása az ACS-ben hasonló a .

Két vagy több adatkészlet egyesítéséhez az ACS-ben, a lapon Adatkészletek előzetesen hozzon létre egy speciális adatkészletet - uniót


Ezt a képet kapjuk


És már ebben a létrehozott objektumban készleteket adunk hozzá, amelyek közvetlenül kombinálódnak. Adjunk hozzá két adatkészletet. Az egyik egy lekérdezés, a másik pedig egy objektum (külső adatforrás). Mint ez:


Példaként vegye fontolóra az adatkészletek összevonását a termékegyenlegekkel.

A készletben, ahol használni fogjuk, manuálisan adjon hozzá mezőket Tétel, Mennyiségés írja be az adatokat tartalmazó objektum nevét


A lekérdezést használó adatsorhoz a maradékok felhasználásával kapunk adatokat a következő gyűjtőregiszterből:


Egyszerű lekérdezés készítése

SELECT Goods Remains.Item.Representation AS Goods, Goods Remains.Quantity Remains AS Remains (SELECT Goods, Remains) FROM Felhalmozási nyilvántartás.Jómaradékok.Maradványok, mint áruk maradtak

Ahhoz, hogy megszabaduljak a raktáraktól, adatösszetételt kellett használnom a lekérdezésben (mindent be göndör fogszabályozó), és tiltsa le az automatikus kiegészítés jelzőjét az alján. Illetve nem egy könyvtárelemet vettünk terméknek, hanem annak reprezentációját, így a típus megegyezett a külső adatforrással rendelkező készletben szereplővel. Ahhoz, hogy a különböző halmazokból származó adatok egy mezőbe kerüljenek, a mezőben azonos névvel kell rendelkezniük Pálya. Ezért a terepre Maradványok az elérési út manuálisan lett javítva Mennyiség hogy szinkronizálja a második adatkészlettel. Valójában természetesen jobb, ha azonnal a kívánt álnevet használjuk a kérésben. Jelen esetben szándékosan nem azért tettem ezt, hogy egy ilyen funkcióra koncentráljak.

Most pedig térjünk közvetlenül az adatokra.
A felhalmozási nyilvántartásban a következő áruegyenlegekkel rendelkezem

a külső adatforrásban pedig ez a kép

Állítsuk be az elrendezési sémát a legprimitívebb módon.
Terület Mennyiség Természetesen erőforrássá tesszük, és a beállítások lapon egyszerűen hozzáadjuk a szerkezethez Részletes feljegyzések. És persze ne felejtsd el feltenni Termékés Mennyiség a kiválasztott mezőkben. És a teljes boldogság érdekében termékenként rendezzük el.


A jelentés ilyen ACS beállításokkal való futtatása eredményeként a következő táblázatot kapjuk

Mint látható, a lámpát, amely mindkét adatkészletben található, két sor képviseli a lekérdezés eredményében. Ha egy sorba szeretné összecsukni őket, kissé módosítani kell a szerkezetet ACS beállításokés a részletes rekordok helyett mezőnként csoportosítson Termék.


És most megkapjuk az eredményt dupla vonalak nélkül.

Néha előfordul, hogy a jelentésben szereplő adatok nem érhetők el lekérdezéssel vagy lekérdezések kombinációjával. Az adatgyűjtéshez bizonyos eljárásokat kell alkalmaznia, és az adatok egy értéktáblázatba kerülnek. Felmerül a kérdés – felhasználhatók-e ezek az adatok az adatösszetételi sémában? Végül is az SKD eszköz erőteljes és kényelmes. Kiderült, hogy az értéktáblázat adatait az ACS-ben lévő jelentés adatforrásaként lehet használni, és ezt egyáltalán nem nehéz megtenni. Ez a cikk bemutatja, hogyan hozhat létre ilyen jelentést a normál űrlapokhoz.
Tehát hogyan hozhat létre SKD-jelentést egy értéktáblázatból származó adatok felhasználásával? Mindenről rendben.
Először nyissa meg a konfigurátort, és hozzon létre egy új külső jelentést.

Nyissa meg az objektummodult, és hozzon létre egy előre meghatározott eljárást OnResultComposition (ResultDocument, DecryptionData, StandardProcessing)

Ezen az eljáráson belül adatokat gyűjtünk és jelentést készítünk.
Az WhenComposingResult eljárásban letiltjuk a szabványos feldolgozást. StandardProcessing = False;
Ezután tetszőleges módon értéktáblázatot készítünk. Az értéktáblázat oszlopainak nevének meg kell egyeznie az ACS-ben található adatkészlet jövőbeni mezőivel.:


Például adjunk hozzá három adatsort. Ezután lépésről lépésre elkészítjük a jelentés kimenetét.

  • A sémából megkapjuk az alapértelmezett beállításokat.

  • A visszafejtési adatokat a megfelelő változóhoz küldjük.

  • Az elrendezést a layout builder segítségével alakítjuk ki.

  • A sémát, a beállításokat és a visszafejtési adatokat átadjuk az elrendezésnek.

  • A linkelést a linkprocesszor segítségével végezzük. Ehhez hajtsa végre az adatösszetétel-feldolgozó Initialize() metódusát. Paraméterként adjuk át az adatösszetétel elrendezést, a külső adatkészleteket (típus: Struktúra, a struktúra kulcsának meg kell egyeznie az adatösszeállítási sémában szereplő objektum nevével, az érték a generált értéktáblázat), visszafejtési adatokat.

  • Töröljük a táblázatos dokumentum mezőjét.

  • Az eredményt táblázatban jelenítjük meg.
Az eredmény a következő kód:
DataCompositionSchema = GetLayout( "Alapadatok elrendezési séma"); //Beállítások = DataCompositionScheme.DefaultSettings; // - Ha a fentiek szerint csinálod (egyes erőforrásoknál ajánlott), akkor a beállítások módosításakor kliens módban // nem látod ezeket a változtatásokat, mert mindig a beállítások lesznek az alapértelmezettek. Hogyan kell helyesen csinálni - alább Beállítások = Beállítások Zeneszerző. GetSettings(); DecryptData = New DataCompositionDecryptData; Layout Layout Builder = Új adatelrendezés Layout Layout Builder; LayoutLayout = LayoutComposer. Execute(DataCompositionScheme, Settings, DecryptionData); ExternalDataSet = New Structure( "ExampleValueTable", TZConclusion); DataCompositionProcessor = New DataCompositionProcessor; DataCompositionProcessor. Initialize(LayoutLayout, ExternalDataSet, DecodeData); DocumentResult. egyértelmű(); OutputProcessor = New OutputProcessorofDataCompositionResultIntoSpreadsheetDocument; Kimeneti processzor. SetDocument(DocumentResult); Kimeneti processzor. Output(DataCompositionProcessor); Elrendezés hozzáadása elrendezés elrendezés. Meghagyhatjuk a nevet alapértelmezettként.

Adatkészletet hozunk létre. Ehhez hozzáadunk egy új Object típusú adatkészletet. Az adatot tartalmazó objektum neve mezőben azt a nevet helyezzük el, amelyet az ExternalDataSet struktúra létrehozásakor kulcsként adtunk meg. Ezután adunk hozzá mezőket. A neveknek pontosan meg kell egyeznie az értéktáblázat oszlopainak nevével. Ezután megadhatunk érvényes értékeket, formátumokat stb.

Adjon hozzá erőforrásokat, ha szükséges. Számolni fogják az eredményeket. Esetünkben ezek a Mennyiség és Összeg mezők.

A Beállítások lapon a beállítások konstruktor segítségével a jelentés alapértelmezett verzióját képezzük

Mentjük a jelentésünket. A kliensben elindítjuk és megformázzuk. A képen látható egy példa egy ACS jelentés végrehajtására az értéktáblázat adatai alapján.


Ez minden. Elég egyszerű, igaz?

Az eredményül kapott példa egy jelentés letölthető