A beépített nyelvi kérési objektummal végzett munka eljárása. Mi a "Language" konfigurációs objektum célja?

Egy alkalmazási megoldás fejlesztése az 1C: Enterprise rendszerben két fő műveletből áll: a konfigurációs objektumok vizuális tervezése és a rendszer sajátos viselkedésének leírása a beépített nyelv és a lekérdezési nyelv használatával.

Az 1C: Enterprise rendszer beépített nyelve sok hasonlóságot mutat más programozási nyelvekkel, de nem közvetlen analógja egyiknek sem. Legfontosabb tulajdonságai:

· soft typing (egy változó típusát a benne lévő érték típusa határozza meg, és működés közben változhat);

· az alkalmazástípusok szoftveres leírásának hiánya (a konfigurációs objektumok hozzáadásakor jönnek létre);

· eseményorientált beépített nyelv;

· minden operátor rendelkezik orosz és angol nyelvű írásmóddal is, amelyek egyidejűleg használhatók.

Konfigurációs modulok

Az alkalmazási megoldás moduljai úgy vannak kialakítva, hogy a program szövegét a beépített nyelven helyezzék el. Ezek a modulok a konfiguráció különböző helyein helyezkednek el, és eltérő rendeltetésűek. A legtöbb modul bizonyos konfigurációs objektumokhoz vagy magához az alkalmazásmegoldáshoz van „kötve”.

A következő típusú szoftvermodulokat különböztetjük meg:

· Közös modulok. A konfiguráció tetszőleges számú modult tartalmazhat, beleértve egyet sem. Maguk a közös modulok nem kerülnek meghívásra a konfigurációs folyamat során. Csak arra szolgálnak, hogy az alkalmazásmegoldás más moduljaiból meghívható eljárások és függvények szövegeit tartalmazzák. Ezért hiányzik belőlük a változóleíró rész és a fő programrész. Hogy. A gyakori modulok csak eljárásokat és függvényeket tartalmaznak.

· Alkalmazási modul. A konfigurációban mindig egyetlen alkalmazásmodul található. Akkor fut le, amikor a rendszer 1C: Enterprise módban indul, és a végfelhasználó munkamenetéhez kapcsolódó műveletek kidolgozására szolgál. Az alkalmazásmodulban feldolgozható fő események az alkalmazás kezdő és záró eseményei. A hívás sorrendje a következőben látható: rizs. 1. Esemény A rendszer indítása előtt Akkor fordul elő, amikor a rendszer elindul, mielőtt a főablak megnyílik. Az esemény kezelésével a fejlesztőnek például lehetősége van megtagadni a futtatást, ha bármely feltétel nem teljesül. Esemény A rendszer indításakor a főablak megnyitása után történik. Az esemény kezelőjében például információkat jeleníthet meg a születésnaposokról stb.

· Külső csatlakozó modul. A konfigurációban mindig egyetlen külső csatlakozómodul található. Akkor fut le, ha az alkalmazást COM-szerverként (külső kapcsolati módban) érik el. Külső csatlakozási módban nem a teljes értékű 1C: Enterprise alkalmazás indul el, hanem egy „könnyű verzió”, amelyben nem érhető el minden olyan funkció, amely valamilyen módon kapcsolódik a felhasználói felület szervezéséhez.

· Alkalmazásobjektum modulok. Minden alkalmazás konfigurációs objektum (például szoftverdokumentum vagy könyvtár), amelynek adatai módosíthatók az 1C: Enterprise módban, saját modullal rendelkezik. Az objektummodul a változók és a főprogram leírása mellett tartalmazhat egy adott konfigurációs objektumhoz tartozó eljárások leírását - eseménykezelőket. Két esemény van, amely minden objektumon felvetődik - Felvétel előttÉs Amikor Felvétel.

· Űrlapmodulok. Minden űrlapnak megvan a maga modulja, amely meghatározza az űrlap viselkedését és a belőle végrehajtott műveleteket, például más űrlapok megnyitását. Az eseményeket minden formában felvetik Nyitás előtt, nyitás közben, zárás előttÉs Záráskor.

Kontextus

Az 1C: Enterprise rendszerben a kontextus a modul környezetét jelöli, pl. változók, objektumok, tulajdonságok, módszerek és események. A következő típusú kontextusokat különböztethetjük meg, és ennek megfelelően az exportált változók, eljárások és függvények láthatóságának szabályait:

· Globális kontextus, amely minden más környezetben elérhető, a következő részekből áll:

§ a globális kontextus tulajdonságai, módszerei és eseményei (például a tulajdonság Munka dátuma);

§ rendszer felsorolások és rendszerértékkészletek (például Vissza CodeDialogÉs Szimbólumok).

· Közös modulkontextus a globális kontextus és magának az általános modulnak a lokális kontextusa (vagyis az általános modulon belül meghatározott eljárások és funkciók) alkotja. Egy közös modul keretében elérhetők más közös modulok exportált eljárásai és funkciói. Az alkalmazásmodul exportált változói, eljárásai és funkciói nem érhetők el.

· Alkalmazási modul vagy külső csatlakozási modul keretében Elérhetők a közös modulok exportált eljárásai és funkciói.

· Egy alkalmazásobjektum-modul keretében elérhetők az objektum részletei, táblázatos részei, valamint módszerei és eseményei. Az alkalmazásmodul (külső csatlakozási modul) és a közös modulok exportált változói, eljárásai és funkciói itt érhetők el.

· Egy űrlap modul keretében elérhetők az űrlap részletei, valamint az űrlap tulajdonságai, metódusai és események. Ha egy űrlaphoz fő attribútum van hozzárendelve, akkor a fő attribútumként használt alkalmazásobjektum tulajdonságai és metódusai elérhetővé válnak az űrlapmodulban.

A kontextusok közötti kapcsolatot sematikusan mutatja be rizs. 2. Tovább rizs. 3 a naplóűrlap modul és a bizonylat modul lehetséges interakcióját ábrázolja.


Eljárások és funkciók

Az eljárások és a függvények olyan programblokkok, amelyek egy másik helyről, például egy másik eljárásról név szerint hívhatók. A függvények csak abban különböznek az eljárásoktól, hogy van visszatérési értékük. A 8-as verzióban az eljárások és funkciók sorrendje nem fontos. Ez azt jelenti, hogy az eljárás a hívás helye alatt található.

Az eljárásoknak és függvényeknek lehetnek paraméterei, amelyek meghatározzák, hogy milyen objektumokkal milyen műveleteket kell végrehajtania. Az eljárások vagy függvények paraméterei alapértelmezés szerint referenciaként kerülnek átadásra. Ez azt jelenti, hogy egy formális paraméter megváltoztatása egy eljáráson vagy függvényen belül megváltoztatja a tényleges paramétert azon a ponton, ahol meghívjuk. A paraméter érték szerinti átadásának garantálása érdekében be kell illesztenie egy kulcsszót a paraméter neve elé Jelentése.

1. példa:

Számítási eljárás ()

Összeg=Ár*Mennyiség;

Az eljárás vége

Számítás(); // Hívja fel az eljárást

2. példa:

Perem Glob;

// Az eljárás leírása

Eljárás számítása (Par1, Par2, ParZ) Export

Glob = Glob + Par1 + Par2 + ParZ;

Az eljárás vége

számítás(5, 6, 7); // Hívja fel az eljárást

3. példa:

Perem Glob;

// A funkció leírása

Függvényszámítás (Par1, Par2, ParZ) Exportálás

Lok = Glob + Par1 + Par2 + ParZ;

Return Lock;

EndFunction

Res = Calc(5, 6, 7); // Funkcióhívás

Adattípusok

Szám, Karakterlánc, Dátum, Logikai, Undefined, Null (meghatározatlan értékekhez az adatbázistáblákban)

Típus. A „Típus” speciális típus értékei az adattípusok ábrázolásához és összehasonlításához szükségesek, például:

Változók deklarálása

A változók a következő esetekben jelennek meg a programban:

· miután deklarálták őket a Variable operátorral.

Perem<Имя_переменной>[Export];

A, B változó;

· a változónév első elhelyezése után a hozzárendelési operátor bal oldalán.

Példa:

· a szerkesztett párbeszédelemek azonosítóinak nevének meghatározásakor;

· az eljárások formai paramétereinek beállításakor.

Öntvény

A típusöntés lehet explicit vagy implicit.

Explicit casting esetén a következő függvények léteznek: Number, String, Date, Boolean. Az implicit típusú öntést a rendszer automatikusan végrehajtja a kifejezések kiértékelésekor.

Példa: A MonthNumber numerikus változó értékét implicit módon karakterláncsá alakítjuk, és hozzáfűzzük egy másik karakterlánchoz:

A = „Hónap” + Hónapszám;

Könyvtárak

A könyvtárakkal végzett munka a következő objektumok használatával történik:

· Könyvtárkezelő. Hozzáférést biztosít az összes konfigurációs kézikönyvhez. Ennek az objektumnak a tulajdonságai egybeesnek a könyvtárak nevével, és DirectoryManager típusú objektumokat tartalmaznak.

· DirectoryManager. Hozzáférést biztosít egy könyvtár műveleteihez elemek halmazaként. Az objektum metódusaival kereshet, kiválaszthat, új elemeket hozhat létre, valamint elérheti a címtárűrlapokat és elrendezéseket.

· DirectoryLink. Egyértelműen azonosítja a címtár egy elemét (csoportját), és lehetővé teszi a hozzáférést csak olvasható módban. Ennek az objektumnak a tulajdonságain és módszerein keresztül elolvashatja egy elem (csoport) részleteit, és elérheti táblázatos részeit. Az ilyen típusú értékeket a rendszer olyan attribútumokban tárolja, amelyek ennek a könyvtárnak az elemeire hivatkoznak, például az attribútumban Munkavállaló dokumentum Toborzás egy adott könyvtárelemre mutató hivatkozás kerül tárolásra Alkalmazottak.

· DirectoryObject.Írható hozzáférést biztosít egy elemhez. Ez az objektum olyan metódusokat tartalmaz, amelyek az adatbázis egy elemét érintik, például metódusokat Írd leÉs Töröl.

· DirectorySelection. Lehetővé teszi a könyvtárelemeken keresztüli iterációt. A mintavétel lehet közvetlen vagy hierarchikus.

· DirectoryList. Egy objektum egy táblázat mező elemeinek listájának kezelésére. Lehetővé teszi az oszlopok kezelését, a kijelölést és a rendezést a listában.

Az 1C:Enterprise rendszerben?

1. A konfigurációs és az adatbázisszövegeket a rendszer a formátumban tároljaUNICODE

3. Nincs jó válasz

6.75 Milyen célból tárolják a konfigurációs és adatbázisszövegeket a formátumbanUNICODE?

1. Az UNICODE formátum biztosítja az információmegjelenítés megváltoztathatatlanságát (az operációs rendszer szoftverplatformjának függetlenségét).

2. FormátumUNICODE lehetővé teszi a különböző nyelvek támogatását az 1C:Enterprise rendszerben

3. Nincs jó válasz

6.76 A nemzetköziesítési mechanizmusok meghatározása. ..

1. technológiai platform 1C:Enterprise

2. alkalmazott megoldások

3. Az 1. és 2. válasz helyes

4. nincs jó válasz

6.77 Mi az a lokalizációs kód?

1. Egy nyelvkódból és egy országkódból álló karakterlánc, amely a világ valamely régióját azonosítja

2. Szoftver termék kódja (a regisztrációs űrlapon feltüntetve, a szállítókészletben található dokumentáció)

3. Formázási karakterlánc opció az átalakításhoz

4. A válasza helyes

6.78 Igaz, hogy az 1C:Enterprise 8-ban bármilyen szöveges információ egyszerre tartalmazhat különböző nyelvű karaktereket?

1. Igen, mivel minden konfigurációs és adatbázisszöveg ebben a formátumban van tárolvaUNICODE

2. Az információs bázis létrehozásakor megadott beállításoktól függően

3. Csak akkor, ha ezt a konfiguráció biztosítja

6.79 Mi a "Language" konfigurációs objektum célja?

1. Programfelület létrehozása különböző nyelveken

2. Szöveges dokumentumok létrehozása különböző nyelveken

3. Ilyen objektum nem létezik az 1C: Enterprise 8-ban

6.80 Hogyan módosíthatom a konfiguráció megtekintésének (szerkesztésének) nyelvét?

1. A „NUM” gomb jobb oldalán lévő állapotsorban található nyelvválasztó gomb segítségével

2. A "Konfiguráció - Konfiguráció szerkesztési nyelve" menüponton keresztül

3. 1 C: Enterprise-ban ez a lehetőség nem létezik

4. Verpa válaszol 1-re és 2-re

6.81 Mi a beépített nyelvi operátorok helyesírása?

1. Csak orosz írás

3.

6.82 Lehetséges-e beépített nyelvi operátorok használata orosz és angol nyelven egy forrásszövegben?

1. Csak speciális konfigurációs beállításokkal

2. Igen, ehhez nem szükséges módosítani a konfigurátor beállításait

3. Nem, mivel a beépített nyelvi beállítás a konfigurációs tulajdonságokban van beállítva

6.83 Mi a beépített nyelv célja?

1. Az alapértelmezett programinterfész meghatározása

2. Leírni (a konfiguráció fejlesztési szakaszában) algoritmusokat egy alkalmazott feladat működéséhez

3. Nincs jó válasz

6.84 Mi a beépített nyelvi függvények helyesírása?

1. Csak orosz írás

2. Csak angol helyesírás

3. Orosz és angol írás

4. A konfigurátor beállításaitól függően

6.85 Mit jelent az L paraméter?(L) a NumberInWriting() formázási függvény formátum karakterláncában?

1. Jelölje be: „adja ki a tört részt számokban/szavakban”

2. Tizedesjegyek száma

3. Lokalizációs kód

7. Az alkalmazási megoldás táblázatos modellje

7.1 Az adathozzáférési korlátozások beállításakor több (a mezők száma alapján) korlátozást is beállíthat:

1. Az "Olvasás" jobbra

2. A megfelelő "Változás"

3. A "Hozzáadás" jobbhoz

4. A "Törlés" jobbra

5. Az összes fenti jogért

6. Minden lehetséges jogért

7.2 Az adathozzáférési korlátozások beállításakor a következők használhatók adathozzáférési korlátozások értékként:

1. Csak a munkamenet paraméterértékei

2. Csak táblákból származó adatok (lekérdezések)

3. Munkamenet paraméterek értékei és adatok táblákból (lekérdezések)

4. Csak a következő típusú értékek: Number, String, Boolean, Date

7.3 A fenti módszerek közül melyik használható arra, hogy a lekérdezéstervező „Mezők” részében megjelenjen a könyvtár kódja és neve?

1. Először töltse ki a „Táblázatok” részt, majd ebből a szakaszból kiválasztva a kívánt objektumokat, vigye át őket a „Mezők” részbe dupla kattintással a bal egérgombbal.

2. A „Táblázatok” szakasz kitöltése nélkül azonnal válassza ki a szükséges objektumokat a táblázatokból - az „Adatbázis” szakasz adatforrásaiból, és helyezze át őket a „Mezők” szakaszba Drag & Drop technológiával. A "Táblázatok" rész automatikusan kitöltésre kerül

3. Először töltse ki a "Táblázatok" részt, majd ebből a szakaszból kiválasztva a szükséges objektumokat vigye át a "Mezők" részbe az űrlapon található gombok segítségével ">" """

4. Az I. és 3. válasz helyes

5. Az I., 2. és 3. válasz helyes

7.4 A kérés végrehajtási sebességének növeléséhez a következőket kell tennie:

1. Állítsa be a paramétereket a legtöbb valós táblához

2. A legtöbb virtuális tábla paramétereinek beállítása

3. Valós vagy virtuális tábla paramétereinek megadása helyett használja a „WHERE” lekérdezési nyelvi konstrukció által megadott kiválasztást.

4. Az I. és 2. válasz helyes

7.5 Lehetséges-e új nevet (aliast) rendelni hozzá, amikor a lekérdezéstervező „Táblázatok” részében kiválasztunk egy forrástáblát?

1. igen tudsz

2. Igen, megteheti, de csak akkor, ha az adatforrás egy beágyazott lekérdezés

3. Igen, megteheti, de csak akkor, ha az adatforrás egy virtuális tábla

4. Az 1. és 2. válasz helyes

5. Az 1. és 3. válasz helyes

7.6 Beágyazott lekérdezés használható:

1. Adatforrás táblaként

2. A „B” vagy „NOT B” összehasonlító műveletek operandusaként a virtuális tábla paramétereinek beállításakor

3. A „B” vagy „NOT B” összehasonlítási műveletek operandusaként a „WHERE” lekérdezési nyelvi konstrukció megadásakor

4. Verpa válaszol 1-re, 2-re és 3-ra

7.7 Lehetséges-e a lekérdezéstervezővel hierarchia szerinti összegeket lekérni?

1. Ez lehetséges, ha a csoportosítási mezőben megadja az „Elemek és hierarchia” összesített típusát

2. Ez akkor lehetséges, ha a csoportosítási mezőben a „Csak hierarchia” össztípust adja meg

3. Verpa válaszol 1-re és 2-re

7.8 A lekérdezéstervező „Feltételek” fülén a feltétellista külön sora generálható:

1. Kattintson duplán a bal egérgombbal a kívánt mezőre a rendelkezésre álló mezők listájában

2. A kívánt mező áthelyezésével a listába a Drag & Drop technológia segítségével

3. Kattintson a "Hozzáadás" gombra. Ha a feltétel tetszőleges, akkor a feltétel szövege „manuálisan” is megadható

4. Hívja a helyi menüt, és válassza ki a „Hozzáadás” elemet. Lehetőség van tetszőleges kifejezés használatára

5. A fenti válaszok mindegyike helyes

7.9 A lekérdezéstervező „Hivatkozások” lapján a következőket adhatja meg:

1. Adatforrás-táblázatok összekapcsolása és a köztük lévő kapcsolatok

2. Adatforrás táblák és a köztük lévő kapcsolatok kombinálása

3. A lekérdezés eredményeként kapott tábla mezői közötti kapcsolatok

4. Kapcsolatok az adatforrás tábla mezői és a lekérdezés eredményeként kapott tábla között

7.10 Amikor adatforrás-táblázatokat egyesít a lekérdezéstervezőben, a következőket teheti:

1. Rendeljen hozzá egy kapcsolatot a csatlakozási feltétel megadása nélkül

2. Rendeljen hozzá egy kapcsolatot, amely jelzi a csatlakozási feltételt, és ez a feltétel csak egy lehet

3. Rendeljen hozzá egy kapcsolatot, amely jelzi a csatlakozási feltételt, és ez a feltétel csak egyszerű lehet

4. Rendelje hozzá a szükséges számú kapcsolatot, jelezve a szükséges számú kommunikációs feltételt, és ezek a feltételek lehetnek egyszerűek vagy tetszőlegesek

7.11 Az adatforrás-táblázatok közötti kapcsolat létrehozása a lekérdezéstervezőben lehetővé teszi:

1. Csak két adatforrás-tábla összekapcsolása

2. A szükséges számú adatforrás tábla összekapcsolása

3. Csak két adatforrás-tábla csatlakoztatása, és az „Összes” jelölőnégyzetet legalább az egyik táblánál be kell jelölni.

Alap, ami megkönnyíti a kezdő fejlesztők tanulását. Ez azonban nem közvetlen analógja egyik felsorolt ​​nyelvnek sem.

Íme csak néhány a beépített nyelv legjelentősebb funkciói közül:

  • előzetes összeállítás; a végrehajtás előtt a beépített nyelven szöveget tartalmazó modulok belső kódokká alakulnak;
  • lefordított modulok gyorsítótárazása a memóriában;
  • soft typing - a változó típusát a benne lévő érték típusa határozza meg, és működés közben változhat;
  • a konfigurációs objektumok szoftveres leírásának hiánya; a fejlesztő akár a platformba épített objektumokat, akár a rendszer által az alkalmazásmegoldás vizuális tervezésének eredményeként létrehozott objektumokat használhatja.

Eseményorientált beépített nyelv. A beépített nyelv célját az 1C:Enterprise rendszerben az alkalmazási megoldások létrehozásának ideológiája határozza meg. Az 1C:Enterprise 8.0 alkalmazási megoldásai nincsenek teljesen kódolva. Az alkalmazásmegoldás nagy részét a fejlesztő hozza létre vizuális tervezéssel - új konfigurációs objektumok létrehozásával, tulajdonságaik beállítása, megjelenítési formák, kapcsolatok stb. A beépített nyelv csak az alkalmazásmegoldás objektumok viselkedésétől eltérő viselkedésének meghatározására szolgál. szabványos, és saját adatfeldolgozó algoritmusokat hozhatnak létre.

Emiatt a beépített nyelvű szöveget tartalmazó modulokat a rendszer konkrét, korábban ismert helyzetekben használja, amelyek az alkalmazásmegoldás működése során felmerülhetnek. Az ilyen helyzeteket eseményeknek nevezzük. Az események társíthatók az alkalmazásmegoldási objektumok működéséhez vagy magához az alkalmazásmegoldáshoz, mint olyanhoz.

Például számos esemény kapcsolódik a Directory alkalmazásmegoldás objektum működéséhez, köztük a BeforeWrite esemény. Ez az esemény közvetlenül azelőtt következik be, hogy a címtárelem adatait az adatbázisba írnák. A fejlesztő egy beépített nyelvet használva le tud írni egy algoritmust, amely például ellenőrzi a felhasználó által bevitt adatok helyességét. Ennek az algoritmusnak a megfelelő modulba helyezésével a fejlesztő biztosítja, hogy minden alkalommal, amikor a felhasználó rögzít egy címtárelemet, a rendszer végrehajtsa a fejlesztő által készített algoritmust, és ellenőrzi, hogy a felhasználó elfelejtette-e kitölteni a szükséges címtáradatokat.

Így azt mondhatjuk, hogy a beépített nyelv az üzleti logika programozására szolgáló szkriptnyelv, a modulok használata pedig a beépített nyelvben eseményfüggő, pl. A modulok akkor futnak le, ha bizonyos események történnek az alkalmazásmegoldás működése során.

Előre meghatározott adattípusok

Az 1C:Enterprise 8.0 platform lehetővé teszi a fejlesztő számára, hogy különféle típusú adatokat használjon.

Számos adattípus létezik, amelyeket magának a platformnak a szintjén határoznak meg. Például ezt primitív adattípusok, például karakterlánc, szám, dátum stb.


Leírás primitív adattípusok:

  • NULLA- hiányzó érték. Például lekérdezéseknél használják.
  • Határozatlan- üres, meghatározatlan érték. Például a paraméterek átadásának kiértékelésénél használatos, ha ezt a paramétert kihagyjuk egy eljárás vagy függvény meghívásakor. Az összetett adattípusú részletek alapértelmezés szerint „Nem definiált” típusúak.
  • Boolean- két értéket tartalmaz: igaz vagy hamis. Például logikai kifejezésekben használatos – a logikai kifejezés "Logiai" típusú.
  • dátum- tartalmazza a dátumot és az időt. Az alapértelmezett érték 01/01/01 00:00:00 korszakunk kezdő dátuma. Az időt a nap elejétől mérik. A „dátum” szó szerinti típusú kifejezés a következőképpen írható: „00010101000000”. Először az évet írják le, majd a hónapot, majd a dátumot, majd az időt. A következő bejegyzés lehetséges: "20041031". Az alapértelmezett idő a nap eleje.
  • Vonal- lehet változó, fix vagy korlátlan hosszúságú. Általában javasolt a változó hosszúságú karakterláncok használata.
  • Szám- a számbit mélysége 38 bitre nőtt.
  • típus- az értéktípusok meghatározására szolgál. Például adattípusok összehasonlítására használható. Nincs benne literál, és a Type(<Имя типа>) vagy TypeValue(<Значение>).

Emellett több is van összetett adattípusok. Például a platform számos típust támogat, amelyek univerzális értékgyűjtemények: tömb, struktúra, értéklista, értékfa stb.


Adattípusok "Univerzális gyűjtemények" - bármilyen típusú adatobjektumok listája (készlete), amelyek értékei nyers erővel vagy meghatározott index (kulcs) segítségével érhetők el. A gyűjteményelemek számozása 0-tól kezdődik. Minden megadott adattípus csak programozottan jön létre.

Sor. Tetszőleges típusú értékek számozott gyűjteményét képviseli. Egy tömbelem az indexe alapján érhető el. Egy tömb elemei lehetnek különösen más tömbök. Ez lehetővé teszi többdimenziós tömbök létrehozását.

Szerkezet. Egy elnevezett gyűjteményt képvisel, amely kulcs-érték párokból áll. A kulcs csak karakterlánc lehet, az érték tetszőleges típusú lehet. Egy szerkezeti elem a kulcsának értékével érhető el, pl. név szerint. Általában kis számú érték tárolására szolgál, mindegyik egyedi névvel.

Levelezés. Csakúgy, mint a Struktúra, ez is kulcs-érték párok gyűjteménye. Azonban a szerkezettel ellentétben a kulcs szinte bármilyen típusú lehet.

Értékek listája. Általában interfész problémák megoldására használják. Lehetővé teszi dinamikus értékkészletek létrehozását és azok kezelését (elemek hozzáadása, szerkesztése, törlése, rendezése). Bármilyen típusú értéket tartalmazhat, emellett az egy listában tárolt értékek típusai eltérőek lehetnek.

Értéktáblázat. Az értéktáblázat lehetővé teszi dinamikus értékkészletek létrehozását és kezelését. Bármilyen típusú értékkel feltölthető, és egy táblázatban a tárolt értékek típusai eltérőek lehetnek.

Értékek fája. Az értékfa bármilyen típusú, dinamikusan generált értékkészlet, hasonlóan az értéktáblázathoz. Az értéktáblázattól eltérően az értékfa sorai hierarchikus struktúrákat alkothatnak: a fa minden sorához tartozhat alárendelt sorok halmaza, az alárendelt sorok mindegyike tartalmazhat alárendelt sorokat is, és így tovább. Ebben az esetben az értékek keresése, a rendezés és az eredmények megszerzése történhet akár az aktuális hierarchiaszint szerint, akár az összes alárendelt értékkel.

COMSafeArray. Egy objektumburkolót ábrázol egy többdimenziós SAFEARRAY tömb felett

Eljárás SelectFromFileClick(Element) // Fájl kiválasztása a megtekintésselFileSelectionDialog = NewFileSelectionDialog(FileSelectionDialogMode.Open); FileSelectionDialog.Directory = ""; FileSelectDialog.Preview = Igaz; FileSelectionDialog.FilterIndex = 0; Ha FileSelectDialog.Select() then File = New File(FileSelectDialog.FullFileName); Kép = NewValueStorage(ÚjKép(FileSelectionDialog.FullFileName)); DisplayImage(); endIf; Az eljárás vége

THIS_KEYWORD
<Это конструкция языка>,
<Это конструкция языка>
THIS_FUNCTION(<Это конструкция языка>)

A lekérdezési nyelvet leíró szabályokban a nyelvi konstrukciók szögletes zárójelben vannak feltüntetve. A kulcsszavak és funkciónevek leírása nagybetűvel történik.

A nyelvi konstrukciók tartalmazhatnak opcionális elemeket - kulcsszavakat stb. A lekérdezési nyelvet leíró szabályokban az opcionális elemek „[” és „]” szögletes zárójelben vannak:

[EZ EGY OPCIONÁLIS SZÓ] [<Это необязательная конструкция>]

Egyes esetekben a nyelvi tervezés több alternatív elem egyikét is használhatja. A szabályok ilyen elemei egy függőleges „|” sávon keresztül vannak felsorolva:

EITHER_THIS_WORD | VAGY THIS_WORD
<Либо эта конструкция> | <Либо эта конструкция>

Az összes konstrukció leírását példák kísérik, amelyek elmagyarázzák, hogyan használják őket a lekérdező nyelvben.

Megjegyzések lekérdezési nyelven

A kérelmező szerv megjegyzéseket tehet. A megjegyzés egy sor olyan részének tekintendő, amely a // karaktersorozattal kezdődik és a sor végéig tart:

// Ez egy megjegyzés.

A kérés végrehajtásakor a megjegyzések figyelmen kívül maradnak.

A kulcsszavak kétnyelvű megjelenítése

Az 1C: Enterprise lekérdezési nyelv egyik jelentős tulajdonsága, hogy a beépített nyelvhez hasonlóan minden kulcsszónak két írásmódja van: oroszul és angolul. A fejezet későbbi részében a kulcsszavak orosz nyelvű írásmódja látható. Az alábbiakban egy táblázat látható, amely az orosz és az angol közötti megfelelést és a kulcsszavak helyesírási beállításait mutatja a lekérdezési nyelven...... (kihagyva)

A kérelem szövegének fő részei

A kérés szövege a következő szabállyal írható le:

<Описание запроса>
[<Объединение запросов>]
[<Упорядочивание результатов>]
[AUTOMATIKUS RENDELÉS]
[<Описание итогов>]

Amint ebből a szabályból látható, a kérés szövege több részből vagy szakaszból áll:

Szakaszban<Упорядочивание результатов>Rendezési feltételeket határozhat meg a lekérdezés eredménye soraihoz. A lekérdezés eredményének sorrendjét a 324. oldalon tárgyaljuk.

Az AUTOMATIKUS RENDELÉS lehetővé teszi a sorok automatikus sorrendjének engedélyezését a lekérdezés eredményében. Ennek az üzemmódnak a leírása a 331. oldalon található.

Szakaszban<Описание итогов>Megadhatja, hogy a lekérdezésben mely összegeket kell kiszámítani. Ennek a szakasznak a leírása a 332. oldalon található.

Leírás kérése

Mint már említettük, a kérés szövegének szükségszerűen tartalmaznia kell egy kérésleíró részt, amely meghatározza:

Mezők, amelyeket a kérelem eredménye tartalmazni fog;

Adatforrások lekérdezése - forrástáblák;

A kérelemben szereplő adatok kiválasztását befolyásoló feltételek;

A lekérdezési eredmények csoportosításának sorrendje.

A kérés leírása több egymással összefüggő mondatból áll:

KIVÁLASZTÁS [KÜLÖNBÖZŐ] [ELSŐ<Количество>]
<Список полей выборки>
[TÓL TŐL<Список источников>]
[AHOL<Условие отбора>]
[CSOPORTOSÍT<Поля группировки>]
[HAVING<Условие отбора>]
[VÁLTOZTATÁSHOZ [<Список таблиц верхнего уровня>]]

A kérés leírása egy kötelező kulcsszóval kezdődik VÁLASZT.

Ajánlat AHOL<Условие отбора> lehetővé teszi a lekérdezés eredményének szűrését. Az eredmény csak azokat a rekordokat tartalmazza, amelyekre a megadott feltétel igaz. A kiválasztási feltételek leírásának szabályait a 315. oldalon tárgyaljuk.

Ajánlat VÁLTOZÁSRA célja, hogy jelezze a tranzakció során beolvasott adatok blokkolásának szükségességét.

Ajánlat CSOPORT lehetővé teszi, hogy leírja a lekérdezési eredmények csoportosításának sorrendjét. A csoportosítást részletesen a 316. oldalon tárgyaljuk.

Ajánlat HAVING lehetővé teszi, hogy feltételeket szabjon az eredmények csoportosítására. Leírása a 318. oldalon.

Ebben a fejezetben minden lekérdezési példa megadja a lekérdezés szövegét és a lekérdezés eredményét. Feltételezzük, hogy a kérés szövege paraméterként kerül átadásra a Request objektum Execute metódusának.

Nézzünk egy példát egy meglehetősen egyszerű lekérdezésre, amely egy SELECT utasításból és a kiválasztási mezők listájából áll.

//A jelentésben meg kell jeleníteni a számlák listáját.

Lekérdezés eredménye:

A MÁS szó használata

Sok esetben kívánatos, hogy a jelentés ugyanazon sorai ne ismétlődjenek meg.

// Meg kell találni, hogy általában mely szerződő felek
// árut szállítottak az időszakra.
Válassza a Dokumentum.Számla.Kereskedő fél lehetőséget

Lekérdezés eredménye:

Látható, hogy a lekérdezés eredménye sok ismétlődő sort tartalmaz, ami csökkenti a tisztaságát. Az ismétlődés elkerülése érdekében a lekérdezés leírásában meg kell adni a MÁS kulcsszót.

Válassza a Különféle bizonylat.Számla.Vásárló fél lehetőséget

Lekérdezés eredménye:

A FIRST szó használata

Bizonyos esetekben korlátozott számú sort kell megjeleníteni a jelentésben. Ehhez a lekérdezés leírásában meg kell adni a FIRST kulcsszót, és utána - a szükséges számú sort.

// Ki kell választani az öt legdrágább árut.
// A kiválasztás a termék árának csökkenő sorrendjében történjen.
Válassza az Első 5 lehetőséget
Directory.Nomenclature.Name,
Directory.Nomenclature.PurchasingPrice
Rendezés Directory.Nomenclature.PurchasePrice szerint, csökkenő sorrendben

Lekérdezés eredménye:

A kiválasztási mezők leírása

A kötelező SELECT kulcsszó (és a DIFFERENT és FIRST minősítő szavak) után a kérés szövegében megjelenik a kiválasztási mezők listája. Ezeket a mezőket a rendszer a kérelemben szereplő adatok lekérésekor feldolgozza. A lekérdezés eredménye is tartalmazza a listában meghatározott mezőket. A kiválasztási mezők leírása a következő szabályok szerint történik:

<Описание поля>[ [HOGYAN]<Псевдоним поля>]

<Выражение>[.<Группа полей>]

A kiválasztási mezők listája egy vagy több vesszővel elválasztott elemből áll. Minden egyes<Поле выборки>a kiválasztási mező leírásából és egy opcionális mezőálnévből áll.

A mezők listázása helyett megadhat egy csillagot is. Ez azt jelenti, hogy a lekérdezés eredményének tartalmaznia kell a forrástáblázatban található összes mezőt – a forráslistában leírt lekérdezési adatforrásokat.

Megjegyzés! Ha a kiválasztási mezők listájában csillagot ad meg, akkor a forrástáblázat virtuális mezői nem szerepelnek az eredményben.

<Описание поля>meghatározza, hogyan kell a mezőértékeket előállítani. A legegyszerűbb esetben a kijelölő mező egy hivatkozás a forrástáblában lévő mezőre. A hivatkozás megadható a mezőt tartalmazó tábla megadásával, vagy magának a táblának a megadása nélkül. A mezők hivatkozásának megszüntetését itt tárgyaljuk.

Általánosságban elmondható, hogy a kiválasztási mező nem csak hivatkozás lehet a forrástábla mezőjére, hanem néhány is<Выражение>. A kifejezéseket részletesen a 344. oldalon tárgyaljuk.

A lekérdezések eredményei csoportosíthatók a kiválasztott mezőkben kifejezésként megadott összesítő függvények segítségével. A lekérdezések eredményeinek csoportosítását a 316. oldal tárgyalja. Az összesített függvények leírása a 345. oldalon található.

Minden kiválasztási mezőhöz álnév rendelhető. A jövőben a mező kényelmesebb eléréséhez használható. A mezőálnevek használatát az alábbiakban tárgyaljuk.

<Группа полей>csak akkor adható meg, ha a kijelölő mező egy beágyazott táblára mutat. Ebben az esetben megadhatja, hogy mely mezőket kell feldolgozni a beágyazott tábla kiválasztásában. Ha nincs megadva mezőcsoport, akkor a beágyazott tábla összes mezője feldolgozásra kerül a kijelölésben. A beágyazott táblák elérését a következő tartalmazza: .

Mezőálnevek a kiválasztási listában

Ha álnevet rendel egy kijelölő mezőhöz, később hivatkozhat erre a mezőre az ORDER BY és TOTAL klauzulákban szereplő álneve használatával, valamint amikor egy lekérdezés eredményével dolgozik. Az ilyen kezelés kényelmesebb és vizuálisabb lehet, és bizonyos esetekben az egyetlen lehetséges.

A HOGYAN kulcsszó megelőzheti a mezőaliast. Lehetséges, hogy ez a szó egyáltalán nincs megadva, de ha meg van adva, akkor a kérés szövegének láthatósága és olvashatósága nő.

A mezőálnevek beállítása a változóazonosítók hozzárendelésére vonatkozó szabályok szerint történik. A kérésben szereplő álnevek nem lehetnek azonosak.

Az álnevek mezőkhöz rendelése önmagában nem befolyásolja a lekérdezésben az adatok kiválasztását.

// A termékkönyvtárból kell kiválasztani
// áruk és csoportok nevei.
Választ
Könyvtár. Nómenklatúra. Termék név,
Könyvtár. Nomenklatúra.Szülő.Név mint csoport
tól től
Címtár.Nómenklatúra

Lekérdezés eredménye:

Vegye figyelembe, hogy a mezőlekérdezés eredményének mezőinek neve "Elem" és "Csoport". Ha a mezőálnevek nem lettek megadva, a lekérdezés eredményének mezőinek neve „Név” és „Név1” lenne (a lekérdezés eredményében a mezőnevek nem egyezhetnek, ezért a második mező nevéhez automatikusan hozzáadódik az „1”). ami sokkal kevésbé egyértelmű.

Beágyazott táblázatok a kiválasztási mezők listájában

A kijelölési lista egy mezője hivatkozhat egy beágyazott táblára a lekérdezési adatforrásban. Ebben az esetben a lekérdezési eredmény mező Lekérdezés eredménye típusú lesz, azaz egy beágyazott forrástábla alapján generált beágyazott lekérdezési eredményt tartalmaz.

Alapértelmezés szerint a beágyazott tábla összes mezője – az adatforrás – szerepel a beágyazott eredményben. Lehetőség van kifejezetten meghatározni egy mezőcsoportot, amelyet egy beágyazott lekérdezés eredménye tartalmaznia kell. A beágyazott eredménymezők egy csoportja a következő szabály szerint kerül leírásra:

(<Список вложенных полей>) | *

<Вложенное поле [, <Вложенное поле>[, ...] ]

<Список вложенных полей>egy vagy több vesszővel elválasztott elemből áll. Ha a lista egy elemből áll, akkor azt nem kell zárójelbe tenni.

A beágyazott mezők felsorolása helyett megadhat egy csillagot „*”; ez azt jelenti, hogy a beágyazott lekérdezés eredményének tartalmaznia kell a beágyazott táblában található összes mezőt.

<Выражение>[[HOGYAN]<Псевдоним поля>]

<Вложенное поле>jelenthet valamilyen kifejezést. A legegyszerűbb esetben<Выражение>hivatkozás egy beágyazott tábla mezőjére. A kifejezéseket részletesen a 344. oldalon tárgyaljuk.

Minden beágyazott mezőhöz álnév rendelhető. További<Псевдоним поля>A mező kényelmesebb eléréséhez használható, hasonlóan a kiválasztási listában lévő mezők álneveihez - lásd a „Mezők álnevei a kiválasztási listában” című részt.

A beágyazott mezőkhöz álnevek rendelhetők, függetlenül attól, hogy magának a beágyazott táblának van-e hozzárendelve álnév.

//A jelentésben meg kell jeleníteni a számlák specifikációját,
// maga a dokumentum, a nómenklatúra és a mennyiség.
Választ

Dokumentum.Számla.Összetétel.(Nómenklatúra, mint termék, mennyiség)

Lekérdezés eredménye:

Link Összetett
Termék Mennyiség
Női farmernadrág 4
Női farmernadrág 5
"Cowgirl" ing 5
00005 számú számla, 2002.02.24. 0:00:00 Női farmernadrág 1
Női farmernadrág 1
Moydodyr "Aquarium" 5
Mosogató "Lily" 8
"Ultra" keverő 10

Kérjük, vegye figyelembe, hogy a lekérdezés eredménye „Összetétel” mezője egy beágyazott táblázat, amely tartalmazza a „Nómenklatúra” és a „Mennyiség” mezőket.

//A számla táblázatos részének összes mezőjének megjelenítése a jelentésben.
Választ
Document.Invoice.Link,
Dokumentum.Számla.Összetétel.*

Az IZ záradék célja, hogy kijelölje a forrástáblák listáját - az adott SELECT utasításban használt adatforrásokat.

Meg kell jegyezni, hogy a lekérdezési nyelvben az IZ záradék nem kötelező. Elhagyható, ha a SELECT záradékban található kiválasztási mezők listájának leírásában az adatforrások teljes mértékben minősítettek. Kérjük, vegye figyelembe, hogy az előző szakaszokban szereplő számos példa nem tartalmazta az IZ záradékot.

Az IZ kulcsszó után megjelenik a források listája. A források listáját általában a következő szabályok írják le:

<Источник>[, <Источник>[, ...]]

A lekérdezési adatforrások a forráslistában vannak felsorolva, vesszővel elválasztva. Minden<Источник>a forrásjegyzéknek tartalmaznia kell a forrás leírását; ezen kívül megadható<Перечень соединений>- a forrás más forrásokhoz való kapcsolásának szabályai. A csatlakozási specifikációk leírása.

<Описание источника> [ <Перечень соединений> ]

Ha az adatforrás egy információs bázistábla,<Описание источника>tartalmaz<Имя таблицы>.

<Таблица>[ [HOGYAN]<Псевдоним источника>]

Ha a forrástábla virtuális, megadhatja<Параметры>kialakulása. A virtuális tábla paramétereit részletesen az „Adatforrások lekérdezése” részben ismertetjük.

<Имя таблицы> [(<Параметры>)] | <Описание запроса>

Egy segédlekérdezés lekérdezési adatforrásként is működhet; ebben az esetben a forrásleírás tartalmazza<Описание запроса>. A beágyazott lekérdezések használatának leírása itt található.

Az adatforrás leírása hozzárendelheti az álnevet is. További<Псевдоним источника>használhatók a forrás kényelmesebb eléréséhez. Az adatforrás-álnevek használatáról itt van szó.

Csatlakozási specifikációk

Ha több forrást ad meg a forráslistában, az első forrástábla minden rekordjához a második forrástáblából történik a kijelölés, és így tovább. Így a lekérdezés az összes megadott forrásból származó összes rekord összes lehetséges kombinációját eredményezi.

Lekérdezés eredménye:

Ügyfél Bank
Szállítók JSCB InvestBank
Szállítók JSCB PromStroyBank
"Zarya" kötőgyár JSCB InvestBank
"Zarya" kötőgyár JSCB PromStroyBank
Farmerruhagyár JSCB InvestBank
Farmerruhagyár JSCB PromStroyBank
Vevők JSCB InvestBank
Vevők JSCB PromStroyBank
Ruhavásár JSCB InvestBank
Ruhavásár JSCB PromStroyBank
"Budenovsky" kereskedőház JSCB InvestBank
"Budenovsky" kereskedőház JSCB PromStroyBank
45. pavilon a nagybani piacon JSCB InvestBank
45. pavilon a nagybani piacon JSCB PromStroyBank
Bajorország - porcelán JSCB InvestBank
Bajorország - porcelán JSCB PromStroyBank
Farmerruhagyár JSCB InvestBank
Farmerruhagyár JSCB PromStroyBank
JSCB PromStroyBank JSCB InvestBank
JSCB PromStroyBank JSCB PromStroyBank

A lekérdezés eredménye az összes partner kombinációját tartalmazza az összes bankkal. Általában egy ilyen eredménynek önmagában nincs értelme. A különböző forrástáblázatokból származó rekordok kombinációit általában bizonyos feltételeknek kell korlátozniuk. Lehetőség van egy lekérdezési nyelvben a források ilyen kombinációjának leírására, ha megadja magukat a forrásokat, és meghatározza azokat a feltételeket, amelyek mellett az ezekből a forrásokból származó rekordok kombinációit bele kell foglalni a lekérdezés eredményébe.

Számos típusú kapcsolat létezik, ezeket a következő szabályok írják le:

<Соединение> [<Перечень соединений>]

Általában<Перечень соединений>nemcsak egy (két forrás), hanem egyszerre több forrás több kapcsolatát is tartalmazhatja és leírhatja.

[BELSŐ] CSATLAKOZÁS<Описание источника>ÁLTAL<Условие отбора> |

LEFT [KÜLSŐ] CSATLAKOZÁS<Описание источника>ÁLTAL<Условие отбора> |

JOBBRA [KÜLSŐ] CSATLAKOZÁS<Описание источника>ÁLTAL<Условие отбора> |

TELJES (KÜLSŐ) CSATLAKOZÁS<Описание источника>ÁLTAL<Условие отбора>

<Условие отбора>olyan feltételeket tartalmaz, amelyek szerint a kijelölésnek az eredeti táblákból – a lekérdezés forrásaiból – származó adatokat kell kombinálnia. A feltételek lekérdezési nyelven történő leírására vonatkozó szabályok a 357. oldalon találhatók.

A LEFT, RIGHT és FULL kulcsszavak tisztázzák a kapcsolat jellegét. Az INTERNAL vagy EXTERNAL szavakat egyáltalán nem lehet megadni, ez növeli a kérés szövegének áttekinthetőségét és olvashatóságát.

Az egyesítendő források nem ekvivalensek egymással, és bizonyos esetekben az eredmény attól függ, hogy melyik tábla szerepel először, a JOIN kulcsszó előtt (tõl balra), és melyik tábla szerepel másodikként (jobbra).

A [BELSŐ] JOIN azt jelenti, hogy mindkét forrástáblából – adatforrásból – csak a megadott feltételnek megfelelő rekordkombinációkat kell szerepeltetni a lekérdezés eredményében. A fennmaradó rekordok nem szerepelnek az eredményben.

// Meg kell találni, hogy mely bankok vannak egyszerre
// partnerek (ugyanazok a nevek vannak jelen
//a Counterparties és a Banks könyvtárban egyaránt).
Választ

Banks.Link Hogyan bank
Tól től

Belső összekapcsolás
Directory.Banks Hogyan bankok
Által

Lekérdezés eredménye:

Ügyfél Bank
JSCB PromStroyBank JSCB PromStroyBank

A BAL [KÜLSŐ] JOIN azt jelenti, hogy a lekérdezés eredményének tartalmaznia kell mindkét forrástábla rekordjainak kombinációit, amelyek megfelelnek a megadott feltételnek. A belső összekapcsolással ellentétben azonban a lekérdezés eredményének tartalmaznia kell azokat az első forrásból származó rekordokat is (amelyek a JOIN szó bal oldalán vannak feltüntetve), amelyeknél nem találhatók a feltételnek megfelelő rekordok a második forrásból.

Így a lekérdezés eredménye az első forrásból származó összes rekordot tartalmazza; a megadott feltétel teljesülése esetén a második forrás rekordjaival egyesülnek. Azok a lekérdezési eredménysorok, amelyeknél nem találhatók a feltételnek megfelelő rekordok a második forrásból, NULL értéket fognak tartalmazni az ebből a forrásból származó rekordok alapján generált mezőkben.

//A jelentésben minden partnert meg kell jeleníteni, és azoknak is
// aki egyben bank is - jelezze a bankhoz vezető hivatkozást.
Választ
Counterparties.Link as Counterparty,
Banks.Link Hogyan bank
Tól től
Címtár. Partnerek Hogyan szerződő felek
Bal külső csatlakozás
Directory.Banks Hogyan bankok
Által
Counterparties.Name = Banks.Name

Lekérdezés eredménye:

A JOBB [KÜLSŐ] CSATLAKOZÁS azt jelenti, hogy a lekérdezés eredményének tartalmaznia kell mindkét forrástábla rekordjainak olyan kombinációit, amelyek megfelelnek egy meghatározott feltételnek. Ezenkívül a lekérdezés eredményének tartalmaznia kell a második forrásból származó rekordokat is (a CONNECTION szó jobb oldalán jelölve), amelyeknél nem található az első forrásból származó, a feltételnek megfelelő rekord.

Így a lekérdezés eredménye tartalmazni fogja a második forrás összes rekordját; a megadott feltétel teljesülése esetén az első forrásból származó rekordokkal egyesülnek. Azok a lekérdezési eredménysorok, amelyeknél nem találhatók a feltételnek megfelelő rekordok az első forrásból, NULL értéket fognak tartalmazni az ebből a forrásból származó rekordok alapján generált mezőkben.

//A jelentésben minden bankot meg kell jeleníteni, és azokhoz is
// aki egyben a szerződő fél is - jelezze a partnerre mutató hivatkozást.
VÁLASZT
Counterparties.Link as Counterparty,
Banks.Link Like Bank
TÓL TŐL
Címtár. Partnerek Hogyan szerződő felek
Jobb külső csatlakozás
Directory.Banks Hogyan bankok
Által
Counterparties.Name = Banks.Name

Lekérdezés eredménye:

Ügyfél Bank
NULLA JSCB InvestBank
JSCB PromStroyBank JSCB PromStroyBank

A TELJES [KÜLSŐ] JOIN azt jelenti, hogy a lekérdezés eredményének tartalmaznia kell mindkét forrástábla rekordjainak olyan kombinációit, amelyek megfelelnek egy meghatározott feltételnek. Ezenkívül a lekérdezés eredményének tartalmaznia kell azokat a rekordokat is mindkét forrásból, amelyekre nem található egyezés.

Így a lekérdezés eredménye mindkét forrásból származó összes rekordot tartalmazza; a megadott feltétel teljesülése esetén kapcsolódnak egymáshoz. Azok a lekérdezési eredménysorok, amelyekhez egyetlen forrásból sem található a feltételnek megfelelő rekord, NULL értéket fognak tartalmazni az adott forrásból származó rekordok alapján generált mezőkben.

// A jelentésben meg kell jeleníteni az összes szerződő felet és az összes bankot,
// és akik mindketten azok - nyomtassák egy sorban.
Választ
Counterparties.Link as Counterparty,
Banks.Link Hogyan bank
Tól től
Címtár. Partnerek Hogyan szerződő felek
Teljes külső csatlakozás
Directory.Banks Hogyan bankok
Által
Counterparties.Name = Banks.Name

Lekérdezés eredménye:

Adatforrás álnevek

Ha álnevet rendelünk egy adatforráshoz, akkor a jövőben ez a forrás ezzel az álnévvel érhető el (és a táblanév megadásával már nem érhető el). Az ilyen kezelés kényelmesebb és vizuálisabb lehet, és bizonyos esetekben az egyetlen lehetséges.

Az álnevet a változóazonosítók hozzárendelésének szabályai szerint állítják be. A kérésben szereplő álnevek nem lehetnek azonosak.

A HOGYAN kulcsszó megelőzheti a forrásálnevet. Lehetséges, hogy ezt a szót egyáltalán nem adjuk meg, de ha megadjuk, akkor a kérés szövegének láthatósága és olvashatósága nő.

Az álnevek forrásokhoz való hozzárendelése önmagában nem befolyásolja a lekérdezésben az adatok kiválasztását.

// Ez a példa a használatot mutatja be
// a Termék alias kiválasztási mezőinek listájában,
// a forrástáblához rendelve Directory.Nomenclature
Választ
Termék név,
Termék.Szülő
Tól től
Címtár.Nómenklatúra.Termék

Beágyazott táblák a forráslistában

A források listája tartalmazhat beágyazott táblázatokat is – a kézikönyvek és dokumentumok táblázatos részeit.

//A jelentésben a számlák specifikációját szükséges megjeleníteni -
// megmutatja magát a dokumentumot, a nómenklatúrát és a mennyiséget.
//A források listája tartalmazza az „Összetétel” beágyazott táblát -
// a számla táblázatos része.
// A kijelölés nyolc rekordra korlátozódik, hogy ne terhelje túl a példát.
Válassza az Első 8 lehetőséget
Link, Nómenklatúra, Mennyiség
Tól től
Bizonylat.Számla.Összetétel

Lekérdezés eredménye:

Link Elnevezéstan Mennyiség
00007-es számla, 2002.02.25. 21:03:21 Női farmernadrág 4
00006 számla, 2002.02.25. 0:00:00 Női farmernadrág 5
00006 számla, 2002.02.25. 0:00:00 "Cowgirl" ing 5
00005 számú számla 2002.01.03. 20:58:28 Női farmernadrág 1
00004-es számla, 2002.01.03. 20:50:40 Női farmernadrág 1
00003-as számla, 2002.02.23. 0:00:00 Moydodyr "Aquarium" 5
00003-as számla, 2002.02.23. 0:00:00 Mosogató "Lily" 8
00003-as számla, 2002.02.23. 0:00:00 "Ultra" keverő 10

Kérjük, vegye figyelembe, hogy a beágyazott tábla megadásakor a forráslistában mind a beágyazott tábla mezőihez, mind a legfelső szintű (a beágyazott táblát tartalmazó) tábla mezőihez hozzá lehet férni. Ebben az esetben magának a dokumentumnak a „Link” mezője érhető el.

Allekérdezések a forráslistában

A lekérdezési források listájában egy segédlekérdezés használható forrástáblaként. Ebben az esetben a forrásleírás tartalmazza az allekérdezés leírását. Egy beágyazott lekérdezés leírása pontosan ugyanúgy kerül összeállításra, mint egy normál lekérdezés: lásd

A beágyazott lekérdezés adatforrásként való használata nem különbözik az információs bázistábla használatától. Az allekérdezés kiválasztási mezőinek listájában leírt összes mező elérhető egy ilyen forrás mezőjeként.

Az eredmény pontosan ugyanaz lesz, mint az előző példában.

Jelentések generálása

Munka kérésekkel

A lekérdezések kezeléséhez egy beépített nyelvi objektumot használnak Kérés . Lehetővé teszi az adatbázis mezőiben tárolt információk megszerzését meghatározott szabályok szerint kialakított minta formájában.

Adatforrások lekérdezése

A lekérdezés a kezdeti információkat egy táblakészletből kapja. Ezek a táblák valós adatbázistáblák adatait reprezentálják, könnyen elemezhető formában. Két nagy csoportra oszthatók: valós és virtuális.

A valódi táblák viszont lehetnek objektumok (referencia) vagy nem objektumok (nem hivatkozások):

A valós táblák megkülönböztető jellemzője, hogy egyetlen, egy adatbázisban tárolt valós tábla adatait tartalmazzák. Például valódi táblák a „Könyvtár.Ügyfelek” tábla, amely megfelel az „Ügyfelek” könyvtárnak, vagy a „Felhalmozási regiszter. Maradék anyag” tábla, amely megfelel a „Maradék anyag” felhalmozási regiszternek.

A virtuális táblák elsősorban több adatbázistáblából származó adatokból készülnek. Például egy virtuális tábla a „Felhalmozási regiszter. Anyagmaradványok. Egyenlegek és forgalom” tábla, amely az „Anyagmaradványok” felhalmozási regiszter több táblájából áll. Néha virtuális táblák is kialakíthatók egy valós táblából (például a „Prices.SliceLast” virtuális tábla a „Prices” információs nyilvántartási tábla alapján jön létre). Azonban minden virtuális táblában az a közös, hogy számos olyan paramétert kaphatnak, amelyek meghatározzák, hogy milyen adatok szerepeljenek ezekben a virtuális táblákban. Az ilyen paraméterek halmaza különböző virtuális táblák esetén eltérő lehet, és a forrásadatbázis tábláiban tárolt adatok határozzák meg.

A valódi táblákat objektum (referencia) és nem objektum (nem hivatkozás) táblákra osztják.

Az objektum (referencia) táblák tájékoztatást nyújtanak a referenciaadat-típusokról (könyvtárak, dokumentumok, jellemzőtípusokra vonatkozó tervek stb.). És nem objektumban (nem hivatkozás) - minden más adattípus (konstansok, regiszterek stb.).

Az objektum (referencia) táblák megkülönböztető jellemzője, hogy tartalmaznak egy „Link” mezőt, amely az aktuális rekordra mutató hivatkozást tartalmaz. Ezenkívül az ilyen táblákhoz lehetőség van az objektum egyedi reprezentációjára is, ezek a táblák lehetnek hierarchikusak, és az ilyen táblák mezői tartalmazhatnak beágyazott táblákat (táblarészeket).

Lekérdezési nyelv

Az algoritmus, amellyel a kérelem forrástáblázataiból az adatokat kiválasztják, a kérelem szövege egy speciális nyelven írja le - lekérdezési nyelv. A kérelem szövege több részből áll:

    leírás kérése,

    lekérdezések összevonása

    az eredmények sorrendje,

    automatikus rendelés,

    az eredmények leírása.

A kérelem egyetlen kötelező része az első rész - a kérelem leírása. Az összes többi szükség szerint jelen van.

Leírás kérése meghatározza az adatforrásokat, kiválasztási mezőket, csoportosításokat stb.

Lekérdezések összevonása meghatározza, hogy a több lekérdezés eredményeit hogyan kombinálják.

Eredmények szervezése meghatározza a lekérdezési eredménysorok rendezési feltételeit.

Automatikus rendelés lehetővé teszi a lekérdezés eredménysorainak automatikus rendezését.

Az eredmények leírása meghatározza, hogy mely összegeket kell kiszámítani a lekérdezésben, és hogyan csoportosítsa az eredményeket.

Jelentés Dokumentumnyilvántartás Szolgáltatásnyújtás

Az első jelentés, amely alapján elkezdjük a lekérdező nyelv megismerését, a „Szolgáltatásnyújtási dokumentumok nyilvántartása” lesz. Ez a jelentés egyszerűen megjeleníti az adatbázisban található „Szolgáltatásnyújtás” dokumentumok listáját dátumuk és számuk sorrendjében.

Hozzon létre egy új konfigurációs objektumot a konfigurátorban: „Szolgáltatásnyújtás dokumentumnyilvántartása” jelentés. Lépjünk az „Elrendezés” fülre, és indítsuk el a kimeneti űrlaptervezőt.

A kérelem adatforrásaként a „Szolgáltatásnyújtás” dokumentumok objektum (referencia) tábláját választjuk ki. Ebből a táblázatból a következő mezőket választjuk ki:

  • "Fő",

    "Ügyfél":

Kérjük, vegye figyelembe, hogy amikor kiválasztja a „Raktár”, „Fő” és „Ügyfél” mezőket, a „Warehouse.View”, „Master.View” és „Customer.View” mezők is kiválasztásra kerülnek a kiválasztott mezők listájában. Az a tény, hogy általános esetben feltételezzük, hogy ezek a mezők egy táblázatos dokumentum celláiban jelennek meg. Mivel a megfelelő „Werehouse”, „Master” és „Customer” mezők referenciamezők, ha egy referenciaértéket adunk át paraméterértékként a kimenethez, a rendszer egy további kérést hajt végre, hogy megkapja ennek a mezőnek a megjelenítését (amely dokumentumban), ami lassabb jelentéskimenetet eredményez. Ezért a referenciamezők kiválasztásakor a rendszer felajánlja, hogy a referenciamezők reprezentációit azonnal belefoglalja a kiválasztott mezők listájába, azzal a feltétellel, hogy azokat a dokumentumba történő kimenetre használják.

Ezt követően menjünk a „Megrendelés” fülre, és jelezzük, hogy a kérés eredményét először a „Dátum” mező értékével, majd a „Szolgáltatásnyújtás. Link” mező értékével kell rendezni:

Lépjünk a „Jelentés” fülre, és állítsuk vissza a „Jelentéskészítő használata” jelzőt:

Állítsuk vissza a „Jelentéskészítő használata” jelzőt...

Kattintson az "OK" gombra. A tervező elkészíti a jelentés űrlapját és elrendezését. Nyissuk meg az űrlap modult, és keressük meg benne a „Szolgáltatásnyújtás dokumentumnyilvántartása” eljárást. Ebben az eljárásban hogyan jön létre a kérés szövege, amely a minket érdeklő adatok beszerzésére szolgál:

Query.Text = „SELECT

Szolgáltatásnyújtás. Dátum AS Dátum,

Szolgáltatásnyújtás. Szám AS szám,

Szolgáltatásnyújtás. Raktár,

Szolgáltatások nyújtása. Raktár. Bemutató,

Szolgáltatások nyújtása. Mester,

Szolgáltatások nyújtása. Mester. Előadás,

Szolgáltatásnyújtás. Ügyfél,

Szolgáltatásnyújtás Ügyfél Képviselet

Dokumentum.Szolgáltatásnyújtás HOGYAN SZOLGÁLTATÁSOK

RENDEZÉS

A kérelem szövege, amint fentebb említettük, a kérelem leírásának egy részével kezdődik:

I A szolgáltatás nyújtása. Dátum AS Dátum,

I Szolgáltatásnyújtás. Szám AS szám,

I Szolgáltatásnyújtás. Raktár,

I Szolgáltatásnyújtás. Raktár. Bemutató,

I Szolgáltatások. Mester,

I Szolgáltatásnyújtás. Mester. Előadás,

I Szolgáltatásnyújtás. Ügyfél,

1 Szolgáltatásnyújtás Ügyfelek Képviselet

I Dokumentum Szolgáltatásnyújtás HOGYAN A szolgáltatásnyújtás

A kérés leírása egy kötelező kulcsszóval kezdődik VÁLASZT. Ezt követi a kiválasztott mezők listája, amely leírja azokat a mezőket, amelyeket a lekérdezés eredményének tartalmaznia kell. Ez a lista tartalmazhatja magukat a mezőket és a mezőértékek alapján kiszámított kifejezéseket is.

Az IZ kulcsszó után megjelennek az adatforrások - az eredeti lekérdezési táblák, amelyek tartalmát a lekérdezés feldolgozza. Ebben az esetben ez a „Dokumentum.Szolgáltatásnyújtás” objektum (referencia) tábla. A kulcsszó után HOGYAN jelzett álnév adatforrás. Esetünkben ez a „Szolgáltatásnyújtás”. A jövőben ez az adatforrás a kérelem törzsében alias használatával érhető el.

Ezt a felhívást látjuk a kiválasztási mezők leírásában:

| Szolgáltatásnyújtás. Dátum AS Dátum,

| Szolgáltatásnyújtás. Szám AS szám,

| Szolgáltatásnyújtás. Raktár,

| Szolgáltatások nyújtása. Raktár. Bemutató,

| Szolgáltatások nyújtása. Mester,

| Szolgáltatások nyújtása. Mester. Előadás,

| Szolgáltatásnyújtás. Ügyfél,

| Szolgáltatásnyújtás Ügyfél Képviselet

A kijelölő mezőknek álnevek is lehetnek, amelyek segítségével később a kérés szövegében hivatkozhatunk erre a mezőre. Esetünkben ezek a „Dátum” és „Szám” álnevek.

Példánkban a lekérdezés leírása után következik az eredménysorrendező rész:

|RENDELÉS

| Dátum, | Szám";

Ajánlat RENDEZÉS lehetővé teszi a sorok rendezését a lekérdezés eredményében. A kulcsmondat után egy rendezési kifejezés található, amely általában a mezők (kifejezések) és a kimeneti sorrend listája. Esetünkben a rendelést először a „Kód” álnéven keresztül elérhető kiválasztási mező, majd a „Szám” mező végzi. Mindkét esetben a rendezési sorrend növekvő lesz, ami az alapértelmezett rendezési sorrend.

Most figyeljünk arra, hogyan jelenik meg a lekérdezés eredménye egy táblázatos dokumentumban.

Eljárási dokumentumok nyilvántartása Szolgáltatásnyújtás (TabDoc) Export

//((CONSTRUCTOR_OUTPUT_FORM(Szolgáltatást nyújtó dokumentumok nyilvántartása)// Ezt a töredéket a kivitelező építette.// A konstruktor újrafelhasználásakor// bemutatott manuálisan változtatások el fog veszni!!!

Layout = GetLayout("Szolgáltatást nyújtó dokumentumok nyilvántartása"); Request = Új kérés;

Eredmény = Query.Run();

HeaderArea = Layout.GetArea("Fejléc"); TerületAlagsor =

Layout.GetArea("Táblázatláb"); DetailRecordsArea =

TabDoc.Output(Table HeadArea); TabDoc.StartAutogruttingRows();

SelectDetails = Eredmény.Select();

Míg SelectDetails.NextFunctions() Loop

AreaDetailRecords.Parameters.Fill(SelectionDetails);

TabDoc.Output(RecordsDetailsArea,DetailsSelection.Level()); EndCycle;

/L)CONSTRUCTOR_OUTPUT_FORM Végfolyamat

A jelentés űrlap tartalmaz egy vezérlőelemet TabularDocumentField„TabDoc” néven, amely a tervező által generált elrendezés alapján töltődik fel adatokkal.

Az eljárás elején egy jelentés elrendezést kapunk, amelyből a benne lévő területeket a megfelelő változókba kapjuk:

HeaderArea = Layout.GetArea("Fejléc"); TerületAlagsor =

Layout.GetArea("Alagsor"); TableHeaderArea =

Layout.GetArea("Táblázatfejléc"); TableFooterArea =

Layout.GetArea("TableFooter"");DetailRecordsArea =

Layout.GetArea("Részletek");

Ezután töröljük a táblázatkezelő dokumentumot, és megjelenítjük azokat a területeket, amelyek nem tartalmaznak a lekérdezés eredményéből származó adatokat:

TabDoc.Clear(); TabDoc.Output(AreaHeader);

TabDoc.Output(Table HeadArea); TabDoc.StartAutoGroupingRows();

Az utolsó sorban a tervező hozzáadta a sorok automatikus csoportosításának kezdetét. Ebben a példában nincsenek csoportosítandó soraink, de alapértelmezés szerint a tervező mindig javasolja a sorok csoportosítását egy táblázatkezelő dokumentumban. Ez a hívás nem befolyásolja a jelentéskészítés sebességét, ezért a konstruktor szövegét változatlanul hagyjuk.

Ezt követően a lekérdezés eredményéből egy válogatást kapunk, amelyet egy ciklusban végigmegyünk:

A ciklus minden iterációjában kitöltjük az előzőleg kapott elrendezési terület paramétereit a következő lekérdezés eredményminta rekordjából kapott értékekkel, és megjelenítjük ezt a területet egy táblázatos dokumentumban.

Az eljárás végén megjelenítjük az elrendezés végső területeit egy táblázatos dokumentumban:

TabDoc.FinishAutoGroupingRows();

TabDoc.Output(Table FooterArea);

TabDoc.Output(AreaFooter);

Most indítsuk el az 1C:Enterprise-t hibakeresési módban, és nézzük meg jelentésünk eredményét:

Így ennek a jelentésnek a példáján bemutattuk, hogyan kell használni a kimeneti űrlaptervezőt, és megismerkedtünk néhány alapvető lekérdezési nyelvi konstrukcióval.

A „Szolgáltatás értékelése” jelentés információkat tartalmaz arról, hogy a Master of All Trades LLC mely szolgáltatások hozták a legnagyobb nyereséget a megadott időszakban. A „Szolgáltatás értékelése” jelentést példaként használva bemutatjuk, hogyan válasszuk ki az adatokat egy adott időszakban, hogyan állítsuk be a lekérdezési paramétereket, hogyan használjunk több táblából származó adatokat egy lekérdezésben, és hogyan vegyük fel az egyik forrásból származó összes adatot a lekérdezés eredménye.

Hozzon létre egy új konfigurációs objektum „Szolgáltatásértékelés” jelentést. Lépjünk az „Elrendezések” fülre, és hívjuk meg a kimeneti űrlap konstruktorát.

Jelöljük ki a „Nómenklatúra” címtár objektum (referencia) tábláját és a „Sales.Turnover” felhalmozási regiszter virtuális tábláját. A lekérdezésben szereplő nevek kétértelműségének kiküszöbölése érdekében a „Nómenklatúra” táblát átnevezzük „SprNomenclature”-re (jobb gombbal kattintson a helyi menüre).

Ezután vigye a kurzort a „SalesTurnover” táblázatra, és hívja elő a párbeszédpanelt a virtuális tábla paramétereinek megadásához:

Nyissa meg a párbeszédpanelt a virtuális tábla paramétereinek megadásához

Jelöljük, hogy az időszak eleje és vége a megfelelő „StartDate” és „EndDate” paraméterekben kerül átadásra (a név előtti „&” szimbólum azt jelzi, hogy ez egy kérési paraméter):

Ezután válassza ki a táblázatokból a „SprNomenclature.Link” és „SalesTurnover.RevenueTurnover” mezőket:

SprNómenklatúra.Prezentáció

SalesTurnoverRevenueTurnover

Menjünk a "Linkek" fülre, és nézzük meg, hogy a tervező már létrehozta a kapcsolatot a két kiválasztott tábla között - a "Nómenklatúra" regiszterváltoztatás értékének meg kell egyeznie a "Nómenklatúra" könyvtárelemre való hivatkozással.

Az egyetlen dolgunk, hogy visszaállítsuk az „Összes” jelzőt a regisztertáblához, és beállítsuk a címtártáblázathoz.

Az összes elemet kiválasztjuk a „Nómenklatúra” könyvtárból

Az „Összes” jelző beállítása a címtártáblázatban azt jelenti, hogy minden elemet kiválasztunk a címtárból, és ezekhez az elemekhez rendeljük a nyilvántartásból a bevételi forgalmi értéket. Így a kérés eredményeként minden szolgáltatás jelen lesz, illetve egy résznél a bevételi forgalom is feltüntetésre kerül. Azon szolgáltatások esetében, amelyeket a kiválasztott időszakban nem nyújtottak, semmi sem kerül feltüntetésre.

Lépjünk a „Feltételek” fülre, és állítsuk be a „Nómenklatúra” könyvtárból való elemek kiválasztásának feltételeit. A kiválasztási feltételek beállításakor ismét lekérdezési paramétereket használunk. Az első feltételnek az kell lennie, hogy a kiválasztott elem ne legyen csoport (ehhez váltson „Egyéni feltétel” módba).

A második feltételnek az kell, hogy legyen, hogy a kiválasztott elem egy szolgáltatás (ez az „Egyszerű feltétel”):

A jövőben a kérés végrehajtása előtt a megfelelő felsorolási értéket átadjuk a „Nómenklatúra típusa” paraméternek.

Lépjünk a „Társítások/Álnevek” fülre, és adjuk meg, hogy a címtárelem nézet „Szolgáltatás” álneve legyen, a regisztermező pedig „Bevétel” álnév:

Lépjünk a „Megrendelés” fülre, és jelezzük, hogy a lekérdezés eredményét a „Bevétel” mező értékének megfelelő csökkenő sorrendbe kell rendezni.

Az „Összesen” lapon meghatározzuk, hogy általános összegeket kell megjelenítenünk, és ezeknek a „Bevétel” mezőben lévő értékek összegének kell lenniük:

A „Jelentés” lapon törölje a „Jelentéskészítő használata” jelzőt.

Most menjünk a "Kimeneti űrlap" fülre. Jelöljük, hogy a „Dátum” típusú beviteli mezőkben a „Befejezés dátuma” és „Kezdő dátum” paraméterek szerkesztésre kerülnek. Ezzel szemben a „Nómenklatúra típusa” paraméternél eltávolítjuk a szerkesztési jelzőt a következő formában:

Kattintson az "OK" gombra. A platform létrehoz egy elrendezést és egy jelentés űrlapot, nyissa meg az űrlap modult és keresse meg benne a „Szolgáltatás értékelése” eljárást.

Ebben az eljárásban abban a részben, ahol a lekérdezési paraméterek be vannak állítva, meghatározzuk a „Nómenklatúra típusa” paraméter értékét (a javítások félkövérrel vannak kiemelve):

| BAL KAPCSOLAT RegisztrációFelhalmozás.Eladások,forgalom(&Kezdődátum,

| &Lejárati dátum,)

| ÉRTÉKESÍTÉS HOGYANA forgalom

|RENDELÉS | RevenueDOWN

|EREDMÉNY ÖSSZEG (Bevétel) | GYAKORIAK";

RequestSetParameterC"Nómenklatúra típusa",

Transzferek.Nómenklatúra típusai.Szolgáltatás);

Query.SetParameter("Kezdődátum",Kezdődátum); Request.SetParameterC"EndDate", EndDate);

Most nézzük meg a konstruktor által generált kérés szövegét:

| SprNomenclature.Representation AS Képviselet,

|SalesTurnover.RevenueTurnover AS bevétel

| Directory.Nomenclature AS RefNomenclature

BAL KAPCSOLAT RegisztrációAccumulations.Sales.Turnover(&Kezdődátum,

| ÉRTÉKESÍTÉS HOGYANA forgalom

| Software SalesTurnover.Nomenclature = SprNomenclature.Link

| (RefNomenclature.ThisGroup = False) ÉS

| SprNomenclature.Type of Nomenclature = &Type of Nomenclature

|RENDELÉS

| RevenueDOWN

|EREDMÉNYEK ÖSSZEGE (Bevétel) BY

Először is, szokás szerint, jön a kérés leírása, és ez a számunkra új konstrukciókat tartalmazza.

A kérésforrások leírásánál (az IZ kulcsszó után) több kérésforrás definiálásának lehetőségét használtuk:

| Directory.Nomenclature AS RefNomenclature

|&EndDate,)

| ÉRTÉKESÍTÉS HOGYANA forgalom

| Software SalesTurnover.Nomenclature = SprNomenclature.Link

Ebben az esetben a rekordokat két forrásból választják ki: „SprNomenklatura” és „SalesTurnover”, a kulcsmondattal BAL KAPCSOLAT... ÁLTAL leírja a két forrásból származó rekordok kombinálásának módját.

BAL KAPCSOLAT azt jelenti, hogy a lekérdezés eredményének tartalmaznia kell mindkét forrásból származó rekordok kombinációit, amelyek megfelelnek a BY kulcsszó után megadott feltételnek. Ezenkívül a lekérdezés eredményének tartalmaznia kell az első rekord rekordjait is (a szó bal oldalán jelölve). ÖSSZETETT) forrás, amelyhez nem találtunk a feltételnek megfelelő rekordot a második forrásból.

Az első forrás és a csatlakozási feltétel leírásában számunkra nincs újdonság, de a második forrás leírásánál a lekérdező virtuális tábla paramétereinek beállítási lehetőségét használjuk:

| RegisterAccumulations.Sales.Turnover(&Kezdődátum, &Befejeződátum,)

Az első paraméter az összegek kiszámításához használt időszak kezdete, a második az időszak vége. Ennek eredményeként a forrástáblázat csak az átvitt időszakban számított forgalmat fogja tartalmazni. Itt mindig emlékezni kell arra, hogy ha ezen paraméterként dátumot adunk meg (és esetünkben ez lesz), akkor a dátum másodpercre pontos időt is tartalmaz.

Ha előre ismert, hogy a felhasználót nem fogják érdekelni a jelentés eredményei a másodperces pontossággal meghatározott időszakokban, akkor a következő jellemzőt kell figyelembe venni: alapértelmezés szerint a dátumban az idő 00-ra van állítva. :00:00. Ezért, ha nem tesz különleges intézkedéseket, akkor kiderül, hogy amikor a felhasználó a jelentési időszakot 2004. 01. 03. és 2004. 03. 31. között állítja be, a nyilvántartás összegeit a 03. 01. nap elejétől számítjuk. 2004 00:00:00 nap elejéig 03/31/2004 00:00: 00. Így a nap elejétől eltérő 31. napra vonatkozó adatok nem kerülnek bele a számításba, ami nagy meglepetést okoz a felhasználónak.

A helyzet megszüntetése érdekében két dolgot kell tenni.

Először is, a jelentés űrlapon korlátozza a felhasználó azon lehetőségét, hogy megadja a kezdő és befejező dátumot, úgy, hogy a megfelelő beviteli mezők dátumösszetételét „Dátum”-ra állítja:

Határozzuk meg a dátum összetételét...

Másodszor, a paraméterek átadásakor használja a beépített funkciót A nap vége(). Ehhez térjen vissza a jelentés űrlap modulhoz, és hajtsa végre a szükséges módosításokat (a kiegészítések félkövérrel vannak kiemelve):

ProcedureFormActionsRatingServicesGenerate(Button) //((CONSTRUCTOR_WEEKEND_FORM_PROCEDURE_CALL(RatingServices) //Ezt a töredéket a konstruktor építette. // A konstruktor újrafelhasználásakor // a manuálisan végrehajtott módosítások elvesznek!!!

TabDoc = FormElements.TableField;

//))CONSTRUCTOR_OUTPUT_FORM_CALL_PROCEDURE

Co. netProcedures

Nézzük tovább a kérés szövegét. A lekérdezés leírásának részeként van még egy számunkra új konstrukció - a forrástáblákból való adatok kiválasztásának feltételei:

| SprNomenclature.Representation AS Képviselet,

| SalesTurnover.RevenueTurnover AS bevétel

| Directory.Nomenclature AS RefNomenclature

| BAL KAPCSOLAT RegisztrációAccumulations.Sales.Turnover(&Kezdődátum,

| &Lejárati dátum,

| ÉRTÉKESÍTÉS HOGYANA forgalom

| Software SalesTurnover.Nomenclature = SprNomenclature.Ssshka

| SprNomenclature.ThisGroup = Hamis ÉS

| SprNomenclature.Type of Nomenclature = &Type of Nomenclature

A kiválasztási feltételt mindig egy kulcsszó előzi meg AHOL. Ezt követően magát az állapotot ismertetjük. Kérjük, vegye figyelembe, hogy a forrástáblázat azon mezői, amelyekre a feltételt alkalmazzák, nem feltétlenül szerepelnek a kiválasztási listában (mint esetünkben). Ezenkívül a feltételünk a „Nómenklatúra típusa” lekérdezési paramétert használja.

EREDMÉNYEK ÖSSZEG (Bevétel) PO

Mindig kulcsszóval kezdődik EREDMÉNYEK, ezt követi annak leírása, hogy milyen összegek jelennek meg a lekérdezés eredményében. Közvetlenül a szó után EREDMÉNYEK leírja az eredményekben kiszámítandó összesített függvényeket. Esetünkben a „Bevétel” mezőben szereplő összeg kerül kiszámításra. Ezt követi a PO kulcsszó, amely után leírják azokat a csoportosításokat, amelyekben az összegeket ki kell számítani. Esetünkben ezek hiányoznak, és csak a kulcsszót használjuk GYAKORIAK, ami azt jelzi, hogy a végösszegek a teljes táblázat egészére vonatkoznak.

Most, hogy befejeztük a kérés szövegének megismerését, indítsuk el az 1C:Enterprise-t hibakeresési módban, és nézzük meg, hogyan működik a jelentésünk.

Állítsuk be a jelentési időszakot 2004.03.01. és 2004.04.30. Az eredmény így fog kinézni:

Most módosítsuk a befejezési dátumot 2004.03.31-re, és győződjön meg arról, hogy a március 31-i adatok szerepelnek a jelentésben: