Vypočítané polia za ckd 1s 8.3. Funkcie výrazového jazyka systému kompozície údajov

Prihláste sa ako študent

Prihláste sa ako študent a získajte prístup k školským materiálom

Systém kompozície údajov 1C 8.3 pre začiatočníkov: zvážte výsledky (zdroje)

Cieľom tohto tutoriálu bude:

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

Vytvorenie nového prehľadu

Rovnako ako v predchádzajúcich lekciách otvárame základňu „ Deli„v konfigurátore a vytvorte nový prehľad prostredníctvom ponuky“ Súbor"->"Nový...":

Typ dokumentu - externá správa:

Vo forme nastavenia prehľadu napíšte názov „ Lekcia 3"a stlačte tlačidlo" Otvorená schéma kompozície údajov":

Ponechajte predvolený názov schémy a kliknite na „ Pripravený":

Pridanie požiadavky prostredníctvom konštruktora

Na " Súbor údajov"tlačiť zelená znamienko plus a vyberte položku " Pridať množinu údajov - dotaz":

Namiesto ručného písania textu žiadosti znova spustíme dotazový konštruktor:

Na " Tabuľky„potiahni stôl“ Jedlo“z prvého stĺpca do druhého:

Výber z tabuľky " Jedlo"polia, ktoré budeme požadovať. Ak to chcete urobiť, presuňte polia" názov", "Ochutnať", "Farba"a" Obsah kalórií“z druhého stĺpca do tretieho:

Dopadlo to takto:

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

Vytvárame nastavenia pre prezentáciu správy

Prejdite na záložku " nastavenie“a kliknite na Kúzelná palička, zavolať konštruktor nastavení:

Výber typu prehľadu “ Zoznam... "a stlačte tlačidlo" Ďalej":

Potiahnite z ľavého stĺpca do pravých polí, ktoré sa zobrazia v zozname, a kliknite na „ Ďalej":

Potiahnite z ľavého stĺpca na pravý okraj “ Farba"- bude to zoskupenie riadky v správe. Kliknite " OK":

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

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

Uložiť prehľad (tlačidlo disketa) a bez zatvárania konfigurátora, okamžite ho otvoríme v užívateľskom režime. Dopadlo to takto:

Zmena poradia stĺpcov

Ale poďme zmeniť poradie stĺpce (šípky hore a dole) tak, aby vyzeral ako na obrázku nižšie:

Uložíme prehľad a znova ho otvoríme v užívateľskom režime:

Skvelé, ešte lepšie.

Zhrnutie (množstvo) podľa obsahu kalórií

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

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

Choďte na " Zdroje"a potiahnite pole" Obsah kalórií“(ideme to zhrnúť) z ľavého stĺpca do pravého.

V takom prípade v poli výrazu vyberte z rozbaľovacieho zoznamu „ Množstvo (kalórie)“, pretože súčet bude súčtom všetkých prvkov zahrnutých v súčte:

Uložíme a vygenerujeme správu:

Teraz máme súčty pre každú zo skupín a pre správu ako celok.

Zhrnutie (priemer) podľa obsahu kalórií

Teraz to urobme tak, aby sa zobrazil ešte jeden stĺpec priemer obsah kalórií vo výrobkoch podľa skupín a všeobecne podľa správy.

Nemôžete sa dotknúť už existujúceho stĺpca „Kalórie“ - celkový súčet je v ňom preto už zobrazený poďme na ďalšie pole, čo bude presná kópia poľa „Obsah kalórií“.

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

Prejdite na záložku " Vypočítané polia“a kliknite zelená znamienko plus:

V kolóne " Dátová cesta"napíšte názov nového poľa ( spolu, bez medzier). Nech sa tomu hovorí " 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. Píšeme tam" Obsah kalórií". Reproduktor" Nadpis“sa vyplnia automaticky.

Pridali sme nové pole („ Priemerný obsah kalórií“), ale sám sa v správe nezobrazí - musíte buď zavolať konštruktor nastavení(„čarovná palička“) alebo pridajte toto pole ručne.

Poď robiť druhý spôsob. Ak to chcete urobiť, prejdite na „ nastavenie", vyber si" správa"(koniec koncov chceme do správy pridať pole ako celok), vyberte kartu nižšie" Vybraté polia"a potiahnite pole" Priemerný obsah kalórií"z ľavého stĺpca doprava:

Dopadlo to takto:

Uložíme a vygenerujeme správu:

Pole sa objavilo a vidíme, že jeho hodnoty sú hodnotami poľa „Obsah kalórií“. Dobre!

K tomu opäť použijeme už známy mechanizmus zdrojov(zhrnutie). Prejdite na záložku " Zdroje"a potiahnite pole" Priemerný obsah kalórií"z ľavého stĺpca doprava:

Navyše v stĺpci " Výraz"vyber" Priemer (priemerný obsah kalórií)":

Uložíme a vygenerujeme správu:

Vidíme, že pre skupiny, to znamená pre každú farbu a pre správu ako celok, bola priemerná hodnota vypočítaná celkom správne. Ale existujú dodatočné položky pre jednotlivé výrobky (nie pre skupiny), ktoré by sme chceli zo správy odstrániť.

Viete, prečo sa objavili (hodnoty nie podľa skupín)? Pretože keď sme pridali pole „ Priemerný obsah kalórií“v nastaveniach zostavy sme v druhom kroku vybrali celá správa ako celok a toto nové pole sa dostalo do prvku " Podrobne záznamy".

Opravme chybu. Ak to chcete urobiť, vráťme sa k časti „ nastavenie", vyberte" Podrobné záznamy„Najprv zhora (krok 2) a potom“ Podrobné záznamy„nižšie (krok 3), prejdite na kartu“ Vybraný polia"a v pravom stĺpci uvidíme prvok" Auto".

Element " Auto"nie je jedno pole. Toto je niekoľko polí, ktoré sa sem dostanú automaticky na základe vyšších nastavení."

Ak chcete zistiť, aké sú tieto polia, kliknite na tlačidlo „ Auto" správny tlačidlo a vyberte položku " Rozbaliť":

Element " Auto“rozbalené do nasledujúcich polí:

A tu je naše pole “ Priemerný obsah kalórií„ktoré sa sem dostalo z bodu“ správa„keď sme ho tam dovliekli vzlietnuť začiarkavacie políčko vedľa tohto poľa odstráni jeho výstup.

1. Vypočítajte (Eval)- je určený na hodnotenie výrazu v kontexte nejakého zoskupenia. Funkcia sa používa kvôli kompatibilite s predchádzajúce verzie platformy. Odporúčame namiesto toho použiť funkciu EvaluateExpression.

Syntax:
Vypočítať (výraz, zoskupenie, typ výpočtu)

Možnosti :

  • Výraz(Riadok). Obsahuje vypočítaný výraz;
  • Zoskupovanie(Riadok). 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 GeneralTotal, výpočet sa vykoná v kontexte celkového súčtu. V opačnom prípade bude výpočet vykonaný v kontexte nadradeného zoskupenia s týmto názvom.
    Napríklad:
    Suma (Suma tržieb. Obrat) / Vypočítajte („Suma (Suma tržieb. Obratu“), „Celkový súčet“).
    V. tento príklad V dôsledku toho získate pomer čiastky pre pole „Sales.SumTurnover“ záznamu zoskupenia k súčtu rovnakého poľa v celom rozložení.
  • Typ vysporiadania(Riadok). Ak je tento parameter nastavený na hodnotu „TotalTotal“, výraz sa vypočíta pre všetky záznamy zoskupenia. Ak je hodnota parametra „Zoskupenie“, hodnoty sa vypočítajú pre aktuálny skupinový záznam zoskupenia.
2. Vyhodnoťte výraz - je určený na hodnotenie výrazu v kontexte nejakého zoskupenia. Funkcia zohľadňuje výber zoskupení, ale nezohľadňuje hierarchické výbery. Túto funkciu nemožno použiť na zoskupenie v skupinovom výbere tohto zoskupenia.

Syntax:
EvaluateExpression (Expression, Grouping, CalculationType, Start, End, Triedenie, HierarchicalSort, ProcessSimilarOrderValues)

Možnosti :

  • Výraz(Riadok). Obsahuje vypočítaný výraz;
  • Zoskupovanie(Riadok). 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 GeneralTotal, výpočet sa vykoná v kontexte celkového súčtu. V opačnom prípade bude výpočet vykonaný v kontexte rodičovského zoskupenia s rovnakým názvom;
  • Typ vysporiadania(Riadok). Ak je tento parameter nastavený na hodnotu „TotalTotal“, výraz sa vypočíta pre všetky záznamy zoskupenia. Ak je hodnota parametra „Zoskupenie“, hodnoty sa vypočítajú pre aktuálny skupinový záznam zoskupenia. Ak je parameter nastavený na „Zoskupenie bez zdrojov“, potom 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 vyhodnocovaní funkcie Evaluate Expression s hodnotou zoskupenia bez zdrojov pre skupinové záznamy, ktoré nie sú zoskupeniami zdrojov, sa funkcia vyhodnocuje rovnako, ako by sa hodnotila s hodnotou parametra zoskupenia. Skladateľ šablón kompozície údajov pri generovaní šablóny kompozície údajov, pri výstupe poľa - zdroja, pomocou ktorého sa zoskupovanie vykonáva, do šablóny vydá výraz vypočítaný pomocou funkcie EvaluateExpression so zadaným parametrom "GroupingNotResource". Regulárne výrazy zdrojov sa vrátia pre zvyšok zdrojov zoskupených podľa zdroja. Ak je parameter nastavený na Hierarchia, potom musí byť výraz vyhodnotený pre nadradený hierarchický záznam, ak existuje, a pre celé zoskupenie, ak neexistuje žiadny nadradený hierarchický záznam. Skladateľ rozloženia pri generovaní výrazu pre pole% v skupine hierarchie generuje výraz, ktorý obsahuje vzťah výrazu zdroja k funkcii EvaluateExpression pre výraz zdroja vyhodnotený pre aktuálne zoskupenie s typom výpočtu hierarchie.
  • Začnite... Udáva, s akým záznamom sa má začať fragment, v ktorom sa majú vypočítať agregačné funkcie výrazu a z ktorého záznamu sa majú získať hodnoty polí mimo agregovaných funkcií. Reťazec obsahujúci jeden z:
    • „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 zoskupenia. Ak je prvý záznam mimo limitov zoskupenia, potom sa má za to, že neexistujú žiadne záznamy. Ak existujú napríklad 3 záznamy a chcete získať prvý (4), potom sa usudzuje, že neexistujú žiadne záznamy.
    • „Posledný“ („Posledný“). Musíte získať najnovší záznam o zoskupení. Za slovom v zátvorkách je možné 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ískanie tretieho záznamu z konca zoskupenia. Ak je posledný záznam mimo limitov zoskupenia, má sa za to, že neexistujú žiadne záznamy. Ak existujú napríklad 3 záznamy a chcete získať posledný (4), potom sa usudzuje, že neexistujú žiadne záznamy.
    • „Predchádzajúce“ („Predchádzajúce“). Musíte získať predchádzajúci záznam o zoskupení. Za slovom v zátvorkách je možné zadať výraz, ktorého výsledok sa použije ako posun späť od aktuálneho záznamu zoskupenia. Napríklad Predchádzajúci (2) - získate predchádzajúci z predchádzajúceho záznamu. Ak predchádzajúci záznam presahuje zoskupenie (napríklad pre druhý záznam zoskupenia, ktorý chcete získať predchádzajúci (3)), získa sa prvý záznam zoskupenia. Pri získavaní predchádzajúceho záznamu o celkovom zoskupení sa má za to, že bol získaný prvý záznam.
    • "Ďalšie". Potrebujete získať ďalší záznam o zoskupení. Za slovom v zátvorkách je možné zadať výraz, ktorého výsledok sa použije ako posunutie dopredu od aktuálneho záznamu zoskupenia. Napríklad Next (2) - získate ďalší z nasledujúceho záznamu. Ak ďalší záznam vyjde mimo zoskupenia, má sa za to, že neexistujú žiadne záznamy. Ak existujú napríklad 3 záznamy a pre tretí záznam je prijatý príkaz Ďalej, neexistujú žiadne záznamy. Keď je prijatý ďalší záznam pre celkový počet zoskupení, má sa za to, že neexistuje žiadny záznam.
    • „Aktuálne“ („Aktuálne“). Potrebujete získať aktuálny záznam. Pri získavaní údajov o celkovom zoskupení sa získa prvý záznam.
    • „BoundaryValue“. Potreba získať záznam v zadanej hodnote. Za slovom LimitingValue v zátvorkách musíte zadať výraz, s hodnotou, ktorou chcete začať fragment, prvé pole pre zoradenie. Ako záznam bude získaný prvý záznam, ktorého hodnota v poli objednávky je väčšia alebo sa rovná zadanej hodnote. Ak sa napríklad ako pole pre objednávanie používa pole Obdobie, ktoré má hodnoty 01/01/2010, 01/02/2010, 01/03/2010, a chcete získať hodnotu BoundingValue (DateTime (2010) , 1, 15)), potom dostanete záznam s dátumom 01.02. 2010.
  • Koniec... Udáva, do ktorého záznamu sa má pridať blok, v ktorom sa má vyhodnotiť agregovaný výraz. Reťazec obsahujúci jednu z týchto položiek:
    • „Prvý“ („Prvý“).
    • „Posledný“ („Posledný“).
    • „Predchádzajúce“ („Predchádzajúce“).
    • "Ďalšie".
    • „Aktuálne“ („Aktuálne“).
    • „BoundaryValue“.
  • Triedenie... Reťazec, ktorý uvádza výrazy oddelené čiarkami v smere, v ktorom chcete zoradiť sekvenciu. Ak nie je uvedené, zoradenie sa vykoná rovnakým spôsobom ako pre zoskupenie, pre ktoré je výraz hodnotený. Za každým výrazom môžete zadať kľúčové slovo Vzostupne, pre vzostupné poradie, Zostupne, pre zostupné poradie, Automatické usporiadanie, pre zoradenie odkazovaných polí podľa polí, pomocou ktorých chcete zoradiť referenčný objekt. Slovo automatické zoradenie je možné používať so vzostupne aj so zostupne.
  • Hierarchické triedenie... Podobne ako pri triedení. Slúži na usporiadanie hierarchických záznamov. Ak nie je uvedené, nástroj na tvorbu rozložení vygeneruje poradie podľa poradia uvedeného v parametri Zoradiť.
  • Spracovanie rovnakých hodnôt objednávky... Reťazec obsahujúci jeden z:
    • „Spolu“ znamená, že na definovanie predchádzajúceho a nasledujúceho záznamu sa používa postupnosť usporiadaných záznamov;
    • „Samostatne“ - označuje, že predchádzajúci a nasledujúci záznam sú určené na základe hodnôt výrazov usporiadania;
    Ak je napríklad výsledná sekvencia zoradená podľa dátumu:
    1. 1. januára 2001 Ivanov M. 10
    2. 2. januára 2001 Petrov S. 20
    3.02. Januára 2001 Sidorov R. 30
    4. 03. januára 2001 Petrov S. 40
    Pri použití spracovania identické hodnoty poradia „oddelene“, predchádzajúci záznam 3 bude záznam 2 a pri použití „spolu“ - záznam 1. A fragment pre aktuálny záznam na záznam 2 pre „oddelene“ bude záznam 2 a pre „ Spolu “ - záznamy 2 a 3. Celková hodnota pre aktuálny záznam pre„ Samostatne “bude teda 20 a pre„ Spolu “ - 50. Ak je v parametroch Začiatok a Koniec uvedené„ Spolu “, nemôžete zadať posun. pre pozície „Prvý“, „Posledný“, „Predchádzajúci“, „Ďalší“. Predvolená hodnota je oddelená.
Príklad:
Získanie pomeru sumy za pole „Sales.SumTurnover“ záznamu zoskupenia k sume rovnakého poľa v celom rozložení:
Suma (Sales.SumTurnover) / CalculateExpression ("Suma (Sales.SumTurnover)", "TotalTotal").

Tento príklad vypočítava hodnotu aktuálnej hierarchie:
Voľba
Keď je úroveň ()> 0
Potom EvaluateExpression („Referencia“, „Hierarchia“)
Inak Null
Koniec

Poznámky:
Funkcia zohľadňuje výber zoskupení, ale nezohľadňuje hierarchické výbery. Túto funkciu nemožno použiť na zoskupenie v skupinovom výbere tohto zoskupenia. Napríklad pri výbere zoskupenia nomenklatúry nemôžete použiť výraz CalculateExpression („Sum (SumTurnover)“, „TotalTotal“)> 1000. Takýto výraz však 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 Zoskupenie je nastavený na „Celkom“) sa predpokladá, že neexistujú žiadne záznamy na výpočet podrobných údajov a výpočet agregovaných funkcií. Skladateľ rozloženia pri generovaní výrazu pre funkciu EvaluateExpression, ak výraz pre usporiadanie obsahuje polia, ktoré nemožno použiť v zoskupení, nahradí funkciu EvaluateExpression hodnotou NULL.

3. EvaluateExpressionWithGroupArray (EvalExpressionWithGroupArray) - funkcia vráti pole, ktorého každý prvok obsahuje výsledok vyhodnotenia výrazu pre zoskupenie podľa zadaného poľa.

Syntax:
EvaluateGroupExpressionArray (Expression, GroupFieldExpressions, RecordSelection, GroupSelection)

Možnosti :

  • Výraz(Reťazec) - výraz, ktorý sa má vyhodnotiť. Napríklad „Suma (AmountTurnover)“;
  • Poľné výrazy
  • Výber záznamov
  • Výber skupín- výber aplikovaný na skupinové záznamy. Napríklad: "Suma (AmountTurnover)> & Parameter1".
Príklad:
Maximum (CalculateExpressionWithGroupArray ("Sum (SumTurnover)", "Counterparty"));


Layer linker pri generovaní výrazov pre výstup vlastné pole, ktorého výraz obsahuje iba funkciu EvaluateArrayWithGrouping, generuje výstupný výraz tak, že sa údaje zobrazia a údaje sa zoradia.
Napríklad pre vlastné pole s výrazom:
CalculateExpressionGroupedArray ("Sum (SumTurnover)", "Protistrana")
linker rozloženia vygeneruje pre výstup nasledujúci výraz:
ConnectRows (Array (Arrange (EvaluateExpressionWithGroupValuesTable ("View (Sum (Dataset.SumTurnover)), Sum (Dataset.SumTurnover)" "," Dataset.Contractor ")," 2 ")))

4. EvaluateExpressionWithGroupValueTable (EvalExpressionWithGroupValueTable) - funkcia vráti tabuľku hodnôt, z ktorých každý prvok obsahuje výsledok vyhodnotenia výrazu pre zoskupenie podľa zadaného poľa.

Syntax:
EvaluateGroupExpressionValueTable (Expression, GroupField Expressions, RecordSelection, GroupSelection)

Možnosti :

  • Výraz(Reťazec) - výraz, ktorý sa má vyhodnotiť. Niekoľko výrazov môže byť uvedených v riadku 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: „Protistrana, čiastka (AmountTurnover) ako objem predaja“.
  • Poľné výrazy- výrazy zoskupovacích polí oddelených čiarkami. Napríklad „protistrana, strana“;
  • Výber záznamov- výraz aplikovaný na podrobné záznamy. Napríklad „Značka vymazania = nepravda“. Ak sa v tomto parametri používa agregačná funkcia, pri skladaní údajov dôjde k chybe;
  • Výber skupín- výber aplikovaný na skupinové záznamy. Napríklad: "Suma (AmountTurnover)> & Parameter1".
Príklad:
CalculateExpressionWithGroupValuesTable ("Protistrana AS Protistrana, Suma (AmountTurnover) ako objem predaja", "Protistrana")

Výsledkom tejto funkcie bude tabuľka hodnôt so stĺpcami Protistrana a Predajný objem, v ktorej sa budú nachádzať protistrany so svojimi objemami predaja.
Skladateľ rozloženia pri generovaní rozloženia prevádza parametre funkcie na podmienky polí rozloženia kompozície údajov. Pole Účet sa napríklad skonvertuje na Dataset.Contractor.
Napríklad vlastné pole s výrazom:
CalculateExpressionWithGroupValuesTable ("Účet, Suma (AmountTurnover)", "Účet")
Skladateľ rozloženia vygeneruje pre výstup nasledujúci výraz:
ConnectRows (GetPart (Arrange (EvaluateGroupExpressionValuesTable ("Dataset.Contractor, Dataset.ContractorPresentation, Sum (Dataset.SumTurnover), View (Dataset.TotalTurnover), Dataset.Field" Arranged "," 3) ")," 2, 4 " )

5. Úroveň - funkcia je navrhnutá tak, aby získala aktuálnu úroveň záznamu.

Syntax:
Úroveň ()

Príklad:
Úroveň ()

6. SequenceNumber - ísť ďalej sériové číslo.

Syntax:
NumberOrder ()

Príklad:
NumberOrder ()

7. SequenceNumberInGrouping - vráti nasledujúce poradové číslo v aktuálnom zoskupení.

Príklad:
NumberOrderInGrouping ()

8. Formát - získať formátovaný reťazec odovzdanej hodnoty.

Syntax:
Formát (hodnota, FormatString)

Možnosti :

  • Význam- výraz, ktorý sa má formátovať;
  • FormatString- formátovací reťazec je nastavený v súlade s reťazcom formátu 1C: Enterprise.
Príklad:
Formát (Faktúry.SumDoc, "NPT = 2")

9. Začiatok obdobia (BeginOfPeriod)

Syntax:
Začiatok obdobia (dátum, typ obdobia)

Možnosti :

  • dátum(Dátum). Určený dátum;
  • Typ obdobia
Príklad:
Začiatok obdobia (DateTime (2002, 10, 12, 10, 15, 34), „mesiac“)
Výsledok: 01.10.2002 0:00:00

10. EndOfPeriod (EndOfPeriod) - funkcia je navrhnutá tak, aby extrahovala konkrétny dátum z daného dátumu.

Syntax:
EndPeriod (Date, PeriodType)

Možnosti :

  • dátum(Dátum). Určený dátum;
  • Typ obdobia(Riadok). Obsahuje jednu z hodnôt: minúta; Hodina; Deň; Týždeň; Mesiac; Štvrťrok; Rok; Dekáda; Pol roka.
Príklad:
EndPeriod (DateTime (2002, 10, 12, 10, 15, 34), "Week")
Výsledok: 13.10.2002 23:59:59

11.AddKDate (DateAdd) - funkcia je určená na pridanie určitej hodnoty k dátumu.

Syntax:
AddKDate (výraz, IncrementType, hodnota)

Možnosti :

  • Výraz(Dátum). Pôvodný dátum;
  • Typ zväčšenia(Riadok). Obsahuje jednu z hodnôt: minúta; Hodina; Deň; Týždeň; Mesiac; Štvrťrok; Rok; Dekáda; Pol roka.
  • Množstvo(Číslo). O koľko je potrebné dátum zvýšiť, sa zlomková časť ignoruje.
Príklad:
Pridať k dátumu (DateTime (2002, 10, 12, 10, 15, 34), „mesiac“, 1)
Výsledok: 12.11.2002 10:15:34

12. DiferenceDate (DateDifference) - funkcia je navrhnutá tak, aby zistila rozdiel medzi dvoma dátumami.

Syntax:
Rozdiel dátumu (výraz1, výraz2, typ rozdielu)

Možnosti :

  • Výraz 1(Dátum). Odpočítaný dátum;
  • Výraz 2(Dátum). Pôvodný dátum;
  • Typ Rozdiel(Riadok). Obsahuje jednu z hodnôt: Druhá; Minúta; Hodina; Deň; Mesiac; Štvrťrok; Rok.
Príklad:
ROZDIEL (DÁTUM ČASU (2002, 10, 12, 10, 15, 34),
DATE (2002, 10, 14, 9, 18, 06), „DAY“)
Výsledok: 2

13. Podreťazec - túto funkciu je navrhnutý tak, aby extrahoval podreťazec z reťazca.

Syntax:
Podreťazec (reťazec, poloha, dĺžka)

Možnosti :

  • Riadok(Riadok). Reťazec, z ktorého chcete extrahovať podreťazec;
  • Pozícia(Číslo). Poloha znaku, z ktorého začína podreťazec extrahovaný z reťazca;
  • Dĺžka(Číslo). Dĺžka podreťazca, ktorý chcete vybrať.
Príklad:
SUBSTRÁT (Dodávatelia. Adresa, 1, 4)

14. Strunová dĺžka (StringLength) - funkcia je určená na určenie dĺžky reťazca.

Syntax:
Dĺžka riadka (reťazec)

Parameter:

  • Riadok(Riadok). Reťazec, ktorý sa má zadať v dĺžke.
Príklad:
Reťazec (Účty. Adresa)

15. Ročník- táto funkcia je navrhnutá tak, aby extrahovala rok z hodnoty typu Dátum.

Syntax:
Rok (dátum)

Parameter:

  • dátum(Dátum). Dátum, do ktorého je určený rok.
Príklad:
YEAR (dátum faktúry)

16. Štvrťrok - táto funkcia je určená na extrahovanie štvrtinového čísla z hodnoty typu Dátum. Štvrtinové číslo sa bežne pohybuje v rozmedzí od 1 do 4.

Syntax:
Štvrťrok (dátum)

Parameter:

  • dátum(Dátum). Dátum, do ktorého je štvrťrok určený
Príklad:
ŠTVRŤ (dátum odoslania)

17. Mesiac - táto funkcia je určená na extrahovanie čísla mesiaca z hodnoty typu Dátum. Číslo mesiaca sa bežne pohybuje od 1 do 12.

Syntax:
Mesiac (dátum)

Parameter:

  • dátum(Dátum). Dátum, do ktorého je určený mesiac.
Príklad:
MONTH (dátum faktúry)

18. Deň v roku (DayOfYear) - táto funkcia je navrhnutá tak, aby získala deň v roku z hodnoty typu Dátum. Deň v roku sa bežne pohybuje v rozmedzí od 1 do 365 (366).

Syntax:
Deň v roku (dátum)

Parameter:

  • dátum(Dátum). Dátum, do ktorého je určený deň v roku.
Príklad:
DEŇ ROKA (dátum faktúry)

19. Deň- táto funkcia je určená na získanie dňa v mesiaci z hodnoty typu Dátum. Deň v mesiaci sa bežne pohybuje od 1 do 31.

Syntax:
Deň (dátum)

Parameter:

  • dátum(Dátum). Dátum, do ktorého je určený deň v mesiaci.
Príklad:
DAY (dátum faktúry)

20. 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ú číslované od 1.

Syntax:
Týždeň (dátum)

Parameter:

  • dátum(Dátum). Dátum, do ktorého sa určia čísla týždňov.
Príklad:
TÝŽDEŇ (dátum faktúry)

21. WeekDay - táto funkcia je určená na získanie dňa v týždni z hodnoty typu Dátum. Deň v týždni je obvykle medzi 1 (pondelok) a 7 (nedeľa).

Syntax:
Deň v týždni (dátum)

Parameter:

  • dátum(Dátum). Dátum, do ktorého je určený deň v týždni.
Príklad:
DEŇ TÝŽDŇA (dátum faktúry)

22. Hodina- táto funkcia je určená na získanie hodiny dňa z hodnoty typu Dátum. Denná hodina sa pohybuje od 0 do 23.

Syntax:
Hodina (dátum)

Parameter:

  • dátum(Dátum). Dátum, do ktorého je určená denná hodina.
Príklad:
HOUR (dátum faktúry)

23. Minúta - táto funkcia je určená na získanie minúty v hodine z hodnoty typu Dátum. Minúta hodiny sa pohybuje od 0 do 59.

Syntax:
Minúta (dátum)

Parameter:

  • dátum(Dátum). Dátum, do ktorého je určená minúta hodiny.
Príklad:
MINUTA (dátum faktúry)

24. Druhý - táto funkcia je určená na získanie sekundy v minúte od hodnoty typu Dátum. Druhá minúta sa pohybuje od 0 do 59.

Syntax:
Druhý (dátum)

Parameter:

  • dátum(Dátum). Dátum, do ktorého sú určené minúty v minútach.
Príklad:
SECOND (dátum faktúry)

25. Obsadenie - táto funkcia je určená na extrahovanie typu z výrazu, ktorý môže obsahovať komplexný typ. Ak výraz obsahuje iný ako požadovaný typ, vráti sa hodnota NULL.

Syntax:
Express (výraz, špecifikácia typu)

Možnosti :

  • Výraz- výraz, ktorý sa má previesť;
  • Indikácia typu(Riadok). Obsahuje reťazec typu. Napríklad „Číslo“, „Reťazec“ atď. Okrem primitívnych typov daný reťazec môže obsahovať názov tabuľky. V takom prípade sa pokúsi vyjadriť odkaz na zadanú tabuľku.
Príklad:
Express (Data.Props1, "Number (10.3)")

26. IsNull (IsNull) - táto funkcia vráti hodnotu druhého parametra, ak je hodnota prvého parametra NULL. V opačnom prípade bude vrátená hodnota prvého parametra.

Syntax:
IsNull (Výraz1, Výraz2)

Možnosti :

  • Výraz 1- kontrolovaná hodnota;
  • Výraz 2- návratová hodnota, ak je Výraz1 NULL.
Príklad:
Áno NULL (Suma (Sales.SumTurnover), 0)

27. ACos- vypočítava kosínusový oblúk v radiánoch.

Syntax:
ACos (výraz)

Parameter:

  • Výraz(Číslo). Kosínová hodnota (v rozsahu -1 ... 1), pomocou ktorej je určený uhol.
28. ASin- vypočítava arcsín v radiánoch.

Syntax:
ASin (výraz)

Parameter:

  • Výraz(Číslo). Hodnota sínusu (v rozsahu -1 ... 1), pomocou ktorej je určený uhol.
29. ATan- počíta arktangens v radiánoch.

Syntax:
ATan (výraz)

Parameter:

  • Výraz(Číslo). Hodnota dotyčnice, pomocou ktorej je určený uhol.
30. Cos- vypočíta kosínus.

Syntax:
Cos (výraz)

Parameter:

  • Výraz
31. Exp- zvýšenie čísla e na mocninu.

Syntax:
Exp (výraz)

Parameter:

  • Výraz(Číslo). Hodnota stupňa.
32. Log- vypočíta prirodzený logaritmus.

Syntax:
Denník (výraz)

Parameter:

  • Výraz
33. Log10- vypočíta logaritmus X na základe 10.

Syntax:
Log10 (výraz)

Parameter:

  • Výraz(Číslo). Pôvodné číslo je väčšie ako 0.
34. Pow- umocnenie.

Syntax:
Pow (základňa, indikátor)

Možnosti :

  • Základňa(Číslo). Základ operácie umocňovania.
  • Register(Číslo). Exponent.
35. Hriech- vypočíta sínus.

Syntax:
Hriech (výraz)

Parameter:

  • Výraz(Číslo). Špecifikované v radiánoch.
36. Sqrt- vypočíta druhú odmocninu.

Syntax:
Sqrt (výraz)

Parameter:

  • Výraz(Číslo). Nezáporné číslo.
37. Tan- vypočíta tangens.

Syntax:
Tan (výraz)

Parameter:

  • Výraz(Číslo). Sínusová hodnota použitá na určenie uhla.
38. Okr (okrúhle)- zaokrúhli pôvodné číslo na požadovanú bitovú hĺbku. Režim zaoblenia je štandardný (1,5 ako 2).

Syntax:
Ocr (výraz, bitová hĺbka)

Možnosti :

  • Výraz(Číslo). Pôvodné číslo;
  • Bitová hĺbka(Číslo). Počet desatinných miest, ktoré sa majú zaokrúhliť na.
39. Int- odreže zlomkovú časť čísla.

Syntax:
Int (výraz)

Parameter:

  • Výraz(Číslo). Zlomkové číslo.
40. Funkcie spoločných modulov

Výraz motora kompozície údajov môže obsahovať volania funkcií globálnych spoločných konfiguračných modulov. Na vyvolanie týchto funkcií nie je potrebná žiadna ďalšia syntax.

Príklad:
Skrátený názov (Documents.Link, Documents.Date, Documents.Number)

V tomto prípade bude funkcia "AbbreviatedName" vyvolaná z modulu všeobecnej konfigurácie.
Všimnite si toho, že používanie funkcií bežných modulov je povolené iba vtedy, ak je zadaný zodpovedajúci parameter procesora kompozície údajov.
Navyše funkcie bežných modulov nemožno použiť vo vlastných výrazoch poľa.

41. Pohoršenie - táto funkcia vráti reťazcovú reprezentáciu odovzdanej hodnoty neprimitívneho typu. Pri hodnotách primitívneho typu vráti samotnú hodnotu.

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

Príklad:
Podanie (protistrana)

42. Reťazec - táto funkcia prevádza odovzdanú hodnotu na reťazec.

Ak sa ako parameter použije pole alebo tabuľka hodnôt, funkcia vráti reťazec obsahujúci reťazcovú reprezentáciu všetkých prvkov poľa oddelených znakmi „;“. Ak má ktorýkoľvek prvok prázdnu reprezentáciu reťazca, potom reťazec „<Пустое значение>".

Príklad:
Reťazec (dátum predaja)

43. Hodnota je vyplnená

Pri hodnotách NULL hodnota Undefined vždy vráti hodnotu False.
V prípade hodnôt Boolean vždy vráti hodnotu True.
Pri ostatných typoch vráti hodnotu True, ak sa hodnota líši od predvolenej hodnoty pre tento typ.

Príklad:
Hodnota vyplnená (dátum dodania)

44. LevelInGroup - táto funkcia získa aktuálnu úroveň záznamu vzhľadom na zoskupenie.

Môže sa použiť na získanie úrovne vnorenia záznamu v hierarchickom zoskupení.

Príklad:
LevelInGroup ()

45. Typ hodnoty

Syntax:
Typ hodnoty (výraz)

Parameter:

  • Výraz(Riadok). Reťazcová hodnota typu.
Vráti hodnotu typu Type obsahujúcu typ hodnoty parametra funkcie.

Schéma zloženia údajov (1C ACS)- pohodlný konštruktér na vytváranie komplexných správ v 1C: Podnikové softvérové ​​produkty, ktoré prispievajú k vývoju a sledovaniu automatizácie výroby a umožňujú im byť v čo najkratšom čase flexibilné a krásne. Ďalším plusom schémy zostavovania údajov (1C ACS) je automatické generovanie formulára kontrolovanej správy a s ďalším rozvojom tohto smeru je to dôležitý faktor pri výbere metódy na vypracovanie správy. Ale vzhľadom na zložitosť štruktúry schémy kompozície údajov (1C ACS) a veľký počet nastavení často vedie k dlhšiemu vývoju správy ako prostredníctvom „návrhára výstupných formulárov“. Programátor 1C preto musí porozumieť všetkým zložitostiam schémy kompozície údajov (1C ACS), aby ďalej urýchlil čas vývoja generovania správ.

Analyzujme prvé tri karty schémy kompozície údajov (1C ACS) - množina údajov, odkazy na množinu údajov a vypočítané polia.

Dátový súbor v 1C ACS

Množina údajov obsahuje túto schopnosť vytvorenie troch objekty - dotaz, objekt a zväzok, pozrime sa podrobnejšie na každý z nich:

Predstavuje pravidelná požiadavka, ktorý sa tvorí kliknutím na tlačidlo Konštruktor dotazu. Ak je nastavený príznak automatického dopĺňania, všetky vybraté podrobnosti automaticky spadajú do polí súboru údajov. Vyplnenie polí v požiadavke je možné tiež prispôsobiť na karte Zloženie údajov, kde sú tri karty:

Tabuľky, tu vyberáme tabuľky, ktoré sa budú podieľať na tvorbe správy, spravidla sú vybrané predvolené údaje, pretože na karte Tabuľky a polia sme už vybrali potrebné dokumenty, referenčné knihy, registre ...

Polia, tu vyberáme tie objekty, ktoré by mali byť zahrnuté v správe, podradený príznak označuje, či pre objekt budú k dispozícii podradené prvky alebo nie, je logické, že pre reťazcové, číselné a podobné údaje nie je možné príznak nastaviť na hodnotu True. .

Podmienky, tu vyberáme tie objekty, ktoré je možné použiť v podmienkach v ACS.

Časť práce je vykonaná v schéme kompozície údajov, časť programovo, pozrime sa na jednoduchý príklad:

Najprv vytvoríme rozloženie schémy kompozície údajov pre dokument a pomenujeme ACS (napríklad: 1C ACS), vytvoríme v ňom objekt súboru údajov a potom vyplníme polia, napríklad máme tabuľkovú časť dokument s podrobnosťami - položka, množstvo a cena.

Pridajte tri polia a pre každý stĺpec vyplňte pole s názvom podrobností, ostatné stĺpce sa vyplnia automaticky:

Vytvoríme tlačidlo vo formulári dokumentu, popíšeme mechanizmus práce v spravovaných formulároch:

& OnClient

Postup Tlač ()

OurReport = PrintOnServer (); // zavolajte funkciu na serveri

OurReport.Show (); // zobrazenie vygenerovanej zostavy

Koniec postupu

& Na serveri

Funkcia PrintOnServer ()

DocumentObject = FormInValue („Objekt“);

//tabuľkovú časť Tovar sme zaradili do štruktúry s názvom GoodsSKD rovnakým spôsobom, akým sme v samotnom ACS uviedli názov objektu obsahujúceho údaje

Množina údajov = nová štruktúra;

SetData.Insert („GoodsSKD“, DocumentObject.Goods);

//prevezmite naše rozloženie a nastavte predvolené nastavenia tak, aby boli všetky nastavenia výstupu zostavy prevzaté z nášho rozloženia

OurMakeup = DocumentObject.GetMakeup („SKD“);

Nastavenia = OurLayout.Default Settings;

//pomocou našich nastavení vytvorte rozloženie kompozície údajov

Layout Composer = Nový skladateľ rozloženia DataComposition;

LayoutComposition = LayoutComposer.Execute (OurLayout, Nastavenia);

//vykonávanie kompozície údajov s naším súborom údajov

DataComposition Processor = Nový procesor DataComposition;

DataCompositionProcessor.Initialize (LayoutDataset);

//vytvoríme tabuľkový dokument a zobrazíme v ňom našu správu

ReportDocument = New SpreadsheetDocument;

OutputProcessor = Nový OutputProcessorDataCompositionResultInTableSheetDocument;

OutputProcessor.SetDocument (ReportDoc);

OutputProcessor.Output (procesor DataComposition);

Vrátenie dokumentu správy;

EndFunction

Ak si želáte, môžete získať oblasti a akékoľvek iné rozloženie a tiež zobraziť v tomto prehľade, napríklad máme typické rozloženie pre uskutočnenie platby a je v ňom veľmi dobre vytvorená hlavička, takže nerobiť zbytočnú prácu, len najskôr získame rozloženie, zobrazíme hlavičku, potom vygenerujeme a zobrazíme našu správu o ACS.

O zjednotenie

Môžeme do neho vložiť svoje dotazy a objekty, ale na rozdiel od odkazu k sebe jednoducho pridá tabuľky, to znamená, že ak spojíme dve rovnaké tabuľky, skončíme s jednou a keď sa skombinuje, zdvojnásobí sa, považujeme to za jednoduché. príklad:

Máme tabuľky:

Pri komunikácii dostaneme:

A keď kombinujete:

Uvažujme teraz o vyplnení stĺpcov v množinách údajov (niektoré z nich preskočíme, pretože súvisia s inými kartami, vrátime sa k nim v budúcich článkoch):

- lúka, uveďte všeobecný názov rekvizít;

­­- spôsob, uvádzame názov rekvizity, ktorou na ňu budeme v ACS odkazovať, napríklad v Vypočítané polia;

- nadpis, uveďte názov premennej, ktorá sa zobrazí v zostave;

- obmedzenie poľa, uveďte dostupnosť tejto náležitosti;

- obmedzenie náležitostí„Uvádzame dostupnosť podradených prvkov, je dôležité, že ak je uvedená dostupnosť podrobností, bude k dispozícii samotné pole a je možné, že sa táto mechanika v budúcich vydaniach zmení;

- výraz, pomocou ktorého sa hodnotí reprezentácia poľa je vhodné použiť, keď potrebujeme trochu zmeniť výstup podrobností, napríklad to potrebujeme za názvom nomenklatúra bol stiahnutý sklad, na ktorom sa nachádza, potom vyplňte nasledujúce údaje: Nomenklatúra + „na sklade“ + Sklad. Opakujem, že adresa k náležitostiam sa vykonáva prostredníctvom mena uvedeného v stĺpci cesta;

- radenie výrazov, pohodlný mechanizmus na nastavenie poradia zostavy, kde je možné podmienku nastaviť ručne, podobne ako v predchádzajúcom bode, ale ako ukazuje prax, tento mechanizmus často nefunguje tak, ako by sme chceli, a radím vám použiť štandardnú triedenie;

- typ hodnoty, je uvedený typ hodnoty premennej, je potrebné vyplniť, ak použijete ďalšie pole;

- dostupné hodnoty, funguje iba vtedy, ak je naplnený typ hodnoty, otvorte vyplňovací formulár a v stĺpci Význam označujeme prvok, ktorý je potrebné zmeniť, podľa typu to môžu byť preddefinované objekty alebo numerické, napríklad atribúty, majú jednoduché hodnoty, v podanie uvádzame, čo musíme zmeniť, príklad booleovského typu:

- registráciaštandardné nastavenie formát poľa, podobný nastaveniu v spravovaných formulároch, vám umožňuje presnejšie a krajšie prispôsobiť výstup určitých rekvizít.

Odkazy na množinu údajov v 1C ACS

Len tu ľavá križovatka, na podobnom princípe ako spojenia v dotazoch, v zdroj komunikácie uvádzame hlavnú tabuľku pre pripojenie, v prijímač dodatočné. V. zdroj výrazu a prijímač výrazov uvádzame podrobnosti, pomocou ktorých sa spojenie uskutoční. Zostávajúce stĺpce budú podrobnejšie zvážené pri analýze karty. možnosti... Ak neexistuje žiadne ďalšie spojenie s parametrami, odporúča sa vykonať spojenie v žiadosti, čo urýchli prácu v správe.

EvaluateExpression- dosť komplexná funkcia ACS na porozumenie a príklady aplikácie v referenčných informáciách sú dosť vzácne. Tento článok pojednáva o príkladoch, ktoré budú určite užitočné pre každého vývojára:

  1. kumulatívny súčet v zoskupení;
  2. priebežný súčet v kontingenčnej tabuľke;
  3. získanie predchádzajúcej hodnoty;
  4. výstup PM v jednom riadku.

1. Získanie indikátora kumulatívne

Poďme získať počet tovarov kumulatívne na úrovni zoskupenia. Za týmto účelom vytvoríme vypočítané pole (pozri obrázok 1).
Na karte „Zdroje“ nastavte funkciu pre vypočítané pole:
Vypočítať výraz („Suma (AmountTurnover)“, „Prvá“, „Aktuálna“)
ktorý zhrnie počet výrobkov od prvého záznamu po súčasný (pozri obrázok 2).

Ak chcete získať počet tovarov na kumulatívnom súčte na úrovni podrobných záznamov, potom je pre vypočítané pole na karte „Vypočítané polia“ nastavená funkcia CalculateExpression (pozri obrázok 3).
V závislosti od úrovne získania kumulatívneho súčtu vytvoríme zoskupenie (pozri obrázok 4): na úrovni zdrojov - zoskupenie podľa tovaru, na úrovni DZ - zoskupenie podrobných záznamov.
Obrázok 4. Zoskupenia správy s kumulatívnym súčtom

2. Získanie hodnoty indikátora z predchádzajúceho riadka

Zoberme si menový kurz pre dátum a predchádzajúci dátum. Za týmto účelom vytvorte vypočítané pole a do výrazového poľa napíšte nasledujúci výraz (pozri obrázok 5):
CalculateExpression (kurz, predchádzajúci, predchádzajúci)
ktorý vezme predchádzajúcu hodnotu kurzu meny pre aktuálny riadok, posledný parameter funkcie obmedzuje získavanie údajov.
Keďže pracujeme na úrovni podrobných záznamov, okamžite prejdite na kartu „Nastavenia“ a vytvorte zoskupenie - podrobné záznamy.

3. Získanie indikátora kumulatívneho súčtu v krížovej karte

Pozrime sa na kumulatívny počet tovarov v kontexte daného obdobia. Za týmto účelom vytvoríme vypočítané pole (pozri obrázok 1). Na karte „Prostriedky“ pre vypočítané pole zadáme nasledujúci výraz (pozri obrázok 6):
Vypočítať výraz („Suma (NumberTurnover)“, „Obdobie“, „Prvé“, „Aktuálne“)
ktorý na úrovni zoskupenia vypočíta množstvo tovaru v intervale od prvého riadku po aktuálny v kontexte obdobia pre každú položku.
Na karte „Nastavenia“ vytvorte tabuľku so zoskupením podľa položky v riadku a zoskupením podľa obdobia v stĺpci (pozri obrázok 7).

4. Výstup údajov tabuľkových sekcií v jednom riadku

Metódy zobrazenia údajov tabuľkových sekcií v jednom riadku vrátane metódy používajúcej funkciu EvaluateExpression sú popísané v článku

Kompetentné používanie schémy kompozície údajov (ACS) vám umožňuje:

  • výrazne skrátiť čas potrebný na vypracovanie správy;
  • zbaviť sa potreby vytvorenia obslužného programu spravovaného formulára;
  • získajte krásny výsledok na výstupe so schopnosťou dodatočné prispôsobenie používateľ.

Ale nie všetci vývojári maximálne využívajú možnosti obvodu, pretože nie všetky jeho nastavenia sú zrejmé a intuitívne. Mnoho ľudí predovšetkým vie, že v 1C ACS sú vypočítané polia, ale nereprezentujú úplne oblasť ich použitia a metódy práce s nimi.

Čo je vypočítané pole

Vo väčšine prípadov je zdrojom údajov v schéme rozloženia dotaz. V zásade v rámci samotného dotazu už môžete používať rôzne vzorce, konštrukcie a výrazy. Vyvstáva prirodzená otázka, prečo potrebujeme duplicitné funkcie?

Faktom je, že ACS je viac než len zobrazenie výsledku spustenia dotazu, a to je dokonale viditeľné z formulára na vytvorenie schémy (obr. 1).

Vypočítané polia vám umožňujú vykonať určité akcie s vygenerovanou množinou údajov:

  • Výstup do konkrétnej bunky súboru údajov prijatých dotazom zreťazením niekoľkých riadkov do jedného;
  • Prístup k funkciám exportu spoločného modulu;
  • Vykonajte rôzne výrazy dostupné pre jazyk rozloženia a použite špeciálne funkcie EvaluateExpression.

Nasledujme tento zoznam a poďme.

Pole hodnôt v jednej bunke

Simulujme situáciu, keď je potrebné dostať do samostatnej bunky všetky počty potvrdení za protistranu:


preto sme v našej schéme vytvorili ďalšie vypočítané pole;


Ako vidíte z vyššie uvedeného príkladu, pri pridávaní a spracovaní vypočítaných polí nie sú žiadne problémy. Použili sme dve funkcie: Array () a JoinStrings ().

Niekoľko slov o tom druhom. Okrem prvého parametra označujúceho identifikátor poľa, hodnôt alebo hodnôt je možné v ňom nastaviť ďalšie dva:

  1. Separátor prvkov - udáva, ktorý znak bude oddeľovať jeden prvok poľa alebo jeden riadok tabuľky hodnôt od druhého (v našom prípade sme tento parameter vynechali a štandardne bol priradený zlom riadka);
  2. Oddeľovač stĺpcov je znak, ktorý sa používa na oddelenie stĺpcov tabuľky hodnôt (štandardne sa používa bodkočiarka).

Prístup k funkciám exportu spoločného modulu

Funkcie spoločného modulu môžu fungovať ako zdroj údajov na vyplnenie vypočítaného poľa.

Niekoľko dôležitých bodov:

  • Funkcia musí byť exportovateľná;
  • Ak je funkcia umiestnená v spoločnom module s nastaveným príznakom „Globálne“, volá sa priamo podľa názvu, inak by sa mala funkcia volať podľa schémy „Bežný názov modulu“. Názov volanej funkcie.

Ako príklad použitia vezmeme rovnakú požiadavku na doklady o prijatí a zobrazíme ju v samostatnom stĺpci. Samotnú žiadosť nebudeme popisovať, prejdeme priamo k vypočítaným poliam:


Vidíme teda, že takmer akýkoľvek nástroj na spracovanie údajov je možné inicializovať z ACS, čo výrazne rozširuje možnosti použitia schémy.

Prepojenie jazykových výrazov

Pomerne často v práci vývojára nastáva situácia, keď je potrebné zobraziť výsledok rozdelenia v poli ACS:

  1. Vypočítajte priemerné náklady na položku;
  2. Všetky druhy záujmu;
  3. Výpočty priemerných zárobkov atď.

Aby sa predišlo problémom, v týchto prípadoch je vhodné do vypočítaného poľa zadať kontrolu delenia 0.

To je možné vykonať pomocou konštrukcie „Voľba Kedy .... Potom ... Inak ... Koniec“.

Na záver pár slov o dosť nová funkcia EvaluateExpression (). S jeho pomocou môžete predovšetkým vypočítať odchýlky v hodnote medzi aktuálnym a predchádzajúcim riadkom, kumulatívny zostatok atď.

Môžete napríklad získať sumu dokumentu z predchádzajúceho riadka nášho dopytu zadaním hodnoty vypočítať výraz („množstvo dokumentu“, „predchádzajúci súčet“) do poľa „výraz“.