Számított mezők a kérelemben 1s. Adatösszetételi rendszer kifejezési nyelve (1Cv8). Nem NULL érték ellenőrzésének művelete
Adatösszetételi rendszer kifejezési nyelve
Az adatösszeállítási rendszer kifejezési nyelve a rendszer különböző részein használt kifejezések rögzítésére szolgál.
A kifejezések a következő alrendszerekben használatosak:
- adatösszetétel séma - számított mezők, összes mezők, linkkifejezések stb. leírásához;
- adatösszetételi beállítások – egyéni mezőkifejezések leírására;
- adatösszetétel elrendezés - adatkészlet-reláció kifejezések leírására, elrendezési paraméterek leírására stb.
Szó szerint
A kifejezés tartalmazhat literálokat. A következő típusú lehetséges literálok:
- Vonal;
- Szám;
- Dátum;
- Boolean.
Vonal
Egy string literál a "" karakterekkel van írva, például:
"String literal"
Ha a """ karaktert kell használnia a string literálon belül, akkor két ilyen karaktert kell használnia.
Például:
"szó szerinti ""idézőjelben""
Szám
A szám szóközök nélkül, decimális formátumban kerül felírásra. A tört részt a "." karakter választja el. Például:
10.5 200
dátum
A dátum típusú literál a DATETIME billentyű literál használatával írható. Ezt követően kulcsszó, zárójelben, vesszővel elválasztva, az év, hónap, nap, óra, perc, másodperc szerepel. Időjelzés nem szükséges.
Például:
DATETIME(1975, 1, 06) - 1975. január 6. DATETIME(2006, 12, 2, 23, 56, 57) - 2006. december 2., 23:56:57 másodperc, 23:56:57 másodperc
logikai érték
A logikai értékeket igaz (igaz), hamis (hamis) literálokkal írhatjuk fel.
Jelentése
Más típusú literálok (rendszerfelsorolások, előre definiált adatok) megadásához a Value kulcsszót kell használni, amelyet a literál neve követ zárójelben.
Érték (Számlatípus. Aktív)
Műveletek a számokkal
Unary -
Ez a művelet egy szám előjelének megfordítására szolgál. Például:
Értékesítés. Mennyiség
Unary +
Ez a művelet nem hajt végre műveletet a számon. Például:
Értékesítés. Mennyiség
Bináris -
Ez a művelet két szám különbségének kiszámítására szolgál. Például:
Egyenlegek és Forgások. Kezdőegyenleg - Egyenlegek és Forgások. Végegyenlegek és Forgások. Kezdőegyenleg - 100 400 - 357
Bináris +
Ez a művelet két szám összegének kiszámítására szolgál. Például:
Egyenlegek és Forgások. Kezdeti egyenleg + egyenlegek és forgalom. forgalmi egyenlegek és forgalom. kezdeti egyenleg + 100 400 + 357
Munka
Ez a művelet két szám szorzatának kiszámítására szolgál. Például:
Nómenklatúra Ár * 1,2 2 * 3,14
Osztály
Ezt a műveletet úgy tervezték, hogy megkapja az egyik operandus másikkal való osztásának eredményét. Például:
Nómenklatúra Ár / 1,2 2 / 3,14
A hadosztály maradéka
Ezt a műveletet úgy tervezték, hogy megkapja az egyik operandus másikkal való felosztásának maradékát. Például:
Nómenklatúra Ár % 1,2 2 % 3.14
Műveletek húrokon
Összefűzés (bináris +)
Ez a művelet két karakterlánc összefűzésére szolgál. Például:
Nómenklatúra.Cikk + “: ”+ Nómenklatúra.Név
Tetszik
Ez a művelet ellenőrzi, hogy egy karakterlánc megfelel-e az adott mintának.
A LIKE operátor értéke TRUE, ha az érték<Выражения>egyezik a mintával, egyébként HAMIS.
A következő karakterek a<Строке_шаблона>más jelentéssel bír, mint egy másik karakter a karakterláncban:
- % - százalék: nulla vagy több tetszőleges karaktert tartalmazó sorozat;
- _ - aláhúzás: egy tetszőleges karakter;
- […] – egy vagy több karakter szögletes zárójelek: egyetlen karakter, a szögletes zárójelben felsoroltak bármelyike. A felsorolás tartalmazhat tartományokat, például a-z, ami a tartományon belül bármely karaktert jelent, beleértve a tartomány végeit is;
- [^…] - szögletes zárójelben egy tagadó ikon, amelyet egy vagy több karakter követ: bármely karakter, amely nem szerepel a tagadó ikon után;
Minden más szimbólum önmagát jelenti, és nem hordoz semmilyen további terhelést. Ha a felsorolt karakterek valamelyikét önmagának kell írni, akkor ezt meg kell előznie<Спецсимвол>Az ESCAPE kulcsszó után megadott.
Például sablon
„%ABC[abc]\_abc%” KÜLÖNLEGES KARAKTER „\”
egy részstringet jelent, amely karaktersorozatból áll: A betűk; B betűk; B betűk; egy számjegy; az a, b, c vagy d betűk egyike; aláhúzás karakter; a betűk; b betűk; betűk be. Sőt, ez a sorozat a karakterlánc tetszőleges pozíciójából kiindulva is elhelyezhető.
Összehasonlító műveletek
Egyenlő
Ez a művelet két operandus összehasonlítására szolgál az egyenlőség érdekében. Például:
Sales.Counterparty = Sales.NomenclatureMainSupplier
Nem egyenlő
Ez a művelet két operandus összehasonlítására szolgál az egyenlőtlenség szempontjából. Például:
Értékesítés.Vállalkozó<>Értékesítés.NómenklatúraFőszállító
Kevésbé
Ez a művelet annak ellenőrzésére szolgál, hogy az első operandus kisebb-e, mint a második. Például:
Sales Current.Amount< ПродажиПрошлые.Сумма
Több
Ez a művelet annak ellenőrzésére szolgál, hogy az első operandus nagyobb-e, mint a második. Például:
SalesCurrent.Amount > SalesPast.Amount
Kisebb vagy egyenlő
Ez a művelet annak ellenőrzésére szolgál, hogy az első operandus kisebb vagy egyenlő-e a másodiknál. Például:
Sales Current.Amount<= ПродажиПрошлые.Сумма
Több vagy egyenlő
Ez a művelet annak ellenőrzésére szolgál, hogy az első operandus nagyobb vagy egyenlő-e a másodiknál. Például:
SalesCurrent.Amount >= SalesPast.Amount
B művelet
Ez a művelet ellenőrzi, hogy van-e érték az átadott értéklistában. A művelet eredménye igaz, ha az értéket megtalálja, vagy hamis, ha nem. Például:
B elem (&item1, &item2)
Művelet annak ellenőrzésére, hogy létezik-e érték az adatkészletben
A művelet ellenőrzi, hogy van-e érték a megadott adatkészletben. Az érvényesítési adatkészletnek egy mezőt kell tartalmaznia. Például:
Értékesítés. Vállalkozó vállalkozóknak
NULL ellenőrzési művelet
Ez a művelet igazat ad vissza, ha az érték NULL. Például:
Értékesítés. Vállalkozó NULL
Nem NULL érték ellenőrzésének művelete
Ez a művelet igazat ad vissza, ha az érték nem NULL. Például:
Értékesítés. A vállalkozó NEM NULL
Boole-műveletek
A logikai műveletek elfogadják a Boolean típusú kifejezéseket operandusként.
A művelet NEM
A NOT operátor igaz értéket ad vissza, ha az operandusa False, és hamis értéket ad vissza, ha az operandusa True. Például:
NOT Document.Consignee = Dokumentum.Feladó
Művelet ÉS
Az ÉS művelet igazat ad vissza, ha mindkét operandus igaz, és False értéket ad vissza, ha az egyik operandus hamis. Például:
Document.Consignee = Document.Consignor ÉS Document.Consignee = &Vállalkozó
VAGY művelet
Az VAGY művelet True értéket ad vissza, ha az egyik operandus igaz, és False értéket, ha mindkét operandus hamis. Például:
Document.Consignee = Document.Consignor VAGY Document.Consignee = &Vállalkozó
Összesített függvények
Az összesítő függvények bizonyos műveleteket hajtanak végre egy adathalmazon.
Összeg
A Sum aggregate függvény az összes részletrekord argumentumaként átadott kifejezések értékeinek összegét számítja ki. Például:
Összeg(Eladás.Összegforgalom)
Mennyiség
A Count függvény a nem nulla értékek számát számolja. Például:
Mennyiség (értékesítés. Vállalkozó)
Különbözőek száma
Ez a függvény megszámolja a különböző értékek számát. Például:
Mennyiség (különféle értékesítés. Vállalkozó)
Maximális
A függvény a maximális értéket kapja. Például:
Maximum (Maradék. Mennyiség)
Minimális
A függvény a minimális értéket kapja. Például:
Minimum (egyenleg. Mennyiség)
Átlagos
A függvény a nem nulla értékek átlagát kapja. Például:
Átlagos (Maradék. Mennyiség)
Egyéb műveletek
Művelet KIVÁLASZTÁS
A Select művelet célja, hogy bizonyos feltételek mellett több érték közül egyet válasszon. Például:
Válassza a Amikor összeg > 1000, majd az összeg különben 0 vége lehetőséget
Két érték összehasonlításának szabályai
Ha az összehasonlított értékek típusai eltérnek egymástól, akkor az értékek közötti kapcsolatot a típusok elsőbbsége alapján határozzuk meg:
- NULL (legalacsonyabb);
- logikai érték;
- Szám;
- Dátum;
- Vonal;
- Referencia típusok
A különböző hivatkozási típusok közötti kapcsolatokat az adott típusnak megfelelő táblázatok hivatkozási számai alapján határozzák meg.
Ha az adattípusok egyeznek, akkor az értékeket a következő szabályok szerint hasonlítják össze:
- típusú logikai érték: TRUE nagyobb, mint FALSE;
- típus A szám a szokásos összehasonlítási szabályokkal rendelkezik a számokhoz;
- a Dátum típusnál a korábbi dátumok kisebbek, mint a későbbiek;
- a String típus esetében - a karakterláncok összehasonlítása az adatbázis nemzeti jellemzőivel összhangban;
- a referenciatípusokat értékeik (rekordszám stb.) alapján hasonlítják össze.
Munka a NULL-lal
Minden olyan művelet, amelyben az egyik operandus értéke NULL, NULL eredményt ad.
Vannak kivételek:
- az ÉS művelet csak akkor ad NULL értéket, ha egyik operandus sem hamis;
- az VAGY művelet csak akkor ad NULL értéket, ha egyik operandus sem igaz.
Működési prioritások
A műveletek a következő prioritásokkal rendelkeznek (az első sor a legalacsonyabb prioritású):
- B, IS NULL, NEM NULL;
- =, <>, <=, <, >=, >;
- Bináris +, Bináris – ;
- *, /, %;
- Unary +, Unary -.
Adatösszetételi rendszer kifejezési nyelvi függvényei
Kiszámítja
A Calculate funkció célja egy kifejezés kiszámítása bizonyos csoportosítással összefüggésben. A függvény a következő paraméterekkel rendelkezik:
- Kifejezés. Írja be a String. Számított kifejezést tartalmaz;
- Csoportosítás. Írja be: String. Annak a csoportnak a nevét tartalmazza, amelynek kontextusában a kifejezést ki kell értékelni. Ha üres karakterláncot használ csoportnévként, 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. Például:
NÁL NÉL ezt a példát ennek eredményeként megkapja a csoportosítási rekord "Eladások.Összegforgalom" mezőjében lévő összeg arányát a teljes elrendezésben ugyanazon mező összegéhez.
Szint
A funkciót az aktuális felvételi szint lekérésére tervezték.
Szint()
NumberInOrder
Szerezze meg a következő sorszámot.
Rendelésszám()
NumberIn OrderInGrouping
Az aktuális csoport következő sorszámát adja vissza.
NumberInOrderInGroup()
Formátum
Szerezze be az átadott érték formázott karakterláncát.
A formátum karakterlánc beállítása az 1C:Enterprise formátum karakterláncának megfelelően történik.
Lehetőségek:
- Jelentés;
- Karakterlánc formázása.
Formátum (Kiadási számlák.AmountDoc, "NPV=2")
Az időszak kezdete
Lehetőségek:
- Perc;
- Nap;
- Egy hét;
- Hónap;
- Negyed;
- Évtized;
- Fél év.
PeriodStart(DátumIdő(2002, 10, 12, 10, 15, 34), "Hónap")
Eredmény:
01.10.2002 0:00:00
EndPeriod
A funkció célja, hogy egy adott dátumot kivonjon egy adott dátumból.
Lehetőségek:
- Dátum. Írja be a dátumot. Adott dátum;
- Időszak típusa. Írja be: String. A következő értékek egyikét tartalmazza:
- Perc;
- Nap;
- Egy hét;
- Hónap;
- Negyed;
- Évtized;
- Fél év.
EndPeriod(DátumIdő(2002, 10, 12, 10, 15, 34), "Hét")
Eredmény:
13.10.2002 23:59:59
AddDate
A funkció célja, hogy némi értéket adjon a dátumhoz.
Lehetőségek:
- Nagyítás típusa. Írja be a String. A következő értékek egyikét tartalmazza:
- Perc;
- Nap;
- Egy hét;
- Hónap;
- Negyed;
- Évtized;
- Fél év.
- Érték – mennyivel szeretné növelni a dátumot. Írja be a számot. A tört részt figyelmen kívül hagyja.
AddToDate(DateTime(2002, 10, 12, 10, 15, 34), "Hónap", 1)
Eredmény:
12.11.2002 10:15:34
KülönbségDátum
A funkciót úgy tervezték, hogy meghatározza két dátum közötti különbséget.
Lehetőségek:
- Kifejezés. Írja be a dátumot. eredeti dátum;
- Kifejezés. Írja be a dátumot. Kivont dátum;
- Különbség típusa. Írja be a String. A következő értékek egyikét tartalmazza:
- Második;
- Perc;
- Nap;
- Hónap;
- Negyed;
DATEDIFF(DÁTUMIDŐ(2002, 10, 12, 10, 15, 34), DÁTUMIDŐ(2002, 10, 14, 9, 18, 06), "NAP")
Eredmény:
Alkarakterlánc
Ez a funkció arra szolgál, hogy kiválasszon egy karakterláncból egy részt.
Lehetőségek:
- Vonal. Írja be: String. A karakterlánc, amelyből az alkarakterlánc ki lett bontva;
- Pozíció. Írja be a számot. A karakter pozíciója, ahonnan a karakterláncból kinyerendő részkarakterlánc kezdődik;
- Hossz. Írja be a számot. A kiválasztott részkarakterlánc hossza.
SUBSTRING (Fiókok. Cím, 1, 4)
Húr hossza
A függvény egy karakterlánc hosszának meghatározására szolgál.
Paraméter:
- Vonal. Írja be: String. A karakterlánc, amelynek hosszát meghatározzuk.
Karakterlánc (Fiókok. Cím)
Év
Ez a funkció arra szolgál, hogy kivonja az évet a Dátum típusú értékből.
Paraméter:
- Dátum. Írja be a dátumot. Az év meghatározásának dátuma.
YEAR (dátummal együtt)
Negyed
Ez a funkció arra szolgál, hogy a Dátum típus értékéből kivonja a negyedév számát. A blokk száma általában 1 és 4 között van.
Paraméter
- Dátum. Írja be a dátumot. A negyedév meghatározásának dátuma
Hónap
Ez a funkció arra szolgál, 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.
- Dátum. Írja be a dátumot. A hónap meghatározásának dátuma.
Az év napja
Ezt a funkciót úgy tervezték, hogy az év napját egy Dátum típusú értékből kapja meg. Az év napja általában 1 és 365 (366) között mozog.
- Dátum. Írja be a dátumot. Az a dátum, amelyre az év napját meghatározzák.
Nap
Ez a funkció úgy készült, hogy a hónap napját a Dátum típusú értékből kapja meg. A hónap napja általában 1 és 31 között van.
- Dátum. Írja be a dátumot. A hónap napjainak meghatározásának dátuma.
Egy hét
Ez a funkció arra szolgál, hogy a Dátum típusú értékből megkapja az év hetének számát. Az év hetei 1-től kezdődnek.
- Dátum. Írja be a dátumot. A hétszámok meghatározásának dátuma.
A hét napja
Ez a funkció úgy készült, hogy a hét napját a Dátum típusú értékből kapja meg. A hét napja általában 1 (hétfő) és 7 (vasárnap) között van.
- Dátum. Írja be a dátumot. A hét napjának meghatározásának dátuma.
Óra
Ezt a funkciót úgy tervezték, hogy a nap óráját a Dátum típusú értékből lekérje. A nap órája 0 és 23 között van.
- Dátum. Írja be a dátumot. Az a dátum, amelyre a nap órája meghatározásra kerül.
Perc
Ezt a funkciót úgy tervezték, hogy a Dátum típusú értékből lekérje az óra percét. Az óra perce 0 és 59 között mozog.
- Dátum. Írja be a dátumot. Az óra percének meghatározásának dátuma.
Második
Ezt a funkciót úgy tervezték, hogy a Dátum típusú értékből lekérje a perc másodpercét. A perc másodperce 0 és 59 között mozog.
- Dátum. Írja be a dátumot. A dátum, amelyre a perc másodpercei meghatározásra kerülnek.
Expressz
Ez a funkció arra szolgál, hogy egy olyan kifejezésből kinyerjen egy típust, amely összetett típust tartalmazhat. Ha a kifejezés a szükséges típustól eltérő típust tartalmaz, a rendszer NULL értéket ad vissza.
Lehetőségek:
- A konvertálandó kifejezés;
- Típusjelzés. Írja be: String. Típus karakterláncot tartalmaz. Például: "Szám", "Karakterlánc" stb. A primitív típusokon kívül ez a karakterlánc tartalmazhatja egy tábla nevét is. Ebben az esetben a rendszer megpróbálja kifejezni a megadott táblára való hivatkozást.
Express(Adat.Attribútum1, "Szám(10,3)")
Nulla
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.
IsNULL(összeg(értékesítés.összegForgalom), 0)
Közös modulfunkciók
Az adatösszetétel motor kifejezés tartalmazhat függvényhívásokat globális közös konfigurációs modulokhoz. Az ilyen függvények meghívásához nincs szükség további szintaxisra.
Ebben a példában a "ShortName" függvényt az általános konfigurációs modulból hívják meg.
Vegye figyelembe, hogy a megosztott modulfunkciók használata csak akkor engedélyezett, ha a megfelelő adatösszetétel-feldolgozó opció meg van adva.
Ezenkívül a közös modulfüggvények nem használhatók egyéni mezőkifejezésekben.
Kifejezés kiszámítása- Az ACS meglehetősen összetett funkciója megérthető, és a referencia információkban az alkalmazási példák meglehetősen ritkák. Ez a cikk olyan példákat tárgyal, amelyek minden fejlesztő számára hasznosak lehetnek:
- futás összesen egy csoportosításban;
- futás összesen kereszttáblában;
- az előző érték megszerzése;
- PM kimenet egy sorban.
1. Mutató beszerzése kumulatív összegen
Szerezze meg az áruk mennyiségét összesített összegben a csoportosítás szintjén. Ehhez létrehozunk egy számított mezőt (lásd 1. ábra).Az "Erőforrások" lapon állítsa be a számított mező függvényét:
CalculateExpression("Összeg(Számforgalom)", "Első", "Jelenlegi")
amely az első rekordtól a jelenlegiig összegzi a termékek számát (lásd a 2. ábrát).
Ha a részletezett nyilvántartások szintjén eredményszemléletű árumennyiséget kíván kapni, akkor a "Kiszámított mezők" fülön a számított mezőhöz a Kifejezés számítása funkció van beállítva (lásd 3. ábra).
A futó végösszeg beérkezési szintjétől függően csoportosítást hozunk létre (lásd 4. ábra): erőforrás szinten - áruk szerinti csoportosítás, RD szinten - részletes rekordok csoportosítását.
4. ábra Jelentéscsoportosítások kumulatív összeggel |
2. Az indikátor értékének lekérése az előző sorból
Szerezze meg a dátum és az előző dátum árfolyamát. Ehhez hozzon létre egy számított mezőt, és írja be a következő kifejezést a kifejezésmezőbe (lásd 5. ábra):EvaluateExpression("Tanfolyam", "Előző", "Előző")
amelyre az árfolyam korábbi értékét veszi fel aktuális vonal, a függvény utolsó paramétere korlátozza az adatok fogadását.
Mivel a részletes rekordok szintjén dolgozunk, azonnal a "Beállítások" fülre lépünk, és létrehozunk egy csoportosítást - részletes rekordokat.
3. Kereszttáblában kumulatív összegű mutató beszerzése
Az árumennyiséget eredményszemléletűen kapjuk meg az időszak összefüggésében. Ehhez létrehozunk egy számított mezőt (lásd 1. ábra). A számított mező "Erőforrások" lapján adja meg a következő kifejezést (lásd: 6. ábra):CalculateExpression("Összeg(Számforgalom)", "Időszak", "Első", "Jelenlegi")
amely csoportosítási szinten az első sortól az aktuálisig terjedő tartományban lévő áruk mennyiségét fogja kiszámítani az időszak összefüggésében az egyes cikkekre vonatkozóan.
A "Beállítások" fülön egy sorban tételenkénti csoportosítással, oszlopban pont szerinti csoportosítással készítünk táblázatot (lásd 7. ábra).