Vypočítajte pole SKD so zoskupením. Data Composition System Expression Language (1Cv8)

Vypočítajte pole SKD so zoskupením.  Data Composition System Expression Language (1Cv8)
Vypočítajte pole SKD so zoskupením. Data Composition System Expression Language (1Cv8)

Prihláste sa na stránku ako študent

Ak chcete získať prístup k školským materiálom, prihláste sa ako študent

Systém skladania údajov 1C 8.3 pre začiatočníkov: počítanie výsledkov (zdroje)

Účelom tejto lekcie bude:

  • Napíšte správu, ktorá zobrazí zoznam produktov (adresár potravín), ich obsah kalórií a chuť.
  • Zoskupte produkty podľa farby.
  • Získajte informácie o sumarizácii (zdrojoch) a vypočítaných poliach.

Vytvorte nový prehľad

Rovnako ako v predchádzajúcich lekciách otvárame databázu " Lahôdky"v konfigurátore a cez menu vytvorte nový report" Súbor"->"Nový...":

Typ dokumentu - externá správa:

Vo formulári nastavenia prehľadu napíšte názov " Lekcia 3"a stlačte tlačidlo" Diagram zloženia otvorených údajov":

Ponechajte predvolený názov schémy a kliknite na tlačidlo " Pripravený":

Pridanie požiadavky cez konštruktor

Na karte " Súbor údajov"kliknite zelená znamienko plus a vyberte " Pridať množinu údajov – dotaz":

Namiesto manuálneho písania textu požiadavky ho spustíme znova konštruktor dotazov:

na "karte" Tabuľky"pretiahnuť stôl" Jedlo"z prvého stĺpca do druhého:

Vyberte si z tabuľky" Jedlo"polia, ktoré si vyžiadame. Ak to chcete urobiť, potiahnite a pustite polia" názov", "Ochutnajte", "Farba"A" Obsah kalórií"z druhého stĺpca do tretieho:

Dopadlo to takto:

Stlač tlačidlo " OK" - text požiadavky bol vygenerovaný automaticky:

Vytváranie nastavení prezentácie zostavy

Prejdite na kartu " nastavenie“ a kliknite na Kúzelná palička, zavolať návrhár nastavení:

Vyberte typ prehľadu " Zoznam..." a stlačte tlačidlo " Ďalej":

Presuňte z ľavého stĺpca doprava polia, ktoré sa zobrazia v zozname, a kliknite na „ Ďalej":

Potiahnite z ľavého stĺpca do pravého poľa " Farba" - stane sa to zoskupenie riadkov v prehľade. Kliknite na " OK":

A tu je výsledok práce dizajnéra. Hierarchia našej správy:

  • správa ako celok
  • zoskupenie "Farba"
  • podrobné záznamy - riadky s názvami jedál

Uložiť prehľad (tlačidlo disketa) A bez zatvárania Ihneď otvoríme konfigurátor v užívateľskom režime. Dopadlo to takto:

Zmena poradia stĺpcov

Ale poďme zmeňme poradie stĺpce (šípky hore a dole), aby to vyzeralo ako na obrázku nižšie:

Uložíme zostavu a znova ju otvoríme v používateľskom režime:

Skvelé, je to oveľa lepšie.

Zhrňme si obsah kalórií

Bolo by pekné zhrnúť obsah kalórií v potravinách podľa skupín. Ak chcete vidieť súčet obsahu kalórií všetkých produktov, povedzme, biele alebo žlté. Alebo zistite celkový obsah kalórií všetkých produktov v databáze.

Na tento účel existuje mechanizmus na výpočet zdrojov.

Prejdite na kartu " Zdroje"a potiahnite pole" Obsah kalórií"(ideme to zhrnúť) z ľavého stĺpca doprava.

V tomto prípade v poli vyberte výraz z rozbaľovacieho zoznamu " Množstvo (kalórie)", keďže súčet bude súčtom všetkých prvkov zahrnutých do súčtu:

Uložíme a vygenerujeme prehľad:

Teraz máme výsledky pre každú zo skupín a pre správu ako celok.

Zhrňme si to (priemerne) z hľadiska kalórií

Teraz ho zobrazme v inom stĺpci priemer obsah kalórií vo výrobkoch podľa skupín a v správe ako celku.

Nemôžete sa dotknúť existujúceho stĺpca „Kalórie“ - súčet je v ňom už zobrazený, takže vytvoríme ďalšie pole, ktorá bude presnú kópiu Polia "kalórie".

Na vytvorenie takéhoto „virtuálneho“ poľa použijeme mechanizmus vypočítané polia.

Prejdite na kartu " Vypočítané polia“ a stlačte zelená znamienko plus:

V stĺpci" Dátová cesta"napíšeme názov nového poľa ( bezproblémovo, bez medzier). Nech sa volá" Priemerný obsah kalórií“ a v stĺpci „ Výraz"napíšeme názov existujúceho poľa, na základe ktorého sa vypočíta nové pole. Napíšeme tam" Obsah kalórií". Stĺpec" Smerovanie“ sa vyplní automaticky.

Pridali sme nové pole (" Priemerný obsah kalórií“), ale v prehľade sa neobjaví sám od seba – musíte buď zavolať znova návrhár nastavení("čarovná palička") alebo pridajte toto pole manuálne.

Poďme na to druhý spôsobom. Ak to chcete urobiť, prejdite na kartu " nastavenie", vyberte " správa"(napokon chceme do prehľadu pridať pole ako celok), vyberte záložku v spodnej časti" Vybrané polia"a potiahnite pole" Priemerný obsah kalórií"z ľavého stĺpca doprava:

Dopadlo to takto:

Uložíme a vygenerujeme prehľad:

Pole sa objavilo a vidíme, že jeho hodnoty sú hodnoty poľa „Kalórie“. Skvelé!

Na to opäť použijeme mechanizmus, ktorý je nám už známy zdrojov(zhrnutie). Prejdite na kartu " Zdroje"a potiahnite pole" Priemerný obsah kalórií"z ľavého stĺpca doprava:

Navyše v stĺpci " Výraz"vybrať" Priemerná (priemerná kalória)":

Uložíme a vygenerujeme prehľad:

Vidíme, že pre skupiny, teda pre každú farbu a pre zostavu ako celok, bola priemerná hodnota vypočítaná absolútne správne. Ale sú prítomné extra záznamy pre jednotlivé produkty (nie skupiny), ktoré by som chcel z prehľadu odstrániť.

Viete, prečo sa objavili (hodnoty nie podľa skupiny)? Pretože keď sme pridali pole " Priemerný obsah kalórií"v nastaveniach prehľadu sme v druhom kroku vybrali celú správu a toto nové pole sa dostalo do prvku " Podrobné záznamy".

Opravme chybu. Ak to chcete urobiť, vráťte sa na kartu " nastavenie", vyberte " Podrobné záznamy"najprv zhora (krok 2) a potom " Podrobné záznamy"zospodu (krok 3), prejdite na záložku" Vybraný poliach"a v jeho pravom stĺpci uvidíme prvok" Auto".

Element " Auto" - toto nie je jedno pole. Toto je niekoľko polí, ktoré sem spadajú automaticky na základe nastavení vyššej úrovne.

Ak chcete vidieť, čo sú tieto polia, kliknite na prvok " Auto" správny tlačidlo a zvoľte " Rozbaliť":

Element " Auto" sa rozbalí do nasledujúcich polí:

A tu je naše pole" Priemerný obsah kalórií"ktorý sem prišiel z bodu" správa" keď sme ho tam ťahali. Len poďme odstrániť začiarknutím políčka vedľa tohto poľa odstránite jeho výstup.

Vo svetle nadchádzajúceho vydania 8.2.14 sa pokúsim popísať niektoré nové funkcie systému skladania údajov.

Otvorte diagram rozloženia údajov, najlepšie v externej správe, aby ste si uľahčili úpravu.

Pridáme množinu údajov typu dotazu a napíšeme, buď manuálne alebo pomocou návrhára dotazov, jednoduchý dotaz:

1. Nastavte požiadavku v systéme kontroly prístupu.

2. Nastavte vypočítané polia v systéme riadenia prístupu

3. Na karte nastavení nakonfigurujte rozloženie údajov

4. Spustite 1C Enterprise 8.2.14. Otvorte prehľad. Tvoríme, prijímame.

Popis samotných nových funkcií:

1. Aktuálny dátum ()

Vráti systémový dátum. Pri vytváraní rozloženia rozloženia sa vo všetkých výrazoch, ktoré sa nachádzajú v rozmiestnení, funkcia CurrentDate() nahradí hodnotou aktuálneho dátumu.

2. COMPUTEEXPRESSION()

Syntax:

CalculateExpression(,)

Popis:

Funkcia je určená na vyhodnotenie výrazu v kontexte nejakého zoskupenia.

Funkcia berie do úvahy výber zoskupení, ale nezohľadňuje hierarchické výbery.

Funkciu nemožno použiť na zoskupenie vo výbere skupiny tohto zoskupenia. Napríklad pri výbere zoskupenia Nomenklatúra nemôžete použiť výraz CalculateExpression("Sum(sumTurnover)", "TotalTotal") > 1000. Ale takýto výraz možno použiť v hierarchickom výbere.

Ak koncový záznam predchádza počiatočnému záznamu, potom sa má za to, že neexistujú žiadne záznamy na výpočet podrobných údajov a výpočet súhrnných funkcií.

Pri výpočte intervalových výrazov pre celkový súčet (parameter Grouping je nastavený na GrandTotal) sa predpokladá, že neexistujú žiadne záznamy na výpočet podrobných údajov a výpočet agregovaných funkcií.

Layout linker pri generovaní funkčného výrazu CalculateExpression, ak objednávací výraz obsahuje polia, ktoré nemožno použiť pri zoskupovaní, nahrádza funkciu CalculateExpression na NULOVÝ.

možnosti

Typ: Linka. Výraz, ktorý sa má vyhodnotiť.

Typ: Linka. Obsahuje názov zoskupenia, v kontexte ktorého sa má výraz vyhodnotiť. Ak sa použije názov skupiny prázdny riadok, výpočet sa vykoná v kontexte aktuálneho zoskupenia. Ak sa ako názov skupiny použije reťazec GeneralTotal, výpočet sa vykoná v kontexte celkového súčtu. V opačnom prípade sa výpočet vykoná v kontexte nadradenej skupiny s rovnakým názvom.

Napríklad:

Súčet(Predaj.SúčetTurnover)/Vypočítať("Súčet(Predaj.SumTurnover)", "Celkom")

IN v tomto príklade výsledkom bude pomer súčtu podľa polí Predaj.SumaObratu zoskupovanie záznamov podľa súčtu rovnakého poľa v celom rozložení;

Typ: Linka. Parameter môže nadobúdať nasledujúce hodnoty:

· úhrn— výraz sa vypočíta pre všetky záznamy zoskupenia.

· Hierarchia— výraz sa vyhodnotí pre nadradený hierarchický záznam, ak existuje, a pre celé zoskupenie, ak nadradený hierarchický záznam neexistuje.

· Zoskupovanie— výraz sa vyhodnotí pre aktuálny záznam zoskupenia skupín.

· ZoskupenieNonResource— pri výpočte funkcie pre skupinový záznam podľa zdrojov sa výraz vypočíta pre prvý skupinový záznam pôvodného zoskupenia.

Pri výpočte funkcie CalculateExpression() so zmyslom ZoskupenieNonResource pre skupinové záznamy, ktoré nie sú zoskupené podľa zdrojov, sa funkcia vypočíta rovnakým spôsobom, ako by sa vypočítala, keby sa hodnota parametra rovnala hodnote Zoskupovanie.

Nástroj na tvorbu rozloženia zloženia údajov pri generovaní rozloženia zloženia údajov pri výstupe poľa zdroja, podľa ktorého sa zoskupenie vykonáva do rozloženia, umiestni do rozloženia výraz, ktorý sa vypočíta pomocou funkcie CalculateExpression() , označujúci parameter ZoskupenieNonResource. Pre ostatné zdroje sú obvyklé výrazy prostriedkov umiestnené v zoskupení prostriedkov.

Typ: Linka. Označuje, ktorým záznamom by sa mal začať fragment, v ktorom sa má počítať agregované funkcie výrazy a z akého záznamu získať hodnoty polí mimo agregovaných funkcií. Hodnota môže byť jedna z nasledujúcich:

· najprv

· posledný (posledný)

· Predchádzajúce

· Ďalej (Next)

· Aktuálne

· LimitingValue(Hodnota hranice) LimitingValue

Typ: Linka. Označuje, do ktorého záznamu by mal fragment pokračovať, v ktorom by sa mali vypočítať agregované funkcie výrazu. Hodnota môže byť jedna z nasledujúcich:

· najprv. Je potrebné získať prvý záznam o zoskupení. Za slovom v zátvorkách môžete zadať výraz, ktorého výsledok sa použije ako posun od začiatku zoskupenia. Výsledná hodnota musí byť celé číslo väčšie ako nula. Napríklad First(3) - príjem tretieho záznamu od začiatku zoskupenia.

Ak je prvý záznam mimo zoskupenia, potom sa má za to, že neexistujú žiadne záznamy. Napríklad, ak existujú 3 záznamy a chcete získať Prvý(4), predpokladá sa, že neexistujú žiadne záznamy.

· posledný (posledný). Potrebujete získať posledný záznam o zoskupení. Za slovom v zátvorkách môžete zadať výraz, ktorého výsledok sa použije ako posun od konca zoskupenia. Výsledná hodnota musí byť celé číslo väčšie ako nula. Napríklad Last(3) - príjem tretieho záznamu od konca skupiny.

Ak je posledný záznam mimo zoskupenia, má sa za to, že neexistujú žiadne záznamy. Napríklad, ak existujú 3 záznamy a chcete získať Last(4), potom sa predpokladá, že neexistujú žiadne záznamy.

· Predchádzajúce. Musíte získať predchádzajúci záznam zoskupenia. Za slovom v zátvorkách môžete zadať výraz, ktorého výsledok sa použije ako spätný posun od aktuálneho záznamu zoskupenia. Napríklad Previous(2) - získanie predchádzajúceho z predchádzajúceho záznamu.

Ak predchádzajúci záznam presahuje rámec zoskupenia (napríklad pre druhý záznam zoskupenia musíte získať Predchádzajúci(3)), získa sa prvý záznam zoskupenia.

Pri získavaní predchádzajúceho záznamu pre súčet zoskupenia sa považuje za získaný prvý záznam.

· Ďalej (Next). Musíte získať ďalší záznam zoskupenia. Za slovom v zátvorkách môžete zadať výraz, ktorého výsledok sa použije ako posun vpred od aktuálnej položky zoskupenia. Napríklad Next(2) - získanie ďalšieho z nasledujúceho záznamu.

Ak ďalší záznam presahuje zoskupenie, má sa za to, že neexistujú žiadne záznamy. Napríklad, ak existujú 3 položky a tretia položka dostane Next() , potom sa predpokladá, že neexistujú žiadne položky.

Keď je prijatý ďalší záznam pre súčet zoskupenia, považuje sa to za neexistujúce žiadne záznamy.

· Aktuálne. Potrebujete získať aktuálny záznam.

Pri získavaní celkového súčtu zoskupení sa získa prvý záznam.

· LimitingValue(Hodnota hranice). Potreba získať záznam o zadanej hodnote. Po slove LimitingValue v zátvorkách musíte uviesť výraz, ktorého hodnotou chcete začať fragment, prvé pole usporiadania.

Prvý záznam, ktorého hodnota poľa objednávky je väčšia alebo rovná zadanej hodnote, sa vráti ako záznam. Napríklad, ak sa pole Obdobie používa ako pole objednávky a má hodnoty 01/01/2010, 02/01/2010, 03/01/2010 a chcete získať LimitingValue(DateTime(2010, 1, 15)), potom bude prijatý záznam s dátumom 01.02.2010.

Typ: Linka. Uvádza výrazy oddelené čiarkami, ktoré popisujú pravidlá zoradenia. Ak nie je uvedené, zoradenie sa vykoná rovnakým spôsobom ako pri zoskupení, pre ktoré sa výraz vyhodnocuje. Po každom výraze môžete zadať kľúčové slovo Vek(pri vzostupnom poradí), Zostupne(pre objednanie v zostupnom poradí) a Automatická objednávka(na zoradenie referenčných polí podľa polí, podľa ktorých chcete zoradiť referenčný objekt). Slovo Automatická objednávka možno použiť ako so slovom Vek, teda so slovom Zostupne.

Typ: Linka. Rovnaké ako parameter Triedenie. Používa sa na organizáciu hierarchických záznamov. Ak nie je zadané, zostavovateľ rozloženia vygeneruje poradie podľa poradia uvedeného v parametri Triedenie.

Typ: Linka. Určuje pravidlo na určenie predchádzajúceho alebo nasledujúceho záznamu v prípade, že existuje niekoľko záznamov s rovnakou hodnotou poradia:

· Oddelene označuje, že postupnosť usporiadaných záznamov sa používa na určenie predchádzajúcich a nasledujúcich záznamov. Predvolená hodnota.

· Spolu označuje, že predchádzajúce a nasledujúce záznamy sú určené na základe hodnôt výrazov usporiadania.

Napríklad, ak je výsledná sekvencia zoradená podľa dátumu:

dátum Celé meno Význam
1 1. januára 2001

Ivanov M.

10
2 2. januára 2001 Petrov S. 20
3 3. januára 2001 Sidorov R. 30
4 4. januára 2001 Petrov S. 40

Oddelene, To:

§ predchádzajúci záznam k záznamu 3 bude záznam 2.

Aktuálne, aktuálne(podľa toho parametre Štart A Koniec), potom pre záznam 2 bude tento fragment pozostávať z jedného záznamu 2. Výraz sa bude rovnať 20.

Ak je hodnota parametra Spolu, To:

§ predchádzajúci záznam k záznamu 3 bude záznam 1.

§ ak je fragment výpočtu definovaný ako Aktuálne, aktuálne(podľa toho parametre Štart A Koniec), potom pre záznam 2 bude tento fragment pozostávať zo záznamov 2 a 3. Výraz CalculateExpression("Sum(Value)", Current, Current) sa bude rovnať 50.

Pri zadávaní hodnoty parametra rovnajúcej sa Spolu, v parametroch Štart A Koniec nemôžete určiť posun pre pozície Prvý, Posledný, Predchádzajúci, Ďalší.

CalculateExpression("Sum(sumTurnover)", "First", "Current")

Ak chcete získať hodnotu zoskupenia v predchádzajúcom riadku, môžete použiť nasledujúci výraz:

CalculateExpression("Rate", "Previous")

Zoznam Nový funkcie:

CalculateExpressionWithGroupArray(,) -

Funkcia vracia pole, ktorého každý prvok obsahuje výsledok vyhodnotenia výrazu na zoskupenie podľa zadaného poľa.

CalculateExpressionWithGroupValueTable(,) -

Funkcia vracia tabuľku hodnôt, ktorej každý riadok obsahuje výsledok vyhodnotenia výrazov na zoskupenie podľa zadaného poľa

ValueFilled() - Vráti hodnotu True, ak sa hodnota líši od hodnoty tohto typu predvolená, iná ako NULL, iná ako prázdna referencia, iná ako Nedefinované. Booleovské hodnoty sa kontrolujú na hodnoty NULL. Reťazce sa kontrolujú, či neobsahujú znaky bez medzier

Formátovať(, ) - Prijať formátovaný reťazec odovzdanej hodnoty. Formátovací reťazec je nastavený v súlade s formátovacím reťazcom systému 1C:Enterprise.

Podreťazec(, , ) – Táto funkcia je určená na extrahovanie podreťazca z reťazca.

Dĺžka čiary() - Funkcia je určená na určenie dĺžky reťazca. Parameter je reťazcový výraz

Linka() - Ak je pole odovzdané ako parameter, funkcia vráti reťazec obsahujúci reťazcové reprezentácie všetkých prvkov poľa oddelené znakmi ";". Ak sa ako parameter odovzdá tabuľka hodnôt, funkcia vráti reťazec obsahujúci reťazcové reprezentácie všetkých riadkov tabuľky hodnôt, pričom reprezentácie buniek každého riadku sú oddelené znakmi „;“ a riadky novým riadkom charakter. Ak je reťazcová reprezentácia prvku prázdna, potom sa namiesto jej reprezentácie zobrazí reťazec.

V tejto krátkej poznámke chcem ukázať, ako môžete zhrnúť hodnoty na rôznych úrovniach zoskupenia v zostave pomocou systému na zostavovanie údajov.
Ako je znázornené na obrázku, iba na úrovni zoskupenia „Skupiny položiek“ sa vypočítava zdroj „Objednávka“, ktorý zobrazuje, koľko je potrebné objednať pre aktuálnu skupinu položiek na základe určitých podmienok:


Táto hodnota môže byť vypočítaná iba pre túto úroveň zoskupenia, pretože nad alebo pod nie sú k dispozícii žiadne hodnoty na výpočet. Napríklad na úrovni podrobných záznamov neexistujú údaje o maximálnom množstve v skupine, pretože tieto údaje platia len pre skupinu ako celok a nie pre jej jednotlivé zložky.

Podľa toho je teraz potrebné vypočítať súčty pre vyššie uvedené skupiny („Sklady“, „Typy skladov“) a celkový súčet.
Ak to chcete urobiť, použite funkciu CalculateExpressionWithGroupArray:
HODNOTIŤ VÝRAZ S GROUPARRAY (EVALEXPRESSIONWITHGROUPARRAY)
Syntax:
EvaluateExpressionWithGroupArray(,)
Popis:
Funkcia vracia pole, ktorého každý prvok obsahuje výsledok vyhodnotenia výrazu na zoskupenie podľa zadaného poľa.
Kompozitor rozloženia pri generovaní rozloženia konvertuje parametre funkcií na polia rozloženia kompozície údajov. Napríklad pole Účet sa skonvertuje na DataSet.Account.
Layout Compositor pri generovaní výrazov pre výstup vlastné pole, ktorého výraz obsahuje iba funkciu CalculateArrayWithGroupArray(), generuje výstupný výraz takým spôsobom, že výstupné informácie sú usporiadané. Napríklad pre vlastné pole s výrazom:

CalculateExpressionWithGroupArray("Suma(SumaTurnover)", "Protistrana")
Tvorca rozloženia vygeneruje pre výstup nasledujúci výraz:

ConnectRows(Array(Order(CalculateExpressionWithGroupingValueTable("View(Sum(DataSet.AmountTurnover)),Sum(DataSet.AmountTurnover)",,"DataSet.Account"),"2")))

Možnosti:

Typ: Reťazec. Výraz, ktorý sa má vyhodnotiť. Riadok, napríklad Suma(SumaObrat).

Typ: Reťazec. Výrazy zoskupení polí – výrazy zoskupení polí oddelené čiarkami. Napríklad Dodávateľ, Strana.

Typ: Reťazec. Výraz popisujúci výber aplikovaný na podrobné záznamy. Výraz nepodporuje použitie agregačných funkcií. Napríklad, DeletionFlag = False.

Typ: Reťazec. Výraz popisujúci výber aplikovaný na skupinové záznamy. Napríklad Suma(SumaObrat) > &Parameter1.
Príklad:

Maximum(CalculateExpressionWithGroupArray("Suma(SumaTurnover)", "Protistrana"));

Podrobný popis syntaxe funkcie možno nájsť na http://its.1c.ru/db/v837doc#bookmark:dev:TI000000582
Teraz pre výpočet duplikujeme pole „Objednávka“ s rôznymi hodnotami „Vypočítať podľa...“ pomocou nasledujúcich výrazov, všimnite si, že na každej vyššej úrovni sa používajú hodnoty úrovní pod zoskupeniami .

Výsledkom je nasledujúca konštrukcia:

Vo svetle nadchádzajúceho vydania 8.2.14 sa pokúsim popísať niektoré nové funkcie systému skladania údajov.

Otvorte diagram rozloženia údajov, najlepšie v externej správe, aby ste si uľahčili úpravu.

Pridáme množinu údajov typu dotazu a napíšeme, buď manuálne alebo pomocou návrhára dotazov, jednoduchý dotaz:

1. Nastavte požiadavku v systéme kontroly prístupu.

2. Nastavte vypočítané polia v systéme riadenia prístupu

3. Na karte nastavení nakonfigurujte rozloženie údajov

4. Spustite 1C Enterprise 8.2.14. Otvorte prehľad. Tvoríme, prijímame.

Popis samotných nových funkcií:

1. Aktuálny dátum ()

Vráti systémový dátum. Pri vytváraní rozloženia rozloženia sa vo všetkých výrazoch, ktoré sa nachádzajú v rozmiestnení, funkcia CurrentDate() nahradí hodnotou aktuálneho dátumu.

2. COMPUTEEXPRESSION()

Syntax:

CalculateExpression(,)

Popis:

Funkcia je určená na vyhodnotenie výrazu v kontexte nejakého zoskupenia.

Funkcia berie do úvahy výber zoskupení, ale nezohľadňuje hierarchické výbery.

Funkciu nemožno použiť na zoskupenie vo výbere skupiny tohto zoskupenia. Napríklad pri výbere zoskupenia Nomenklatúra nemôžete použiť výraz CalculateExpression("Sum(sumTurnover)", "TotalTotal") > 1000. Ale takýto výraz možno použiť v hierarchickom výbere.

Ak koncový záznam predchádza počiatočnému záznamu, potom sa má za to, že neexistujú žiadne záznamy na výpočet podrobných údajov a výpočet súhrnných funkcií.

Pri výpočte intervalových výrazov pre celkový súčet (parameter Grouping je nastavený na GrandTotal) sa predpokladá, že neexistujú žiadne záznamy na výpočet podrobných údajov a výpočet agregovaných funkcií.

Layout linker pri generovaní funkčného výrazu CalculateExpression, ak objednávací výraz obsahuje polia, ktoré nemožno použiť pri zoskupovaní, nahrádza funkciu CalculateExpression na NULOVÝ.

možnosti

Typ: Linka. Výraz, ktorý sa má vyhodnotiť.

Typ: Linka. Obsahuje názov zoskupenia, v kontexte ktorého sa má výraz vyhodnotiť. Ak sa ako názov zoskupenia použije prázdny reťazec, výpočet sa vykoná v kontexte aktuálneho zoskupenia. Ak sa ako názov skupiny použije reťazec GeneralTotal, výpočet sa vykoná v kontexte celkového súčtu. V opačnom prípade sa výpočet vykoná v kontexte nadradenej skupiny s rovnakým názvom.

Napríklad:

Súčet(Predaj.SúčetTurnover)/Vypočítať("Súčet(Predaj.SumTurnover)", "Celkom")

V tomto príklade bude výsledkom pomer súčtu podľa polí Predaj.SumaObratu zoskupovanie záznamov podľa súčtu rovnakého poľa v celom rozložení;

Typ: Linka. Parameter môže nadobúdať nasledujúce hodnoty:

· úhrn— výraz sa vypočíta pre všetky záznamy zoskupenia.

· Hierarchia— výraz sa vyhodnotí pre nadradený hierarchický záznam, ak existuje, a pre celé zoskupenie, ak nadradený hierarchický záznam neexistuje.

· Zoskupovanie— výraz sa vyhodnotí pre aktuálny záznam zoskupenia skupín.

· ZoskupenieNonResource— pri výpočte funkcie pre skupinový záznam podľa zdrojov sa výraz vypočíta pre prvý skupinový záznam pôvodného zoskupenia.

Pri výpočte funkcie CalculateExpression() so zmyslom ZoskupenieNonResource pre skupinové záznamy, ktoré nie sú zoskupené podľa zdrojov, sa funkcia vypočíta rovnakým spôsobom, ako by sa vypočítala, keby sa hodnota parametra rovnala hodnote Zoskupovanie.

Nástroj na tvorbu rozloženia zloženia údajov pri generovaní rozloženia zloženia údajov pri výstupe poľa zdroja, podľa ktorého sa zoskupenie vykonáva do rozloženia, umiestni do rozloženia výraz, ktorý sa vypočíta pomocou funkcie CalculateExpression() , označujúci parameter ZoskupenieNonResource. Pre ostatné zdroje sú obvyklé výrazy prostriedkov umiestnené v zoskupení prostriedkov.

Typ: Linka. Označuje, z ktorého záznamu by mal fragment začínať, v ktorých agregovaných výrazových funkciách by sa mali vypočítať a z ktorého záznamu sa majú získať hodnoty polí mimo agregovaných funkcií. Hodnota môže byť jedna z nasledujúcich:

· najprv

· posledný (posledný)

· Predchádzajúce

· Ďalej (Next)

· Aktuálne

· LimitingValue(Hodnota hranice) LimitingValue

Typ: Linka. Označuje, do ktorého záznamu by mal fragment pokračovať, v ktorom by sa mali vypočítať agregované funkcie výrazu. Hodnota môže byť jedna z nasledujúcich:

· najprv. Je potrebné získať prvý záznam o zoskupení. Za slovom v zátvorkách môžete zadať výraz, ktorého výsledok sa použije ako posun od začiatku zoskupenia. Výsledná hodnota musí byť celé číslo väčšie ako nula. Napríklad First(3) - príjem tretieho záznamu od začiatku zoskupenia.

Ak je prvý záznam mimo zoskupenia, potom sa má za to, že neexistujú žiadne záznamy. Napríklad, ak existujú 3 záznamy a chcete získať Prvý(4), predpokladá sa, že neexistujú žiadne záznamy.

· posledný (posledný). Potrebujete získať posledný záznam o zoskupení. Za slovom v zátvorkách môžete zadať výraz, ktorého výsledok sa použije ako posun od konca zoskupenia. Výsledná hodnota musí byť celé číslo väčšie ako nula. Napríklad Last(3) - príjem tretieho záznamu od konca skupiny.

Ak je posledný záznam mimo zoskupenia, má sa za to, že neexistujú žiadne záznamy. Napríklad, ak existujú 3 záznamy a chcete získať Last(4), potom sa predpokladá, že neexistujú žiadne záznamy.

· Predchádzajúce. Musíte získať predchádzajúci záznam zoskupenia. Za slovom v zátvorkách môžete zadať výraz, ktorého výsledok sa použije ako spätný posun od aktuálneho záznamu zoskupenia. Napríklad Previous(2) - získanie predchádzajúceho z predchádzajúceho záznamu.

Ak predchádzajúci záznam presahuje rámec zoskupenia (napríklad pre druhý záznam zoskupenia musíte získať Predchádzajúci(3)), získa sa prvý záznam zoskupenia.

Pri získavaní predchádzajúceho záznamu pre súčet zoskupenia sa považuje za získaný prvý záznam.

· Ďalej (Next). Musíte získať ďalší záznam zoskupenia. Za slovom v zátvorkách môžete zadať výraz, ktorého výsledok sa použije ako posun vpred od aktuálnej položky zoskupenia. Napríklad Next(2) - získanie ďalšieho z nasledujúceho záznamu.

Ak ďalší záznam presahuje zoskupenie, má sa za to, že neexistujú žiadne záznamy. Napríklad, ak existujú 3 položky a tretia položka dostane Next() , potom sa predpokladá, že neexistujú žiadne položky.

Keď je prijatý ďalší záznam pre súčet zoskupenia, považuje sa to za neexistujúce žiadne záznamy.

· Aktuálne. Potrebujete získať aktuálny záznam.

Pri získavaní celkového súčtu zoskupení sa získa prvý záznam.

· LimitingValue(Hodnota hranice). Potreba získať záznam o zadanej hodnote. Po slove LimitingValue v zátvorkách musíte uviesť výraz, ktorého hodnotou chcete začať fragment, prvé pole usporiadania.

Prvý záznam, ktorého hodnota poľa objednávky je väčšia alebo rovná zadanej hodnote, sa vráti ako záznam. Napríklad, ak sa pole Obdobie používa ako pole objednávky a má hodnoty 01/01/2010, 02/01/2010, 03/01/2010 a chcete získať LimitingValue(DateTime(2010, 1, 15)), potom bude prijatý záznam s dátumom 01.02.2010.

Typ: Linka. Uvádza výrazy oddelené čiarkami, ktoré popisujú pravidlá zoradenia. Ak nie je uvedené, zoradenie sa vykoná rovnakým spôsobom ako pri zoskupení, pre ktoré sa výraz vyhodnocuje. Po každom výraze môžete zadať kľúčové slovo Vek(pri vzostupnom poradí), Zostupne(pre objednanie v zostupnom poradí) a Automatická objednávka(na zoradenie referenčných polí podľa polí, podľa ktorých chcete zoradiť referenčný objekt). Slovo Automatická objednávka možno použiť ako so slovom Vek, teda so slovom Zostupne.

Typ: Linka. Rovnaké ako parameter Triedenie. Používa sa na organizáciu hierarchických záznamov. Ak nie je zadané, zostavovateľ rozloženia vygeneruje poradie podľa poradia uvedeného v parametri Triedenie.

Typ: Linka. Určuje pravidlo na určenie predchádzajúceho alebo nasledujúceho záznamu v prípade, že existuje niekoľko záznamov s rovnakou hodnotou poradia:

· Oddelene označuje, že postupnosť usporiadaných záznamov sa používa na určenie predchádzajúcich a nasledujúcich záznamov. Predvolená hodnota.

· Spolu označuje, že predchádzajúce a nasledujúce záznamy sú určené na základe hodnôt výrazov usporiadania.

Napríklad, ak je výsledná sekvencia zoradená podľa dátumu:

dátum Celé meno Význam
1 1. januára 2001

Ivanov M.

10
2 2. januára 2001 Petrov S. 20
3 3. januára 2001 Sidorov R. 30
4 4. januára 2001 Petrov S. 40

Oddelene, To:

§ predchádzajúci záznam k záznamu 3 bude záznam 2.

Aktuálne, aktuálne(podľa toho parametre Štart A Koniec), potom pre záznam 2 bude tento fragment pozostávať z jedného záznamu 2. Výraz sa bude rovnať 20.

Ak je hodnota parametra Spolu, To:

§ predchádzajúci záznam k záznamu 3 bude záznam 1.

§ ak je fragment výpočtu definovaný ako Aktuálne, aktuálne(podľa toho parametre Štart A Koniec), potom pre záznam 2 bude tento fragment pozostávať zo záznamov 2 a 3. Výraz CalculateExpression("Sum(Value)", Current, Current) sa bude rovnať 50.

Pri zadávaní hodnoty parametra rovnajúcej sa Spolu, v parametroch Štart A Koniec nemôžete určiť posun pre pozície Prvý, Posledný, Predchádzajúci, Ďalší.

CalculateExpression("Sum(sumTurnover)", "First", "Current")

Ak chcete získať hodnotu zoskupenia v predchádzajúcom riadku, môžete použiť nasledujúci výraz:

CalculateExpression("Rate", "Previous")

Zoznam Nový funkcie:

CalculateExpressionWithGroupArray(,) -

Funkcia vracia pole, ktorého každý prvok obsahuje výsledok vyhodnotenia výrazu na zoskupenie podľa zadaného poľa.

CalculateExpressionWithGroupValueTable(,) -

Funkcia vracia tabuľku hodnôt, ktorej každý riadok obsahuje výsledok vyhodnotenia výrazov na zoskupenie podľa zadaného poľa

ValueFilled() - Vráti hodnotu True, ak je hodnota iná ako predvolená hodnota tohto typu, iná ako NULL, iná ako prázdna referencia, iná ako Nedefinované. Booleovské hodnoty sa kontrolujú na hodnoty NULL. Reťazce sa kontrolujú, či neobsahujú znaky bez medzier

Formátovať(, ) - Prijať formátovaný reťazec odovzdanej hodnoty. Formátovací reťazec je nastavený v súlade s formátovacím reťazcom systému 1C:Enterprise.

Podreťazec(, , ) – Táto funkcia je určená na extrahovanie podreťazca z reťazca.

Dĺžka čiary() - Funkcia je určená na určenie dĺžky reťazca. Parameter je reťazcový výraz

Linka() - Ak je pole odovzdané ako parameter, funkcia vráti reťazec obsahujúci reťazcové reprezentácie všetkých prvkov poľa oddelené znakmi ";". Ak sa ako parameter odovzdá tabuľka hodnôt, funkcia vráti reťazec obsahujúci reťazcové reprezentácie všetkých riadkov tabuľky hodnôt, pričom reprezentácie buniek každého riadku sú oddelené znakmi „;“ a riadky novým riadkom charakter. Ak je reťazcová reprezentácia prvku prázdna, potom sa namiesto jej reprezentácie zobrazí reťazec.

Data Composition System Expression Language

Jazyk výrazov systému skladania údajov je určený na zapisovanie výrazov používaných v rôznych častiach systému.

Výrazy sa používajú v nasledujúcich podsystémoch:

  • diagram rozloženia údajov - na popis vypočítaných polí, súčtových polí, výrazov spojenia atď.;
  • nastavenia rozloženia údajov – na popis vlastných výrazov polí;
  • rozloženie dát - na popis výrazov pre spájanie dátových množín, popis parametrov rozloženia a pod.

Doslovy

Výraz môže obsahovať literály. Možné sú nasledujúce typy literálov:

  • Linka;
  • číslo;
  • Dátum;
  • Boolean.

Linka

Reťazcový literál sa zapisuje znakmi „“, napríklad:

"Stringový doslov"

Ak potrebujete použiť znak „“ v reťazcovom literáli, mali by ste použiť dva takéto znaky.

Napríklad:

"Doslovné ""v úvodzovkách"""

číslo

Číslo sa zapisuje bez medzier, v desiatkovom formáte. Zlomková časť je oddelená symbolom "." Napríklad:

10.5 200

dátum

Dátumový literál sa zapisuje pomocou kľúčového literálu DATETIME. Po tomto kľúčové slovo, v zátvorkách, oddelených čiarkami, je uvedený rok, mesiac, deň, hodiny, minúty, sekundy. Časová špecifikácia sa nevyžaduje.

Napríklad:

DATETIME(1975, 1, 06) – 6. január 1975 DATETIME(2006, 12, 2, 23, 56, 57) – 2. december 2006, 23 hodín 56 minút 57 sekúnd, 23 hodín 56 minút 57 sekúnd

Boolean

Boolovské hodnoty je možné zapísať pomocou literálov True (True), False (False).

Význam

Na špecifikovanie literálov iných typov (systémové enumerácie, preddefinované údaje) sa používa kľúčové slovo Hodnota, za ktorým nasleduje názov literálu v zátvorkách.

Hodnota (Typ účtu. Aktívne)

Operácie s číslami

Unary –

Táto operácia je určená na zmenu znamienka čísla na opačné znamienko. Napríklad:

Predaj. Množstvo

Unárne +

Táto operácia nevykonáva s číslom žiadne akcie. Napríklad:

Predaj. Množstvo

binárne -

Táto operácia je určená na výpočet rozdielu dvoch čísel. Napríklad:

ResidualsAndTurnovers.InitialRemaining – RemainingsAndTurnovers.FinalResidualsRemainingsAndTurnovers.InitialRemaining – 100 400 – 357

Binárne +

Táto operácia je určená na výpočet súčtu dvoch čísel. Napríklad:

RemainingsAndTurnover.InitialRemaining + RemainingAndTurnover.Turnover ResiduesAndTurnover.InitialRemaining + 100 400 + 357

Práca

Táto operácia je určená na výpočet súčinu dvoch čísel. Napríklad:

Nomenklatúra.Cena * 1,2 2 * 3,14

divízie

Táto operácia je určená na získanie výsledku delenia jedného operandu druhým. Napríklad:

Nomenklatúra.Cena / 1,2 2 / 3,14

Zvyšok divízie

Táto operácia je navrhnutá tak, aby získala zvyšok, keď je jeden operand delený druhým. Napríklad:

Nomenklatúra % 1,2 2 % 3.14

Reťazcové operácie

Reťazenie (binárne +)

Táto operácia je navrhnutá na zreťazenie dvoch reťazcov. Napríklad:

Nomenklatúra.Článok + “: ”+ Nomenklatúra.Názov

Páči sa mi to

Táto operácia skontroluje, či sa reťazec zhoduje s odovzdaným vzorom.

Hodnota operátora LIKE je TRUE, ak je hodnota<Выражения>vyhovuje vzoru a inak FALSE.

Nasledujúce znaky v<Строке_шаблона>majú iný význam ako iný znak v riadku:

  • % - percento: sekvencia obsahujúca nula alebo viac ľubovoľných znakov;
  • _ - podčiarkovník: jeden ľubovoľný znak;
  • […] - jeden alebo viac znakov v hranatých zátvorkách: jeden znak, ktorýkoľvek zo znakov uvedených v hranatých zátvorkách. Enumerácia môže obsahovať rozsahy, napríklad a-z, čo znamená ľubovoľný znak zahrnutý v rozsahu, vrátane koncov rozsahu;
  • [^...] - v hranatých zátvorkách ikona negácie nasledovaná jedným alebo viacerými znakmi: akýkoľvek znak okrem tých, ktoré sú uvedené za ikonou negácie;

Akýkoľvek iný symbol znamená sám seba a nenesie žiadnu dodatočnú záťaž. Ak jeden z uvedených znakov musí byť napísaný ako samotný, potom mu musí predchádzať<Спецсимвол>, špecifikované za kľúčovým slovom SPECIAL CHARACTER (ESCAPE).

Napríklad šablóna

„%ABV[abvg]\_abv%“ ŠPECIÁLNY CHARAKTER „\“

znamená podreťazec pozostávajúci zo sekvencie znakov: písmeno A; písmená B; písmená B; jedna číslica; jedno z písmen a, b, c alebo d; podčiarknuť; písmená a; písmená b; písmená v. Okrem toho môže byť táto sekvencia umiestnená od ľubovoľnej pozície v rade.

Porovnávacie operácie

Rovná sa

Táto operácia je navrhnutá na porovnanie dvoch operandov na dosiahnutie rovnosti. Napríklad:

Sales.Counterparty = Predaj.NomenklatúraHlavný dodávateľ

Nerovná sa

Táto operácia je určená na porovnanie dvoch operandov pre nerovnosť. Napríklad:

Predaj.Protistrana<>Predaj.NomenklatúraHlavnýdodávateľ

Menej

Táto operácia je určená na kontrolu, či je prvý operand menší ako druhý. Napríklad:

PredajAktuálna.Suma< ПродажиПрошлые.Сумма

Viac

Táto operácia je určená na kontrolu, či je prvý operand väčší ako druhý. Napríklad:

PredajAktuálny.súčet >Minulý predaj.Súčet

Menej alebo rovnaké

Táto operácia je určená na kontrolu, či je prvý operand menší alebo rovný druhému. Napríklad:

PredajAktuálna.Suma<= ПродажиПрошлые.Сумма

Viac alebo rovnaké

Táto operácia je určená na kontrolu, či je prvý operand väčší alebo rovný druhému. Napríklad:

PredajAktualna.Suma >=Suma minuleho predaja

Operácia B

Táto operácia skontroluje prítomnosť hodnoty v odovzdanom zozname hodnôt. Výsledok operácie bude True, ak sa nájde hodnota, alebo False v opačnom prípade. Napríklad:

Položka B (&Produkt1, &Produkt2)

Operácia kontroly prítomnosti hodnoty v súbore údajov

Operácia skontroluje prítomnosť hodnoty v špecifikovanom súbore údajov. Validačný súbor údajov musí obsahovať jedno pole. Napríklad:

Predaj protistrany

Operácia kontroly hodnoty pre NULL

Táto operácia vráti hodnotu True, ak je hodnota NULL. Napríklad:

Predaj. Protistrana JE NULL

Operácia kontroly hodnoty pre NULL nerovnosť

Táto operácia vráti hodnotu True, ak hodnota nie je NULL. Napríklad:

Predaj. Protistrana NIE JE NULL

Logické operácie

Logické operácie akceptujú výrazy typu Boolean ako operandy.

Operácia NIE

Operácia NOT vráti True, ak je jej operand False, a False, ak je jej operand True. Napríklad:

NIE Dokument.Príjemca = Dokument.Odosielateľ

Operácia I

Operácia AND vracia True, ak sú oba operandy True, a False, ak je jeden z operandov False. Napríklad:

Dokument. Príjemca = Dokument. Odosielateľ A Dokument. Príjemca = &Protistrana

ALEBO operácia

Operácia OR vráti True, ak je jeden z jej operandov True, a False, ak sú oba operandy False. Napríklad:

Dokument. Príjemca = Dokument. Odosielateľ ALEBO Dokument. Príjemca = &Protistrana

Súhrnné funkcie

Agregačné funkcie vykonávajú určitú akciu na množine údajov.

Sum

Agregačná funkcia Sum vypočítava súčet hodnôt výrazov, ktoré jej boli odovzdané ako argument pre všetky podrobné záznamy. Napríklad:

Suma(Sales.AmountTurnover)

Množstvo

Funkcia Count vypočíta počet hodnôt iných ako NULL. Napríklad:

Množstvo (Predaj. Protistrana)

Počet rôznych

Táto funkcia vypočíta číslo rôzne významy. Napríklad:

Množstvo (rôzne predaje. Protistrana)

Maximálne

Funkcia získa maximálnu hodnotu. Napríklad:

Maximum (Remaining.Quantity)

Minimum

Funkcia získa minimálnu hodnotu. Napríklad:

Minimum (Zvyšné množstvo)

Priemerná

Funkcia získa priemer hodnôt, ktoré nie sú NULL. Napríklad:

Priemer (Zvyšné množstvo)

Iné operácie

Operácia SELECT

Operácia Select je určená na výber jednej z niekoľkých hodnôt, keď sú splnené určité podmienky. Napríklad:

Vyberte Keď Čiastka > 1000, Potom Čiastka Inak 0 Koniec

Pravidlá porovnávania dvoch hodnôt

Ak sa typy porovnávaných hodnôt navzájom líšia, potom sa vzťahy medzi hodnotami určujú na základe priority typov:

  • NULL (najnižšia);
  • Boolean;
  • číslo;
  • Dátum;
  • Linka;
  • Referenčné typy

Vzťahy medzi rôznymi referenčnými typmi sú určené na základe referenčných čísel tabuliek zodpovedajúcich konkrétnemu typu.

Ak sú typy údajov rovnaké, hodnoty sa porovnávajú podľa nasledujúcich pravidiel:

  • pre booleovský typ je hodnota TRUE väčšia ako hodnota FALSE;
  • typ Číslo má obvyklé pravidlá porovnávania čísel;
  • pre typ Dátum sú skoršie dátumy menšie ako neskoršie;
  • pre typ String - porovnanie reťazcov v súlade so stanovenými národnými charakteristikami databázy;
  • referenčné typy sa porovnávajú na základe ich hodnôt (číslo záznamu atď.).

Práca s hodnotou NULL

Každá operácia, v ktorej je jeden z operandov NULL, vytvorí výsledok NULL.

Existujú výnimky:

  • Operácia AND vráti hodnotu NULL iba vtedy, ak žiadny z operandov nie je False;
  • Operácia OR vráti hodnotu NULL iba vtedy, ak žiadny z jej operandov nie je pravdivý.

Operačné priority

Operácie majú nasledujúce priority (prvý riadok má najnižšiu prioritu):

  • B, JE NULL, NIE JE NULL;
  • =, <>, <=, <, >=, >;
  • Binárne +, Binárne – ;
  • *, /, %;
  • Unary +, Unary -.

Zloženie údajov Funkcie jazyka výrazov systému

Vypočítajte

Funkcia Vypočítať je určená na výpočet výrazu v kontexte nejakého zoskupenia. Funkcia má nasledujúce parametre:

  • Výraz. Zadajte reťazec. Obsahuje vypočítaný výraz;
  • Zoskupovanie. Zadajte reťazec. Obsahuje názov zoskupenia, v kontexte ktorého sa má výraz vyhodnotiť. Ak sa ako názov zoskupenia použije prázdny reťazec, výpočet sa vykoná v kontexte aktuálneho zoskupenia. Ak sa ako názov skupiny použije reťazec GrandTotal, výpočet sa vykoná v kontexte celkového súčtu. V opačnom prípade sa výpočet vykoná v kontexte nadradenej skupiny s rovnakým názvom. Napríklad:
Súčet(Predaj.SúčetTurnover) / Vypočítať("Súčet(Predaj.SumTurnover)", "Celkom")

V tomto príklade bude výsledkom pomer sumy pre pole „Sales.AmountTurnover“ záznamu zoskupenia k sume rovnakého poľa v celom rozložení.

úroveň

Funkcia je určená na získanie aktuálnej úrovne nahrávania.

úroveň()

NumberInOrder

Získajte ďalšie poradové číslo.

NumberByOrder()

NumberInOrderInGrouping

Vráti ďalšie poradové číslo v aktuálnom zoskupení.

NumberByOrderInGroup()

Formátovať

Získajte naformátovaný reťazec odovzdanej hodnoty.

Formátovací reťazec je nastavený v súlade s formátovacím reťazcom 1C:Enterprise.

Možnosti:

  • Význam;
  • Formátovať reťazec.

Format (Consumable Invoices.Doc Amount, "NPV=2")

Začiatok obdobia

Možnosti:

    • minúta;
    • deň;
    • Týždeň;
    • mesiac;
    • štvrťrok;
    • desaťročie;
    • Polrok.

StartPeriod(DateTime(2002, 10, 12, 10, 15, 34), "Mesiac")

výsledok:

01.10.2002 0:00:00

Koniec obdobia

Funkcia je navrhnutá tak, aby extrahovala konkrétny dátum z daného dátumu.

Možnosti:

  • Dátum. Typ Dátum. Určený dátum;
  • Typ obdobia. Zadajte reťazec. Obsahuje jednu z nasledujúcich hodnôt:
    • minúta;
    • deň;
    • Týždeň;
    • mesiac;
    • štvrťrok;
    • desaťročie;
    • Polrok.

EndPeriod(DateTime(2002, 10, 12, 10, 15, 34), "Týždeň")

výsledok:

13.10.2002 23:59:59

AddToDate

Funkcia je navrhnutá tak, aby k dátumu pridala určitú hodnotu.

Možnosti:

  • Typ zväčšenia. Zadajte reťazec. Obsahuje jednu z nasledujúcich hodnôt:
    • minúta;
    • deň;
    • Týždeň;
    • mesiac;
    • štvrťrok;
    • desaťročie;
    • Polrok.
  • Suma – o koľko potrebujete zvýšiť dátum. Typ Číslo. Zlomková časť sa ignoruje.

AddToDate(DateTime(2002, 10, 12, 10, 15, 34), "Mesiac", 1)

výsledok:

12.11.2002 10:15:34

Dátum rozdielu

Funkcia je navrhnutá tak, aby získala rozdiel medzi dvoma dátumami.

Možnosti:

  • Výraz. Typ Dátum. Pôvodný dátum;
  • Výraz. Typ Dátum. Odpočítaný dátum;
  • Typ rozdielu. Zadajte reťazec. Obsahuje jednu z nasledujúcich hodnôt:
    • Po druhé;
    • minúta;
    • deň;
    • mesiac;
    • štvrťrok;

DATEDIFFERENCE(DATETIME(2002, 10, 12, 10, 15, 34), DATETIME(2002, 10, 14, 9, 18, 06); "DAY")

výsledok:

Podreťazec

Táto funkcia je navrhnutá na extrahovanie podreťazca z reťazca.

Možnosti:

  • Linka. Zadajte reťazec. Reťazec, z ktorého sa extrahuje podreťazec;
  • pozícia. Typ Číslo. Pozícia znaku, od ktorej začína podreťazec, ktorý sa má z reťazca extrahovať;
  • Dĺžka. Typ Číslo. Dĺžka prideleného podreťazca.

SUBSTRING(Accounts.Address, 1, 4)

Dĺžka čiary

Funkcia je určená na určenie dĺžky reťazca.

Parameter:

  • Linka. Zadajte reťazec. Reťazec, ktorého dĺžka je špecifikovaná.

Riadok (Protistrany.Adresa)

rok

Táto funkcia je navrhnutá tak, aby extrahovala rok z hodnoty typu Dátum.

Parameter:

  • Dátum. Typ Dátum. Dátum, do ktorého je určený rok.

ROK(výdavky.dátum)

Štvrťrok

Táto funkcia je navrhnutá tak, aby extrahovala štvrťročné číslo z hodnoty typu Dátum. Číslo štvrťroka sa zvyčajne pohybuje od 1 do 4.

Parameter

  • Dátum. Typ Dátum. Dátum, do ktorého je určený štvrťrok
ŠTVRŤ(výdavok.dátum)

mesiac

Táto funkcia je navrhnutá na extrahovanie čísla mesiaca z hodnoty typu Dátum. Číslo mesiaca sa zvyčajne pohybuje od 1 do 12.

  • Dátum. Typ Dátum. Dátum, do ktorého je určený mesiac.
MESIAC(výdavky.dátum)

deň v roku

Táto funkcia je navrhnutá na získanie dňa v roku z hodnoty typu Dátum. Deň v roku sa zvyčajne pohybuje od 1 do 365 (366).

  • Dátum. Typ Dátum. Dátum, ktorým sa určuje deň v roku.
DAYYEAR(ExpenseAccount.Date)

deň

Táto funkcia je navrhnutá na získanie dňa v mesiaci z hodnoty typu Dátum. Deň v mesiaci sa zvyčajne pohybuje od 1 do 31.

  • Dátum. Typ Dátum. Dátum, ktorým sa určuje deň v mesiaci.
DAY(Dátum výdavkov)

Týždeň

Táto funkcia je určená na získanie čísla týždňa v roku z hodnoty typu Dátum. Týždne v roku sú očíslované od 1.

  • Dátum. Typ Dátum. Dátum, podľa ktorého sa určujú čísla týždňov.
WEEK(Dátum výdajov)

Deň v týždni

Táto funkcia je navrhnutá na získanie dňa v týždni z hodnoty typu Dátum. Bežný deň v týždni sa pohybuje od 1 (pondelok) do 7 (nedeľa).

  • Dátum. Typ Dátum. Dátum, podľa ktorého sa určuje deň v týždni.
DEŇ TÝŽDŇA (dátum faktúry výdavkov)

hodina

Táto funkcia je navrhnutá na získanie hodiny dňa z hodnoty typu Dátum. Hodina dňa sa pohybuje od 0 do 23.

  • Dátum. Typ Dátum. Dátum, podľa ktorého je určená hodina dňa.
HODINA (Výdavok. Dátum)

Minúta

Táto funkcia je navrhnutá na získanie minúty v hodine z hodnoty typu Dátum. Minúta hodiny sa pohybuje od 0 do 59.

  • Dátum. Typ Dátum. Dátum, podľa ktorého je určená minúta hodiny.
MINUTE(dátum.výdavku)

Po druhé

Táto funkcia je navrhnutá na získanie sekundy minúty z hodnoty typu Dátum. Sekunda minúty je v rozsahu od 0 do 59.

  • Dátum. Typ Dátum. Dátum, podľa ktorého sa určujú sekundy minúty.
DRUHÝ (dátum vypršania platnosti)

expresné

Táto funkcia je navrhnutá tak, aby extrahovala typ z výrazu, ktorý môže obsahovať kompozitný typ. Ak výraz obsahuje iný než požadovaný typ, vráti sa NULL.

Možnosti:

  • Výraz na konverziu;
  • Označenie typu. Zadajte reťazec. Obsahuje reťazec typu. Napríklad "Číslo", "Reťazec" atď. Okrem primitívnych typov daný riadok môže obsahovať názov tabuľky. V tomto prípade sa pokúsime vyjadriť odkaz na zadanú tabuľku.

Express(Data.Props1, "Number(10;3)")

IsNull

Táto funkcia vráti hodnotu druhého parametra, ak je hodnota prvého parametra NULL.

V opačnom prípade sa vráti hodnota prvého parametra.

ÁnoNULL(Suma(Sales.AmountTurnover), 0)

Funkcie bežných modulov

Výraz nástroja na zostavovanie údajov môže obsahovať volania globálnych funkcií spoločné moduly konfigurácie. Na volanie takýchto funkcií nie je potrebná žiadna ďalšia syntax.

V tomto príklade bude funkcia "AbbreviatedName" volaná z modulu všeobecnej konfigurácie.

Všimnite si, že používanie spoločných funkcií modulu je povolené len vtedy, ak je špecifikovaný príslušný parameter procesora zloženia údajov.

Okrem toho funkcie bežných modulov nemožno použiť vo výrazoch vlastných polí.