1s SKD izraz izračunanih polj. Funkcije izraznega jezika sistema za sestavljanje podatkov. Spreminjanje vrstnega reda stolpcev

V luči prihajajoče izdaje 8.2.14 bom poskušal opisati nekaj novih funkcij sistema za sestavljanje podatkov.

Odprite diagram postavitve podatkov, po možnosti v zunanjem poročilu, da olajšate urejanje.

Dodamo nabor podatkov tipa poizvedbe in ročno ali z uporabo oblikovalca poizvedb napišemo preprosto poizvedbo:

1. Nastavite zahtevo v sistemu za nadzor dostopa.

2. Nastavitev izračunanih polj v sistemu kontrole dostopa

3. Konfigurirajte postavitev podatkov na zavihku z nastavitvami

4. Zaženite 1C Enterprise 8.2.14. Odprite poročilo. Oblikujemo, sprejemamo.

Opis samih novih funkcij:

1. Trenutni datum ()

Vrne sistemski datum. Pri sestavljanju postavitve postavitve se v vseh izrazih, ki so prisotni v postavitvi, funkcija CurrentDate() zamenja z vrednostjo trenutnega datuma.

2. RAČUNALNI IZRAZ()

Sintaksa:

Izračunaj izraz(,)

Opis:

Funkcija je zasnovana za ovrednotenje izraza v kontekstu nekega združevanja.

Funkcija upošteva izbor skupin, ne upošteva pa hierarhičnih izborov.

Funkcije ni mogoče uporabiti za skupino v izboru skupine te skupine. Na primer, pri izbiri združevanja Nomenklatura ne morete uporabiti izraza CalculateExpression("Sum(SumTurnover)", "TotalTotal") > 1000. Toda tak izraz se lahko uporablja pri hierarhični izbiri.

Če je končni zapis pred začetnim zapisom, se šteje, da ni zapisov za izračun podrobnih podatkov in izračun agregatnih funkcij.

Pri izračunu intervalnih izrazov za skupno vsoto (parameter Grouping je nastavljen na GrandTotal) se predpostavlja, da ni zapisov za izračun podrobnih podatkov in izračun agregatnih funkcij.

Povezovalnik postavitve pri generiranju funkcijskega izraza Izračunaj izraz, če izraz za urejanje vsebuje polja, ki jih ni mogoče uporabiti pri združevanju, nadomesti funkcijo Izračunaj izraz na NIČ.

Opcije

Tip: Linija. Izraz, ki ga je treba oceniti.

Tip: Linija. Vsebuje ime združevanja, v kontekstu katerega je treba ovrednotiti izraz. Če je uporabljeno ime skupine prazna vrstica, bo izračun izveden v okviru trenutnega združevanja. Če je kot ime skupine uporabljen niz GeneralTotal, bo izračun izveden v kontekstu skupnega seštevka. V nasprotnem primeru bo izračun izveden v kontekstu nadrejene skupine z istim imenom.

Na primer:

Sum(Sales.SumTurnover)/Calculate("Sum(Sales.SumTurnover)", "Total")

IN v tem primeru rezultat bo razmerje vsote po polju Prodaja.ZnesekPromet združevanje zapisov na vsoto istega polja v celotni postavitvi;

Tip: Linija. Parameter ima lahko naslednje vrednosti:

· skupna vsota— izraz bo izračunan za vse zapise združevanja.

· Hierarhija— izraz bo ovrednoten za nadrejeni hierarhični zapis, če obstaja, in za celotno skupino, če nadrejenega hierarhičnega zapisa ni.

· Združevanje v skupine— izraz bo ovrednoten za trenutni zapis združevanja skupin.

· GroupingNonResource— pri izračunu funkcije za skupinski zapis po virih bo izraz izračunan za prvi skupinski zapis prvotne skupine.

Pri izračunu funkcije Izračunajizraz() s pomenom GroupingNonResource za skupinske zapise, ki niso razvrščeni po virih, se funkcija izračuna na enak način, kot bi bila izračunana, če bi bila vrednost parametra enaka vrednosti Združevanje v skupine.

Graditelj postavitve sestave podatkov pri ustvarjanju postavitve sestave podatkov pri izpisu polja vira, po katerem se izvede združevanje v postavitev, postavi izraz v postavitev, ki je izračunan s funkcijo Izračunajizraz() , ki označuje parameter GroupingNonResource. Za druge vire so običajni izrazi virov postavljeni v skupino virov.

Tip: Linija. Označuje, iz katerega zapisa naj se začne fragment, v katerem je treba izračunati funkcije agregatnega izraza in iz katerega zapisa pridobiti vrednosti polja zunaj agregatnih funkcij. Vrednost je lahko ena od naslednjih:

· najprej

· Zadnji (zadnji)

· Prejšnja

· Naslednji (Naslednji)

· Trenutno

· LimitingValue(Mejna vrednost) LimitingValue

Tip: Linija. Označuje, na kateri zapis naj se nadaljuje fragment, v katerem naj se izračunajo agregatne funkcije izraza. Vrednost je lahko ena od naslednjih:

· najprej. Pridobiti je treba prvi zbirni zapis. Za besedo v oklepaju lahko podate izraz, katerega rezultat bo uporabljen kot odmik od začetka združevanja. Dobljena vrednost mora biti celo število, večje od nič. Na primer First(3) - prejemanje tretjega zapisa od začetka združevanja.

Če je prvi zapis izven združevanja, se šteje, da zapisov ni. Na primer, če obstajajo 3 zapisi in želite dobiti First(4), se šteje, da ni nobenega zapisa.

· Zadnji (zadnji). Pridobiti morate zadnji zapis združevanja. Za besedo v oklepaju lahko podate izraz, katerega rezultat bo uporabljen kot odmik od konca združevanja. Dobljena vrednost mora biti celo število, večje od nič. Na primer Last(3) - prejemanje tretjega zapisa od konca skupine.

če zadnji zapis presega združevanje, se šteje, da evidence ni. Na primer, če obstajajo 3 zapisi in želite dobiti Last(4), se šteje, da ni nobenega zapisa.

· Prejšnja. Pridobiti morate prejšnji zapis združevanja. Za besedo v oklepaju lahko podate izraz, katerega rezultat bo uporabljen kot odmik nazaj od trenutnega zapisa združevanja. Na primer Previous(2) - pridobivanje prejšnjega iz prejšnjega zapisa.

Če prejšnji zapis presega združevanje (na primer, za drugi zapis združevanja morate pridobiti Prejšnji(3)), se pridobi prvi zapis združevanja.

Pri pridobivanju predhodnega zapisa za seštevek združevanja se šteje, da je pridobljen prvi zapis.

· Naslednji (Naslednji). Pridobiti morate naslednji zapis združevanja. Za besedo v oklepaju lahko podate izraz, katerega rezultat bo uporabljen kot odmik naprej od trenutnega zapisa združevanja. Na primer, Next(2) - pridobivanje naslednjega iz naslednjega zapisa.

Če naslednji zapis preseže skupino, se šteje, da zapisov ni. Na primer, če obstajajo 3 vnosi in tretji vnos prejme Next(), se šteje, da ni nobenih vnosov.

Ko je prejet naslednji zapis za skupni seštevek, se šteje, da zapisa ni.

· Trenutno. Dobiti morate trenutni zapis.

Pri pridobivanju skupne vsote se pridobi prvi zapis.

· LimitingValue(Mejna vrednost). Potreba po pridobitvi zapisa z določeno vrednostjo. Po slov LimitingValue v oklepajih morate navesti izraz, s katerega vrednostjo želite začeti fragment, prvo polje za naročanje.

Prvi zapis, katerega vrednost vrstnega polja je večja ali enaka podani vrednosti, bo vrnjen kot zapis. Na primer, če je polje Obdobje uporabljeno kot polje za naročanje in ima vrednosti 01/01/2010, 02/01/2010, 03/01/2010 in želite dobiti LimitingValue(DateTime(2010, 1, 15)), potem bo prejet zapis z datumom 01.02.2010.

Tip: Linija. Navaja izraze, ločene z vejicami, ki opisujejo pravila razvrščanja. Če ni podano, se vrstni red izvede na enak način kot za skupino, za katero je izraz ovrednoten. Za vsakim izrazom lahko določite ključna beseda Starost(za naročanje v naraščajočem vrstnem redu), Sestopanje(za naročanje v padajočem vrstnem redu) in Samodejno naročilo(da razporedite referenčna polja po poljih, po katerih želite razvrstiti referenčni objekt). Beseda Samodejno naročilo se lahko uporablja kot z besedo Starost, torej z besedo Sestopanje.

Tip: Linija. Enako kot parameter Razvrščanje. Uporablja se za organiziranje hierarhičnih zapisov. Če ni podano, graditelj postavitve ustvari vrstni red v skladu z vrstnim redom, podanim v parametru Razvrščanje.

Tip: Linija. Podaja pravilo za določanje prejšnjega ali naslednjega zapisa v primeru, da obstaja več zapisov z isto vrstno vrednostjo:

· Ločeno označuje, da se za določitev prejšnjega in naslednjega zapisa uporablja zaporedje urejenih zapisov. Privzeta vrednost.

· Skupaj označuje, da sta prejšnji in naslednji zapis določena na podlagi vrednosti vrstnih izrazov.

Na primer, če je nastalo zaporedje urejeno po datumu:

datum Polno ime Pomen
1 1. januar 2001

Ivanov M.

10
2 2. januar 2001 Petrov S. 20
3 3. januar 2001 Sidorov R. 30
4 4. januar 2001 Petrov S. 40

Ločeno, to:

§ prejšnji vnos do vnosa 3 bo vnos 2.

Trenutno, trenutno(v skladu s tem parametri Začetek in Konec), potem bo za zapis 2 ta fragment sestavljen iz enega zapisa 2. Izraz bo enak 20.

Če je vrednost parametra Skupaj, to:

§ prejšnji vnos do vnosa 3 bo vnos 1.

§ če je fragment izračuna opredeljen kot Trenutno, trenutno(v skladu s tem parametri Začetek in Konec), potem bo za zapis 2 ta fragment sestavljen iz zapisov 2 in 3. Izraz CalculateExpression("Sum(Value)", Current, Current) bo enako 50.

Ko navedete vrednost parametra, ki je enaka Skupaj, v parametrih Začetek in Konec ne morete določiti odmika za položaje Prvi, Zadnji, Prejšnji, Naslednji.

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

Če želite pridobiti vrednost združevanja v prejšnji vrstici, lahko uporabite naslednji izraz:

CalculateExpression("Rate", "Prejšnji")

Seznam novo funkcije:

CalculateExpressionWithGroupArray(,) -

Funkcija vrne matriko, katere vsak element vsebuje rezultat vrednotenja izraza za združevanje po podanem polju.

CalculateExpressionWithGroupValueTable(,) -

Funkcija vrne tabelo vrednosti, katere vsaka vrstica vsebuje rezultat vrednotenja izrazov za združevanje po podanem polju

ValueFilled() – Vrne True, če se vrednost razlikuje od vrednosti te vrste privzeto, razen NULL, razen prazne reference, razen Nedefinirano. Logične vrednosti so preverjene za vrednosti NULL. V nizih se preveri odsotnost znakov, ki niso presledki

Oblika(, ) - Prejmi oblikovani niz posredovane vrednosti. Formatni niz je nastavljen v skladu s formatnim nizom sistema 1C:Enterprise.

Podniz(, , ) – Ta funkcija je zasnovana za ekstrahiranje podniza iz niza.

Dolžina vrstice() - Funkcija je zasnovana za določanje dolžine niza. Parameter je izraz niza

Linija() – Če je matrika podana kot parameter, funkcija vrne niz, ki vsebuje nizove predstavitve vseh elementov matrike, ločene z znaki "; ". Če je tabela vrednosti podana kot parameter, funkcija vrne niz, ki vsebuje nizovne predstavitve vseh vrstic tabele vrednosti, pri čemer so celice vsake vrstice ločene z znaki ";", vrstice pa z novo vrstico značaj. Če je predstavitev niza elementa prazna, se namesto njegove predstavitve prikaže niz.

Pravilna uporaba sheme sestavljanja podatkov (DCS) vam omogoča, da:

  • bistveno zmanjša čas, potreben za pripravo poročila;
  • znebite se potrebe po ustvarjanju kontrolirani obliki procesor;
  • dobite lep rezultat z možnostjo dodatne prilagoditve s strani uporabnika.

Toda vsi razvijalci ne izkoristijo kar največ zmogljivosti sheme, saj vse njene nastavitve niso očitne in intuitivne. Še posebej veliko ljudi ve, da so v 1C SKD izračunana polja, vendar ne razumejo popolnoma obsega njihove uporabe in načinov dela z njimi.

Kaj je izračunano polje

V večini primerov je vir podatkov v diagramu postavitve poizvedba. Načeloma lahko že v sami poizvedbi uporabljate različne formule, konstrukcije in izraze. Nastane logično vprašanje, zakaj potrebujemo podvojeno funkcionalnost?

Dejstvo je, da je sistem za nadzor dostopa nekaj več kot le prikaz rezultata poizvedbe, kar je jasno razvidno iz obrazca za izdelavo diagrama (slika 1).

Izračunana polja vam omogočajo izvajanje določenih dejanj z ustvarjenim naborom podatkov:

  • Izhod niza podatkov, prejetih z zahtevo, v določeno celico, z združevanjem več vrstic v eno;
  • Dostop do izvoznih funkcij splošnega modula;
  • Izvedite različne izraze, ki so na voljo za jezik postavitve, in uporabite posebne funkcije EvaluateExpression.

Pojdimo skozi ta seznam.

Niz vrednosti v eni celici

Simulirajmo situacijo, ko je treba prejeti vse številke potrdil o prejemu za nasprotno stranko v ločeni celici:


Tako smo v naši shemi ustvarili dodatno računsko polje;


Kot je razvidno iz zgornjega primera, pri dodajanju in obdelavi izračunanih polj ni težav. Uporabili smo dve funkciji: Array() in ConnectRows().

Nekaj ​​besed o slednjem. Poleg prvega parametra, ki označuje identifikator matrike, vrednosti ali vrednosti, lahko v njem nastavite še dva:

  1. Ločilo elementov – označuje, kateri znak bo ločil en element matrike ali eno vrstico tabele vrednosti od drugega (v našem primeru smo ta parameter izpustili in privzeto je bil dodeljen prelom vrstice);
  2. Ločilo stolpcev – znak, ki se uporablja za ločevanje stolpcev tabele vrednosti (podpičje se uporablja privzeto).

Dostop do izvoznih funkcij skupnega modula

Funkcije skupnega modula lahko delujejo kot vir podatkov za izpolnjevanje izračunanega polja.

Nekaj ​​pomembnih točk:

  • Funkcija mora biti izvozljiva;
  • Če se funkcija nahaja v skupnem modulu z nastavljenim atributom "Global", se kliče neposredno po imenu, sicer mora biti funkcija poklicana v skladu s shemo "Ime modula v skupni rabi". "Ime funkcije, ki jo želite poklicati."

Kot primer uporabe bomo vzeli isto zahtevo za potrdila o prejemu in jo prikazali v ločenem stolpcu. Ne bomo opisovali same zahteve, pojdimo neposredno na izračunana polja:


Tako vidimo, da je skoraj vsak procesor podatkov mogoče inicializirati iz sistema za nadzor dostopa, kar bistveno razširi možnosti uporabe sheme.

Izrazi v jeziku postavitve

Pri delu razvijalca se pogosto pojavi situacija, ko je treba prikazati rezultat delitve v polju ACS:

  1. Izračunajte povprečno ceno predmeta;
  2. Vse vrste obresti;
  3. Izračuni povprečnih plač itd.

Da bi se izognili težavam, je v teh primerih priporočljivo v polje za izračun vnesti test za deljenje z 0.

To je mogoče storiti z uporabo konstrukcije »Izbira Ko….Potem… Sicer… Konec«.

Za konec še nekaj besed o dovolj nova funkcija Izračunaj izraz(). Z njegovo pomočjo lahko izračunate zlasti odstopanja v stroških med trenutno in prejšnjo vrstico, kumulativno stanje itd.

Recimo, da lahko dobite vsoto dokumenta iz prejšnje vrstice naše zahteve tako, da navedete vrednost Izračunaj izraz (»Vsota dokumenta«, »Prejšnja vsota«) v polju »Izraz«.

U ta metoda Zdi se mi, da je minus, ampak deluje, vendar je minus velik. Poglejmo primer: v konfiguraciji je dokument "Prejem blaga" s tabelarnega dela“Izdelki”, je potrebno v poročilu prikazati dokumente in nazive prejetega blaga za vsak dokument.

Ustvarimo poročilo, dodamo osnovno shemo postavitve podatkov, dodamo nabor podatkov tipa "poizvedba" sistemu za nadzor dostopa in ustvarimo preprosto zahtevo (glej sliko 1).

Slika 1. Poizvedba nabora podatkov
Na zavihku »Izračunana polja« dodajte izračunano polje z imenom TabularPart in podajte prazen niz v stolpcu Izraz (glejte sliko 2).
Naše izračunano polje bo uporabljeno kot vir, zato na zavihku "Viri" nastavimo izraz za združevanje: ConnectRows(Array(Products.Nomenclature),""). Navedemo tudi, da je treba ta vir izračunati s poljem Link (glejte sliko 3).
Rezultat poročila:
Slaba stran je uporaba združevanja, v našem primeru se združevanje izvaja z atributom Link, sicer ne bo delovalo. Prisotnost združevanja nalaga nekatere omejitve pri nastavitvi izpisa podatkov (glejte sliko 4).

2) Klicanje lastne funkcije iz skupnega modula.

Preprost in jasen način, edina težava je najti ustrezen skupni modul ali ustvariti novega za pisanje lastne funkcije :). S pomočjo posredovane povezave do dokumenta »Prejem blaga« bo funkcija sprejela vrstice iz tabelarnega dela dokumenta in generirala vrstico s podatki o prejetem blagu. Začnimo z izvajanjem.

Ustvarimo poročilo, dodamo osnovno shemo postavitve podatkov, dodamo nabor podatkov tipa "poizvedba" sistemu za nadzor dostopa in ustvarimo preprosto zahtevo (glej sliko 6).


Slika 6. Poizvedba nabora podatkov
Ustvarimo skupni modul _Demo Work WITH Reports in napišimo izvozno funkcijo Get List of Products for Report(). Oglejte si spodnjo kodo funkcije.
Na zavihku »Izračunana polja« dodajte izračunano polje z imenom TabularPart in v stolpcu Izraz označite klic funkcije iz splošnega modula (glejte sliko 2):
_DemoDelo s poročili. Pridobite seznam izdelkov za poročilo (povezava)

Pojdimo na zavihek "Nastavitve" in ustvarimo nastavitev za izpis podatkov - to bo podroben zapis (glej sliko 8).
Rezultat poročila:

Prenesite vzorčno poročilo

Kaj morate vedeti pri uporabi te metode:
1) Izraz mehanizma za sestavljanje podatkov lahko vsebuje klice funkcij globalnih skupnih konfiguracijskih modulov. Na primer:
AbbreviatedName(povezava, datum, številka)
2) Pri programski generaciji poročila je uporaba funkcij skupnih modulov dovoljena le, če je naveden ustrezen parameter procesorja za sestavljanje podatkov (4. parameter):
CompositionProcessor = newDataCompositionProcessor;
LayoutProcessor.Initialize(LayoutLayout, DecryptionData, True);
3) Funkcij skupnih modulov ni mogoče uporabiti v izrazih polja po meri.
4) Če se pri ustvarjanju poročila, ki označuje funkcijo skupnega modula, vrže izjema, preverite kontekst izvajanja modula (glejte sliko 9).

Opis uporabljenih funkcij

ConnectRows(Vrednost, Ločilo elementov, Ločilo stolpcev)- zasnovan za združevanje nizov v eno vrstico.
  • Vrednost - izrazi, ki jih je treba združiti v eno vrstico. Če je matrika, bodo elementi matrike združeni v niz. Če je tabela vrednosti, bodo vsi stolpci in vrstice tabele združeni v vrstico;
  • Ločilo elementov – niz, ki vsebuje besedilo, ki se uporablja kot ločilo med elementi matrike in vrsticami tabele vrednosti. Privzeto – znak za pomik vrstice;
  • Ločila stolpcev - niz, ki vsebuje besedilo, ki se uporablja kot ločilo med stolpci tabele vrednosti. Privzeto "; ".
Matrika ([različni] izraz)- kot parameter lahko uporabite tabelo vrednosti. V tem primeru bo rezultat funkcije matrika, ki vsebuje vrednosti prvega stolpca tabele vrednosti, posredovane kot parameter. Če izraz vsebuje funkcijo Array, se izraz šteje za zbirni izraz. Če je podana ključna beseda Various, nastala matrika ne bo vsebovala podvojenih vrednosti.

Pridobite seznam izdelkov za poročilo (DocumentLink)- funkcija generira vrstico s seznamom prejetega blaga.
// Opcije:
// DocumentLink - DocumentLink.Potrdilo o prejemu blaga - Dokument "Potrdilo o prejemu blaga".
// Vrnjena vrednost:
// Niz - niz s seznamom izdelkov.
Funkcija Get List of Products for Report (DocumentLink) Export

Seznam izdelkov = "";

Za vsako vrstico PM iz cikla DocumentLink.Products
Seznam izdelkov = Seznam izdelkov + vrstica TC.Nomenklatura;
Seznam izdelkov = Seznam izdelkov + Simboli.PS;
EndCycle;

Seznam vračil izdelkov;

EndFunction // Pridobi seznam izdelkov za Report()

Prijavite se na stran kot študent

Za dostop do šolskega gradiva se prijavite kot študent

Sistem za sestavljanje podatkov 1C 8.3 za začetnike: štetje rezultatov (viri)

Namen te lekcije bo:

  • Napišite poročilo, ki prikazuje seznam izdelkov (Imenik hrane), njihovo vsebnost kalorij in okus.
  • Združite izdelke po barvah.
  • Spoznajte seštevanje (viri) in izračunana polja.

Ustvari novo poročilo

Kot v prejšnjih lekcijah odpremo bazo podatkov " Deli"v konfiguratorju in ustvarite novo poročilo skozi meni" mapa"->"novo...":

Vrsta dokumenta - zunanje poročilo:

V obrazec za nastavitev poročila vnesite ime " Lekcija 3" in pritisnite gumb " Diagram sestave odprtih podatkov":

Pustite privzeto ime sheme in kliknite » pripravljena":

Dodajanje zahteve prek konstruktorja

Na zavihku " Nabor podatkov" kliknite zelena znak plus in izberite " Dodaj nabor podatkov – poizvedba":

Namesto ročnega pisanja besedila zahteve, jo zaženemo znova konstruktor poizvedbe:

Na "zavihku" Mize"povleci mizo" hrana" iz prvega stolpca v drugega:

Izberite iz tabele " hrana"polja, ki jih bomo zahtevali. Če želite to narediti, povlecite in spustite polja" Ime", "Okusite", "barva"in" Vsebnost kalorij" iz drugega stolpca v tretjega:

Izkazalo se je takole:

Pritisni gumb " v redu" - besedilo zahteve je bilo ustvarjeno samodejno:

Ustvarjanje nastavitev predstavitve poročila

Pojdite na zavihek " nastavitve« in kliknite na magična palica, poklicati oblikovalec nastavitev:

Izberite vrsto poročila " Seznam..." in pritisnite gumb " Nadalje":

Povlecite polja, ki bodo prikazana na seznamu, iz levega stolpca v desno in kliknite » Nadalje":

Povlecite iz levega stolpca v desno polje " barva« - zgodilo se bo združevanje vrstice v poročilu. Kliknite " v redu":

In tukaj je rezultat oblikovalčevega dela. Hierarhija našega poročila:

  • poročilo kot celoto
  • združevanje "Barva"
  • podrobni vnosi - vrstice z imeni živil

Shrani poročilo (gumb disketa) In brez zapiranja Takoj bomo odprli konfigurator v uporabniškem načinu. Izkazalo se je takole:

Spreminjanje vrstnega reda stolpcev

Ampak dajmo spremenimo vrstni red stolpce (puščice gor in dol), tako da je videti kot na spodnji sliki:

Shranimo poročilo in ga znova odpremo v uporabniškem načinu:

Super, to je veliko bolje.

Povzemimo vsebnost kalorij

Lepo bi bilo povzeti vsebnost kalorij v živilih po skupinah. Če želite videti vsoto vsebnosti kalorij vseh izdelkov, recimo, bele ali rumene. Ali pa ugotovite skupno vsebnost kalorij vseh izdelkov v bazi podatkov.

V ta namen obstaja mehanizem za izračun sredstev.

Pojdite na zavihek " Viri"in povlecite polje" Vsebnost kalorij«(povzeli ga bomo) od levega stolpca do desnega.

V tem primeru v polju izberite izraz s spustnega seznama " Količina (kalorija)", saj bo vsota vsota vseh elementov, vključenih v vsoto:

Shranimo in ustvarimo poročilo:

Zdaj imamo rezultate za vsako od skupin in za poročilo kot celoto.

Seštejmo (povprečje) glede na kalorije

Zdaj pa poskrbimo, da se prikaže v drugem stolpcu povprečje vsebnost kalorij v izdelkih po skupinah in v poročilu kot celoti.

Ne morete se dotakniti obstoječega stolpca »Kalorije« - skupni znesek je že prikazan v njem, torej ustvarimo še eno polje, ki bo natančna kopija Polja "Kalorije".

Za ustvarjanje takšnega "virtualnega" polja bomo uporabili mehanizem izračunana polja.

Pojdite na zavihek " Izračunana polja" in pritisnite zelena znak plus:

V kolumni " Podatkovna pot"napišemo ime novega polja ( neopazno, brez presledkov). Naj se imenuje " Povprečna vsebnost kalorij", in v stolpcu " Izraz"zapišemo ime obstoječega polja, na podlagi katerega se bo izračunalo novo polje. Tja zapišemo " Vsebnost kalorij". Stolpec " Naslov« se samodejno izpolni.

Dodali smo novo polje (" Povprečna vsebnost kalorij«), vendar se v poročilu ne bo pojavil sam – morate poklicati znova oblikovalec nastavitev("čarobna palica") ali dodajte to polje ročno.

Naredimo to drugo način. Če želite to narediti, pojdite na zavihek " nastavitve", izberite" Poročilo"(navsezadnje želimo v poročilo dodati polje kot celoto), izberite zavihek na dnu" Izbrana polja"in povlecite polje" Povprečna vsebnost kalorij"iz levega stolpca v desno:

Izkazalo se je takole:

Shranimo in ustvarimo poročilo:

Polje se je pojavilo in vidimo, da so njegove vrednosti vrednosti polja "Kalorije". Super!

Za to bomo ponovno uporabili mehanizem, ki nam je že znan virov(povzemanje). Pojdite na zavihek " Viri"in povlecite polje" Povprečna vsebnost kalorij"iz levega stolpca v desno:

Še več, v stolpcu " Izraz"izberi" Povprečje (AverageCalorie)":

Shranimo in ustvarimo poročilo:

Vidimo, da je bila za skupine, torej za vsako barvo, in za poročilo kot celoto povprečna vrednost izračunana popolnoma pravilno. Vendar so prisotni dodatni vnosi za posamezne izdelke (ne skupine), ki jih želim odstraniti iz poročila.

Ali veste, zakaj so se pojavili (vrednosti ne po skupinah)? Ker ko smo dodali polje " Povprečna vsebnost kalorij"v nastavitvah poročila smo v drugem koraku izbrali celotno poročilo in to novo polje je končalo v elementu " Podrobno zapisi".

Popravimo napako. Če želite to narediti, se vrnite na zavihek " nastavitve", izberite" Podrobni vnosi" najprej od zgoraj (2. korak) in nato " Podrobni vnosi"od spodaj (3. korak), pojdite na zaznamek" Izbrano polja" in v desnem stolpcu bomo videli element " Avto".

element " Avto" - to ni eno polje. To je več polj, ki sodijo sem samodejno glede na nastavitve višje ravni.

Če želite videti, kaj so ta polja, kliknite element " Avto" prav in izberite " Razširi":

element " Avto« razširjeno v naslednja polja:

In tukaj je naše polje" Povprečna vsebnost kalorij"ki je prišel sem s točke" Poročilo" ko smo ga odvlekli tja. Samo odstranimo potrdite polje poleg tega polja, da odstranite njegov izpis.

Dober dan, dragi bralci našega bloga! Danes vam želim povedati o pravi primer, Kako
uporabite funkciji ACS Array in JoinStrings. V članku o

je bilo malo omenjeno, kako delati z
na zaznamku
, je bilo tudi že pojasnjeno kot
z uporabo zavihka "Viri". Tem bomo danes ponovno posvetili pozornost
zaznamki v luči naše teme.

Videz primera poročila 1C z uporabo dveh funkcij ACS Array in ConnectRows Naslednji:

Izjava problema za uporabo funkcij ACS Array in JoinStrings

Naloga: V eno celico morate vnesti vse prodajne številke za en izdelek.

Nekaj ​​takega: nomenklatura | količina | 001, 002 itd. |

Uporabili bomo zahtevo za akumulacijski register "Realizacija TMZ".

IZBERI
Implementacija TMZ. Registrar. številka,
Implementacija TMZ. nomenklatura,
Implementacija TMZ. tajnik,
Implementacija TMZ. Količina prometa
OD
Register akumulacije. Implementacija TMZ. Revolucije
(, , Registrar, ) KAKO Uveljaviti TMZ

Register kopičenja »Realizacija TMZ« obstaja tako v konfiguraciji Računovodstvo kot v konfiguraciji Upravljanje trgovskega podjetja (UTP). Ugotovite, kako konfigurirati USP v elementu imenika »Nomenklatura«. Zato lahko po prenosu to poročilo zaženete v obeh konfiguracijah, da preverite njegovo funkcionalnost.

Izvedba naloge s funkcijama SKD Array in ConnectRows


Za ustvarjanje so bili uporabljeni isti koraki, vendar z nekaj dodatki
.

Opis funkcije JoinStrings

JoinStrings

Uporablja se za združevanje nizov v en niz.

Sintaksa:

ConnectRows(Vrednost, Ločilo elementov, Ločilo stolpcev)

Opcije:

  1. Pomen— izrazi, ki jih je treba združiti v eno vrstico.
    Če je matrika, bodo elementi matrike združeni v niz.
    Če je tabela vrednosti, bodo vsi stolpci in vrstice tabele združeni v vrstico;
  2. Ločilo elementov- niz, ki vsebuje besedilo, ki bo uporabljeno kot
    ločilo med elementi polja in vrsticami tabele vrednosti. Privzeto – znak za pomik vrstice;
  3. Ločila stolpcev-niz, ki vsebuje besedilo, ki bo uporabljeno kot ločilo
    med stolpci tabele vrednosti. Privzeto ";".