1s skd výraz vypočítaných polí. Funkcie výrazového jazyka systému skladania údajov. Zmena poradia stĺpcov

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 súhrnný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 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")

AT tento príklad výsledkom bude pomer súčtu k poľu 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, pomocou ktorého sa zoskupenie vykonáva, umiestni 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 posledný záznam ide nad rámec 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. Po každom výraze môžete zadať 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 sa hodnota líši od hodnoty tohto typu predvolená, iná ako NULL , iná ako null 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.

Správne používanie schémy zloženia údajov (SKD) vám umožňuje:

  • výrazne skrátiť čas potrebný na vypracovanie správy;
  • eliminovať potrebu vytvárať riadená forma manipulant;
  • získajte krásny výsledok s možnosťou dodatočného prispôsobenia používateľom.

Nie všetci vývojári však využívajú možnosti schémy na maximum, pretože nie všetky jej nastavenia sú zrejmé a intuitívne. Najmä veľa ľudí vie, že v ACS sú vypočítané polia v 1C, avšak úplne nerozumejú oblasti ich použitia a metódam práce s nimi.

Čo je vypočítané pole

Vo väčšine prípadov je zdrojom údajov v schéme rozloženia dopyt. V princípe už vnútri samotného dotazu možno použiť rôzne vzorce, konštrukcie a výrazy. Vyvstáva legitímna otázka Prečo potrebujeme duplicitné funkcie?

Faktom je, že ACS je niečo viac ako len zobrazenie výsledku dotazu a je to jasne vidieť z formulára na vytvorenie schémy (obr. 1).

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

  • Zobrazte v určitej bunke pole údajov prijatých požiadavkou, kombinujúc niekoľko riadkov do jedného;
  • Prístup k exportným funkciám spoločného modulu;
  • Spustite rôzne výrazy dostupné pre jazyk prepojenia a použite špeciálne funkcie Vyhodnotiť výraz.

Poďme si prejsť tento zoznam.

Pole hodnôt v jednej bunke

Simulujme situáciu, keď je potrebné získať všetky čísla príjmových dokladov pre protistranu v samostatnej bunke:


preto sme v našej schéme vytvorili ďalšie pole výpočtu;


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

Pár slov o tom druhom. Okrem prvého parametra, ktorý ukazuje na identifikátor poľa, hodnoty alebo hodnotu, je možné v ňom nastaviť ďalšie dva:

  1. Elements Separator - označuje, ktorý znak oddelí jeden prvok poľa alebo jeden riadok tabuľky hodnôt od druhého (v našom prípade sme tento parameter vynechali a predvolene bol priradený zlom riadku);
  2. Oddeľovač stĺpcov – znak používaný na oddelenie stĺpcov tabuľky hodnôt (štandardne sa používa bodkočiarka).

Volanie exportných funkcií spoločného modulu

Funkcie spoločného modulu môžu slúžiť ako zdroj údajov pre vyplnenie počítaného poľa.

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

  • Funkcia musí byť exportovateľná;
  • Ak sa funkcia nachádza v spoločnom module s nastaveným príznakom "Global", volá sa priamo menom, v opačnom prípade sa funkcia musí volať podľa schémy "Spoločný názov modulu". "Názov funkcie, ktorá sa má volať."

Ako príklad použitia si zoberieme rovnakú požiadavku na príjmové doklady a zobrazíme ju v samostatnom stĺpci. Nebudeme popisovať samotný dotaz, prejdeme priamo k vypočítaným poliam:


Vidíme teda, že z ACS je možné inicializovať takmer akýkoľvek data handler, čo značne rozširuje možnosti použitia schémy.

Prepojte jazykové výrazy

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ú cenu položky;
  2. Všetky druhy záujmu;
  3. Výpočty priemerného zárobku atď.

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

Dá sa to urobiť pomocou konštrukcie "Voľba kedy .... Potom ... Inak ... Koniec".

Na záver pár slov o dosť Nová funkcia Vypočítajte výraz(). S jeho pomocou môžete vypočítať najmä odchýlky v nákladoch medzi aktuálnym a predchádzajúcim riadkom, kumulatívny zostatok atď.

Povedzme, že môžete získať DocumentAmount z predchádzajúceho riadku nášho dotazu zadaním hodnoty CalculateExpression("DocumentAmount", "PreviousAmount") v poli "Výraz".

O túto metódu, ako sa mi zdá, je tam mínus, ale funguje to, ale mínus je veľké. Zoberme si príklad: v konfigurácii s je dokument "Prijatie tovaru". tabuľková časť"Tovar", je potrebné pri každom doklade zobraziť v prehľade doklady a názvy prijatého tovaru.

Vytvorme zostavu, pridáme hlavnú schému zloženia údajov, pridáme množinu údajov typu „request“ do ACS a vytvoríme jednoduchý dotaz (pozri obrázok 1).

Obrázok 1. Dotaz na súbor údajov
Na karte "Vypočítané polia" pridajte vypočítané pole s názvom TabularPart a v stĺpci Výraz zadajte prázdny reťazec (pozri obrázok 2).
Naše vypočítané pole sa použije ako zdroj, takže na karte "Zdroje" nastavíme výraz zoskupenia: ConnectStrings(Array(Products.Nomenclature),""). Tiež uvádzame, že tento zdroj by sa mal vypočítať pomocou poľa Odkaz (pozri obrázok 3).
Výsledok správy:
O mínuse - ide o použitie zoskupovania, v našom prípade sa zoskupovanie vykonáva pomocou atribútu Link, inak to nebude fungovať. Prítomnosť zoskupovania ukladá určité obmedzenia na nastavenie výstupu údajov (pozri obrázok 4).

2) Volanie vlastnej funkcie zo zdieľaného modulu.

Jednoduchý a vizuálny spôsob, jediným problémom je nájsť vhodný spoločný modul alebo vytvoriť nový na napísanie vlastnej funkcie :). Funkcia prijme riadky tabuľkovej časti dokladu a vytvorí riadok s informáciami o prijatom tovare odovzdaným odkazom na doklad „Príjem tovaru“. Poďme k implementácii.

Vytvorme zostavu, pridáme hlavnú schému zloženia údajov, pridáme množinu údajov typu „request“ do ACS a vytvoríme jednoduchý dotaz (pozri obrázok 6).


Obrázok 6. Dotaz na súbor údajov
Vytvorme spoločný modul _DemoWorking with Reports a napíšme exportnú funkciu GetList of GoodsForReport(). Pozrite si funkčný kód nižšie.
Na karte "Vypočítané polia" pridajte vypočítané pole s názvom TabularPart a v stĺpci Výraz zadajte volanie funkcie zo spoločného modulu (pozri obrázok 2):
_DemoPráca so zostavami. Získajte zoznam položiek pre zostavu (odkaz)

Prejdeme na kartu "Nastavenia" a vytvoríme nastavenie pre výstup údajov - bude to podrobný záznam (pozri obrázok 8).
Výsledok správy:

Stiahnite si vzorový prehľad

Čo potrebujete vedieť pri použití tejto metódy:
1) Výraz stroja na zostavovanie údajov môže obsahovať volania funkcií globálnych spoločných konfiguračných modulov. Napríklad:
Skrátený názov (odkaz, dátum, číslo)
2) Pri programovom generovaní zostavy je použitie funkcií bežných modulov povolené iba vtedy, ak je špecifikovaný zodpovedajúci parameter procesora zostavy údajov (4. parameter):
CompositionProcessor = NewDataCompositionProcessor;
LayoutProcessor.Initialize(LayoutLayout, DecodeData, True);
3) Spoločné funkcie modulu nemožno použiť vo výrazoch vlastných polí.
4) Ak sa pri generovaní správy s uvedením funkcie spoločného modulu vyskytne výnimka, skontrolujte kontext vykonávania modulu (pozri obrázok 9).

Popis použitých funkcií

ConcatenateStrings (hodnota, oddeľovač prvkov, oddeľovače stĺpcov)- určený na zreťazenie reťazcov do jedného reťazca.
  • Hodnota – výrazy, ktoré sa majú spojiť do jedného reťazca. Ak ide o pole, prvky poľa sa spoja do reťazca. Ak je hodnota ValueTable, všetky stĺpce a riadky tabuľky sa spoja do jedného riadka;
  • ElementSeparator – Reťazec obsahujúci text, ktorý sa má použiť ako oddeľovač medzi prvkami poľa a riadkami tabuľky hodnôt. Predvolený je znak nového riadku;
  • Oddeľovače stĺpcov – Reťazec obsahujúci text, ktorý sa má použiť ako oddeľovač medzi stĺpcami v tabuľke hodnôt. Predvolené ";".
Pole([rôzne] výraz)- Ako parameter môžete použiť tabuľku hodnôt. V tomto prípade bude výsledkom funkcie pole obsahujúce hodnoty prvého stĺpca tabuľky hodnôt odovzdané ako parameter. Ak výraz obsahuje funkciu Array, potom sa výraz považuje za agregovaný výraz. Ak je zadané kľúčové slovo Variant, výsledné pole nebude obsahovať duplicitné hodnoty.

GetProductListForReport(DocumentReference)- funkcia vygeneruje reťazec so zoznamom došlého tovaru.
// Možnosti:
// DocumentLink - DocumentLink.Doklad o tovare - dokument "Príjem tovaru".
// Návratová hodnota:
// Reťazec - reťazec so zoznamom tovaru.
Funkcia GetProductListForReport(DocumentReference) Export

ItemList = "";

Pre každý reťazec zo slučky DocumentReference.Products
Zoznam tovaru = zoznam tovaru + reťazec PM. Nomenklatúra;
ItemList = ItemList + Symbols.PS;
EndCycle;

Zoznam vráteného tovaru;

EndFunction // GetItemListToReport()

Prihláste sa ako študent

Ak chcete získať prístup k obsahu školy, prihláste sa ako študent

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

Cieľom 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.
  • Oboznámte sa s funkciou sumarizácie (zdrojmi) a vypočítanými poľami.

Vytvorenie nového prehľadu

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

Typ dokumentu - externá správa:

Vo formulári nastavení prehľadu napíšte názov " Lekcia 3"a stlačte tlačidlo" Otvorte diagram zloženia údajov":

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

Pridanie dotazu 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 spustite znova konštruktor dotazov:

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

Vyberte z tabuľky Jedlo" polia, ktoré si vyžiadame. Ak to chcete urobiť, presuňte polia " názov", "Ochutnajte", "Farba" a " 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

Prejsť na záložku nastavenie“ a kliknite na Kúzelná palička, zavolať konštruktor 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"- podľa toho sa stane zoskupenie riadkov v prehľade. stlačte " OK":

A tu je výsledok 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átor, ihneď 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), aby to vyzeralo ako na obrázku nižšie:

Uložte prehľad a znova ho otvorte v používateľskom režime:

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

Zhrnutie (súčet) 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í všetkých produktov, povedzme, biele alebo žlté. Alebo zistite celkový obsah kalórií všetkých potravín v databáze.

Na to existuje mechanizmus výpočtu zdrojov.

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

Zároveň v poli výrazu vyberte 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ženie a vytvorenie prehľadu:

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

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

Teraz to urobme tak, že sa zobrazí ďalší stĺpec priemer obsah kalórií vo výrobkoch podľa skupín a vo všeobecnosti pre správu.

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

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

Prejsť na záložku Vypočítané polia"a stlačte zelená znamienko plus:

V stĺpci" Dátová cesta"napíšte názov nového poľa ( spolu, bez medzier). Nech sa volá Priemerný obsah kalórií“ a v stĺpci „ Výraz" napíšeme názov už existujúceho poľa, na základe ktorého sa vypočíta nové pole. Napíšeme tam " kalórií". Stĺpec" hlavička“ 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 konštruktor nastavení("čarovná palička") alebo pridajte toto pole manuálne.

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

Dopadlo to takto:

Uloženie a vytvorenie prehľadu:

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

Na tento účel opäť používame už známy mechanizmus. zdrojov(zhrnutie). Prejsť na záložku Zdroje"a potiahnite pole" Priemerný obsah kalórií“ z ľavého stĺpca doprava:

Zároveň v kolóne Výraz"vybrať" Priemer (priemerný obsah kalórií)":

Uloženie a vytvorenie prehľadu:

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

Viete, prečo sa objavili (to znamená, že nie v skupinách)? Pretože keď sme pridali pole " Priemerný obsah kalórií“ v nastaveniach prehľadu, v druhom kroku sme vybrali celú správu a toto nové pole zasiahlo prvok " Podrobné záznamy".

Opravme chybu. Ak to chcete urobiť, vráťte sa na kartu " nastavenie", vyber" Podrobné záznamy"najskôr hore (krok 2) a potom " Podrobné záznamy"zospodu (krok 3), prejdite na záložku" Vybraný poliach"a vidieť v jeho pravom stĺpci prvok" Auto".

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

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

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

Tu je naše pole Priemerný obsah kalórií"ktoré sa sem dostali z odseku" správa„keď sme to tam ťahali.Len poďme vzlietnuť zaškrtnutím vedľa tohto poľa odstránite jeho výstup.

Dobrý deň, milí čitatelia nášho blogu! Dnes chcem na skutočnom príklade povedať ako
použite funkcie SKD Array (Array) a ConnectStrings (JoinStrings). V článku o

málo zmienky o tom, ako s nimi pracovať
na záložke
, bolo tiež vysvetlené ako
pomocou karty Zdroje. Dnes im budeme opäť venovať pozornosť
záložky vo svetle našej témy.

Vzhľad príkladu správy 1C s použitím dvoch funkcií ACS pole a ConnectStringsĎalšie:

Vyhlásenie problému s aplikáciou funkcií ACS Array (Array) a ConnectStrings (JoinStrings)

Úloha: Do jednej bunky je potrebné vložiť všetky predajné čísla pre jeden produkt.

Niečo ako: nomenklatúra | množstvo | 001, 002 atď. |

Využijeme požiadavku do akumulačného registra „Implementácia TMZ“.

VYBERTE SI
Implementácia TMZ. registrátor. číslo,
Implementácia TMZ. nomenklatúra,
Implementácia TMZ. registrátor,
Implementácia TMZ. MnožstvoObrat
OD
RegisterAkumulácia. Implementácia TMZ. Obraty
(, , Registrátor, ) AKO IMPLEMENTOVAŤ TMZ

Akumulačný register „Implementácia TMZ“ existuje v Účtovníctve aj v konfigurácii Trade Enterprise Management (UTP). Zistite ako v konfigurácii USP v prvku adresára "Nomenclature". Preto po stiahnutí, aby ste skontrolovali jeho výkon, môžete tento prehľad spustiť v oboch konfiguráciách.

Implementácia úlohy s využitím funkcií SKD Array a ConnectStrings


Na vytvorenie boli použité rovnaké kroky, ale s niektorými doplnkami
.

Popis funkcie JoinStrings (JoinStrings).

JoinStrings (JoinStrings)

Používa sa na zreťazenie reťazcov do jedného reťazca.

Syntax:

ConcatenateStrings (hodnota, oddeľovač prvkov, oddeľovače stĺpcov)

Možnosti:

  1. Význam- výrazy, ktoré sa majú spojiť do jedného riadku.
    Ak ide o pole, prvky poľa sa spoja do reťazca.
    Ak je hodnota ValueTable, všetky stĺpce a riadky tabuľky sa spoja do jedného riadka;
  2. Oddeľovač prvkov je reťazec obsahujúci text, ktorý sa má použiť
    oddeľovač medzi prvkami poľa a riadkami tabuľky hodnôt. Predvolený je znak nového riadku;
  3. Oddeľovače stĺpcov-reťazec obsahujúci text, ktorý sa má použiť ako oddeľovač
    medzi stĺpcami tabuľky hodnôt. Predvolené ";".