Számított mezők SKD-ben. Adatösszetételi rendszer kifejezési nyelve (1Cv8)

Szia kedves olvasó! Van még egy leckénk az elrendezési rendszer alapjairól. Ebben megismerkedett az SKD kifejezési nyelv funkcióival, látta az elrendezési rendszer jellemzőit, és megértette az elrendezési mezők alapvető beállításait is. Most új anyagokat nézünk meg. Megy!

További beállítások az ACS mezőkhöz.

Oszlop "Érték tipusa" Lehetővé teszi az elrendezési mező adattípusának megadását. Miért adja meg a típust például a „Nómenklatúra” mezőben, ha már tudja, milyen típusról van szó? Erre akkor van szükség, ha az elrendezési mező összetett típusú. Kiválaszthat egy adott típust, majd e mező alapján történő kiválasztáskor ennek a típusnak az értékei kerülnek kiválasztásra.

Oszlop "Elérhető értékek" lehetővé teszi a kiválasztható értékek megadását, és a felhasználó választási lehetőségeinek bizonyos határok korlátozását.

Oszlop "dekoráció" lehetővé teszi egy elrendezési mező kialakításának megadását elrendezések használata nélkül. Megadhatja a betűszínt, a keret színét, a szöveg tájolását stb.

Oszlop "Szerkesztési lehetőségek" Lehetővé teszi az elrendezésmező szerkesztésének módját. Például megadhatja az elemek gyors kiválasztását egy listából egy kijelölésben. Alapértelmezés szerint egy elrendezési mező az összes szerkesztési lehetőséget a metaadat objektumtól örökli.

Számított mezők

Az adatösszetétel „Számított mezők” fülén saját számított mezőket hozhat létre.

Miért van szükség számított mezőkre, ha lekérdezés szinten is létrehozhatja őket? Nem minden mező írható le lekérdezéssel. Ha összetett mezőt kell létrehoznia különböző adatkészletekből, például lekérdezésből és objektumból, akkor nem nélkülözheti a számított mezőket. Nem adhat hozzá adatösszetételi mezőt, ha az adatforrás egy lekérdezés, és az automatikus kitöltés engedélyezve van, de számított mezők használatával tetszőleges számú mezőt adhat hozzá.

A számított mező „Kifejezés” oszlopába egy tetszőleges kifejezést kell írni, amely az adatösszetétel mezőket használja, elérve azok elérési útját (az „Adatkészletek” fül „Elérési út” oszlopa). Használhat matematikai transzformációs függvényeket, vagy elérheti a közös modulok függvényeit. Például írjuk az „Adatútvonal” oszlopba a számított „Eltérés” mező nevét, a „Kifejezés” mezőbe pedig a következőket.

A közelgő 8.2.14-es kiadás fényében megpróbálom leírni az adatösszetétel rendszer néhány új funkcióját.

Nyissa meg az adatelrendezési diagramot, lehetőleg egy külső jelentésben, hogy megkönnyítse a szerkesztést.

Hozzáadunk egy lekérdezési típusú adatkészletet, és manuálisan vagy a lekérdezéstervező segítségével írunk egy egyszerű lekérdezést:

1. Állítson be egy kérést a beléptető rendszerben.

2. Állítsa be a számított mezőket a beléptető rendszerben

3. Konfigurálja az adatelrendezést a beállítások lapon

4. Indítsa el az 1C Enterprise 8.2.14. Nyissa meg a jelentést. Formálunk, kapunk.

Maguk az új funkciók leírása:

1. Az aktuális dátum()

Visszaadja a rendszer dátumát. Elrendezési elrendezés összeállításakor az elrendezésben szereplő összes kifejezésben a CurrentDate() függvény az aktuális dátum értékére kerül.

2. SZÁMÍTÁSI KIFEJEZÉS()

Szintaxis:

Kifejezés kiszámítása(,)

Leírás:

A funkció célja, hogy egy kifejezést valamilyen csoportosítással összefüggésben értékeljen.

A függvény figyelembe veszi a csoportosítások kiválasztását, de nem veszi figyelembe a hierarchikus kijelöléseket.

A függvény nem alkalmazható egy csoportra az adott csoportosítás csoportkiválasztásában. Például a Nómenklatúra csoportosítás kiválasztásakor nem használhatja a kifejezést CalculateExpression("Sum(SumTurnover)", "TotalTotal") > 1000. De egy ilyen kifejezés használható a hierarchikus kijelölésben.

Ha a záró rekord megelőzi a kezdő rekordot, akkor a részletező adatok kiszámításához és az összesített függvények kiszámításához nincsenek rekordok.

A végösszeg intervallumkifejezéseinek kiszámításakor (a Csoportosítás paraméter beállítása GrandTotal) azt feltételezzük, hogy nincsenek rekordok a részletes adatok és az összesített függvények kiszámításához.

Elrendezés linker függvénykifejezés generálásakor Kifejezés kiszámítása, ha a rendezési kifejezés olyan mezőket tartalmaz, amelyek nem használhatók a csoportosításhoz, lecseréli a függvényt Kifejezés kiszámítása tovább NULLA.

Lehetőségek

Típus: Vonal. A kiértékelendő kifejezés.

Típus: Vonal. Tartalmazza annak a csoportosításnak a nevét, amelynek kontextusában a kifejezést ki kell értékelni. Ha üres karakterláncot használ a csoportosítás neveként, akkor a számítás az aktuális csoportosítással összefüggésben történik. Ha a GeneralTotal karakterláncot használja csoportnévként, a számítás a végösszeggel összefüggésben történik. Ellenkező esetben a számítás az azonos nevű szülőcsoport környezetében történik.

Például:

Összeg(értékesítés.Össz.Forgalom)/Számítás("Összeg(Eladás.Össz.Forgalom)", "Összesen")

Ebben a példában az eredmény az összeg mezőnkénti aránya lesz Értékesítés.ÖsszegForgalom a rekordok csoportosítása ugyanazon mező összegére a teljes elrendezésben;

Típus: Vonal. A paraméter a következő értékeket veheti fel:

· teljes összeg— a kifejezés minden csoportosító rekordra kiszámításra kerül.

· Hierarchia— a kifejezés kiértékelésre kerül a szülő hierarchikus rekordra, ha van ilyen, és a teljes csoportosításra, ha nincs szülő hierarchikus rekord.

· Csoportosítás— a kifejezés az aktuális csoportcsoportosítási rekordhoz kerül kiértékelésre.

· GroupingNonResource— amikor egy függvényt egy csoportrekordhoz erőforrás szerint számítanak ki, a kifejezés az eredeti csoportosítás első csoportrekordjára kerül kiszámításra.

Függvény kiszámításakor CalculateExpression() jelentéssel GroupingNonResource az erőforrások szerint nem csoportosított csoportrekordok esetében a függvény kiszámítása ugyanúgy történik, mint ha a paraméter értéke egyenlő lenne az értékkel Csoportosítás.

Az adatösszetétel-elrendezés-készítő, amikor adatösszetétel-elrendezést generál, amikor olyan erőforrásmezőt ad ki, amellyel az elrendezés csoportosítása történik, egy kifejezést helyez el az elrendezésben, amelyet a függvény segítségével számít ki. CalculateExpression() , jelzi a paramétert GroupingNonResource. Más erőforrások esetében a szokásos erőforrás-kifejezések kerülnek az erőforrás-csoportosításba.

Típus: Vonal. Azt jelzi, hogy melyik rekordból kell kezdődnie a töredéknek, melyik összesített kifejezési függvényeket kell kiszámítani, és melyik rekordból kell az aggregált függvényeken kívüli mezőértékeket nyerni. Az érték a következők egyike lehet:

· Első

· Utolsó (utolsó)

· Előző

· Következő (Következő)

· Jelenlegi

· LimitingValue(BoundaryValue) LimitingValue

Típus: Vonal. Azt jelzi, hogy a töredéket melyik rekordra kell folytatni, amelyben a kifejezés összesített függvényeit kell kiszámítani. Az érték a következők egyike lehet:

· Első. Meg kell szerezni az első csoportosítási rekordot. A zárójelben lévő szó után megadhatunk egy kifejezést, melynek eredményét a rendszer eltolásként használja a csoportosítás elejétől. A kapott értéknek nullánál nagyobb egész számnak kell lennie. Például First(3) - a harmadik rekord fogadása a csoportosítás kezdetétől.

Ha az első rekord kívül esik a csoportosításon, akkor úgy kell tekinteni, hogy nincsenek rekordok. Például, ha 3 rekord van, és a First(4-et) szeretné megkapni, akkor a rendszer úgy tekinti, hogy nincsenek rekordok.

· Utolsó (utolsó). Be kell szereznie az utolsó csoportosítási rekordot. A zárójelben lévő szó után megadhatunk egy kifejezést, melynek eredményét a rendszer a csoportosítás végétől eltolásként használjuk. A kapott értéknek nullánál nagyobb egész számnak kell lennie. Például Last(3) - a harmadik rekord fogadása a csoport végétől.

Ha az utolsó rekord kívül esik a csoportosításon, akkor úgy kell tekinteni, hogy nincsenek rekordok. Például, ha 3 rekord van, és a Last(4) értéket szeretné megkapni, akkor a rendszer úgy tekinti, hogy nincsenek rekordok.

· Előző. Be kell szereznie az előző csoportosítási rekordot. A zárójelben lévő szó után megadhat egy kifejezést, amelynek eredménye az aktuális csoportosítási rekordtól való eltolás lesz. Például, Previous(2) - az előző lekérése az előző rekordból.

Ha az előző rekord túlmutat a csoportosításon (például a második csoportosítási rekordhoz meg kell kapnia az Előző(3)-t), akkor az első csoportosítási rekordot kapja meg.

A csoportosítási összeg előző rekordjának lekérésekor a rendszer az első rekordot kapja meg.

· Következő (Következő). Meg kell szereznie a következő csoportosítási rekordot. A zárójelben lévő szó után megadhat egy kifejezést, amelynek eredményét a rendszer az aktuális csoportosítási rekordhoz képest eltolásként használja. Például, Next(2) - a következő felvétel a következő rekordból.

Ha a következő rekord túlmegy a csoportosításon, akkor a rendszer úgy tekint, hogy nincsenek rekordok. Például, ha 3 bejegyzés van, és a harmadik a Next() -t kapja, akkor a rendszer úgy tekinti, hogy nincsenek bejegyzések.

Amikor a következő rekord érkezik a csoportosítási végösszeghez, akkor a rendszer úgy tekinti, hogy nincs rekord.

· Jelenlegi. Meg kell szerezni az aktuális rekordot.

Csoportosítási összeg lekérésekor az első rekordot kapjuk meg.

· LimitingValue(BoundaryValue). Rekord beszerzésének szükségessége a megadott értékkel. A szó után LimitingValue zárójelben meg kell jelölni azt a kifejezést, amelynek értékével a töredéket el akarjuk kezdeni, az első rendezési mezőt.

Az első rekord, amelynek a rendezési mező értéke nagyobb vagy egyenlő, mint a megadott érték, rekordként kerül visszaadásra. Például, ha az Időszak mezőt használja rendelési mezőként, és értéke 2010.01.01., 2010.02.01., 2010.03.01. Határérték(DátumIdő(2010, 1, 15)), akkor 2010. 02. 01. dátumú rekord érkezik.

Típus: Vonal. Vesszővel elválasztva felsorolja azokat a kifejezéseket, amelyek leírják a rendezési szabályokat. Ha nincs megadva, akkor a rendezés ugyanúgy történik, mint a csoportosításnál, amelyre a kifejezést kiértékeli. Minden kifejezés után megadhat egy kulcsszót Kor(növekvő sorrendben történő rendelés esetén), Csökkenő(csökkenő sorrendben történő rendelés esetén) és Automatikus rendelés(a referenciamezők sorrendbe állítása azon mezők szerint, amelyek alapján a hivatkozott objektumot rendezni szeretné). Szó Automatikus rendelés szóval is használható Kor, így a szóval Csökkenő.

Típus: Vonal. Ugyanaz, mint a paraméter Válogatás. Hierarchikus rekordok rendezésére szolgál. Ha nincs megadva, az elrendezés készítője a paraméterben megadott sorrendnek megfelelően generálja a rendezést Válogatás.

Típus: Vonal. Megadja az előző vagy a következő rekord meghatározásának szabályát abban az esetben, ha több rekord van azonos rendezési értékkel:

· Külön azt jelzi, hogy a rendszer a rendezett rekordok sorozatát használja az előző és a következő rekordok meghatározásához. Alapértelmezett érték.

· Együtt azt jelzi, hogy az előző és a következő rekordot a rendezési kifejezések értékei határozzák meg.

Például, ha az eredményül kapott sorozat dátum szerint van rendezve:

dátum Teljes név Jelentése
1 2001. január 01

Ivanov M.

10
2 2001. január 02 Petrov S. 20
3 2001. január 03 Sidorov R. 30
4 2001. január 04 Petrov S. 40

Külön, Ez:

§ a 3. bejegyzés korábbi bejegyzése a 2. bejegyzés lesz.

Aktuális, Aktuális(ennek megfelelően a paraméterek RajtÉs Vége), akkor a 2. rekord esetében ez a töredék egy 2. rekordból áll. A kifejezés 20 lesz.

Ha a paraméter értéke Együtt, Ez:

§ a 3. bejegyzés korábbi bejegyzése az 1. bejegyzés lesz.

§-a szerint, ha a számítási töredéket úgy határozzuk meg Aktuális, Aktuális(ennek megfelelően a paraméterek RajtÉs Vége), akkor a 2. rekord esetében ez a töredék a 2. és 3. rekordból áll. Kifejezés CalculateExpression("Összeg(érték)", Aktuális, Aktuális) egyenlő lesz 50-nel.

A paraméter értékének megadásakor egyenlő Együtt, paraméterekben RajtÉs Vége pozíciókhoz nem lehet eltolást megadni Első, Utolsó, Előző, Következő.

CalculateExpression("Összeg(Összegforgalom)", "Első", "Jelenlegi")

Ha az előző sorban szeretné megkapni a csoportosítási értéket, használja a következő kifejezést:

CalculateExpression("Arány", "Előző")

Lista új funkciók:

CalculateExpressionWithGroupArray(,) -

A függvény egy tömböt ad vissza, amelynek minden eleme tartalmazza egy kifejezés kiértékelésének eredményét a megadott mező alapján történő csoportosításhoz.

CalculateExpressionWithGroupValueTable(,) -

A függvény egy értéktáblázatot ad vissza, amelynek minden sora tartalmazza a kifejezések kiértékelésének eredményét a megadott mező alapján történő csoportosításhoz

ValueFilled() - Igazat ad vissza, ha az érték eltér ennek a típusnak az alapértelmezett értékétől, kivéve a NULL-t, és nem egy üres hivatkozás, nem pedig a Undefined. A logikai értékek NULL értékét ellenőrzik. A karakterláncok ellenőrzik, hogy nincsenek-e szóközöktől eltérő karakterek

Formátum(, ) - Az átadott érték formázott karakterláncának fogadása. A formátum karakterlánc beállítása az 1C:Enterprise rendszer formátumkarakterláncának megfelelően történik.

Alkarakterlánc(, , ) - Ez a funkció arra szolgál, hogy egy karakterláncból kivonjon egy részstringet.

Vonal hossza() - A függvény egy karakterlánc hosszának meghatározására szolgál. A paraméter egy karakterlánc kifejezés

Vonal() - Ha egy tömböt adunk át paraméterként, a függvény egy karakterláncot ad vissza, amely az összes tömbelem karakterlánc-reprezentációját tartalmazza, "; " karakterekkel elválasztva. Ha egy értéktáblázatot adunk át paraméterként, a függvény egy karakterláncot ad vissza, amely az értéktáblázat összes sorát tartalmazza, az egyes sorok cellaábrázolásait ";" karakterekkel, a sorokat pedig újsorral választva el karakter. Ha egy elem karakterlánc-reprezentációja üres, akkor az ábrázolás helyett egy karakterlánc jelenik meg.

A közelgő 8.2.14-es kiadás fényében megpróbálom leírni az adatösszetétel rendszer néhány új funkcióját.

Nyissa meg az adatelrendezési diagramot, lehetőleg egy külső jelentésben, hogy megkönnyítse a szerkesztést.

Hozzáadunk egy lekérdezési típusú adatkészletet, és manuálisan vagy a lekérdezéstervező segítségével írunk egy egyszerű lekérdezést:

1. Állítson be egy kérést a beléptető rendszerben.

2. Állítsa be a számított mezőket a beléptető rendszerben

3. Konfigurálja az adatelrendezést a beállítások lapon

4. Indítsa el az 1C Enterprise 8.2.14. Nyissa meg a jelentést. Formálunk, kapunk.

Maguk az új funkciók leírása:

1. Az aktuális dátum()

Visszaadja a rendszer dátumát. Elrendezési elrendezés összeállításakor az elrendezésben szereplő összes kifejezésben a CurrentDate() függvény az aktuális dátum értékére kerül.

2. SZÁMÍTÁSI KIFEJEZÉS()

Szintaxis:

Kifejezés kiszámítása(,)

Leírás:

A funkció célja, hogy egy kifejezést valamilyen csoportosítással összefüggésben értékeljen.

A függvény figyelembe veszi a csoportosítások kiválasztását, de nem veszi figyelembe a hierarchikus kijelöléseket.

A függvény nem alkalmazható egy csoportra az adott csoportosítás csoportkiválasztásában. Például a Nómenklatúra csoportosítás kiválasztásakor nem használhatja a kifejezést CalculateExpression("Sum(SumTurnover)", "TotalTotal") > 1000. De egy ilyen kifejezés használható a hierarchikus kijelölésben.

Ha a záró rekord megelőzi a kezdő rekordot, akkor a részletező adatok kiszámításához és az összesített függvények kiszámításához nincsenek rekordok.

A végösszeg intervallumkifejezéseinek kiszámításakor (a Csoportosítás paraméter beállítása GrandTotal) azt feltételezzük, hogy nincsenek rekordok a részletes adatok és az összesített függvények kiszámításához.

Elrendezés linker függvénykifejezés generálásakor Kifejezés kiszámítása, ha a rendezési kifejezés olyan mezőket tartalmaz, amelyek nem használhatók a csoportosításhoz, lecseréli a függvényt Kifejezés kiszámítása tovább NULLA.

Lehetőségek

Típus: Vonal. A kiértékelendő kifejezés.

Típus: Vonal. Tartalmazza annak a csoportosításnak a nevét, amelynek kontextusában a kifejezést ki kell értékelni. Ha üres karakterláncot használ a csoportosítás neveként, akkor a számítás az aktuális csoportosítással összefüggésben történik. Ha a GeneralTotal karakterláncot használja csoportnévként, a számítás a végösszeggel összefüggésben történik. Ellenkező esetben a számítás az azonos nevű szülőcsoport környezetében történik.

Például:

Összeg(értékesítés.Össz.Forgalom)/Számítás("Összeg(Eladás.Össz.Forgalom)", "Összesen")

Ebben a példában az eredmény az összeg mezőnkénti aránya lesz Értékesítés.ÖsszegForgalom a rekordok csoportosítása ugyanazon mező összegére a teljes elrendezésben;

Típus: Vonal. A paraméter a következő értékeket veheti fel:

· teljes összeg— a kifejezés minden csoportosító rekordra kiszámításra kerül.

· Hierarchia— a kifejezés kiértékelésre kerül a szülő hierarchikus rekordra, ha van ilyen, és a teljes csoportosításra, ha nincs szülő hierarchikus rekord.

· Csoportosítás— a kifejezés az aktuális csoportcsoportosítási rekordhoz kerül kiértékelésre.

· GroupingNonResource— amikor egy függvényt egy csoportrekordhoz erőforrás szerint számítanak ki, a kifejezés az eredeti csoportosítás első csoportrekordjára kerül kiszámításra.

Függvény kiszámításakor CalculateExpression() jelentéssel GroupingNonResource az erőforrások szerint nem csoportosított csoportrekordok esetében a függvény kiszámítása ugyanúgy történik, mint ha a paraméter értéke egyenlő lenne az értékkel Csoportosítás.

Az adatösszetétel-elrendezés-készítő, amikor adatösszetétel-elrendezést generál, amikor olyan erőforrásmezőt ad ki, amellyel az elrendezés csoportosítása történik, egy kifejezést helyez el az elrendezésben, amelyet a függvény segítségével számít ki. CalculateExpression() , jelzi a paramétert GroupingNonResource. Más erőforrások esetében a szokásos erőforrás-kifejezések kerülnek az erőforrás-csoportosításba.

Típus: Vonal. Azt jelzi, hogy melyik rekordból kell kezdődnie a töredéknek, melyik összesített kifejezési függvényeket kell kiszámítani, és melyik rekordból kell az aggregált függvényeken kívüli mezőértékeket nyerni. Az érték a következők egyike lehet:

· Első

· Utolsó (utolsó)

· Előző

· Következő (Következő)

· Jelenlegi

· LimitingValue(BoundaryValue) LimitingValue

Típus: Vonal. Azt jelzi, hogy a töredéket melyik rekordra kell folytatni, amelyben a kifejezés összesített függvényeit kell kiszámítani. Az érték a következők egyike lehet:

· Első. Meg kell szerezni az első csoportosítási rekordot. A zárójelben lévő szó után megadhatunk egy kifejezést, melynek eredményét a rendszer eltolásként használja a csoportosítás elejétől. A kapott értéknek nullánál nagyobb egész számnak kell lennie. Például First(3) - a harmadik rekord fogadása a csoportosítás kezdetétől.

Ha az első rekord kívül esik a csoportosításon, akkor úgy kell tekinteni, hogy nincsenek rekordok. Például, ha 3 rekord van, és a First(4-et) szeretné megkapni, akkor a rendszer úgy tekinti, hogy nincsenek rekordok.

· Utolsó (utolsó). Be kell szereznie az utolsó csoportosítási rekordot. A zárójelben lévő szó után megadhatunk egy kifejezést, melynek eredményét a rendszer a csoportosítás végétől eltolásként használjuk. A kapott értéknek nullánál nagyobb egész számnak kell lennie. Például Last(3) - a harmadik rekord fogadása a csoport végétől.

Ha az utolsó rekord kívül esik a csoportosításon, akkor úgy kell tekinteni, hogy nincsenek rekordok. Például, ha 3 rekord van, és a Last(4) értéket szeretné megkapni, akkor a rendszer úgy tekinti, hogy nincsenek rekordok.

· Előző. Be kell szereznie az előző csoportosítási rekordot. A zárójelben lévő szó után megadhat egy kifejezést, amelynek eredménye az aktuális csoportosítási rekordtól való eltolás lesz. Például, Previous(2) - az előző lekérése az előző rekordból.

Ha az előző rekord túlmutat a csoportosításon (például a második csoportosítási rekordhoz meg kell kapnia az Előző(3)-t), akkor az első csoportosítási rekordot kapja meg.

A csoportosítási összeg előző rekordjának lekérésekor a rendszer az első rekordot kapja meg.

· Következő (Következő). Meg kell szereznie a következő csoportosítási rekordot. A zárójelben lévő szó után megadhat egy kifejezést, amelynek eredményét a rendszer az aktuális csoportosítási rekordhoz képest eltolásként használja. Például, Next(2) - a következő felvétel a következő rekordból.

Ha a következő rekord túlmegy a csoportosításon, akkor a rendszer úgy tekint, hogy nincsenek rekordok. Például, ha 3 bejegyzés van, és a harmadik a Next() -t kapja, akkor a rendszer úgy tekinti, hogy nincsenek bejegyzések.

Amikor a következő rekord érkezik a csoportosítási végösszeghez, akkor a rendszer úgy tekinti, hogy nincs rekord.

· Jelenlegi. Meg kell szerezni az aktuális rekordot.

Csoportosítási összeg lekérésekor az első rekordot kapjuk meg.

· LimitingValue(BoundaryValue). Rekord beszerzésének szükségessége a megadott értékkel. A szó után LimitingValue zárójelben meg kell jelölni azt a kifejezést, amelynek értékével a töredéket el akarjuk kezdeni, az első rendezési mezőt.

Az első rekord, amelynek a rendezési mező értéke nagyobb vagy egyenlő, mint a megadott érték, rekordként kerül visszaadásra. Például, ha az Időszak mezőt használja rendelési mezőként, és értéke 2010.01.01., 2010.02.01., 2010.03.01. Határérték(DátumIdő(2010, 1, 15)), akkor 2010. 02. 01. dátumú rekord érkezik.

Típus: Vonal. Vesszővel elválasztva felsorolja azokat a kifejezéseket, amelyek leírják a rendezési szabályokat. Ha nincs megadva, akkor a rendezés ugyanúgy történik, mint a csoportosításnál, amelyre a kifejezést kiértékeli. Minden kifejezés után megadhat egy kulcsszót Kor(növekvő sorrendben történő rendelés esetén), Csökkenő(csökkenő sorrendben történő rendelés esetén) és Automatikus rendelés(a referenciamezők sorrendbe állítása azon mezők szerint, amelyek alapján a hivatkozott objektumot rendezni szeretné). Szó Automatikus rendelés szóval is használható Kor, így a szóval Csökkenő.

Típus: Vonal. Ugyanaz, mint a paraméter Válogatás. Hierarchikus rekordok rendezésére szolgál. Ha nincs megadva, az elrendezés készítője a paraméterben megadott sorrendnek megfelelően generálja a rendezést Válogatás.

Típus: Vonal. Megadja az előző vagy a következő rekord meghatározásának szabályát abban az esetben, ha több rekord van azonos rendezési értékkel:

· Külön azt jelzi, hogy a rendszer a rendezett rekordok sorozatát használja az előző és a következő rekordok meghatározásához. Alapértelmezett érték.

· Együtt azt jelzi, hogy az előző és a következő rekordot a rendezési kifejezések értékei határozzák meg.

Például, ha az eredményül kapott sorozat dátum szerint van rendezve:

dátum Teljes név Jelentése
1 2001. január 01

Ivanov M.

10
2 2001. január 02 Petrov S. 20
3 2001. január 03 Sidorov R. 30
4 2001. január 04 Petrov S. 40

Külön, Ez:

§ a 3. bejegyzés korábbi bejegyzése a 2. bejegyzés lesz.

Aktuális, Aktuális(ennek megfelelően a paraméterek RajtÉs Vége), akkor a 2. rekord esetében ez a töredék egy 2. rekordból áll. A kifejezés 20 lesz.

Ha a paraméter értéke Együtt, Ez:

§ a 3. bejegyzés korábbi bejegyzése az 1. bejegyzés lesz.

§-a szerint, ha a számítási töredéket úgy határozzuk meg Aktuális, Aktuális(ennek megfelelően a paraméterek RajtÉs Vége), akkor a 2. rekord esetében ez a töredék a 2. és 3. rekordból áll. Kifejezés CalculateExpression("Összeg(érték)", Aktuális, Aktuális) egyenlő lesz 50-nel.

A paraméter értékének megadásakor egyenlő Együtt, paraméterekben RajtÉs Vége pozíciókhoz nem lehet eltolást megadni Első, Utolsó, Előző, Következő.

CalculateExpression("Összeg(Összegforgalom)", "Első", "Jelenlegi")

Ha az előző sorban szeretné megkapni a csoportosítási értéket, használja a következő kifejezést:

CalculateExpression("Arány", "Előző")

Lista új funkciók:

CalculateExpressionWithGroupArray(,) -

A függvény egy tömböt ad vissza, amelynek minden eleme tartalmazza egy kifejezés kiértékelésének eredményét a megadott mező alapján történő csoportosításhoz.

CalculateExpressionWithGroupValueTable(,) -

A függvény egy értéktáblázatot ad vissza, amelynek minden sora tartalmazza a kifejezések kiértékelésének eredményét a megadott mező alapján történő csoportosításhoz

ValueFilled() - Igazat ad vissza, ha az érték eltér ennek a típusnak az alapértelmezett értékétől, kivéve a NULL-t, és nem egy üres hivatkozás, nem pedig a Undefined. A logikai értékek NULL értékét ellenőrzik. A karakterláncok ellenőrzik, hogy nincsenek-e szóközöktől eltérő karakterek

Formátum(, ) - Az átadott érték formázott karakterláncának fogadása. A formátum karakterlánc beállítása az 1C:Enterprise rendszer formátumkarakterláncának megfelelően történik.

Alkarakterlánc(, , ) - Ez a funkció arra szolgál, hogy egy karakterláncból kivonjon egy részstringet.

Vonal hossza() - A függvény egy karakterlánc hosszának meghatározására szolgál. A paraméter egy karakterlánc kifejezés

Vonal() - Ha egy tömböt adunk át paraméterként, a függvény egy karakterláncot ad vissza, amely az összes tömbelem karakterlánc-reprezentációját tartalmazza, "; " karakterekkel elválasztva. Ha egy értéktáblázatot adunk át paraméterként, a függvény egy karakterláncot ad vissza, amely az értéktáblázat összes sorát tartalmazza, az egyes sorok cellaábrázolásait ";" karakterekkel, a sorokat pedig újsorral választva el karakter. Ha egy elem karakterlánc-reprezentációja üres, akkor az ábrázolás helyett egy karakterlánc jelenik meg.

1. Számítás (Eval)- célja egy kifejezés értékelése valamilyen csoportosítással összefüggésben. A funkció a platform korábbi verzióival való kompatibilitás érdekében használatos. Ehelyett a CalculateExpression függvény használata javasolt.

Szintaxis:
Számítás (kifejezés, csoportosítás, számítási típus)

Lehetőségek :

  • Kifejezés(Vonal). Számított kifejezést tartalmaz;
  • Csoportosítás(Vonal). Tartalmazza annak a csoportosításnak a nevét, amelynek kontextusában a kifejezést ki kell értékelni. Ha üres karakterláncot használ a csoportosítás neveként, akkor a számítás az aktuális csoportosítással összefüggésben történik. Ha a GrandTotal karakterláncot használja csoportnévként, a számítás a végösszeg kontextusában történik. Ellenkező esetben a számítás az azonos nevű szülőcsoport környezetében történik.
    Például:
    Sum(Eladás.Össz.Forgalom) / Calculate("Összeg(Eladás.ÖsszegForgalom)", "Összesen").
    Ebben a példában az eredmény a csoportosítási rekord "Sales.AmountTurnover" mezőjében szereplő összeg és a teljes elrendezésben szereplő azonos mező összegének aránya.
  • Számítás típusa(Vonal). Ha ez a paraméter "TotalTotal"-ra van állítva, a kifejezés az összes csoportosítási rekordra kiszámításra kerül. Ha a paraméter értéke "Csoportosítás", akkor az értékeket a rendszer az aktuális csoportosítási csoportrekordhoz számítja ki.
2. Kifejezés kiértékelése (EvalExpression) - egy kifejezés értékelésére szolgál valamilyen csoportosítással összefüggésben. A funkció figyelembe veszi a csoportosítások kiválasztását, de nem veszi figyelembe a hierarchikus kijelöléseket. A függvény nem alkalmazható egy csoportra az adott csoport csoportválasztásában.

Szintaxis:
Kifejezés kiszámítása (kifejezés, csoportosítás, számítás típusa, kezdete, vége, rendezése, hierarchikus rendezése, feldolgozásazonos sorrendértékek)

Lehetőségek :

  • Kifejezés(Vonal). Számított kifejezést tartalmaz;
  • Csoportosítás(Vonal). Tartalmazza annak a csoportosításnak a nevét, amelynek kontextusában a kifejezést ki kell értékelni. Ha üres karakterláncot használ a csoportosítás neveként, akkor a számítás az aktuális csoportosítással összefüggésben történik. Ha a GrandTotal karakterláncot használja csoportnévként, a számítás a végösszeg kontextusában történik. Ellenkező esetben a számítás az adott nevű szülőcsoport kontextusában történik;
  • Számítás típusa(Vonal). Ha ez a paraméter "TotalTotal"-ra van állítva, a kifejezés az összes csoportosítási rekordra kiszámításra kerül. Ha a paraméter értéke "Csoportosítás", akkor az értékek az aktuális csoportosítási csoportrekordhoz kerülnek kiszámításra. Ha a paraméter beállítása "Non-Resource Grouping", akkor egy csoportrekord függvényének erőforrásonkénti kiszámításakor a kifejezés az eredeti csoportosítás első csoportrekordjára kerül kiértékelésre. Amikor a CalculateExpression függvényt "GroupingNonResource" értékkel értékeli olyan csoportrekordokhoz, amelyek nem erőforrások szerinti csoportosítások, a függvény ugyanúgy kiértékelésre kerül, mint a "Csoportosítás" paraméter értékével. Az adatösszetétel-elrendezés-készítő az adatösszetétel-elrendezés létrehozásakor egy mező – egy erőforrás, amely csoportosítást hajt végre – kimenetekor az elrendezéshez a CalculateExpression függvény segítségével kiszámított kifejezést ad ki a megadott "GroupingNon-Resource" paraméterrel. Az erőforrások szerint csoportosított egyéb erőforrások esetében a rendszer normál erőforrás-kifejezéseket ad vissza. Ha a paraméter beállítása "Hierarchia", akkor a kifejezést ki kell értékelni a szülő hierarchikus rekordra, ha van, és a teljes csoportosításra, ha nincs szülő hierarchikus rekord. Az elrendezéskészítő, amikor kifejezést generál a % in Hierarchy Group mezőhöz, egy kifejezést hoz létre, amely tartalmazza az erőforrás-kifejezés és a CalculateExpression függvény kapcsolatát az aktuális, Hierarchia számítási típusú csoportosításhoz számítandó erőforrás-kifejezéshez.
  • Rajt. Azt jelzi, hogy melyik rekordból kell kezdődnie a töredéknek, melyik összesített kifejezési függvényeket kell kiszámítani, és melyik rekordból kell az aggregált függvényeken kívüli mezőértékeket nyerni. Egy karakterlánc, amely a következők egyikét tartalmazza:
    • "Első" Meg kell szerezni az első csoportosítási rekordot. A zárójelben lévő szó után megadhatunk egy kifejezést, melynek eredményét a rendszer eltolásként használja a csoportosítás elejétől. A kapott értéknek nullánál nagyobb egész számnak kell lennie. Például First(3) – a harmadik rekord fogadása a csoportosítás kezdetétől. Ha az első rekord kívül esik a csoportosításon, akkor úgy kell tekinteni, hogy nincsenek rekordok. Például, ha 3 rekord van, és a First(4-et) szeretné megkapni, akkor a rendszer úgy tekinti, hogy nincsenek rekordok.
    • "Utolsó" Be kell szereznie az utolsó csoportosítási rekordot. A zárójelben lévő szó után megadhatunk egy kifejezést, melynek eredményét a rendszer a csoportosítás végétől eltolásként használjuk. A kapott értéknek nullánál nagyobb egész számnak kell lennie. Például Last(3) – a harmadik rekord fogadása a csoport végétől. Ha az utolsó rekord kívül esik a csoportosításon, akkor úgy kell tekinteni, hogy nincsenek rekordok. Például, ha 3 rekord van, és a Last(4) értéket szeretné megkapni, akkor a rendszer úgy tekinti, hogy nincsenek rekordok.
    • "Előző" Be kell szereznie az előző csoportosítási rekordot. A zárójelben lévő szó után megadhat egy kifejezést, amelynek eredménye az aktuális csoportosítási rekordtól való eltolás lesz. Például, Previous(2) – az előző lekérése az előző rekordból. Ha az előző rekord kívül esik a csoportosításon (például a második csoportosítási rekord megköveteli az Előző(3) lekérését), akkor az első csoportosítási rekordot kapjuk meg. Amikor megkapja a csoportosítási összeg előző rekordját, az első rekordot kapja meg.
    • "Következő" Meg kell szereznie a következő csoportosítási rekordot. A zárójelben lévő szó után megadhat egy kifejezést, amelynek eredményét a rendszer az aktuális csoportosítási rekordhoz képest eltolásként használja. Például Next(2) – a következő felvétele a következő rekordból. Ha a következő rekord túlmegy a csoportosításon, akkor a rendszer úgy tekint, hogy nincsenek rekordok. Például, ha 3 bejegyzés van, és a harmadik bejegyzés Következőt kap, akkor a rendszer úgy tekinti, hogy nincsenek bejegyzések. Amikor a következő rekord érkezik a csoportosítási végösszeghez, akkor a rendszer úgy tekinti, hogy nincs rekord.
    • "Jelenlegi". Meg kell szerezni az aktuális rekordot. Csoportosítási összeg lekérésekor az első rekordot kapjuk meg.
    • "BoundaryValue". A rekord beszerzésének szükségessége a megadott értékkel. A zárójelben lévő LimitingValue szó után meg kell jelölni azt a kifejezést, amelynek értékével a töredéket el akarjuk indítani, az első rendezési mezőt. Az első rekord, amelynek a rendezési mező értéke nagyobb vagy egyenlő, mint a megadott érték, rekordként kerül visszaadásra. Például, ha az Időszak mezőt használja rendelési mezőként, és értéke 2010.01.01., 2010.02.01., 2010.03.01., és szeretné megkapni a LimitingValue(DateTime(2010 , 1, 15)), akkor 2010. 02. 01-i dátummal rögzítjük.
  • Vége. Azt jelzi, hogy melyik rekordhoz kell folytatni a töredéket, melyikben kell kiszámítani az összesített kifejezést. Egy karakterlánc, amely a következők egyikét tartalmazza:
    • "Első"
    • "Utolsó"
    • "Előző"
    • "Következő"
    • "Jelenlegi".
    • "BoundaryValue".
  • Válogatás. Karakterlánc, amely vesszővel elválasztva felsorolja azokat a kifejezéseket, amelyek irányába a sorozatot rendezni kell. Ha nincs megadva, akkor a rendezés ugyanúgy történik, mint a csoportosításnál, amelyre a kifejezést kiértékeli. Minden kifejezés után megadható a Növekvő kulcsszó növekvő sorrendben, Csökkenő, csökkenő sorrendben, Auto-Ordering, a referenciamezők azon mezők szerinti rendezéséhez, amelyek alapján a hivatkozott objektumot rendezni kívánja. Az Automatikus sorrend szó használható az Növekvő és a Csökkenő szóval is.
  • Hierarchikus rendezés. Hasonló a válogatáshoz. Hierarchikus rekordok rendezésére szolgál. Ha nincs megadva, az elrendezés-összeállító a Rendezés paraméterben megadott sorrend szerint állítja elő a sorrendet.
  • A rendelés azonos értékeinek feldolgozása. Egy karakterlánc, amely a következők egyikét tartalmazza:
    • Az „együtt” azt jelenti, hogy rendezett rekordok sorozatát használják az előző és a következő rekordok meghatározására;
    • A "külön" azt jelenti, hogy az előző és a következő rekordot a rendezési kifejezések értékei alapján határozzák meg;
    Például, ha az eredményül kapott sorozat dátum szerint van rendezve:
    1. 2001. január 01. Ivanov M. 10
    2. 2001. január 2. Petrov S. 20
    3. 2001. január 02. Sidorov R. 30
    4. 2001. január 03. Petrov S. 40
    Ha a "Külön" sorrend azonos értékeinek feldolgozását használja, a 3. rekord előző rekordja a 2. rekord lesz, az "Együtt" használatakor pedig az 1. rekord. És az aktuális rekord töredéke a 2. rekordhoz a "Külön" esetén. a 2. rekord lesz, az „Együtt” pedig a 2. és a 3. rekord. Így a „Külön” aktuális rekord összege 20 lesz, az „Együtt” pedig 50. Ha az „Együtt” van megadva a Start és a 3. Végparaméterek esetén nem adhat meg eltolást az „Első”, „Utolsó”, „Előző”, „Következő” pozíciókhoz. Az alapértelmezett érték a "Külön".
Példa:
Egy csoportosítási rekord "Sales.AmountTurnover" mezőjéhez tartozó összeg és ugyanazon mező összegének arányának megszerzése a teljes elrendezésben:
Sum(Sales.SumForgalom) / CalculateExpression("Összeg(Eladások.ÖsszegForgalom)", "Összesen").

Ez a példa kiszámítja az aktuális hierarchia értékét:
Választás
Amikor a Level() > 0
Ezután EvaluateExpression("Referencia", "Hierarchia")
Ellenkező esetben Null
Vége

Megjegyzések:
A függvény figyelembe veszi a csoportosítások kiválasztását, de nem veszi figyelembe a hierarchikus kijelöléseket. A függvény nem alkalmazható egy csoportra az adott csoportosítás csoportkiválasztásában. Például a Nómenklatúra csoportosítása során nem használhatja a CalculateExpression("Sum(SumTurnover)", "TotalTotal") > 1000 kifejezést. De egy ilyen kifejezés használható a hierarchikus kijelölésben. Ha a záró rekord megelőzi a kezdő rekordot, akkor a részletező adatok kiszámításához és az összesített függvények kiszámításához nincsenek rekordok. A végösszeg intervallumkifejezéseinek kiszámításakor (a Csoportosítás paraméter értéke "GrossTotal") feltételezhető, hogy nincsenek rekordok a részletes adatok és az összesített függvények kiszámításához. A CalculateExpression függvény kifejezésének generálásakor az elrendezés-összeállító, ha a rendezési kifejezés olyan mezőket tartalmaz, amelyek nem használhatók a csoportosításhoz, a CalculateExpression függvényt NULL-ra cseréli.

3. Kifejezés értékelése csoporttömbbel (EvalExpression csoporttömbbel) - a függvény egy tömböt ad vissza, amelynek minden eleme tartalmazza a megadott mező szerinti csoportosításhoz szükséges kifejezés kiszámításának eredményét.

Szintaxis:
CalculateExpressionWithGroupArray (Expression, GroupFieldExpressions, SelectRecords, SelectGroups)

Lehetőségek :

  • Kifejezés(String) - a kiértékelendő kifejezés. Például: "Amount(AmountTurnover)";
  • FieldExpressionsGroups
  • Rekordok kiválasztása
  • Csoportok kiválasztása- csoportrekordokra alkalmazott kiválasztás. Például: "Összeg(Összegforgalom) > &Paraméter1".
Példa:
Maximum(CalculateExpressionWithGroupArray("Összeg(Forgalomösszeg)", "Vásárló fél"));


Amikor az elrendezéskészítő kifejezéseket generál olyan egyéni mező megjelenítéséhez, amelynek kifejezése csak a CalculateArrayWithGroup függvényt tartalmazza, a megjelenítési kifejezést úgy állítja elő, hogy a nézetek és az adatok által megjelenített adatok rendezve legyenek.
Például egy egyéni mezőhöz a következő kifejezéssel:
CalculateExpressionWithGroupArray("Összeg(Forgalomösszeg)", "Konferens fél")
Az elrendezéskészítő a következő kifejezést generálja a kimenethez:
ConnectRows(Array(Order(CalculateExpressionWithGroupingValueTable("View(Sum(DataSet.AmountTurnover)), Amount(DataSet.AmountTurnover)", "DataSet.Account"), "2")))

4. Kifejezés kiszámítása GroupValueTable segítségével (EvalExpressionWithGroupValueTable) - a függvény egy értéktáblázatot ad vissza, amelynek minden eleme tartalmazza a megadott mező szerinti csoportosításhoz szükséges kifejezés kiszámításának eredményét.

Szintaxis:
CalculateExpressionWithGroupValueTable (kifejezés, csoportmező-kifejezések, rekordok kiválasztása, csoportkijelölés)

Lehetőségek :

  • Kifejezés(String) - a kiértékelendő kifejezés. Egy sor több, vesszővel elválasztott kifejezést tartalmazhat. Minden kifejezés után lehet egy opcionális AS kulcsszó és az értéktábla oszlopának neve. Például: "Szerződés fél, Összeg (Forgalomösszeg) Értékesítési mennyiségként."
  • FieldExpressionsGroups- csoportosítási mezők kifejezései, vesszővel elválasztva. Például "partner, fél";
  • Rekordok kiválasztása- a részletrekordokra alkalmazott kifejezés. Például: "Jelző törlése = hamis." Ha ez a paraméter összesítő függvényt használ, akkor az adatok összeállításakor hiba történik;
  • Csoportok kiválasztása- csoportrekordokra alkalmazott kiválasztás. Például: "Összeg(Összegforgalom) > &Paraméter1".
Példa:
CalculateExpressionWithGroupValueTable("Counterparty AS partner, Amount(AmountTurnover) ASSalesVolume", "Counterparty")

Ennek a függvénynek az eredménye egy értéktáblázat lesz a Counterparty és Sales Volume oszlopokkal, amely tartalmazza a partnereket az értékesítési volumenükkel.
Az elrendezéskészítő az elrendezés létrehozásakor a függvényparamétereket adatelrendezési elrendezési mezőkké alakítja. Például a Fiók mezőt a rendszer DataSet.Account-ra konvertálja.
Például egy egyéni mező a következő kifejezéssel:
CalculateExpressionWithGroupValueTable("Számla, Összeg(Forgalomösszeg)", "Számla")
Az elrendezéskészítő a következő kifejezést generálja a kimenethez:
ConnectRows(GetPart(Order(CalculateExpressionWithGroupingValueTable("DataSet.Account, DataSet.AccountRepresentation, Sum(DataSet.AmountTurnover), View(DataSet.AmountTurnover), DataSet.OrderingField), ".A,DataS", ".5 ), "2, 4"))

5. Szint - a funkciót az aktuális felvételi szint elérésére tervezték.

Szintaxis:
Szint()

Példa:
Szint()

6. SequenceNumber - kapja meg a következő sorozatszámot.

Szintaxis:
NumberByOrder()

Példa:
NumberByOrder()

7. SequenceNumberInGrouping - az aktuális csoportosítás következő sorszámát adja vissza.

Példa:
NumberByOrderInGroup()

8. Formátum - megkapja az átadott érték formázott karakterláncát.

Szintaxis:
Formátum (érték, formátumkarakterlánc)

Lehetőségek :

  • Jelentése- a formázandó kifejezés;
  • FormatString- a formátum karakterlánc az 1C:Enterprise formátum karakterláncának megfelelően van beállítva.
Példa:
Formátum (Számlák.Dokumentum összege, "NPV=2")

9. BeginOfPeriod

Szintaxis:
Kezdési időszak (dátum, időszak típusa)

Lehetőségek :

  • dátum(Időpontja). Meghatározott dátum;
  • Időszak típusa
Példa:
StartPeriod(DátumIdő(2002, 10, 12, 10, 15, 34), "Hónap")
Eredmény: 2002.10.01. 0:00:00

10. EndOfPeriod - a funkció egy adott dátum kiválasztására szolgál egy adott dátumból.

Szintaxis:
Befejezési időszak (dátum, időszak típusa)

Lehetőségek :

  • dátum(Időpontja). Meghatározott dátum;
  • Időszak típusa(Vonal). A következő értékek egyikét tartalmazza: Perc; Óra; Nap; Egy hét; Hónap; Negyed; Év; Évtized; Fél év.
Példa:
EndPeriod(DátumIdő(2002, 10, 12, 10, 15, 34), "Hét")
Eredmény: 2002.10.13. 23:59:59

11. AddKDate (DateAdd) - a funkció célja, hogy egy bizonyos értéket adjon a dátumhoz.

Szintaxis:
AddToDate (kifejezés, növekménytípus, nagyság)

Lehetőségek :

  • Kifejezés(Időpontja). Eredeti dátum;
  • Típus Nagyítás(Vonal). A következő értékek egyikét tartalmazza: Perc; Óra; Nap; Egy hét; Hónap; Negyed; Év; Évtized; Fél év.
  • Nagyságrend(Szám). Mennyivel kell növelni a dátumot, a tört részt figyelmen kívül hagyja.
Példa:
AddToDate(DateTime(2002, 10, 12, 10, 15, 34), "Hónap", 1)
Eredmény: 11/12/2002 10:15:34

12. Dátumkülönbség - a funkciót úgy tervezték, hogy megkapja a különbséget két dátum között.

Szintaxis:
Különbségdátum (1. kifejezés, 2. kifejezés, eltérés típusa)

Lehetőségek :

  • Kifejezés1(Időpontja). Kivont dátum;
  • Kifejezés2(Időpontja). Eredeti dátum;
  • TypeDifference(Vonal). A következő értékek egyikét tartalmazza: Second; Perc; Óra; Nap; Hónap; Negyed; Év.
Példa:
DÁTUM KÜLÖNBSÉG(DÁTUMIDŐ(2002, 10, 12, 10, 15, 34),
DATETIME(2002, 10, 14, 9, 18, 06), "DAY")
Eredmény: 2

13. Alkarakterlánc - ezt a funkciót arra tervezték, hogy egy karakterláncból kivonjon egy részstringet.

Szintaxis:
Alkarakterlánc (karakterlánc, pozíció, hossz)

Lehetőségek :

  • Vonal(Vonal). A karakterlánc, amelyből az alkarakterlánc ki lett bontva;
  • Pozíció(Szám). A karakter pozíciója, ahonnan a karakterláncból kinyerendő részkarakterlánc kezdődik;
  • Hossz(Szám). A lefoglalt részkarakterlánc hossza.
Példa:
SUBSTRING (Fiókok. Cím, 1, 4)

14. StringLength - a függvény egy karakterlánc hosszának meghatározására szolgál.

Szintaxis:
Karakterlánchossz (karakterlánc)

Paraméter:

  • Vonal(Vonal). Egy karakterlánc, amelynek hossza meghatározott.
Példa:
Sor (partnerek. Cím)

15. Év- ez a funkció arra szolgál, hogy kivonja az évet a dátum típusú értékből.

Szintaxis:
év (dátum)

Paraméter:

  • dátum(Időpontja). Az év meghatározásának dátuma.
Példa:
ÉV(Költség.Dátum)

16. Negyed - ez a funkció arra szolgál, hogy kivonja a negyed számot egy dátum típusú értékből. A negyedszám általában 1 és 4 között van.

Szintaxis:
negyedév (dátum)

Paraméter:

  • dátum(Időpontja). A negyedév meghatározásának dátuma
Példa:
negyed (Költség.Dátum)

17. Hónap - ezt a funkciót arra tervezték, hogy kivonja a hónap számát a dátum típusú értékből. A hónap száma általában 1 és 12 között van.

Szintaxis:
hónap (dátum)

Paraméter:

  • dátum(Időpontja). A hónap meghatározásának dátuma.
Példa:
HÓNAP (Költség.Dátum)

18. Az év napja (DayOfYear) - ezt a funkciót arra tervezték, hogy a dátum típusú értékből megkapja az év napját. Az év napja általában 1 és 365 (366) között van.

Szintaxis:
Az év napja (dátum)

Paraméter:

  • dátum(Időpontja). Az a dátum, amelyre az év napját meghatározzák.
Példa:
NAP (Költségszámla.Dátum)

19. nap- ez a funkció a hónap napjának a Dátum típusú értékből való lekérésére szolgál. A hónap napja általában 1 és 31 között van.

Szintaxis:
nap (dátum)

Paraméter:

  • dátum(Időpontja). A hónap napjának meghatározásának dátuma.
Példa:
NAP (Költség.Dátum)

20. hét - ez a funkció arra szolgál, hogy a Dátum típusú értékből megkapja az év hét számát. Az év hetei 1-től kezdődően vannak számozva.

Szintaxis:
hét (dátum)

Paraméter:

  • dátum(Időpontja). A hétszámok meghatározásának dátuma.
Példa:
HÉT (Költség.Dátum)

21. Hétköznap - ez a funkció a hét napjának a Dátum típusú értékből való lekérésére szolgál. A hét szokásos napja 1 (hétfő) és 7 (vasárnap) között van.

Szintaxis:
A hét napja (dátum)

Paraméter:

  • dátum(Időpontja). A hét napjának meghatározásának dátuma.
Példa:
A HÉT NAPJA (költségszámla dátuma)

22. Óra- ezt a funkciót úgy tervezték, hogy a nap óráját egy Dátum típusú értékből lekérje. A nap órái 0 és 23 között mozognak.

Szintaxis:
óra (dátum)

Paraméter:

  • dátum(Időpontja). Az a dátum, amelyre a nap órája meghatározásra kerül.
Példa:
ÓRA (Költség.Dátum)

23. Perc - ez a funkció arra szolgál, hogy a Dátum típusú értékből az óra percét kapja meg. Az óra perce 0 és 59 között mozog.

Szintaxis:
perc (dátum)

Paraméter:

  • dátum(Időpontja). Az óra percének meghatározásának dátuma.
Példa:
PERC (Költség.Dátum)

24. Második - ezt a funkciót úgy tervezték, hogy a Dátum típusú értékből megkapja a perc másodpercét. A perc másodperce 0 és 59 között mozog.

Szintaxis:
Második (dátum)

Paraméter:

  • dátum(Időpontja). A dátum, amelyre a perc másodpercei meghatározásra kerülnek.
Példa:
MÁSODIK(költség.dátum)

25. Öntött - ez a funkció arra szolgál, hogy kivonjon egy típust egy olyan kifejezésből, amely tartalmazhat összetett típust. Ha a kifejezés a szükséges típustól eltérő típust tartalmaz, a NULL értéket adja vissza.

Szintaxis:
Expressz (kifejezés, típusjelzés)

Lehetőségek :

  • Kifejezés- a konvertálandó kifejezés;
  • Típusjelzés(Vonal). Típus karakterláncot tartalmaz. Például: "Szám", "Karakterlánc" stb. Ez a sor a primitív típusokon kívül tartalmazhatja a tábla nevét is. Ebben az esetben megkísérlik a megadott táblára való hivatkozást kifejezni.
Példa:
Express(Data.Props1, "Szám(10,3)")

26. IsNull (IsNull) - ez a függvény a második paraméter értékét adja vissza, ha az első paraméter értéke NULL. Ellenkező esetben az első paraméter értéke kerül visszaadásra.

Szintaxis:
IsNull(1. kifejezés, 2. kifejezés)

Lehetőségek :

  • Kifejezés1- ellenőrizendő érték;
  • Kifejezés2- visszatérési érték, ha az 1. kifejezés NULL.
Példa:
IgenNULL(összeg(értékesítés.összegforgalom), 0)

27.ACos- kiszámolja az ív koszinuszát radiánban.

Szintaxis:
ACos (kifejezés)

Paraméter:

  • Kifejezés(Szám). Az a koszinusz érték (a -1 ... 1 tartományban), amellyel a szöget meghatározzák.
28.ASin- kiszámítja az arcszinust radiánban.

Szintaxis:
ASin (kifejezés)

Paraméter:

  • Kifejezés(Szám). Az a szinuszérték (a -1 ... 1 tartományban), amellyel a szöget meghatározzák.
29.ATan- kiszámítja az arctangenst radiánban.

Szintaxis:
ATan (kifejezés)

Paraméter:

  • Kifejezés(Szám). Az érintőérték, amellyel a szöget meghatározzák.
30. Cos- koszinusz számít.

Szintaxis:
Cos (kifejezés)

Paraméter:

  • Kifejezés
31. Exp- az e szám hatványra emelése.

Szintaxis:
Exp (kifejezés)

Paraméter:

  • Kifejezés(Szám). A fokozat jelentése.
32.Napló- kiszámítja a természetes logaritmust.

Szintaxis:
Napló (kifejezés)

Paraméter:

  • Kifejezés
33.Napló10- kiszámolja X logaritmusát 10-es alapra.

Szintaxis:
Log10 (kifejezés)

Paraméter:

  • Kifejezés(Szám). Az eredeti szám nagyobb, mint 0.
34. Pow- hatványozás.

Szintaxis:
Pow (bázis, jelző)

Lehetőségek :

  • Bázis(Szám). A hatványozás műveletének alapja.
  • Index(Szám). Kitevő.
35. Bűn- kiszámolja a szinust.

Szintaxis:
Bűn (kifejezés)

Paraméter:

  • Kifejezés(Szám). Radiánban van megadva.
36. Sqrt- kiszámolja a négyzetgyököt.

Szintaxis:
Sqrt (kifejezés)

Paraméter:

  • Kifejezés(Szám). Nem negatív szám.
37. Tan- kiszámolja az érintőt.

Szintaxis:
barna (kifejezés)

Paraméter:

  • Kifejezés(Szám). Az a szinuszérték, amellyel a szöget meghatározzák.
38. Kerek- az eredeti számot a kívánt bitmélységre kerekíti. A kerekítési mód szabványos (1,5 mint 2).

Szintaxis:
Env (kifejezés, bitmélység)

Lehetőségek :

  • Kifejezés(Szám). Eredeti szám;
  • Bit mélység(Szám). A kerekítendő tizedesjegyek száma.
39. Int- levágja a szám tört részét.

Szintaxis:
Objektum (kifejezés)

Paraméter:

  • Kifejezés(Szám). Törtszám.
40. Közös modulok funkciói

Az adatösszeállítási motor kifejezése tartalmazhat globális közös konfigurációs modulok függvényeinek hívását. Az ilyen függvények meghívásához nincs szükség további szintaxisra.

Példa:
Rövidített név (Dokumentumok.Link, Dokumentumok.Dátum, Dokumentumok.Szám)

Ebben a példában az "AbbreviatedName" függvényt az általános konfigurációs modulból hívják meg.
Vegye figyelembe, hogy a közös modulfunkciók használata csak akkor engedélyezett, ha a megfelelő adatösszetétel-feldolgozó paraméter meg van adva.
Ezenkívül a közös modulok funkciói nem használhatók egyéni mezőkifejezésekben.

41. Reszentáció - ez a függvény egy nem primitív típus átadott értékének karakterlánc reprezentációját adja vissza. Primitív típusú értékek esetén magát az értéket adja vissza.

<Пустое значение>".

Példa:
Bemutatás (partner)

42. Húr - ez a függvény az átadott értéket karaktersorozattá alakítja.

Ha egy tömböt vagy egy értéktáblázatot használunk paraméterként, a függvény egy karakterláncot ad vissza, amely a tömb összes elemének karakterláncát tartalmazza, ";" karakterekkel elválasztva. Ha bármely elemnek üres karakterlánc-ábrázolása van, akkor a "<Пустое значение>".

Példa:
sor (eladási dátum)

43. ValueIsFilled

NULL értékek esetén az Undefined mindig False értéket ad vissza.
Logikai értékek esetén mindig igaz értéket ad vissza.
Más típusok esetén igazat ad vissza, ha az érték eltér az adott típus alapértelmezett értékétől.

Példa:
ValueFilled (Szállítási dátum)

44. LevelInGroup - ez a funkció az aktuális rögzítési szintet kapja a csoportosításhoz képest.

Hierarchikus csoportosításban használható rekord beágyazási szintjének meghatározására.

Példa:
LevelInGroup()

45. ValueType

Szintaxis:
ValueType (kifejezés)

Paraméter:

  • Kifejezés(Vonal). Karakterlánc érték típusa.
Típus típusú értéket ad vissza, amely tartalmazza a függvényparaméter értéktípusát.

Az adatösszetételi séma (DCS) megfelelő használata lehetővé teszi, hogy:

  • jelentősen csökkenti a jelentés elkészítéséhez szükséges időt;
  • megszünteti a felügyelt űrlapkezelő létrehozásának szükségességét;
  • gyönyörű eredményt kaphat a felhasználó további testreszabásának lehetőségével.

De nem minden fejlesztő használja ki a legtöbbet a rendszer képességeiből, mivel nem minden beállítása nyilvánvaló és intuitív. Különösen sokan tudják, hogy az 1C SKD-ben vannak számított mezők, azonban nem értik teljesen a használatuk körét és a velük való munkavégzés módszereit.

Mi az a számított mező

A legtöbb esetben az elrendezési diagram adatforrása egy lekérdezés. Elvileg magán a lekérdezésen belül már használhatunk különféle képleteket, konstrukciókat és kifejezéseket. Felmerül a természetes kérdés: miért van szükségünk duplikált funkcionalitásra?

Az a tény, hogy a beléptető rendszer több, mint egy lekérdezés eredményének megjelenítése, és ez jól látható a diagramkészítési űrlapon (1. ábra).

A számított mezők lehetővé teszik bizonyos műveletek végrehajtását a generált adatkészlettel:

  • Egy kéréssel fogadott adatok tömbjének kiírása egy adott cellába, több sort egyetlen cellába kombinálva;
  • Hozzáférés az általános modul export funkcióihoz;
  • Hajtsa végre az elrendezési nyelvhez elérhető különféle kifejezéseket, és használja a speciális EvaluateExpression függvényeket.

Menjünk végig ezen a listán.

Értékek tömbje egy cellában

Szimuláljunk egy olyan helyzetet, amikor külön cellában kell megkapni az összes bizonylatszámot egy partnerhez:


Így létrehoztunk egy további számítási mezőt a sémánkban;


Amint a fenti példából látható, a számított mezők hozzáadása és feldolgozása nem okoz nehézséget. Két függvényt használtunk: Array() és ConnectRows().

Néhány szó az utóbbiról. A tömb azonosítóját, értékeket vagy értéket jelző első paraméteren kívül további kettő állítható be:

  1. Elemelválasztó – jelzi, hogy melyik karakter választja el az egyik tömbelemet vagy az értéktáblázat egy sorát a másiktól (esetünkben ezt a paramétert kihagytuk, és alapértelmezés szerint sortörést rendeltünk hozzá);
  2. Oszlopelválasztó – az értéktáblázat oszlopainak elválasztására szolgáló karakter (alapértelmezés szerint a pontosvessző használatos).

Egy közös modul export funkcióinak elérése

Egy közös modul funkciói adatforrásként szolgálhatnak egy számított mező kitöltéséhez.

Néhány fontos szempont:

  • A függvénynek exportálhatónak kell lennie;
  • Ha egy függvény egy közös modulban található „Globális” attribútumkészlettel, akkor közvetlenül név szerint hívja meg, ellenkező esetben a függvényt a „Megosztott modulnév” séma szerint kell meghívni. "A meghívandó függvény neve."

Használati példaként ugyanazt az átvételi bizonylatok kérését vesszük, és külön oszlopban jelenítjük meg. Magát a kérést nem írjuk le, térjünk át közvetlenül a számított mezőkre:


Így azt látjuk, hogy szinte bármilyen adatfeldolgozó inicializálható a beléptető rendszerből, ami jelentősen kibővíti a séma felhasználási lehetőségeit.

Elrendezési nyelvi kifejezések

A fejlesztő munkájában gyakran előfordul olyan helyzet, amikor az ACS mezőben meg kell jeleníteni a felosztás eredményét:

  1. Számítsa ki a cikk átlagos költségét;
  2. Mindenféle kamat;
  3. Átlagkereset számítások stb.

A problémák elkerülése érdekében ezekben az esetekben célszerű egy 0-val való osztási tesztet beírni a számított mezőbe.

Ezt a „Válassza ki, mikor….akkor… különben… Vége” konstrukcióval lehet megtenni.

A végén néhány szó a meglehetősen új CalculateExpression() függvényről. Segítségével különösen kiszámíthatja az aktuális és az előző sorok közötti költségeltéréseket, halmozott egyenleget stb.

Tegyük fel, hogy a bizonylat összegét kérésünk előző sorából kaphatja meg, ha a "Kifejezés" mezőben megadja a Kifejezés kiszámítása ("Dokumentum összege", "Előző összeg") értéket.