1s ckd izračunata polja funkcija. Jezične funkcije izraza sustava sastavljanja podataka. Prikaz podataka tabličnih odjeljaka u jednom retku

U svjetlu nadolazećeg izdanja 8.2.14, pokušat ću opisati neke od novih funkcija sustava sastavljanja podataka.

Otvorite shemu sastavljanja podataka, po mogućnosti u vanjskom izvješću, kako biste je lakše uređivali.

Dodamo skup podataka vrste upita i upisujemo jednostavan upit, ručno ili pomoću konstruktora upita:

1. Postavite zahtjev u ACS -u.

2. Konfiguriranje izračunatih polja u ACS -u

3. Izvedite postavku sastavljanja podataka na kartici postavki

4. Pokrenite 1C Enterprise 8.2.14. Otvaramo izvješće. Formiramo, dobivamo.

Opis samih novih funkcija:

1. Trenutni datum ()

Vraća datum sustava. Kad je izgled izgleda povezan, u svim izrazima koji su prisutni u izgledu funkcija CurrentDate () zamjenjuje se vrijednošću trenutnog datuma.

2. IZRAČUNAJTE IZRAZ ()

Sintaksa:

Procijeni izraz (,)

Opis:

Funkcija je dizajnirana za procjenu izraza u kontekstu nekog grupiranja.

Funkcija uzima u obzir odabir grupiranja, ali ne uzima u obzir hijerarhijske odabire.

Funkcija se ne može primijeniti na grupiranje u odabiru grupe ovog grupiranja. Na primjer, pri odabiru nomenklature grupiranja ne možete koristiti izraz CalculateExpression ("Zbroj (SumTurnover)", "TotalTotal")> 1000... No, takav se izraz može koristiti u hijerarhijskom odabiru.

Ako završni zapis prethodi početnom zapisu, smatra se da nema zapisa za izračun detaljnih podataka i izračun zbirnih funkcija.

Prilikom izračunavanja izraza intervala za ukupni zbroj (parametar grupiranja postavljen je na opći zbroj), pretpostavlja se da nema zapisa za izračunavanje detaljnih podataka i izračun zbirnih funkcija.

Povezivač izgleda pri generiranju izraza funkcije EvaluateExpression, u slučaju da izraz za naručivanje sadrži polja koja se ne mogu koristiti u grupiranju, zamjenjuje funkciju EvaluateExpression na NULL.

Parametri

Vrsta: Crta... Izraz za vrednovanje.

Vrsta: Crta... Sadrži naziv grupiranja u kontekstu kojega se izraz treba ocijeniti. Ako se prazni niz koristi kao naziv grupiranja, izračun će se izvesti u kontekstu trenutnog grupiranja. Ako se linija GeneralTotal koristi kao naziv grupiranja, izračun će se izvršiti u kontekstu ukupnog zbroja. Inače će se izračun izvršiti u kontekstu nadređene grupe s ovim imenom.

Na primjer:

Iznos (Sales.SumTurnover) / Izračunaj ("Iznos (Sales.SumTurnover)", "TotalTotal")

U ovaj primjer rezultat je omjer zbroja po polju Prodaja.VeličinaTrgovina grupiranje zapisa u zbroj istog polja u cijelom izgledu;

Vrsta: Crta... Parametar može poprimiti sljedeće vrijednosti:

· Ukupni rezultat- izraz će se vrednovati za sve zapise grupiranja.

· Hijerarhija- izraz će se vrednovati za nadređeni hijerarhijski zapis, ako ga ima, i za cijelo grupiranje, ako nema nadređenog hijerarhijskog zapisa.

· Grupiranje- izraz će se vrednovati za trenutni zapis grupe o grupiranju.

· GroupingNonResource- prilikom izračunavanja funkcije za grupni zapis prema resursima, izraz će se izračunati za prvi grupni zapis izvornog grupiranja.

Prilikom izračunavanja funkcije EvaluateExpression () sa značenjem GroupingNonResource za grupne zapise koji nisu grupirani prema resursima, funkcija se izračunava na isti način na koji bi se izračunala da je vrijednost parametra jednaka vrijednosti Grupiranje.

Sastavljač predloška sastava podataka, prilikom generiranja predloška sastava podataka, pri prikazivanju polja resursa po kojem se grupiranje izvodi u predlošku, postavlja izraz izračunat pomoću funkcije EvaluateExpression () , specificirajući parametar GroupingNonResource... Za ostale resurse regularni izrazi resursa grupirani su prema resursima.

Vrsta: Crta... Pokazuje s kojim zapisom treba pokrenuti fragment, u kojem izračunati agregatne funkcije izraza i iz kojeg zapisa dobiti vrijednosti polja izvan zbirnih funkcija. Vrijednost može biti jedna od sljedećih:

· Prvi

· Posljednji

· Prethodni

· Dalje (Dalje)

· Trenutno

· Ograničavanje vrijednosti(BoundaryValue) Ograničavanje vrijednosti

Vrsta: Crta... Pokazuje u koji zapis treba nastaviti fragment u kojem se procjenjuju agregatne funkcije izraza. Vrijednost može biti jedna od sljedećih:

· Prvi... Mora se dohvatiti prvi zapis o grupiranju. Nakon riječi u zagradama možete navesti izraz čiji će se rezultat koristiti kao pomak od početka grupiranja. Dobivena vrijednost mora biti cijeli broj veći od nule. Na primjer, prvi (3) - dobivanje trećeg zapisa od početka grupiranja.

Ako prvi zapis ide izvan granica grupiranja, smatra se da nema zapisa. Na primjer, ako postoje 3 zapisa, a želite dobiti prvi (4), smatra se da nema zapisa.

· Posljednji... Morate dobiti najnoviji zapis o grupiranju. Izraz se može navesti iza riječi u zagradama, čiji će se rezultat koristiti kao pomak od kraja grupiranja. Dobivena vrijednost mora biti cijeli broj veći od nule. Na primjer, Last (3) - dobivanje trećeg zapisa s kraja grupiranja.

Ako je zadnji zapis izvan granica grupiranja, smatra se da nema zapisa. Na primjer, ako postoje 3 zapisa, a želite dobiti Zadnji (4), smatra se da nema zapisa.

· Prethodni... Morate dobiti prethodni zapis grupiranja. Izraz se može navesti iza riječi u zagradama, čiji će se rezultat koristiti kao pomak natrag od trenutnog zapisa grupiranja. Na primjer, Previous (2) - preuzmite prethodni iz prethodnog zapisa.

Ako prethodni zapis nadilazi grupiranje (na primjer, za drugi zapis grupiranja morate dobiti Prethodni (3), tada se dobiva prvi zapis grupiranja.

Prilikom dohvaćanja prethodnog zapisa za ukupni skup, smatra se da je prvi zapis dobiven.

· Dalje (Dalje)... Morate dobiti sljedeći zapis grupiranja. Izraz se može navesti iza riječi u zagradama, čiji će se rezultat koristiti kao pomak prema naprijed od trenutnog zapisa grupiranja. Na primjer, Sljedeće (2) - uzmite sljedeće iz sljedećeg zapisa.

Ako sljedeći zapis izađe iz grupiranja, smatra se da nema zapisa. Na primjer, ako postoje 3 zapisa i Next () je primljen za treći zapis, tada se smatra da nema zapisa.

Kad se primi sljedeći zapis za ukupni skup, smatra se da nema zapisa.

· Trenutno... Morate dobiti trenutni rekord.

Prilikom dohvaćanja ukupnog zbroja grupiranja dobiva se prvi zapis.

· Ograničavanje vrijednosti(BoundaryValue)... Potreba za dobivanjem zapisa navedene vrijednosti. Nakon riječi Ograničavanje vrijednosti u zagradama morate navesti izraz čija vrijednost želi pokrenuti fragment, prvo polje za poredak.

Kao zapis, dobit će se prvi zapis čija je vrijednost polja za naručivanje veća ili jednaka navedenoj vrijednosti. Na primjer, ako se polje Razdoblje koristi kao polje za naručivanje, a ima vrijednosti 01/01/2010, 01/02/2010, 01/03/2010, a želite dobiti ConstrainingValue (DateTime (2010, 1, 15)), tada ćete dobiti zapisnik s datumom 01.02.2010.

Vrsta: Crta... Popis izraza, odvojenih zarezima, koji opisuju pravila naručivanja. Ako nije navedeno, redoslijed se izvodi na isti način kao i za grupiranje za koje se izračun vrednuje. Nakon svakog izraza možete navesti ključna riječ Dob(naručiti uzlaznim redoslijedom), Silazni(za opadajući redoslijed) i Automatsko naručivanje(kako biste poredali referencirana polja prema poljima po kojima želite poredati referencirani objekt). Riječ Automatsko naručivanje može se koristiti kao s riječju Dob, pa s riječju Silazni.

Vrsta: Crta... Slično parametru Sortiranje... Koristi se za slaganje hijerarhijskih zapisa. Ako nije navedeno, graditelj izgleda generira narudžbu prema redoslijedu navedenom u parametru Sortiranje.

Vrsta: Crta... Određuje pravilo za određivanje prethodnog ili sljedećeg zapisa u slučaju da postoji više zapisa s istom vrijednošću naručivanja:

· Odvojeno označava da se niz definiranih zapisa koristi za definiranje prethodnog i sljedećeg zapisa. Zadana vrijednost.

· Zajedno označava da su prethodni i sljedeći zapisi određeni na temelju vrijednosti izraza za naručivanje.

Na primjer, ako je rezultirajući niz poredan po datumu:

Datum Puno ime Značenje
1 01. siječnja 2001

Ivanov M.

10
2 02. siječnja 2001 Petrov S. 20
3 03. siječnja 2001 Sidorov R. 30
4 04. siječnja 2001 Petrov S. 40

Odvojeno, zatim:

Prethodni unos u unos 3 bit će unos 2.

Struja, struja(odnosno parametri Početak i Kraj), tada će se za zapis 2 ovaj fragment sastojati od jednog zapisa 2. Izraz će biti jednak 20.

Ako je vrijednost parametra Zajedno, zatim:

Prethodni unos u unos 3 bit će unos 1.

§ ako je izračunati fragment definiran kao Struja, struja(odnosno parametri Početak i Kraj), tada će se za zapis 2 ovaj fragment sastojati od zapisa 2 i 3. Izraz Izračunaj izraz ("Zbroj (vrijednost)", Trenutni, Trenutni) bit će jednako 50.

Kad je navedeno, vrijednost parametra je Zajedno, u parametrima Početak i Kraj ne možete odrediti pomak za pozicije Prvi, Zadnji, Prethodni, Sljedeći.

Izračunaj izraz ("Zbroj (SumTurnover)", "Prvo", "Trenutno")

Ako želite dobiti vrijednost grupiranja u prethodnom retku, možete koristiti slijedeći izraz:

Procijenite izraz (tečaj, prethodni)

Popis novi funkcije:

EvaluateExpressionGroupedArray(,) -

Funkcija vraća niz, čiji svaki element sadrži rezultat vrednovanja izraza koji se grupira prema navedenom polju.

EvaluateExpressionGroupedValuesTable(,) -

Funkcija vraća tablicu vrijednosti, od kojih svaki redak sadrži rezultat vrednovanja izraza za grupiranje prema navedenom polju

ValueFilled() - Vraća True ako se vrijednost razlikuje od vrijednosti ovog tipa prema zadanim postavkama, nije NULL, nije nula referenca, nije Nedefinirano. Za logičke vrijednosti provjerava se za nulta vrijednost... Za nizove se provjerava da nema znakova koji nisu razmaci

Format(,) - Preuzmite formatirani niz prenesene vrijednosti. Format niz je postavljen prema format niz sustavi "1C: Poduzeće".

Podniz(,,) - Ova je funkcija dizajnirana za izdvajanje podniz iz niza.

Duljina linije() - Funkcija je dizajnirana za određivanje duljine niza. Parametar je izraz tipa niza

Crta() - Ako se niz prosljeđuje kao parametar, funkcija vraća niz koji sadrži niz prikaza svih elemenata niza odvojenih znakovima ";". Ako se tablica vrijednosti proslijedi kao parametar, funkcija vraća niz koji sadrži nizove prikaza svih redaka tablice vrijednosti, s prikazima ćelija svakog retka odvojenim znakovima ";", a nizove - feedom redaka. Ako bilo koji element ima prazan prikaz niza, tada se umjesto prikaza prikazuje niz.

U ovoj kratkoj bilješci želim pokazati kako možete zbrojiti vrijednosti prema različite razine grupiranja, u izvješću koje koristi sustav sastavljanja podataka.
Kao što je prikazano na slici, samo na razini grupiranja "Grupe stavki" izračunava se izvor "Narudžba", koji prikazuje koliko trebate naručiti za trenutnu grupu stavki na temelju određenih uvjeta:


Ova se vrijednost može izračunati samo za ovoj razini grupiranje jer iznad ili ispod nema vrijednosti za izračunavanje. Na primjer, na razini detaljnih zapisa nema podataka o najvećem broju u grupi, jer ti podaci vrijede samo za skupinu u cjelini, a ne i za njezine pojedinačne komponente.

U skladu s tim, sada je potrebno izračunati ukupne iznose za gore navedene skupine ("Skladišta", "Vrste skladišta") i ukupni zbroj.
Da biste to učinili, upotrijebite funkciju EvaluateGroupExpressionArray:
IZRAČUNAJTE IZRAZ PO ARROY GRUPI (EVALEXPRESSIONWITHGROUPARRAY)
Sintaksa:
EvaluateGroupExpressionArray (,)
Opis:
Funkcija vraća niz, čiji svaki element sadrži rezultat vrednovanja izraza koji se grupira prema navedenom polju.
Sastavljač izgleda, prilikom generiranja izgleda, pretvara parametre funkcije u uvjete polja izgleda sastava podataka. Na primjer, polje Račun će se pretvoriti u Dataset.Contractor.
Prilikom generiranja izraza za prikaz prilagođenog polja, čiji izraz sadrži samo funkciju EvaluateArrayWithGroupArray (), skladatelj izgleda generira prikazani izraz tako da su prikazane informacije poredane. Na primjer, za prilagođeno polje s izrazom:

CalculateExpressionWithGroupArray ("Zbroj (SumTurnover)", "Protustranka")
Sastavljač izgleda generirat će sljedeći izraz za izlaz:

ConnectRows (Array (Arrange (EvaluateExpressionWithGroupValuesTable ("View (Sum (Dataset.SumTurnover)), Sum (Dataset.SumTurnover)", "Dataset.Contractor"), "2")))

Parametri:

Vrsta: Gudački. Izraz za vrednovanje. Niz, na primjer, Amount (AmountTurnover).

Vrsta: Gudački. Grupiranje izraza polja grupiranje je izraza polja, odvojenih zarezima. Na primjer, protustranka, stranka.

Vrsta: Gudački. Izraz koji opisuje odabir primijenjen na zapise detalja. Izraz ne podržava upotrebu agregatnih funkcija. Na primjer, Delete Mark = False.

Vrsta: Gudački. Izraz koji opisuje filtriranje primijenjeno na grupne zapise. Na primjer, Zbroj (SumTurnover)> & Parametar1.
Primjer:

Maksimalno (CalculateExpressionWithGroupArray ("Zbroj (SumTurnover)", "Protustranka"));

Detaljan opis sintakse funkcije možete pronaći na http://its.1c.ru/db/v837doc#bookmark:dev:TI000000582
Sada ćemo za izračun duplicirati polje "Naruči", s različitim vrijednostima "Izračunaj do ...", koristeći sljedeće izraze, imajte na umu da su na svakoj višoj razini vrijednosti razina ispod grupiranja rabljeno.

Kao rezultat toga dobivamo sljedeću konstrukciju:

Prijavite se kao student

Prijavite se kao učenik za pristup školskom materijalu

Sustav sastavljanja podataka 1C 8.3 za početnike: razmotrite rezultate (resursi)

Svrha ovog vodiča bit će:

  • Napišite izvješće koje prikazuje popis namirnica (imenik hrane), njihov sadržaj kalorija i okus.
  • Grupirajte proizvode prema boji.
  • Saznajte više o sažimanju (resursi) i izračunatim poljima.

Izrada novog izvješća

Kao i u prethodnim lekcijama, otvaramo bazu " Deli"u konfiguratoru i izradite novo izvješće putem izbornika" Datoteka"->"Novi...":

Vrsta dokumenta - vanjsko izvješće:

U obliku postavljanja izvješća upišite naziv " Lekcija 3"i pritisnite gumb" Otvorena shema sastavljanja podataka":

Ostavite zadani naziv sheme i kliknite gumb " Spreman":

Dodavanje zahtjeva putem konstruktora

Na " Skup podataka"gurnuti zelena znak plus i odaberite stavku " Dodaj skup podataka - upit":

Umjesto da ručno upisujemo tekst zahtjeva, ponovno pokrećemo konstruktor upita:

Na " Tablice"povuci stol" Hrana"od prvog stupca do drugog:

Odabir iz tablice " Hrana"polja koja ćemo zatražiti. Da biste to učinili, povucite polja" Ime", "Ukus", "Boja"i" Sadržaj kalorija"od drugog stupca do trećeg:

Ispalo je ovako:

Pritisni gumb " u redu"- tekst zahtjeva automatski je generiran:

Formiramo postavke za prezentaciju izvješća

Idi na oznaku " Postavke"i kliknite na čarobni štapić, zvati konstruktor postavki:

Odabir vrste izvješća " Popis... "i pritisnite gumb" Unaprijediti":

Povucite iz lijevog stupca u desna polja koja će se prikazati na popisu i kliknite " Unaprijediti":

Povucite s lijevog stupca na desnu marginu " Boja"- biti će grupiranje redaka u izvješću. Kliknite " u redu":

I evo rezultata rada konstruktora. Hijerarhija našeg izvješća:

  • izvješće u cjelini
  • grupiranje "Boja"
  • detaljni zapisi - retci s imenima hrane

Spremite izvješće (gumb disketa) i bez zatvaranja konfiguratora, odmah ćemo ga otvoriti u korisničkom načinu rada. Ispalo je ovako:

Promjena redoslijeda stupaca

No idemo promijeniti redoslijed stupce (strelice gore i dolje) tako da izgleda kao na donjoj slici:

Spremimo izvješće i ponovno ga otvorimo u korisničkom načinu rada:

Odlično, mnogo bolje.

Zbrajanje (količina) prema sadržaju kalorija

Bilo bi lijepo sažeti kalorijski sadržaj namirnica po skupinama. Da biste vidjeli zbroj kalorija svih namirnica, recimo, bijele ili žute. Ili saznajte ukupni sadržaj kalorija svih proizvoda u bazi podataka.

Za to postoji mehanizam za izračunavanje resursa.

Idite na " Resursi"i povucite polje" Sadržaj kalorija"(sažet ćemo to) s lijeve kolone na desnu.

U tom slučaju u polju izraza odaberite s padajućeg popisa " Količina (kalorije)", budući da će ukupni zbroj biti zbroj svih elemenata uključenih u ukupni iznos:

Spremamo i generiramo izvješće:

Sada imamo zbrojeve za svaku od grupa i za izvješće u cjelini.

Zbrajanje (prosjek) prema sadržaju kalorija

Učinimo tako da se prikaže još jedan stupac prosjek kalorijski sadržaj proizvoda po skupinama i općenito prema izvješću.

Nemoguće je dotaknuti već postojeći stupac "Kalorije" - ukupni se zbroj već prikazuje u njemu uzmimo drugo polje, koji će biti točna kopija polja "Sadržaj kalorija".

Za stvaranje takvog "virtualnog" polja poslužit ćemo se mehanizmom izračunata polja.

Idi na oznaku " Izračunata polja"i kliknite zelena znak plus:

U stupcu " Put podataka"upišite naziv novog polja ( zajedno, bez razmaka). Neka se zove " Prosječan sadržaj kalorija"i u stupcu" Izraz"upisujemo naziv postojećeg polja, na temelju kojeg će se novo polje izračunati. Tamo upisujemo" Sadržaj kalorija". Stupac " Naslov"će se automatski popuniti.

Dodali smo novo polje (" Prosječan sadržaj kalorija"), ali neće se sam pojaviti u izvješću - morate nazvati konstruktor postavki("čarobni štapić") ili dodajte ovo polje ručno.

Učinimo drugi put. Da biste to učinili, idite na " Postavke", izaberi" izvješće"(uostalom, želimo izvješću dodati polje kao cjelinu), odaberite donju karticu" Odabrana polja"i povucite polje" Prosječan sadržaj kalorija"s lijevog stupca na desno:

Ispalo je ovako:

Spremamo i generiramo izvješće:

Polje se pojavilo i vidimo da su njegove vrijednosti vrijednosti polja "Sadržaj kalorija". Izvrsno!

Da bismo to učinili, ponovno ćemo upotrijebiti već poznati mehanizam resursi(sažetak). Idi na oznaku " Resursi"i povucite polje" Prosječan sadržaj kalorija"s lijevog stupca na desno:

Štoviše, u stupcu " Izraz"izaberi" Prosjek (prosječne kalorije)":

Spremamo i generiramo izvješće:

Vidimo da je za grupe, odnosno za svaku boju, i za izvješće u cjelini, prosječna vrijednost izračunata sasvim ispravno. Ali postoje dodatni unosi za pojedinačne proizvode (ne za grupe) koje želimo ukloniti iz izvješća.

Znate li zašto su se pojavile (vrijednosti nisu prema grupama)? Jer kad smo dodali polje " Prosječan sadržaj kalorija"u postavkama izvješća, u drugom koraku koji smo odabrali cijelo izvješće u cjelini i ovo novo polje je ušlo u element " Detaljan zapise".

Ispravimo grešku. Da bismo to učinili, vratimo se na " Postavke", Izaberi" Detaljni zapisi"prvo odozgo (korak 2), a zatim" Detaljni zapisi"ispod (korak 3) idite na karticu" Odabran polja"i vidjet ćemo element u desnom stupcu" Auto".

Element " Auto"nije jedno polje. To je nekoliko polja koja se automatski pojavljuju na temelju viših postavki.

Da biste vidjeli koja su to polja - kliknite na " Auto" pravo gumb i odaberite stavku " Proširiti":

Element " Auto"proširila na sljedeća polja:

I evo našeg polja " Prosječan sadržaj kalorija"koji je ovdje došao iz stavke" izvješće"kad smo ga odvukli tamo. Samo polijetanje potvrdni okvir pored ovog polja da biste uklonili njegov izlaz.

Kompetentna uporaba sheme sastavljanja podataka (ACS) omogućuje vam:

  • značajno smanjiti vrijeme potrebno za izradu izvješća;
  • riješiti se potrebe stvaranja upravljani oblik rukovatelj;
  • dobiti lijep rezultat na izlazu sa sposobnošću dodatna prilagodba korisnik.

No, svi programeri ne iskorištavaju sve mogućnosti sklopa jer nisu sve njegove postavke očite i intuitivne. Konkretno, mnogi ljudi znaju da u 1C postoje izračunata polja u ACS -u, međutim, oni ne predstavljaju u potpunosti područje njihove uporabe i metode rada s njima.

Što je izračunato polje

U većini slučajeva izvor podataka u shemi izgleda je upit. U načelu, unutar samog upita već možete koristiti različite formule, konstrukcije i izraze. Postavlja se prirodno pitanje, zašto nam je potrebna dvostruka funkcionalnost?

Činjenica je da ACS nije samo prikaz rezultata izvršavanja upita, a to je savršeno vidljivo iz obrasca za izradu sheme (slika 1).

Izračunata polja omogućuju vam izvođenje određenih radnji s generiranim skupom podataka:

  • Ispišite u određenu ćeliju niz podataka primljenih upitom povezivanjem nekoliko redaka u jedan;
  • Pristupite izvoznim funkcijama zajednički modul;
  • Izvršite različite izraze dostupne za jezik izgleda i koristite posebne funkcije EvaluateExpression.

Slijedimo ovaj popis i krenimo.

Niz vrijednosti u jednoj ćeliji

Simulirajmo situaciju kada je potrebno u zasebnu ćeliju unijeti sve brojeve primitaka za drugu ugovornu stranu:


stoga smo u našoj shemi stvorili dodatno izračunato polje;


Kao što možete vidjeti iz gornjeg primjera, nema poteškoća u dodavanju i obradi izračunatih polja. Koristili smo dvije funkcije: Array () i JoinStrings ().

Nekoliko riječi o potonjem. Osim prvog parametra koji označava identifikator niza, vrijednosti ili vrijednosti, u njemu se mogu postaviti još dva:

  1. Razdjelnik elemenata - označava koji će znak odvojiti jedan element niza ili jedan redak tablice vrijednosti od drugog (u našem slučaju izostavili smo ovaj parametar, a prijelom retka dodijeljen je prema zadanim postavkama);
  2. Odvajač stupaca znak je koji se koristi za odvajanje stupaca tablice vrijednosti (prema zadanim postavkama koristi se točka -zarez).

Pristup izvoznim funkcijama zajedničkog modula

Funkcije zajedničkog modula mogu djelovati kao izvor podataka za popunjavanje izračunatog polja.

Neki važne točke:

  • Funkcija se mora izvoziti;
  • Ako se funkcija nalazi u zajedničkom modulu s postavljenom zastavicom "Global", poziva se izravno po imenu, inače bi se funkcija trebala pozvati prema shemi "Zajednički naziv modula". "Naziv pozvane funkcije".

Kao primjer korištenja, uzeti ćemo isti zahtjev za primanje dokumenata i prikazati ga u zasebnom stupcu. Nećemo opisivati ​​sam zahtjev, ići ćemo izravno na izračunata polja:


Dakle, vidimo da se gotovo svaki rukovatelj podacima može inicijalizirati iz ACS -a, što uvelike proširuje mogućnosti korištenja sheme.

Povežite jezične izraze

Često se u radu programera javlja situacija kada je potrebno prikazati rezultat podjele u polju ACS:

  1. Izračunajte prosječnu cijenu stavke;
  2. Sve vrste kamata;
  3. Izračuni prosječne zarade itd.

Da biste izbjegli probleme, u tim je slučajevima poželjno unijeti podjelu s 0 provjerom u izračunato polje.

To se može učiniti pomoću konstrukcije "Choice When .... Then ... Inače ... End".

Na kraju nekoliko riječi o dovoljno nova funkcija EvaluateExpression (). Pomoću nje, posebno, možete izračunati odstupanja u vrijednosti između trenutnog i prethodnog retka, kumulativni saldo itd.

Na primjer, možete dobiti iznos dokumenta iz prethodnog retka našeg upita navođenjem vrijednosti Izračunaj izraz ("Iznos dokumenta", "Prethodni zbroj") u polju "Izraz".

EvaluateExpression je prilično složena funkcija ACS -a za razumijevanje i primjeri primjene u referentne informacije prilično oskudan. U ovom se članku raspravlja o primjerima koji će zasigurno biti korisni svakom razvojnom programeru:

  1. kumulativni ukupni iznos u grupiranju;
  2. tekući zbroj u unakrsnoj tablici;
  3. dobivanje prethodne vrijednosti;
  4. izlaz PM u jednom retku.

1. Dobivanje pokazatelja na kumulativnoj osnovi

Uzmimo broj roba na kumulativnoj osnovi na razini grupiranja. Da bismo to učinili, stvaramo izračunato polje (vidi sliku 1).
Na kartici "Resursi" postavite funkciju za izračunato polje:
Izračunaj izraz ("Zbroj (Iznos prometa)", "Prvo", "Trenutno")
koji će zbrojiti broj proizvoda od prvog zapisa do trenutnog (vidi sliku 2).

Ako želite dobiti ukupni broj robe na razini detaljnih zapisa, tada je funkcija CalculateExpression postavljena za izračunato polje na kartici "Izračunata polja" (vidi sliku 3).
Ovisno o razini dobivanja kumulativnog zbroja, stvaramo grupiranje (vidi sliku 4): na razini resursa - grupiranje po robama, na razini DZ - grupiranje detaljnih zapisa.
Slika 4. Grupiranje izvješća s ukupnim zbrojem

2. Dobivanje vrijednosti pokazatelja iz prethodnog retka

Uzmimo tečaj za datum i prethodni datum. Da biste to učinili, stvorite izračunato polje i upišite sljedeći izraz u polje izraza (vidi sliku 5):
Izračunaj izraz (tečaj, prethodni, prethodni)
koji će za uzeti prethodnu vrijednost tečaja trenutna linija, zadnji parametar funkcije ograničava dohvat podataka.
Budući da radimo na razini detaljnih zapisa, idite izravno na karticu "Postavke" i stvorite grupiranje - detaljne zapise.

3. Dobivanje pokazatelja o kumulativnom iznosu u unakrsnoj kartici

Uzmimo broj roba na kumulativnoj osnovi u kontekstu razdoblja. Da bismo to učinili, stvaramo izračunato polje (vidi sliku 1). Na kartici "Resursi" za izračunato polje navest ćemo sljedeći izraz (vidi sliku 6):
Izračunaj izraz ("Zbroj (Broj prometa)", "Razdoblje", "Prvo", "Trenutno")
koji će na razini grupiranja izračunati količinu robe u intervalu od prvog retka do tekućeg u kontekstu razdoblja za svaku stavku.
Na kartici "Postavke" izradite tablicu grupiranu prema stavci u retku i grupiranu po točki u stupcu (vidi sliku 7).

4. Ispis podataka tabličnog presjeka u jedan redak

U članku se raspravlja o metodama prikaza podataka tabličnih presjeka u jednom retku, uključujući metodu pomoću funkcije EvaluateExpression