Vypočítajte výraz skd. Príklady schém užitočného zloženia údajov

Príklad, ako môžete získať polia predchádzajúceho záznamu v zoskupení a nielen. Pohodlné na výpočet rozdielu medzi hodnotami predchádzajúcej ceny a aktuálnej ceny.

Podstatou riešenia je využitie funkcie výrazového jazyka SKD Vypočítať výraz() v pridanom vypočítanom poli, ktoré som zavolal Delta. Funkcia má nasledujúce parametre:

Možnosti:

  • Výraz. Typ Linka;
  • zoskupenie. Typ Linka;
  • Typ výpočtu. Typ Linka;
  • Štart
  • Koniec. Reťazec obsahujúci jednu z možností;
  • Triedenie. Linka;
  • Hierarchické zoradenie;
  • Spracovanie objednávky s rovnakými hodnotami

Zaujímajú nás parametre 4 a 5 ( Štart a Koniec). Výraz bude vyzerať takto:

isNULL((VYPOČÍTAJTE VÝRAZ("Cena", "Predchádzajúci", "Predchádzajúci") - Cena), 0)

Tu vypočítame predchádzajúcu hodnotu poľa cena a odčítajte od nej aktuálnu hodnotu poľa cena. Pri prvom zázname sa samozrejme nebude počítať predchádzajúca hodnota a výsledok odčítania s hodnotou aktuálneho poľa bude Null, takže aby bolo všetko „čisté“, pomocou funkcie isNULL (isNull) prevedieme Null na nulu. .

Umiestnite tabuľku hodnôt do bunky s tabuľkovým dokumentom

Niekedy je potrebné umiestniť tabuľkovú časť dokumentu alebo údaje, ktorými sú riadky tabuľkovej časti, do jednej bunky tabuľkového dokumentu, napríklad takto:

Ak to chcete urobiť, musíte použiť funkciu: ComputeExpressionGroupedValueTable() , ktorý má parametre:

  • Výraz je výraz, ktorý sa má vyhodnotiť. Zadajte reťazec. Riadok môže obsahovať viacero výrazov oddelených čiarkami. Za každým výrazom môže nasledovať voliteľné kľúčové slovo AS a názov stĺpca tabuľky hodnôt. Napríklad: "Dodávateľ, Suma(SumaTurnover) Ako Objem predaja".
  • Field ExpressionsGroupings- zoskupenie výrazov polí oddelených čiarkami. Napríklad "Dodávateľ, strana";
  • Výber záznamu je výraz aplikovaný na podrobné záznamy. Napríklad "DeletionMark = False";
  • Výber zoskupenia- výber aplikovaný na záznamy skupiny. Napríklad: "Suma(SumaObrat) > &Parameter1".

Aby sme to urobili, vytvoríme vypočítané pole, v ktorom zobrazíme výslednú tabuľku, potom toto pole umiestnime do zdrojov s výrazom CalculateExpressionGroupedValueTable("Nomenklatúra, množstvo")

Počet stĺpcov

Príklad, ako sa dajú číslovať stĺpce v SKD.

Podstata riešenia:

  1. Vytvoríme dotaz, v ktorom očíslujeme riadky výsledku dotazu v rámci určitej podriadenosti
  2. Zobrazenie výsledku v krížovej tabuľke

DÔLEŽITÉ!

Po očíslovaní riadkov v dopyte ich treba umiestniť do BT a následne vybrať z tohto BT, inak ACS urobí všetko po svojom a nesprávne polia budú spadať do zoskupenia

Ak chcete získať výsledok, musíte vytvoriť vypočítané pole s výrazom "Zamestnanec" + Formát(NPP, "FH=3; FH=") a vypočítaný názov poľa, do ktorého je ľahké umiestniť Zamestnanca, potom pole umiestnime Celé meno na zdroj s výrazom Maximum (celé meno) alebo jednoducho Celé meno- žiadny rozdiel

Striedanie skupín s farebným zvýraznením

Niekde na Mista alebo na rovnakom 1Cskd.ru bola otázka, ako zvýrazniť čiary, ktoré tvoria skupiny, rôznymi farbami

To sa dosiahne vytvorením vypočítaného poľa:

Vypočítať výraz("Množstvo (rôzne položky)","Prvý", "Predchádzajúci","Spolu") % 2

Počítame počet rôznych „zoskupení“ poľa Nomenklatúra, zoskupenia je možné spočítať nastavením hodnoty parametra ProcessingSameOrderValues ​​​​= „Together“

Zo zvyšku delenia dvomi bude jasné, či je táto skupina párna alebo nie, respektíve vytvoríme podmienený prvok návrhu s podmienkou Lúka = 1

Zostať v kontexte charakteristík. Charakteristiky na riadok s množstvom v zátvorkách

Na tej istej stránke 1CSkd.ru bola téma, v ktorej autor žiada o pomoc pri vytváraní správy, kde sa v jednom zo stĺpcov vyžaduje zoznam charakteristík (veľkosti topánok) s ich číslom. http://1cskd.ru/2013/05/podskazhite-novichku-v-skd/

To sa dosiahne pomocou rovnakej funkcie Vypočítať výrazWith GroupingArray()

V tomto príklade funkcia vyzerá takto:

Calculate ExpressionWith GroupingArray("Charakteristika nomenklatúry.Popis +
""("" + Format(Počet zvyšku,""CH=0"") + "")""",
,
"ValueFilled (Nomenclature Feature)")

Tretím parametrom je výber, ktorý vám umožňuje vyhnúť sa prezentácii prázdneho reťazca "" - preto neuvidíte zvyšky bez charakteristík

Spojte dva stoly kľúčom String = Number

Alebo variant, ako previesť hodnotu typu čísla na reťazec v SKD

Na fórach pravidelne vidím tému ako "Ako previesť číslo na reťazec v dotaze." Ak píšete správu o ACS a potrebujete vykonať takúto transformáciu, nemusíte do žiadosti písať žiadne triky.

Na prevod čísla na reťazec stačí použiť funkciu výrazového jazyka systému na skladbu údajov SKD riadok() alebo Format()

Ak chcete previesť reťazec na číslo, môžete použiť funkciu Vypočítať ()

Zoradiť podľa reťazca ako podľa čísla

V mojom príklade jednoducho zobrazím adresár zamestnancov a zoradím ho podľa osobného čísla (kódu)

Výsledok bude vyzerať takto:

To sa dosiahne vytvorením výpočtového poľa a použitím funkcie jazyka výrazov SKD Vypočítať ()

  1. Vytvorte vypočítané pole TabNumberNumber, s výrazom: Vypočítať (Kód zamestnanca)
  2. Zoradiť podľa tohto poľa

v skutočnosti ide o prevod reťazca na číslo pomocou funkcie výrazového jazyka SKD Vypočítať ()

Tiež vám odporúčam, aby ste si pozreli "Video tutoriály na skd" (ľahko sa vyhľadajú v Google)

Pri vyvolávaní používam konvertovaný .

Vo svetle nadchádzajúceho vydania 8.2.14 sa pokúsim opísať niektoré z nových funkcií systému zostavovania údajov.

Otvorte schému zloženia údajov, najlepšie v externej správe, aby ste ju mohli ľahšie upravovať.

Pridáme množinu údajov dotazu a zapíšeme, buď manuálne, alebo pomocou nástroja na tvorbu dotazov, najjednoduchší dotaz:

1. Nastavte požiadavku v ACS.

2. Nastavte vypočítavané polia v ACS

3. Rozloženie údajov nakonfigurujeme na karte nastavení

4. Spúšťame 1C Enterprise 8.2.14. Otvárame správu. Tvoríme, prijímame.

Popis samotných nových funkcií:

1. Aktuálny dátum ()

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

2. VYPOČÍTAŤ VÝRAZ()

Syntax:

Vypočítať výraz(,)

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 Vypočítať výraz ("Súčet (súčetObrat)", "Celkom Spolu") > 1 000. Ale takýto výraz možno použiť pri 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 agregovaných funkcií.

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

Tvorca rozloženia pri generovaní výrazu funkcie Vypočítajte výraz, ak objednávací výraz obsahuje polia, ktoré nemožno použiť v zoskupení, nahrádza funkciu Vypočítajte výraz 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 zoskupenia 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 nadradeného zoskupenia s týmto názvom.

Napríklad:

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

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

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

· Celkový výsledok— výraz sa vyhodnotí pre všetky záznamy zoskupenia.

· Hierarchia— výraz sa vyhodnotí pre nadradenú hierarchickú položku, ak existuje, a pre celé zoskupenie, ak neexistuje žiadna nadradená hierarchická položka.

· zoskupenie— výraz sa vyhodnotí pre aktuálny skupinový záznam zoskupenia.

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

Pri výpočte funkcie Vypočítať výraz() so zmyslom GroupingNotResource 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 zoskupenie.

Tvorca rozloženia rozloženia zloženia údajov pri generovaní rozloženia zloženia údajov pri zobrazení poľa zdroja, na ktorom sa zoskupenie vykonáva, vloží do rozloženia výraz, ktorý sa vypočíta pomocou funkcie Vypočítať výraz() s uvedením parametra GroupingNotResource. Pre ostatné zdroje zoskupené podľa zdroja sú umiestnené regulárne výrazy zdrojov.

Typ: Linka. Určuje, ktorým záznamom sa má začať fragment, v ktorom sa majú vypočítať súhrnné funkcie výrazu a z ktorého záznamu sa majú získať hodnoty polí mimo súhrnných funkcií. Hodnota môže byť jedna z nasledujúcich:

· prvý (prvý)

· posledný (posledný)

· Predchádzajúci (predchádzajúci )

· Ďalej (Next)

· Aktuálne (aktuálne)

· LimitingValue(Hodnota hranice) LimitingValue

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

· prvý (prvý). Musíte 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) - získanie tretieho záznamu od začiatku zoskupovania.

Ak je prvý záznam mimo zoskupenia, má sa 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ý). Musíte získať najnovší 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) - získa tretí záznam od konca zoskupenia.

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) , predpokladá sa, že neexistujú žiadne záznamy.

· Predchádzajúci (predchádzajúci ). 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 posun späť od aktuálneho záznamu zoskupenia. Napríklad Previous(2) - získa predchádzajúci z predchádzajúceho záznamu.

Ak je predchádzajúci záznam mimo zoskupenia (napríklad druhý záznam zoskupenia vyžaduje 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šiu položku zoskupenia. Za slovom v zátvorkách môžete zadať výraz, ktorého výsledok sa použije ako posun vpred od aktuálneho záznamu zoskupenia. Napríklad Next(2) - získa ďalší 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 záznamy a tretí záznam dostane Next() , potom sa predpokladá, že neexistujú žiadne záznamy.

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

· Aktuálne (aktuálne). Musíte získať aktuálny záznam.

Pri získaní pre súčet zoskupenia sa získa prvý záznam.

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

Záznam bude prvým záznamom, ktorého hodnota poľa objednávky je väčšia alebo rovná zadanej hodnote. Ak napríklad použijete pole Obdobie ako pole objednávky a má hodnoty 01/01/2010 , 02/01/2010 , 03/01/2010 a chcete získať LimitValue(DateTime(2010, 1, 15)), potom bude prijatý záznam s dátumom 01.02.2010.

Typ: Linka. Sú uvedené výrazy oddelené čiarkami, ktoré popisujú pravidlá zoradenia. Ak nie je zadané, zoradenie sa vykoná rovnakým spôsobom ako pri zoskupení, pre ktoré sa výraz vyhodnocuje. Za každým výrazom môže nasledovať kľúčové slovo Asc(pre vzostupné poradie), Zostupne(pre zostupné poradie) a Automatické usporiadanie(pre zoradenie referenčných polí podľa polí, podľa ktorých chcete zoradiť referenčný objekt). Slovo Automatické usporiadanie možno použiť ako so slovom Asc a so slovom Zostupne.

Typ: Linka. Rovnaké ako parameter Triedenie. Používa sa na usporiadanie hierarchických záznamov. Ak nie je zadané, tvorca rozloženia vygeneruje objednávku podľa poradia špecifikovaného v parametri Triedenie.

Typ: Linka. Určuje pravidlo na určenie predchádzajúceho alebo nasledujúceho záznamu, ak existuje viacero 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 (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, potom:

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

prúd, prúd(resp. 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, potom:

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

§ ak je vypočítaný fragment definovaný ako prúd, prúd(resp. 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("Suma(SumaObratu)", "Prvá", "Aktuálna")

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

CalculateExpression("Kurz", "Predchádzajúci")

Zoznam Nový Vlastnosti:

ComputeExpressionGroupedArray(,) -

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

ComputeExpressionGroupedValueTable(,) -

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 nulová referencia, iná ako Nedefinované . Booleovské hodnoty sa testujú na hodnotu NULL. Reťazce sú kontrolované na znaky, ktoré nie sú medzery.

Formátovať(, ) - Získa 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 výber podreťazca z reťazca.

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

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 tabuľka hodnôt odovzdá ako parameter, funkcia vráti reťazec obsahujúci reťazcové reprezentácie všetkých riadkov tabuľky hodnôt a reprezentácie buniek každého riadku sú oddelené znakmi "; " a riadkami sú oddelené znakom nového riadku. Ak má niektorý prvok prázdnu reprezentáciu reťazca, potom sa namiesto jeho reprezentácie zobrazí reťazec.

  • 1C-Bitrix
  • Jednou z najdôležitejších oblastí podnikového softvéru je reporting. Aké ľahké je prispôsobiť existujúcu správu meniacim sa potrebám podnikania (a legislatívy) alebo vytvoriť novú, môže závisieť (a nie v prenesenom zmysle!) Osud podniku, či už ide o správu pre daňový úrad alebo diagram závislosti dopytu po tovare od sezóny a iných faktorov . Výkonný a flexibilný systém podávania správ, ktorý uľahčuje extrahovanie správnych údajov zo systému, ich prezentáciu v zrozumiteľnej forme, čo umožňuje koncovému používateľovi prekonfigurovať štandardnú zostavu, aby videl údaje v novom svetle – to je ideálne, obchodný systém by sa mal snažiť.

    V platforme 1C:Enterprise je za generovanie správ zodpovedný mechanizmus nazývaný Data Composition System (skrátene ACS). V tomto článku sa pokúsime stručne opísať myšlienku a architektúru mechanizmu ACS a jeho možnosti.


    ACS je mechanizmus založený na deklaratívnom opise správ. ACS je navrhnutý na vytváranie zostáv a zobrazovanie informácií, ktoré majú zložitú štruktúru. Mimochodom, okrem vývoja správ sa mechanizmus ACS používa aj v 1C:Enterprise v dynamickom zozname, nástroji na zobrazovanie informácií o zozname s bohatou funkčnosťou (zobrazenie plochých a hierarchických zoznamov, podmienené formátovanie riadkov, zoskupovanie atď.) .

    Trochu histórie

    V úplne prvej verzii platformy 1C:Enterprise 8, verzia 8.0, boli správy vytvorené takto:
    1. Jeden alebo viacero dotazov bolo napísaných v dotazovacom jazyku 1C (jazyk podobný SQL, viac o ňom nižšie).
    2. Bol napísaný kód, ktorý prenášal výsledky vykonaných dotazov do tabuľkového dokumentu alebo grafu. Kód by tiež mohol vykonávať prácu, ktorá sa nedá vykonať v dotaze - napríklad vypočítal hodnoty pomocou vstavaného jazyka 1C.
    Prístup je jednoduchý, ale nie práve najpohodlnejší – vizuálnych nastavení je minimum, všetko treba naprogramovať z ruky do ruky. A jedným z vtedajších tromfov úplne novej platformy 1C:Enterprise 8 bola minimalizácia množstva kódu v aplikačnom riešení, ktorý je potrebné písať ručne, najmä kvôli vizuálnemu dizajnu. Bolo by logické postupovať rovnakou cestou v mechanizme podávania správ. Dosiahlo sa to vyvinutím nového mechanizmu – systému skladania údajov.

    Jednou z myšlienok, ktoré tvorili základ ACS, bola flexibilita a prispôsobenie správ, ktoré sú dostupné pre vývojárov aj koncových používateľov. V ideálnom prípade by sme chceli poskytnúť koncovému používateľovi prístup k rovnakej sade nástrojov na návrh zostáv ako vývojár. Bolo by logické sprístupniť jednotný súbor nástrojov všetkým. Keďže nástroje zahŕňajú účasť koncového používateľa, znamená to, že používanie programovania v nich by sa malo odstrániť na minimum (najlepšie úplne odstrániť) a maximálne využiť vizuálne nastavenia.

    Formulácia problému

    Úloha, ktorá stála pred vývojovým tímom, znela takto - vytvoriť reportovací systém založený nie na algoritme (tj prostredníctvom písania kódu), ale na deklaratívnom prístupe k tvorbe reportov. A veríme, že problém je úspešne vyriešený. Podľa našich skúseností možno asi 80 % požadovaných výkazov implementovať pomocou ACS bez jediného riadku kódu (okrem písania vzorcov pre vypočítané polia), väčšinou prostredníctvom vizuálnych nastavení.
    Vývoj prvej verzie ACS trval asi 5 človekorokov.

    Dva jazyky

    Pri vytváraní správ sú zapojené dva jazyky. Jedným z nich je dopytovací jazyk používaný na načítanie údajov. Druhým je jazyk výrazov kompozície údajov, ktorý je určený na písanie výrazov používaných v rôznych častiach systému, napríklad v nastaveniach kompozície údajov, na popis výrazov vlastných polí.

    Jazyk dopytu

    Dotazovací jazyk je založený na SQL a ľahko ho ovládajú tí, ktorí SQL poznajú. Príklad žiadosti:

    Je ľahké vidieť analógy štandardných sekcií SQL dotazov - SELECT, FROM, GROUP BY, ORDER BY.

    Dotazovací jazyk zároveň obsahuje značné množstvo rozšírení zameraných na reflektovanie špecifík finančných a ekonomických úloh a na maximálne zníženie úsilia pri vývoji aplikovaných riešení:

    • Odkazovanie na polia cez bodku. Ak majú polia tabuľky referenčný typ (ukladajú odkazy na objekty inej tabuľky), vývojár na ne môže odkazovať v texte dopytu cez ".", pričom počet úrovní vnorenia takýchto odkazov nie je obmedzený systému (napríklad Objednávka zákazníka.Dohoda.Organizácia. Telefón).
    • Viacrozmerné a viacúrovňové formovanie výsledkov. Súčty a medzisúčty sa tvoria s prihliadnutím na zoskupenie a hierarchiu, úrovne je možné obchádzať v ľubovoľnom poradí sčítavaním medzisúčtov, je zabezpečená správna konštrukcia súčtov podľa časových dimenzií.
    • Podpora virtuálnych tabuliek. Virtuálne tabuľky, ktoré systém poskytuje, vám umožňujú získať takmer hotové dáta pre väčšinu úloh aplikácie bez nutnosti písania zložitých dotazov. Virtuálna tabuľka teda môže poskytnúť údaje o bilancii tovaru v kontexte období v určitom časovom bode. Virtuálne tabuľky zároveň maximálne využívajú uložené informácie, napríklad predtým vypočítané súčty atď.
    • Dočasné tabuľky. Jazyk dotazu vám umožňuje používať dočasné tabuľky v dotazoch. S ich pomocou môžete zlepšiť výkon dotazov, v niektorých prípadoch znížiť počet zámkov a uľahčiť čítanie textu dotazu.
    • dávkové požiadavky. Pre pohodlnejšiu prácu s dočasnými tabuľkami dotazovací jazyk podporuje prácu s dávkovými dotazmi – teda vytvorenie dočasnej tabuľky a jej použitie sú umiestnené v jednom dotaze. Dávková požiadavka je postupnosť požiadaviek oddelených bodkočiarkou (";"). Požiadavky v dávke sa vykonávajú jedna po druhej. Výsledkom vykonania dávkového dotazu v závislosti od použitej metódy bude buď výsledok vrátený posledným dotazom v dávke, alebo pole výsledkov všetkých dávkových požiadaviek v poradí, v akom nasledujú požiadavky v dávke.
    • Získanie zobrazenia referenčného poľa. Každá tabuľka objektov (v ktorej je uložený adresár alebo dokument) má virtuálne pole – „Reprezentácia“. Toto pole obsahuje textovú reprezentáciu objektu a uľahčuje prácu reportéra. V prípade dokladu teda toto pole obsahuje všetky kľúčové informácie – názov typu dokladu, jeho číslo a dátum (napríklad „Predaj 000000003 od 07.06.2017 17:49:14“), čím sa vývojár ukladá z písanie vypočítaného poľa.
    • atď.
    Dotazovací modul automaticky upraví dotaz, pričom zohľadní roly používateľa, v mene ktorého sa dotaz vykoná (t. j. používateľ uvidí len údaje, ktoré má právo vidieť) a funkčné možnosti (t.j. v súlade s ten, ktorý je nakonfigurovaný vo funkcionalite riešenia aplikácie).

    Pre SKD existujú aj špeciálne rozšírenia dopytovacieho jazyka. Rozšírenie sa vykonáva pomocou špeciálnych príkazov syntaxe uzavretých v zložených zátvorkách a umiestnených priamo v texte požiadavky. Pomocou rozšírení vývojár určí, aké operácie bude môcť koncový používateľ vykonávať prispôsobením zostavy.

    Napríklad:

    • VYBERTE SI. Táto veta popisuje polia, ktoré bude môcť používateľ vybrať na výstup. Po tomto kľúčovom slove sú uvedené aliasy polí z hlavného výberového zoznamu dotazov, ktoré budú k dispozícii na prispôsobenie, oddelené čiarkami. Príklad: (SELECT nomenklatúra, sklad)
    • KDE. Popisuje polia, na ktoré môže používateľ použiť výber. Tento návrh používa polia tabuľky. Použitie aliasov polí zoznamu nie je povolené. Každá časť zväzku môže obsahovať svoj vlastný prvok WHERE. Príklady: (WHERE Nomenclature.*, Warehouse ), (WHERE Document.Date >= &StartDate, Document.Date<= &ДатаКонца}
    • atď.
    Príklad použitia rozšírení:

    Data Composition Expression Language

    Jazyk výrazov zloženia údajov je určený na písanie výrazov používaných najmä na opis výrazov vlastných polí. ACS vám umožňuje definovať vlastné polia v zostave pomocou vlastných výrazov alebo množín možností s podmienkami pre ich výber (podobne ako CASE v SQL). Vlastné polia sú analogické s vypočítavanými poliami. Možno ich nastaviť v konfigurátore aj v režime 1C:Enterprise, ale funkcie bežných modulov nemožno použiť vo výrazoch vlastných polí. Preto sú vlastné polia viac pre používateľa ako pre vývojára.

    Príklad:

    Proces vytvárania správy o ACS

    Pri vytváraní prehľadu musíme vytvoriť rozloženie, ktoré definuje, ako sa budú údaje v prehľade zobrazovať. Rozloženie môžete vytvoriť na základe schémy zloženia údajov. Schéma zloženia údajov popisuje podstatu údajov, ktoré sa poskytujú do zostavy (odkiaľ získať údaje a ako môžete kontrolovať ich zloženie). Schéma zloženia údajov je základom, na ktorom je možné generovať všetky druhy správ. Schéma zloženia údajov môže obsahovať:
    • vyžiadať text s pokynmi systému na zostavovanie údajov;
    • opis niekoľkých súborov údajov;
    • podrobný popis dostupných polí;
    • opis vzťahov medzi niekoľkými súbormi údajov;
    • popis parametrov získavania údajov;
    • popis usporiadania polí a zoskupení;
    • atď.

    Môžete napríklad pridať dotaz do schémy zloženia údajov ako množinu údajov a zavolať konštruktor dotazu, ktorý vám umožní graficky zostaviť dotaz ľubovoľnej zložitosti:

    Výsledkom spustenia nástroja na tvorbu dotazov bude text dotazu (v jazyku dotazov 1C:Enterprise). Tento text je možné v prípade potreby manuálne upraviť:

    V schéme zloženia údajov môže byť niekoľko množín údajov, množiny údajov je možné ľubovoľným spôsobom prepájať v rozložení, pridávať vypočítané polia, nastavovať parametre zostavy atď. Za zmienku stojí zaujímavá funkcia mechanizmu dotazov v 1C:Enterprise. Dotazy sú nakoniec preložené do dialektu SQL špecifického pre DBMS, s ktorým aplikácia priamo pracuje. Vo všeobecnosti sa snažíme využívať možnosti DBMS serverov na maximum (obmedzuje nás fakt, že využívame len tie možnosti, ktoré sú súčasne dostupné vo všetkých DBMS podporovaných platformou 1C:Enterprise - MS SQL, Oracle, IBM DB2 , PostgreSQL). Na úrovni dotazu vo vypočítavaných poliach teda môžeme použiť len tie funkcie, ktoré sú preložené do SQL.

    Ale na úrovni schémy zloženia údajov už môžeme pridávať vlastné polia a používať v nich funkcie v zabudovanom vývojovom jazyku 1C (vrátane tých nami napísaných), čo značne rozširuje možnosti zostáv. Technicky to vyzerá takto - všetko, čo sa dá preložiť do SQL, sa preloží do SQL, dotaz sa vykoná na úrovni DBMS, výsledky dotazu sa uložia do pamäte aplikačného servera 1C a ACS vypočíta hodnoty vypočítaných polí pre každý záznam, ktorého vzorce sú napísané v jazyku 1C.


    Pridanie vlastných polí

    Do zostavy môžete pridať ľubovoľný počet tabuliek a grafov:


    Návrhár správ


    Správa za behu

    Pomocou ACS môže používateľ do zostavy pridať komplexné výbery (ktoré budú pridané do dotazu na správnych miestach), podmienené formátovanie (umožňujúce rôzne formátovanie - písmo, farba atď. - výstupné polia v závislosti od ich hodnoty) a oveľa viac.

    Stručne opíšte proces vytvárania a generovania správy nasledovne:

    • Vývojár v čase návrhu s pomocou návrhára (alebo za behu s pomocou kódu) definuje schému rozloženia údajov:
      • Text žiadosti/žiadostí
      • Popis vypočítaných polí
      • Vzťahy medzi dopytmi (ak existuje viac ako jeden)
      • Možnosti prehľadu
      • Predvolené nastavenia
      • Atď.
    • Vyššie uvedené nastavenia sú uložené v rozložení
    • Používateľ otvorí prehľad
      • Možno vykoná ďalšie nastavenia (napríklad zmení hodnoty parametrov)
      • Stlačí tlačidlo "Generovať".
    • Používateľské nastavenia sa vzťahujú na schému zloženia údajov definovanú vývojárom.
    • Vytvorí sa prechodné usporiadanie zloženia údajov, ktoré obsahuje pokyny, odkiaľ údaje získať. Opravujú sa najmä dotazy uvedené v rozložení. Polia, ktoré sa v prehľade nepoužívajú, sa teda z požiadavky odstránia (to sa robí s cieľom minimalizovať množstvo prijatých údajov). Všetky polia, ktoré sa používajú vo vzorcoch vypočítaných polí, sa pridajú do dotazu.
    • Súčasťou puzdra je aj procesor na zostavovanie dát. Procesor rozloženia vykonáva dotazy, spája súbory údajov, vypočítava hodnoty vypočítaných polí a zdrojov, vykonáva zoskupovanie. Jedným slovom robí všetky výpočty, ktoré neboli vykonané na úrovni DBMS.
    • Procesor výstupu údajov spustí dotaz na vykonanie a prijaté údaje odošle do tabuľkového dokumentu, grafu atď.


    Proces generovania správy mechanizmom ACS

    Snažíme sa minimalizovať množstvo reportovacích dát prenášaných zo servera do klientskej aplikácie. Pri zobrazení údajov v tabuľkovom dokumente pri otvorení tabuľkového dokumentu prenášame zo servera len tie riadky, ktoré používateľ vidí na začiatku dokumentu. Keď sa používateľ pohybuje pozdĺž riadkov dokumentu, chýbajúce údaje sa stiahnu zo servera do klienta.

    Používateľské nastavenia

    Všetky nástroje ACS sú dostupné pre vývojárov aj koncových používateľov. Prax však ukázala, že koncový používateľ je často vystrašený množstvom možností nástroja. Navyše vo väčšine prípadov koncový používateľ nepotrebuje všetky nastavenia - stačí mu rýchly prístup k nastaveniu jedného alebo dvoch parametrov prehľadu (napríklad obdobie a protistrana). Počnúc určitou verziou platformy má vývojár zostavy možnosť označiť, ktoré nastavenia zostavy sú pre používateľa dostupné. To sa vykonáva pomocou začiarkavacieho políčka „Zahrnúť do používateľských nastavení“. Nastavenia prehľadu teraz obsahujú príznak „Režim zobrazenia“, ktorý má jednu z troch hodnôt:
    • Rýchly prístup. Nastavenie sa zobrazí priamo v hornej časti okna prehľadu.
    • Obyčajný. Nastavenie bude dostupné cez tlačidlo „Nastavenia“.
    • Nie je k dispozícií. Toto nastavenie nebude dostupné pre koncového používateľa.


    Nastavenie režimu zobrazenia v čase návrhu


    Zobrazte nastavenie v režime rýchleho prístupu za behu (pod tlačidlom Generovať)

    Rozvojové plány

    Jednou z priorít pri vývoji ACS je pre nás zjednodušenie užívateľských nastavení. Naše skúsenosti ukazujú, že pre niektorých koncových používateľov je práca s používateľskými nastaveniami stále vážna práca. Berieme to do úvahy a pracujeme týmto smerom. V súlade s tým bude tiež pre vývojárov jednoduchšie pracovať s ACS, pretože Rovnako ako predtým chceme poskytnúť jednotnú súpravu nástrojov na nastavenie prehľadov pre vývojárov aj koncových používateľov.

    Vo svetle nadchádzajúceho vydania 8.2.14 sa pokúsim opísať niektoré z nových funkcií systému zostavovania údajov.

    Otvorte schému zloženia údajov, najlepšie v externej správe, aby ste ju mohli ľahšie upravovať.

    Pridáme množinu údajov dotazu a zapíšeme, buď manuálne, alebo pomocou nástroja na tvorbu dotazov, najjednoduchší dotaz:

    1. Nastavte požiadavku v ACS.

    2. Nastavte vypočítavané polia v ACS

    3. Rozloženie údajov nakonfigurujeme na karte nastavení

    4. Spúšťame 1C Enterprise 8.2.14. Otvárame správu. Tvoríme, prijímame.

    Popis samotných nových funkcií:

    1. Aktuálny dátum ()

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

    2. VYPOČÍTAŤ VÝRAZ()

    Syntax:

    Vypočítať výraz(<Выражение>, <Группировка>, <ОбластьВычисления>, <Начало>, <Конец>, <Сортировка>, <ИерархическаяСортировка>, <ОбработкаОдинаковыхЗначенийПорядка>)

    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 Vypočítať výraz („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 agregovaných funkcií.

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

    Tvorca rozloženia pri generovaní výrazu funkcie Calculate Expression, ak objednávkový výraz obsahuje polia, ktoré nemožno použiť pri zoskupovaní, nahradí funkciu Calculate Expression hodnotou NULL.

    možnosti

    <Выражение>

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

    <Группировка>

    Typ: 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 zoskupenia 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 nadradeného zoskupenia s týmto názvom.

    Napríklad:

    Súčet(Predaj.SúčetTurnover)/Vypočítať(“Súčet(Predaj.SúčetObrat)”, “CelkomCelkom”)

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

    <ОбластьВычисления>

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

    • GeneralTotal - výraz bude vypočítaný pre všetky záznamy zoskupenia.
    • Hierarchia - výraz sa vyhodnotí pre nadradenú hierarchickú položku, ak existuje, a pre celé zoskupenie, ak neexistuje žiadna nadradená hierarchická položka.
    • Zoskupenie – výraz bude vyhodnotený pre aktuálny záznam zoskupenia.
    • GroupingNotResource - pri výpočte funkcie pre záznam skupiny podľa zdrojov sa výraz vypočíta pre prvý záznam skupiny pôvodného zoskupenia.

    Pri výpočte funkcie Vypočítať výraz() s hodnotou GroupingNotResource pre skupinové záznamy, ktoré nie sú zoskupené podľa zdrojov, sa funkcia vyhodnotí rovnakým spôsobom, ako by sa vypočítala, keby sa hodnota parametra rovnala hodnote Grouping.

    Tvorca rozloženia rozloženia zloženia údajov pri generovaní rozloženia zloženia údajov pri zobrazení poľa zdroja, na ktorom sa zoskupenie vykonáva, vloží do rozloženia výraz, ktorý sa vypočíta pomocou funkcie Vypočítať výraz() s uvedením parametra GroupingNotResource. Pre ostatné zdroje zoskupené podľa zdroja sú umiestnené regulárne výrazy zdrojov.

    <Начало>

    Typ: Reťazec. Určuje, ktorým záznamom sa má začať fragment, v ktorom sa majú vypočítať súhrnné funkcie výrazu a z ktorého záznamu sa majú získať hodnoty polí mimo súhrnných funkcií. Hodnota môže byť jedna z nasledujúcich:

    <Конец>

    Typ: Reťazec. Označuje, ku ktorému záznamu má pokračovať fragment, v ktorom sa majú vypočítať agregované funkcie výrazu. Hodnota môže byť jedna z nasledujúcich:

    • Prvý (Prvý). Musíte 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) - získanie tretieho záznamu od začiatku zoskupovania.

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

    • Posledný (Posledný). Musíte získať najnovší 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) – získa tretí záznam od konca zoskupenia.

    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 posun späť od aktuálneho záznamu zoskupenia. Napríklad Previous(2) - získa predchádzajúci z predchádzajúceho záznamu.

    Ak je predchádzajúci záznam mimo zoskupenia (napríklad druhý záznam zoskupenia vyžaduje 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šiu položku zoskupenia. Za slovom v zátvorkách môžete zadať výraz, ktorého výsledok sa použije ako posun vpred od aktuálneho záznamu zoskupenia. Napríklad Next(2) - získa ďalší 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 záznamy a tretí záznam dostane Next(), potom sa predpokladá, že neexistujú žiadne záznamy.

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

    • Aktuálne (Current). Musíte získať aktuálny záznam.

    Pri získaní pre súčet zoskupenia sa získa prvý záznam.

    • Hraničná hodnota. Potreba získať záznam o zadanú hodnotu. Za slovom RestrictingValue v zátvorkách musíte zadať výraz, ktorého hodnotou chcete začať fragment, prvé pole usporiadania.

    Záznam bude prvým záznamom, ktorého hodnota poľa objednávky je väčšia alebo rovná zadanej hodnote. Ak sa napríklad pole Obdobie používa ako pole objednávky a má hodnoty 01/01/2010, 02/01/2010, 03/01/2010 a chcete získať LimitValue(DateTime(2010 , 1, 15)), potom bude prijatý záznam s dátumom 02.01.2010.

    <Сортировка>

    Typ: Reťazec. Sú uvedené výrazy oddelené čiarkami, ktoré popisujú pravidlá zoradenia. Ak nie je zadané, 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é slová Asc (na zoradenie vo vzostupnom poradí), Descending (na zoradenie v zostupnom poradí) a AutoOrder (na zoradenie odkazovaných polí podľa polí, podľa ktorých chcete zoradiť odkazovaný objekt). Slovo AutoOrder možno použiť so slovami vzostupne aj zostupne.

    <ИерархическаяСортировка>

    Typ: Reťazec. Podobne ako pri možnosti Zoradiť. Používa sa na usporiadanie hierarchických záznamov. Ak nie je zadané, tvorca rozloženia vygeneruje poradie podľa poradia zadaného v parametri Zoradiť.

    <ОбработкаОдинаковыхЗначенийПорядка>

    Typ: Reťazec. Určuje pravidlo na určenie predchádzajúceho alebo nasledujúceho záznamu, ak existuje viacero záznamov s rovnakou hodnotou poradia:

    • Samostatne znamená, že postupnosť usporiadaných záznamov sa používa na určenie predchádzajúcich a nasledujúcich záznamov. Predvolená hodnota.
    • Spolu (Spolu) znamená, že predchádzajúci a nasledujúci záznam sú určené na základe hodnôt objednávkových výrazov.

    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

    Ak je hodnota parametra Samostatná, potom:

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

    § ak je fragment výpočtu definovaný ako Aktuálny, Aktuálny (respektíve parametre Začiatok a Koniec), potom pre záznam 2 bude tento fragment pozostávať z jedného záznamu 2. Výraz Calculate Expression ("Sum (Value)", Current, Current) sa bude rovnať 20.

    Ak je hodnota parametra Spolu, potom:

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

    § ak je fragment výpočtu definovaný ako Current, Current (respektíve parametre Start a End), potom pre záznam 2 bude tento fragment pozostávať zo záznamov 2 a 3. Výraz CalculateExpression(“Sum(Value)”, Current, Current) bude byť rovný 50.

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

    CalculateExpression("Suma(SumaObratu)", "Prvá", "Aktuálna")

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

    CalculateExpression("Kurz", "Predchádzajúci")

    Zoznam Nový Vlastnosti:

    ComputeExpressionGroupedArray(<Выражение>, <ВыражениеПолейГруппировки>, <ОтборЗаписей>, <ОтборГруппировок>) –

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

    ComputeExpressionGroupedValueTable(<Выражения>, <ВыражениеПолейГруппировки>, <ОтборЗаписей>, <ОтборГруппировок>) –

    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 nulová referencia, iná ako Nedefinované. Booleovské hodnoty sú testované na NULL. Reťazce sú kontrolované na znaky, ktoré nie sú medzery.

    Formátovať(<Выражение>, <Форматная строка>) – Získajte 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 výber podreťazca z reťazca.

    Dĺžka reťazca(<Выражение>) – Funkcia je určená na určenie dĺžky reťazca. Parameter - výraz typu reťazec

    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 tabuľka hodnôt odovzdá ako parameter, funkcia vráti reťazec obsahujúci reťazcové reprezentácie všetkých riadkov tabuľky hodnôt a reprezentácie buniek každého riadku sú oddelené znakmi “; “, a reťazce so znakom nového riadku. Ak má niektorý prvok prázdnu reprezentáciu reťazca, potom sa namiesto jeho reprezentácie zobrazí reťazec<Пустое значение>.

    Dobrý deň, milý čitateľ! Máme tu ďalšiu lekciu o základoch systému rozloženia. Zoznámili ste sa s funkciami výrazového jazyka SKD, videli ste vlastnosti systému rozloženia a tiež ste prišli na základné nastavenia pre polia rozloženia. A teraz zvážime nový materiál. Choď!

    Ďalšie nastavenia pre polia ACS.

    Stĺpec "typ hodnoty" umožňuje určiť typ údajov pre pole rozloženia. Prečo špecifikovať typ napríklad pre pole „Nomenklatúra“, keď už viete, o aký typ ide? Toto sa vyžaduje, ak je pole rozloženia zloženého typu. Môžete vybrať konkrétny typ, potom sa pri filtrovaní podľa tohto poľa vyberú hodnoty tohto typu.

    Stĺpec "Dostupné hodnoty" umožňuje určiť hodnoty dostupné na výber a obmedziť výber používateľa na určité limity.

    Stĺpec "dekor" umožňuje nastaviť vzhľad poľa rozloženia bez použitia rozloženia. Môžete určiť farbu písma, farbu rámu, orientáciu textu atď.

    Stĺpec "Možnosti úprav" umožňuje určiť spôsob úpravy poľa rozloženia. Môžete napríklad určiť rýchly výber položiek zo zoznamu vo výbere. V predvolenom nastavení pole rozloženia zdedí všetky možnosti úprav z objektu metadát.

    Vypočítané polia

    Na karte Vypočítané polia v kompozícii údajov môžete vytvoriť svoje vlastné vypočítané polia.

    Prečo potrebujeme vypočítané polia, keď ich môžeme vytvoriť na úrovni dotazu? Nie všetky polia je možné opísať dopytom. Ak potrebujete zostaviť zložité pole z rôznych množín údajov, napríklad z typov dotazov a objektov, potom sú vypočítané polia nevyhnutné. Ak je zdrojom údajov dopyt a automatické dopĺňanie, nemôžete pridať pole kompozície údajov, ale pomocou vypočítaných polí môžete pridať ľubovoľný počet polí.

    Do stĺpca vypočítaného poľa „Výraz“ musíte napísať ľubovoľný výraz, ktorý používa polia zloženia údajov s odkazom na ich cestu (stĺpec „Cesta“ na karte „Súbory údajov“). Buď môžete použiť funkcie matematickej transformácie, alebo môžete použiť funkcie všeobecných modulov. Napríklad napíšme názov vypočítaného poľa „Odchýlka“ do stĺpca „Cesta k údajom“ a do poľa „Výraz“ toto:

    Množstvo - Cena* Množstvo

    Pozrite si inú a môžete si ju stiahnuť aj pomocou týchto funkcií.

    Počítané polia sú v podstate nastavené na rovnaké nastavenia ako polia rozloženia. Chýba tu iba stĺpec Hierarchy Group. Pri písaní vypočítavaných polí sa nemôžete odvolávať na iné vypočítavané polia.

    Ako preniesť parametre a výbery do zostavy postavenej na ACS bez vytvorenia formulára zostavy?

    &AtClient // Odovzdanie parametrov do zostavy ACS Procedure CommandProcessing(Parameter príkazu, Parametre vykonania príkazu) Výber = Nová štruktúra("Nomenklatúra", Parameter príkazu) ; FixedSettings = GetFixedSettings() ; FormParameters = Nová štruktúra( "ShapeOnOpen, Výber, kľúč variantu, pevné nastavenia", Pravda , Výber, "Variant prehľadu predaja", Pevné nastavenia); OpenForm( "Report.SalesReport.Form", FormParameters); EndProcedure &AtServer Function GetFixedSettings() Správa o predaji = Správy. Správa o predaji. Create() ; SKD = ​​správa o predaji. DataCompositionScheme; Nastavenia = SKD. Predvolené nastavenia; StartPeriod = Nastavenia. ParametersData. FindParameterValue( NewDataCompositionParameter("PeriodStart") ); Začiatok obdobia. Hodnota = Začiatok mesiaca(AktuálnyDátum()) ; Začiatok obdobia. Použitie = pravda ; StartPeriod = Nastavenia. ParametersData. FindParameterValue( NewDataCompositionParameter("EndPeriod" ) ); EndPeriod. Hodnota = EndMonth(CurrentDate() ) ; EndPeriod. Použitie = pravda ; Nastavenia návratu; EndFunctions // GetFixedSettings()

    Ako zarovnať nadpisy stĺpcov na stred v zostave SKD?

    V poli "Design" na karte "Data Sets" musíte nastaviť dva parametre:

    Horizontálna poloha: Stred Vertikálna poloha: Stred

    Na karte „Nastavenia“ v dolnej časti nájdete aj ďalšiu kartu: „Podmienený vzhľad“. Tam pre každé zoskupenie, parameter atď. môžete nastaviť požadované rozloženie.

    Zdá sa, že povedal všetko! Ako si pamätáte, máte možnosť klásť otázky, ak nejaké existujú. Pokúsim sa odpovedať. V budúcnosti plánujem napísať viac článkov na túto tému, takže sa nezabudnite prihlásiť na odber aktualizácií našej stránky, aby ste to nezmeškali! Nezabudnite si tiež urobiť test na upevnenie učiva z tejto lekcie.

    Na konci článku vám chcem poradiť zadarmo od Anatolija Sotnikova. Ide o kurz od skúseného programátora. Na samostatnom základe vám ukáže, ako zostavovať zostavy v ACS. Musíte len pozorne počúvať a pamätať si! Dostanete odpovede na otázky ako:
    • Ako vytvoriť jednoduchý zoznamový prehľad?
    • Na čo slúžia stĺpce Pole, Cesta a Názov na karte Polia?
    • Aké sú obmedzenia pre polia rozloženia?
    • Ako správne nastaviť roly?
    • Aké sú úlohy pre polia rozloženia?
    • Kde nájdem kartu rozloženia údajov v dopyte?
    • Ako nakonfigurovať parametre v SKD?
    • Ďalšie zaujímavé...
    Možno by ste sa nemali pokúšať sami surfovať po internete pri hľadaní potrebných informácií? Navyše je všetko pripravené na použitie. Len začnite! Všetky podrobnosti o tom, čo je v bezplatných video tutoriáloch