Kijelölések használata skd-ben. Adatkészlet – Lekérdezés

Az SKD 1C a Data Composition System rövidítése. Az SKD 1C az új út jelentések írása 1C-ben, amely lehetővé teszi a felhasználó számára, hogy teljesen személyre szabja a jelentést.

Az SKD 1C hátránya, hogy beállításai meglehetősen bonyolultak, és nem minden felhasználó tanulja meg őket gyorsan.

Az ACS-jelentések írása megköveteli a lekérdezésekkel való munkavégzés képességét az 1C-ben, amit a cikkben tárgyaltunk.

Mi a technológia az SKD 1C jelentés létrehozásához:

  • Írjon egy 1C kérést az 1C SKD-nek, amely adatokat szolgáltat
  • Adja meg az SKD 1C-nek a mezők szerepét (számított mezők, erőforrások)
  • Adja meg az SKD 1C alapértelmezett beállításait.

A felhasználónak lehetősége van számos beállítást tetszés szerint módosítani.

Mi a technológia a korábbi technológiákról szóló jelentés létrehozásához:

  • Írjon egy kérést az 1C programban
  • Hozzon létre egy beállítási űrlapot (egyedi a jelentéshez), amely lehetővé teszi, hogy csak N beállítást módosítson a programozó által
  • Írjon egy kódot (programot) a lekérdezés végrehajtásához és az építéshez nyomtatott formában jelentés.

Amint látható, az SKD 1C jelentős előnnyel rendelkezik mind a felhasználó, mind a programozó számára:

  • Programozó – megmenti Önt a jelentés és a beállítások elvégzéséhez szükséges program írásától
  • Felhasználó – Jelentős hozzáférést kap a jelentésbeállításokhoz.

Minden új 1C konfigurációban az összes jelentés csak az 1C SKD-n lesz felhasználva.

Nézzük meg, hogyan hozhat létre jelentést az SKD 1C-ről a semmiből.

Készítünk egy SKD 1C jelentést

A konfigurátorban kattintson az új fájl gombra (Fájl/Új menü).

Válassza ki az Új jelentés fájltípust.

Új jelentés készül. Írja be a nevet – szóközök nélkül a konfigurációhoz, a felhasználó szinonimájaként.

Hozzuk létre az ACS 1C fő sémáját.

Létrehozunk egy kérést az SKD 1C jelentéshez

Az SKD 1C-hez számos adatforrás lehet. Például két külön lekérdezés használatához először adja hozzá az "Adatkészlet - Csatlakozás" kifejezést, majd több lekérdezést.

Példánkban egy egyszerű lekérdezést fogunk használni.

Írjunk lekérdezést az adatok beszerzéséhez.

A lekérdezéskészítővel való munka semmiben sem különbözik a szokásostól, ezt a -ban tárgyaltuk.

A kérés eredményeként az SKD 1C elkészíti a használható mezők listáját, és kitölti vele az alapértelmezett neveket.

Ha a név kényelmetlen, itt módosíthatja.

Vegye figyelembe, hogy a &StartDate paramétert használtuk a lekérdezésben. Az SKD 1C-ben alapértelmezés szerint van egy &Period nevű paraméter (dátum), és ezt használhatod.

Ezenkívül nem kell közvetlenül megadnia a kérésben - a rendszer automatikusan használja. Van azonban egy finomság - ez minden táblára vonatkozik, beleértve a bal oldali csatlakozásokat és más olyan dolgokat, amelyek hibákhoz vezethetnek.

Például a hónap elején kapja meg az egyenlegeket, a bal oldali csatlakozással pedig a mai adatokat. Használatakor a Period minden táblára egyformán vonatkozik, és a lekérdezés nem fog megfelelően működni.

SKD 1C beállítások

Az Erőforrások lapon adja meg azokat a mezőket, amelyek összegzésre kerülnek a végösszegekhez (azaz számokhoz). Megadhat összegzési funkciót a mezőkhöz. Alapértelmezés szerint ez az Összegzés (azaz összegezze az összes sorból származó számokat, és kapja meg a végösszeget), vagy használhatja az Átlag, Szám, Maximum stb.

A Paraméterek lapon tiltsa le azokat, amelyekre nincs szükségünk, és engedélyezze a szükségeseket. Itt beállíthatja a paraméter emberi nevét is.

A fő beállításokat a Beállítások lapon végezheti el:


Nyissuk meg Enterprise módban. Felhívjuk figyelmét, hogy nem programoztunk, rajzoltunk űrlapokat és egyéb dolgokat. A paraméter beállításához kattintson a Beállítások gombra.

A felhasználó szinte ugyanazt a beállítási formát látja, mint a programozó.

Voálá. A jelentés működik.

SKD 1C beállítások

Az SKD 1C jelentés összes beállítása a Beállítások gomb megnyomásával történik. Legalábbis az alapértelmezett sablonban. Lehetőség van saját maga elkészíteni az SKD 1C jelentési űrlapot, majd a beállításokat át lehet vinni más, a programozó által önállóan rajzolt űrlapokra.

Húzza a raktárt az oszlopok közül a sorok közé.

Húzzuk a Nomenklatúrát a Raktárba.

Kattintson az OK gombra, és készítse el a jelentést. Hurrá - most megváltoztattuk a jelentés működését Programozási módban programozás nélkül.

Kattintson Jobb klikk a Sorok elemre (vagy bármelyik mezőre), és válassza az Új csoportosítás lehetőséget.

Bontsa ki a Raktár mezőt, és válassza ki az egyik mezőt, például a Raktár típusát.

Gondolkodás után eszünkbe jutott, hogy szeretnénk egyszerre több mezőt egy oszlopban megjeleníteni. Kattintson kétszer az újonnan létrehozott mezőre a bal egérgombbal. Itt adhat hozzá mezőket.

Ha új csoportosítást ad hozzá, de nem jelöl ki egy mezőt, az "Összes mezőt" jelent ("Részletes rekordok" néven jelenik meg). Ez így néz ki.

Fogja meg a csoportosításunkat (Warehouse / Nomenclature) a bal egérgombbal, és húzza át egy új csoportba (Raktár típusú).

Beállításaink eredménye.

A nevük alapján könnyen kitalálható beállításokon kívül (Kiválasztás, Rendezés stb.) található az „Egyéb beállítások” fül. Lehetővé teszi olyan dolgok engedélyezését vagy letiltását, mint az összegek megjelenítése, a csoportosítások elhelyezése az oszlopokban stb.

Vegye figyelembe, hogy a beállítások a teljes jelentésre (Jelentés ki van választva) vagy a mezők egy sorára vonatkozóan állíthatók be (válasszon ki egy sort, például a Nomenklatúra, majd válassza a Beállítások:Nómenklatúra lehetőséget).

Legutóbbi cikkemben már írtam, hogy az 1C egy paradox platform. Az adatkapcsolati rendszer egy ilyen paradoxon. Az SKD komplex jelentések tervezésére szolgál, és magában foglalja a jelentések "kézi" programozásának helyettesítését egy többfunkciós eszköztárban történő tervezéssel. Az ACS használatának lehetősége a nyolcadik verzióban jelent meg, de sokáig tartott a 8.2-es verzió megjelenése, hogy az 1C felhasználhassa szabványos termékeiben. Az ACS egyrészt egy többfunkciós eszköztár, amellyel nagyon összetett riportok készíthetők egyetlen kódsor nélkül. A beléptető rendszernek azonban meglehetősen magas a belépési küszöbe, nagyon nehéz "egy csapásra" tanulmányozni és teljes körűen elkezdeni használni, mert a felület nem teljesen intuitív, de a legtöbb teljes útmutatók felhasználása csak fizetett irodalom formájában érhető el.

Az SKD vizsgálata során felmerült egy probléma. Adatokat kell beszerezni egy harmadik féltől származó értéktáblázatból a lekérdezési nyelv használatával, majd ezeket az adatokat úgy kell kezelni, mint az adatbázistáblák hasonló adatait (pivot műveletek, csoportosítás stb.). A klasszikus formátumban olyan lekérdezést készítenénk, amely a lekérdezésnek paraméterként átadott táblából kap információt.

Request = Új kérés(
"VÁLASZT
| táblázat. Nómenklatúra,
| Asztal, raktár
| FROM
| &TK AS táblázat");
Request.SetParameter("TK", TK);

De az SKD-vel ez nem ilyen egyszerű. Sajnos a fent leírt művelet nem végezhető el az adatösszeállítási rendszerben. Ennek ellenére lehetőség van külső értéktáblázatok betöltésére a rendszerben.

Itt érdemes egy kis lírai kitérőt tenni és a Datasets-ről beszélni. Az adatkészletek olyan információforrások, amelyekből az SKD adatokat kap, amelyeket később jelentésbe állít össze. Az adatkészletek típusokra vannak osztva, főként a "Request" típus használatával, melynek törzsében a programozó lekérdezést ír az adatbázisba. Az "Object" típust külső objektumokból származó adatok betöltésére használják. Mindkét esetben a kimeneten van egy bizonyos mezőkészletünk, amelyet egy kérés végrehajtása vagy egy külső objektum betöltése eredményeként kapunk. Később ezek a mezők a "Beállítások" fülön kezelhetők, a jelentés szerkezetének részletes konfigurálásával együtt. Az ACS-ben a különböző halmazok összekapcsolásához lehetőség van az adathalmazok hivatkozásainak megadására az azonos nevű fülön. Ezek a hivatkozások a bal oldali csatlakozás közvetlen analógjai egy klasszikus lekérdezésben. Figyelembe kell azonban venni, hogy a lekérdezések egyetlen adatkészletben sem "tudnak" más adathalmazok létezéséről, végső soron az adatkészlet-kapcsolatok befolyásolják az adatok elrendezését a "Beállítások" fülön megadott struktúra szerint.

Néhány példával részletezzük a problémát. A ZiK 8 konfiguráció szervezetének elszámolási nyilatkozatai szabványos riportot tartalmaz, szükséges, hogy a jelentésben szereplő számítások bizonyos csoportokba legyenek csoportosítva. A megfelelések számítási típuscsoportja egy külső értéktáblázatban van tárolva. A fő adatelrendezési sémába való betöltéséhez létrehozunk egy "adatkészlet objektumot" "Csoportok" néven (2. ábra). A számítás típusa szerint kapcsolatot létesítünk a "kérelem adatkészlettel" - "Accruals" (3. ábra). Az "Adatkérés kérése" - "Elhatárolások" részben a csoportokról van információ, minden előfordulást törölünk. Ezt követően a "Beállítások" fülön használhatjuk a "Csoport" mezőt, melynek értéke külső adatforrásból töltődik be (4. ábra). A jelentéskészítés funkcióban kiegészítjük a külső adatok betöltését.

Funkció GenerateReport(Eredmény = Nem definiált, DecodeData = Nincs definiálva, OutputToReportForm = True) Export

//a kívánt "Csoport" értékek táblázatának beszerzése vagy létrehozása és az azonos nevű változóba írása

ExternalData = New Structure();//a külső adatstruktúra létrehozása és kitöltése
ExternalData.Insert(Csoportok);

UserPanelValue = GenericReports.GetUserPanelSettingsValuesofObject(ThisObject);
DefaultSettings = BeállításokComposer.GetSettings();
GenericReports.GetAppliedSetting(ThisObject);
GenericReports.Generate GenericReport(ThisObject, Result, Decryption Data, OutputToReportForm, ExternalData);
SettingsComposer.LoadSettings(DefaultSetting);
Eredmény visszaküldése;

EndFunctions

Ha egy jelentést a semmiből készítenénk, akkor a jelentésgenerálás kezdőkódja így nézne ki:

ExternalDataSets = új struktúra;
ExternalDataSets.Insert("Csoportok", Csoportok); //Csoportok - a szükséges értéktáblázat
DataCompositionSchema = GetLayout("MainDataCompositionSchema"); //elrendezésünk adatelrendezéssel
Beállítások = DataCompositionSchema.Default Settings;
Layout Layout Builder = Új adatelrendezés Layout Layout Builder;
LayoutLayout = LayoutComposer.Run(DataCompositionScheme, Settings);
DataCompositionProcessor = New DataCompositionProcessor;
DataCompositionProcessor.Initialize(LayoutLayout, ExternalDataSets);
TabDoc = New SpreadsheetDocument;
OutputProcessor = New OutputProcessorofDataCompositionResultIntoSpreadsheetDocument;
OutputProcessor.SetDocument(TabDoc);
OutputProcessor.Output(DataCompositionProcessor);

Olvas 9660 egyszer

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: adathalmazok közötti kapcsolat létrehozása

  • Készítsen jelentést, amely bemutatja az ügyfeleket és kedvenc termékeiket. Minden ügyfélnek van egy kedvenc színe, és minden terméknek saját színe van - ezek alapján kell meghatároznia a termék "kedvencét". Például, ha Andrei kedvenc színe a piros, akkor az egyik kedvenc étele a paradicsom lesz (ez piros).
  • Alkalmazzon két adatkészletet a jelentéshez. Az első készlet az „Ügyfelek” referenciatáblázat adatai. A második - az „Élelmiszer” referenciakönyv táblázatának adatai.
  • Megvalósítani e két halmaz kapcsolataígy csak az egyes vásárlók kedvenc termékei maradnak a jelentésben.

Új jelentés készítése

Nyissa meg a "Gastronom" adatbázist a konfigurátorban, és hozzon létre egy új jelentést a főmenüben:

Dokumentumtípus - "Külső jelentés":

Új jelentés formájában adja meg a "6. lecke" nevet, és kattintson az "Adatösszetételi séma megnyitása" gombra:

Hagyja meg az alapértelmezett sémanevet:

Az első adatkészlet hozzáadása

A megnyíló sémában lépjen az "Adatkészletek" fülre, és válassza ki az "Adatkészlet hozzáadása - lekérdezés" lehetőséget a zöld pluszjelen keresztül:

A lekérdezés konstruktorát hívjuk:

Adja meg az "Ügyfelek" táblát és azokat a mezőket, amelyeket le szeretne kapni a lekérdezésből:

Egy második adatkészlet hozzáadása

Egy második adatkészlet hozzáadása:

Jelölje ki (DataSet2), és hívja újra a lekérdezés konstruktort:

Adja meg az "Élelmiszer" referenciakönyv táblázatát és a kérésből lekérni kívánt mezőket:

Ez a kérés szövege:

Kérjük, vegye figyelembe, hogy most két adatkészletünk van a jelentésben: DataSet1 és DataSet2. Mindegyiknek megvan a saját kérési szövege és adatai.

A nevek leíróbbá tétele

Az egyértelműség kedvéért nevezzük át a Dataset1-et Ügyfelek-re, a Dataset2-t pedig Food-ra.

Ehhez kattintson duplán az egyes készletekre:

Az egyes halmazok adatait felhasználhatjuk jelentésünkben. Ezeket az adatokat mezőkön keresztül fogjuk elérni.

BAN BEN Ebben a pillanatban a "Vásárlók" készlet a következő mezőket tartalmazza: "Név" és "Kedvenc szín", az "Étel" készlet pedig: "Név" és "Szín".

Látjuk, hogy a nevek keresztezik egymást, és könnyen összekeveredhetünk. Tehát változtassuk meg a mezőneveket, hogy leíróbbak legyenek.

Válassza ki az "Ügyfelek" készletet, és módosítsa a mezőneveket az alábbiak szerint:

Ezután válassza ki az "Élelmiszer" készletet, és módosítsa a mezőneveket a következőképpen:

A beállítások konstruktorának meghívása

Végül lépjen a "Beállítások" fülre, és kattintson a gombra varázspálca a beállítások konstruktorának meghívásához:

Jelentés típusa - "Lista...":

Válassza ki a jelentés mezőit mindkét készletből:

Látod, miért volt olyan fontos a mezőnevek megváltoztatása? Az adatösszetétel-beállítások szakaszában nem látjuk, hogy ezek a mezők mely halmazokból származnak. Csak a nevüket látjuk.

A jelentés ellenőrzése

A jelentést elmentjük és felhasználói módban generáljuk:

Igen. Oké, de nem igazán. Megtörtént a két halmaz úgynevezett keresztillesztése (ezt az előző modulokban vizsgált lekérdezések összekapcsolásaiból ismernie kell). A „Vásárlók” tábla minden rekordjához tartozik egy megfelelő rekord az „Élelmiszer” táblából.

De ezen rekordok közül csak azokat kell meghagynunk, amelyeknél a „FavoriteCustomerColor” mező megegyezik a „FoodColor” mezővel:

Két adathalmaz összekapcsolása

Ehhez kapcsoljunk össze két adatsort (Vásárlók és Élelmiszer) az Ügyfél Kedvenc színe és Élelmiszerszíne mezők szerint.

Lépjen az "Adatkészlet hivatkozások" fülre, és kattintson a plusz gombra új hivatkozás hozzáadásához:

Állítsa be a paramétereket az alábbiak szerint:

Adok magyarázatot.

Kommunikációs forrás és vevő. Nos, itt minden világos. Adja meg az első adatkészletet (Customers) és a másodikat (Élelmiszer). rajzolni akarok Speciális figyelem hogy a kommunikáció az elv szerint történik bal külső csatlakozás(az előző modulokban a kérések témakörben jártuk végig). Ez alapján ki kell választani, hogy melyik készlet legyen a forrás és melyik vevő.

forrás kifejezés. Adjon meg itt egy kifejezést vagy egyszerűen egy mezőt a forrásadatkészletből (az Ügyfél kedvenc színe mezőt az itt beállított Kliensek közül adtuk meg).

vevő kifejezés. Itt egy kifejezést vagy csak egy mezőt jelölünk a vevő adatkészletéből (itt az Élelmiszer készletből az Élelmiszer szín mezőt jelöltük).

Így ez a hivatkozás csak azokat a sorokat hagyja meg az előző listából, amelyek FavoriteCustomerColor mezője megegyezik a FoodColor mezővel.

Mentse el a jelentést, és futtassa felhasználói módban:

Nagy!

Magyarázatot fogok készíteni a mezőről" Kommunikációs állapot", amiről a kezdő programozók oly gyakran ütik a lándzsáikat.

A linkfeltétel egy segédmező. Oda írhatsz kifejezéseket. csak a hivatkozási forrásban megadott adatkészlet mezőinek bevonásával.

Ebben az esetben a hivatkozás forrásából származó összes sor esetében ez a kifejezés (hivatkozási feltétel) ellenőrzésre kerül a linkelés előtt. És ha ez a kifejezés IGAZ, akkor a rendszer megpróbálja összekapcsolni ezt a karakterláncot a hivatkozási fogadó karakterláncaival. Ha a kifejezés HAMIS, nem történik ilyen kísérlet.

Jó napot olvasóim! Ma továbbra is megvizsgáljuk az elrendezési rendszer alapjait. Ebben a cikksorozatban megtudta, mi az SKD, és megismerkedett az SKD fő összetevőivel. Figyelembe vettük a jelentéskészítés bemeneti adatait is, és megtanultuk a jelentés ACS-en való futtatásának főbb szakaszait. Ezen kívül sokaknak lehetőségük volt egy kisebben is próbára tenni tudásukat. És most megnézheti a cikk tartalmát, és megnézheti, miről lesz szó.

Adatkészlet - lekérdezés.

  1. A szokásos lekérdezésekkel ellentétben az adatösszetételi lekérdezések nem tartalmaznak TOTAL záradékot. Ehelyett összegek generálódnak az Erőforrások lapon. Ezen a lapon választhatja ki azokat a mezőket, amelyekhez a végső kifejezéseket szeretné megkapni. És a „Beállítások” lapon megjelenik, hogy melyik szakaszban kapják meg az eredményeket, vagyis itt jönnek létre a megfelelő csoportok, és ezekből számítják ki az erőforrásokat. Erről bővebben a cikkben olvashat.
  2. A következő pont a kiválasztási beállításokra vonatkozik. Két megvalósítási lehetőség van.
    1. A jelentés opció beállításain keresztül. Ezt a "Beállítások" - "Kiválasztás" fülön teheti meg. Ha ezt az opciót használjuk, akkor ez a legrugalmasabb, hiszen megadható különböző típusokösszehasonlítások, amelyek közül még a felhasználó is választhat. Ezenkívül, ha ezt az opciót használja, a szűrési feltételeket magában a lekérdezésben kell megadni. Ha a jelentés ideiglenes táblákat használó köteglekérdezésen alapul, akkor a kijelölés minden kötegelt lekérdezési táblára hatással lesz, ahol a szűrőmező található.
    2. kérés szintjén. Ha lekérdezést használunk, akkor nem használhatunk mást, mint az egyenlőségi műveletet.
      Kivételt képez az az eset, amikor az adatok "kemény" szűrését kell végrehajtanunk valamilyen érték alapján. Mondjuk felsorolási érték szerint. A "Paraméterek" fülön tudjuk beállítani a feltételt. Ha bekapcsoljuk a "Hozzáférhetőség korlátozása" jelzőt, akkor ezt a feltételt a felhasználó nem tudja törölni.
  3. A rendezést is helyesebb a jelentésváltozat-beállítások szintjén előírni.
    1. Ha a kérésben rendezési mezőt adunk meg, akkor a felhasználó egy másik mezőt ad meg a jelentési opciójának beállításánál, ekkor a kérés szintjén végzett beállításunk lesz a legalacsonyabb prioritású. Először a felhasználó által a jelentésváltozat beállításában beállított rendezés kerül végrehajtásra. Ezért ha "alapértelmezés szerint" be kell állítania a rendezést, akkor használja a jelentésváltozat beállításait a Configuratorban.
    2. És ha „kemény” rendezést kell beállítani a jelentésben, hogy a felhasználó ne tudja megváltoztatni? Ezután a kérés szintjén állítjuk be a rendezést, az „Adatkészletek” fülön pedig a mezőkorlátozást. Válassza ki a kívánt adatkészletet, és a "Mezőkorlátozás" - "Megrendelés" oszlopban jelölje be a négyzetet.

Virtuális asztal opciók.

  • A számviteli nyilvántartások, felhalmozási nyilvántartások, információs nyilvántartások virtuális tábláinak felépítése a megadott dátumtól függ. Ez lehet egyetlen dátum vagy intervallum, mint például egy egyenleg- és forgalomtáblázat esetében. Az ACS úgy van kialakítva, hogy ha a jelentés egy virtuális táblán alapul, akkor a felhasználónak meg kell adnia, hogy milyen időközönként vagy dátumon készítse el a jelentést. Az ACS automatikusan hozzáadja a szükséges periódusparamétereket az elrendezési sémához.
  • Ha a lekérdezésben egy virtuális egyenlegtáblázat vagy információs regiszterek virtuális táblája van kiválasztva, akkor a rendszer automatikusan hozzáad egy "Időszak" nevű paramétert.
  • Ha a lekérdezésben egy virtuális egyenleg- és forgalomtáblázat vagy egy virtuális forgalomtáblázat van kiválasztva, akkor a „Periódus eleje” és „Időszak vége” paraméterek automatikusan hozzáadódnak.
  • Mi a teendő, ha egyenleget kell szereznie az időszak végén? Két módja van:
    1. A "Paraméterek" fülre lépünk, és a "Kifejezések" oszlop "Időszak" paraméterében a következőket írjuk:
      &EndPeriod. Engedélyezze a "Hozzáférhetőség korlátozása" jelzőt is.
    2. Teljesen megszabadulunk a "Period" paramétertől, és helyettesítjük az "EndPeriod" paraméterrel. Állítson be egy opcionális paramétert virtuális asztal:
      • Lépjen az "Adatkészletek" fülre, és kattintson a "Lekérdezéskészítő..." gombra.
      • A bal felső sarokban található "Adatösszetétel" lapon kattintson a gombra a "Virtuális tábla beállításai" párbeszédpanel megnyitásához (ez egy szürke négyzet alakú gomb fogaskerékkel egy kis táblázat hátterében).
      • A párbeszédpanel "Időszak" mezőjébe írja be: &EndPeriod.
      • Most az adatkészlet-lekérdezés szövegében a virtuális tábla paramétereiben ez a paraméter kapcsos zárójelekkel körülvéve jelenik meg:
RegisztrációAkkumuláció. Áruk maradványai. Marad(((&EndPeriod) ), ) AS Marad

A kapcsos zárójelek az adatösszetétel lekérdezési nyelvi kiterjesztését jelzik. Azt is jelzi, hogy ez a paraméter nem kötelező. Ez azt jelenti, hogy ha az adatösszetételi sémában nincs definiálva, akkor az egyenlegek az aktuális napon érkeznek meg.

Lekérdezési nyelvi kiterjesztés.

Ezek speciális utasítások, amelyek a kérés törzsében kapcsos zárójelek között vannak. Ezek az utasítások azokat a mezőket és paramétereket határozzák meg, amelyek egy jelentésváltozat beállításakor használhatók. A kapcsos zárójelben lévő adatok akkor is jelen lesznek az elrendezésben, ha az Automatikus kiegészítés jelölőnégyzet le van tiltva.

Lekérdezési adatkészlet létrehozásakor alapértelmezés szerint az adatösszetételi séma elérhető mezői a létrehozott lekérdezés alapján automatikusan kitöltésre kerülnek (az "Adatkészletek" fülön az "Automatikus kiegészítés" jelölőnégyzet be van jelölve).

Hogyan működnek az elérhető adatösszetételi séma mezőinek automatikus kiegészítése?

    1. Elérhetővé válnak a lekérdezési listában szereplő mezők és a hozzájuk tartozó gyermekmezők.
    2. Ha a felhalmozási regiszterből választunk, akkor az adatösszetétel mezőkben a kérelemben nem szereplő regisztermezők is elérhetővé válnak. De ezek a mezők csak kijelölésre állnak rendelkezésre (feltételes kifejezésekben)
      és nem használhatók kimeneti mezőként.
    3. A "Period", "StartPeriod" és "EndPeriod" virtuális táblák paraméterei
      választható.
    4. Ha a kérés szövegében "hard" feltétel van megadva, akkor ez a paraméter a "Paraméterek" fülön is felkerül.

Ha az Automatikus kiegészítés jelölőnégyzet nincs bejelölve, akkor az adatösszetételi séma mezői törlődnek, de a lekérdezés törzsében kapcsos zárójelekbe zárt paraméterek megmaradnak.

Hogyan tölthetem ki magam az adatösszetételi séma mezőit?

Törölje az "Adatkészletek" lapon található "Automatikus kiegészítés" jelölőnégyzet jelölését.

Kattintson a "Lekérdezéskészítő..." gombra. Hozzuk létre a következő lekérdezést:

KIVÁLASZTÁS Marad. Nómenklatúra AS Nómenklatúra, Maradványok. Mennyiség AS Mennyiségfelhalmozási nyilvántartás. Áruk maradványai. Marad(((&EndPeriod) ), ) AS Marad

A "Táblázatok" fülön minden táblához beállíthatjuk a virtuális táblák paramétereit.

Most az „Adatösszetétel” lapon válassza a „Mezők” lapot. Itt beállítjuk a kiválasztási mezőket, amelyek
az elrendezési diagramon látható lesz.

Az "És..." mező azt jelenti, hogy a gyermekrekordok szerepelni fognak a kiválasztásban
összetett típusú mezők, például könyvtárak és dokumentumok stb. Ha a mező értéke , például egy szám, akkor az "ÉS..." mezőbe nem lehet jelzőt tenni.

Válasszon ki két mezőt: „Nómenklatúra” és „Mennyiség”. A "Nómenklatúra" mezőben állítsa be az "És .." jelzőt,
gyermekrekordok kiválasztásához. Kapja meg a következő lekérdezést:

KIVÁLASZTÁS Marad. Nómenklatúra AS Nómenklatúra, Maradványok. Mennyiség AS Mennyiség (SELECT Nomenclature. * , Quantity) Felhalmozási regiszter. Áruk maradványai. Marad(((&EndPeriod) ), ) AS Marad

Az új lekérdezésben szögletes zárójelben van még egy KIVÁLASZTÁS szakasz - ez a kiterjesztés szövege, amely az elrendezésben elérhető mezőket jelzi. A "Nómenklatúra.*" mező azt jelzi, hogy a "Nómenklatúra" mező és a hozzá tartozó gyermekadatok, például "Kód", "Név" stb. elérhetők lesznek. Tehát mi magunk töltöttük ki az elrendezési mezőket.

De jelenleg nem használhatunk margót elrendezési feltételek mellett. Ha a „Beállítások” fülre lép, és kiválasztja a „Kiválasztás” lapot, akkor az előző bekezdésben kiválasztott mezők egyikéhez sem állíthat be feltételeket. Miért?

A virtuális tábla paramétereinek feltételeit is meg kell adni a Query Builder Adatösszetétel lapján. A bal felső sarokban kattintson a gombra a "Virtuális tábla beállításai" párbeszédpanel megnyitásához
(ez egy szürke, négyzet alakú gomb fogaskerékkel egy kis asztal hátterében). A párbeszédpanel "Feltétel" mezőjébe írja be: Nomenclature. Most az adatkészlet-lekérdezés szövegében a virtuális tábla paramétereiben ez a "Nómenklatúra" paraméter jelenik meg kapcsos zárójelekkel körülvéve:

RegisztrációAkkumuláció. Áruk maradványai. Marad(((&EndPeriod) ), ((Nómenklatúra) )) AS Marad

Normál lekérdezési nyelvben a paraméter megadása így néz ki: Nomenclature = &Nómenklatúra. De a lekérdezés nyelvi kiterjesztésében ez másképp van írva. Csak a mező neve van megadva. Itt nem adjuk meg az egyenlőség, egyenlőtlenség vagy a hierarchia működését, mivel a felhasználó maga választja ki a kívánt műveletet a beállításaiban.

A Lekérdezéskészítő Adatösszetétel lapján egy másik lapot látunk, a Feltételeket. Meg kell adni a WHERE záradék feltételeit a lekérdezési nyelvi kiterjesztésben. Válassza ki az "Összeg" mezőt. Most ez a mező elérhető a "Beállítások" - "Kiválasztás" lap feltételei között. A kérés szövegében pedig új sorok jelentek meg, göndör zárójelben.

(HERE marad. Mennyiség)

Ha a mennyiség szerinti kijelölés meg van adva, akkor ez a mondat bekerül a végső lekérdezésbe. Ahol a feltétel típusa és az összehasonlítási érték a jelentésváltozat beállításával kerül meghatározásra.

Szóval szerintem ennyi anyag mára elég. Ha még mindig vannak tisztázatlan pontjai, akkor ne habozzon kérdezni, mert erre van lehetőség a hozzászólásra. Hamarosan készen állunk ennek az anyagnak a konszolidálására, ezért iratkozzon fel a frissítésekre weboldalunkon, hogy ne maradjon le róla!

Ebben az órasorozatban pedig megvizsgáljuk az SKD kifejezési nyelv funkcióit, beszélünk az elrendezési rendszer jellemzőiről, és elemezzük az elrendezési mezők alapvető beállításait is. Sok sikert ennek a nehéz anyagnak a megértéséhez!

A cikk végén Anatolij Szotnyikovtól mentesen szeretnék tanácsot adni. Ez a tanfolyam egy tapasztalt programozótól. Külön meg fogja mutatni, hogyan kell jelentéseket készíteni az ACS-ben. Csak figyelmesen kell hallgatni és emlékezni! Válaszokat kapsz olyan kérdésekre, mint pl.
  • Hogyan készítsünk egyszerű listajelentést?
  • Mire szolgál a Mező, Elérési út és Cím oszlop a Mezők lapon?
  • Milyen korlátozások vonatkoznak az elrendezési mezőkre?
  • Hogyan állítsuk be megfelelően a szerepeket?
  • Mi a szerepe az elrendezési mezőknek?
  • Hol találom az adatelrendezés lapot egy lekérdezésben?
  • Hogyan konfigurálhat paramétereket az SKD-ben?
  • További érdekesség...
Valószínűleg ne próbáljon meg böngészni az interneten keresve szükséges információ? Ráadásul minden készen áll a használatra. Csak kezdd el! Minden részlet arról, hogy mi található az ingyenes oktatóvideóban a szerző oldalán puha készítő http://www..pngpuha készítő 2015-12-07 14:51:12 2018-06-12 13:14:13 Adatösszetétel rendszer (SKD). 2. rész.

Lekérdezési nyelvi kiterjesztés adatkompozíciós rendszerhez

Az adatösszeállítási rendszer lekérdezési nyelvének kiterjesztése speciális szintaktikai utasítások segítségével történik, amelyek zárójelekbe vannak zárva, és közvetlenül a lekérdezés szövegében vannak elhelyezve.

Adatösszetétel rendszer lekérdezési nyelv kiterjesztés szintaxis elemei

VÁLASZT

Ez a mondat azokat a mezőket írja le, amelyeket a felhasználó kiválaszthat a kimenethez. Ezt követően kulcsszó A fő lekérdezési kiválasztási lista mezőinek álnevei, amelyek testreszabhatók lesznek, vesszővel vannak elválasztva.

Például:

(SELECT Nómenklatúra, Raktár)

A mező álnevet egy ".*" karakterkombináció követheti, amely jelzi a mezőből származó gyermekmezők használatának lehetőségét.

Például a Nomenclature.* bejegyzés a "Nómenklatúra" mező gyermekmezőinek használatának lehetőségét jelzi (például a "Nómenklatúra.Kód" mező). A SELECT elem csak az első összekapcsolási lekérdezésben lehet jelen.

AHOL

Leírja azokat a mezőket, amelyeken a felhasználó kiválasztást alkalmazhat. Ez a javaslat táblázatmezőket használ. A listában szereplő mezők álneveinek használata nem megengedett. Minden egyesülési rész tartalmazhat saját WHERE elemet.

(HOL Nómenklatúra.*, Raktár)

Egy egyszerű példa

Meg kell kapni az időszakra vonatkozó eladásokat + a teljes választékot megjeleníteni, függetlenül attól, hogy volt-e eladás vagy sem. Vagyis az Értékesítési nyilvántartás forgalmi táblájából kell adatokat kiválasztani, adatokat a nómenklatúra címtárból. Hagyjuk azt a kérdést, hogy miért van szükségünk az összes nómenklatúrára.

A probléma megoldásához létrehozhat egy lekérdezést, amely összeköti a cikket és az értékesítési forgalmi táblát egy bal oldali összekapcsolással, ennek eredményeként a kiválasztott időszakban nem értékesített cikkhez a mező értékeket kapjuk szerződő fél, Szerződés, Mennyiség, Összeg= Null. Ilyen kérés:

Válasszon sprnome -ajánlatot.Dink mint nómenklatúra,értékesítési költségek Ellenőrzés,eladás,szerződések,eladások,eladások Jelenleg mennyiségként,eladások,költségként mint költség referenciakönyvből.Nómenklatúra mint gerinc egy-becsomagolt regiszter csatlakozása. Fejlesztés a sprniek értékesítéseként.

Íme az eredmény:

szerződő fél Szerződés Elnevezéstan Mennyiség Összeg
nulla nulla _Teszt1 nulla nulla
LLC "Szarvak és paták" Megállapodás 1 Papucs 10 1200
"Gazprom" klassz üzlet Csizma 5 13000
nulla nulla Galoshes nulla nulla
nulla nulla Palák nulla nulla

Ebben a példában nem értékesítették a következő tételt: "Galoshes" és "Slates"

És minden rendben is lenne, ha partnerek szerint csoportosítanánk a kijelölést, akkor minden nem eladható tétel külön csoportosításba kerül, ahol Partner = Null, de az ügyfél tetszőleges kiválasztást szeretne a jelentésben a partner mező szerint (a természetesen ez az értékesítési nyilvántartásból származó partnert jelenti). Hogyan legyen? Hiszen valójában csak a táblázatot kell szűrnünk Értékesítés. Ha az ACS konstruktorban automatikus kiegészítést használunk, akkor a rendelkezésre álló kiválasztási mezők tartalmazzák a mezőt szerződő fél, úgy tűnik, minden rendben van, de a partner által kiválasztott jelentés elkészítésekor minden rekord elveszik a nómenklatúrával való kapcsolatból. Például állítsunk be egy kijelölést: szerződő fél = LLC Horns and Hooves. Az eredmény így fog kinézni:

Nem pont erre van szükségünk, igaz?

A probléma megoldásához természetesen hozzáadhatunk egy paramétert a lekérdezéshez, például a virtuális tábla paramétereihez Értékesítési forgalom, de ugyanakkor elvész az összehasonlítás típusának beállításának rugalmassága.

Van megoldás: erre a be lekérdezéskészítő lapon Adatelrendezés => táblázatok adjunk hozzá egy feltételmezőt a virtuális tábla feltételeihez Értékesítési forgalomés módosítsa az aliasát erre Partner kiválasztása

Annak érdekében, hogy ne keverje össze a felhasználót a kiválasztási mezőkkel, kapcsolja ki a feltételmezőt szerződő félés módosítsa a mező címét Partner kiválasztása


A séma végrehajtásának eredményeként a partner mező szerinti szűrés engedélyezett, az eredményül kapott lekérdezés a következő formában jelenik meg:

Válasszon sprnome-ot Dink nómenklatúraként, forgalom értékesítése Vállalkozó mint szerződő fél, adásvétel, szerződés, mint szerződés - szerződés, adásvétel. Jelenleg. Teljesítés mint> mennyiség, értékesítési költségek költségként, reprezentáció (forgalom értékesítése. Szerződés átvétele), mint szerződéses személyzet, képviselet, képviselet (értékesítés ellenőrzése. RefNomenclature.Representation AS NomenclatureRepresentation FROM Directory.Nomenclature AS ReferenceNomenclature LEFT JOIN Felhalmozási nyilvántartás.Eladások.Forgalmak(&P , , , Counterparty AS.S.Rferencesprnomen) = SalesTurnovers.Nomenclature

És a megfelelő eredmény:

szerződő fél Szerződés Elnevezéstan Mennyiség Összeg
nulla nulla _Teszt1 nulla nulla
LLC "Szarvak és paták" Megállapodás 1 Papucs 10 1200
nulla nulla Csizma nulla nulla
nulla nulla Galoshes nulla nulla
nulla nulla Palák nulla nulla

A teszt1 egy csoport a Nomenclature könyvtárban, amelyben minden benne van

A kiadványhoz csatoljuk a kiadványban használt jelentés XML-sémáját. A sémát az Integrated Automation programban hoztam létre, de úgy gondolom, hogy minden jól fog működni mind az SCP-ben, mind az UT 10-ben

Összegzés

Ez a példa bemutatja, hogyan hozhat létre saját kiválasztási beállításokat az ACS-ben, és hogyan tilthatja le az automatikusan létrehozottakat, ha olyan sémát tervez, amelyen a zászló engedélyezett Automatikus kiegészítés.

Ha van elegendő tapasztalata áramkörök létrehozásához használat nélkül Automatikus kiegészítés- akkor ennek a tanácsnak nincs értelme.

Használt szoftver

  • Screenshot program SnapOK!
  • XML fájl szerkesztő


Betöltés...
Top