Kontakti      O sajtu

Funkcije jezika izražavanja sistema za kompoziciju podataka. Korišćenje resursa u SKD na primeru kreiranja eksternog tabelarnog izveštaja Izračunajte iznos horizontalnim grupisanjem SKD 1s

Postoji registar informacija „Stajanja duž rute“ koji pohranjuje podatke o udaljenosti od početka do krajnjeg stajališta.

Rice. 1. Registar informacija "Stajanja duž trase"

Potrebno je izraditi izvještaj o sistemu kontrole pristupa koji će pokazati udaljenost između bilo koja dva stajališta na trasi.

Rješenje

U bilo kojoj konfiguraciji koja podržava upravljane obrasce, kreirat ćemo neperiodični registar informacija „Stajanja duž rute“. Dodajmo mu dimenzije Route i Stop sa tipom niza dužine 4 i 50, respektivno, kao i Distance resurs sa tipom broja dužine 10,2. Sačuvajmo promjene u novoj konfiguraciji. Da kreirate eksterni izveštaj, u Meni-->Datoteka-->Novo, izaberite „Spoljni izveštaj“, postavite njegovo ime i otvorite dijagram rasporeda podataka:

Rice. 2. Kreiranje eksternog izvještaja o sistemu kontrole pristupa

U prozoru koji se otvori kliknite na dugme "Dodaj skup podataka" i odaberite redak "Dodaj skup podataka - upit":

Rice. 3. Dodavanje skupa podataka - upit

Kreirajmo novi zahtjev. Da bismo riješili problem, u upitu će nam trebati registar informacija “Stajanice duž rute” i, budući da izvještaj treba jasno pokazati udaljenost između bilo koje dvije stanice, kreirat ćemo upit za tabelarni prikaz duž X i Y osa , koristeći potpuno vanjsko spajanje tablice registra sa sobom:

Rice. 5. Specificiranje resursa za sisteme kontrole pristupa

Idemo sada na karticu "Postavke" i kliknite na dugme "Otvori dizajner postavki", odaberite tip izvještaja Tabela:

Rice. 7. Odabir polja izvještaja

Fig.8. Odabir polja za grupisanje

Rice. 9. Odabir polja za sortiranje

Sve što ostaje je da koristite dugme "Svojstva elemenata korisničkih postavki" da kreirate ove postavke, a takođe i na kartici "Ostala podešavanja" da naznačite kako će se resursi nalaziti i odbacite ukupne (ovde nisu potrebni):

Rice. 10 Korisnička i druga podešavanja.

Izveštaj je spreman. Sada idemo sa konfiguracije na Enterprise i ispunimo registar informacija (ako već nije popunjen):

Rice. 11. Popunjavanje registra informacija

I na kraju, iz Menu-->File pozivamo naš izvještaj sa mjesta gdje smo ga snimili u konfiguratoru, kliknemo na dugme “Generiraj” i vidimo rješenje problema:

Rice. 12. Izvještaj "Razdaljina između stanica"

Publikacija me je navela da napišem članak

U ovoj kratkoj napomeni želim da pokažem kako možete sumirati vrednosti na različitim nivoima grupisanja u izveštaju koristeći sistem sastavljanja podataka.
Kao što je prikazano na slici, samo na nivou grupisanja „Grupe artikala“ izračunava se resurs „Narudžba“, koji prikazuje koliko je potrebno naručiti za trenutnu grupu artikala na osnovu određenih uslova:


Ova vrijednost se može izračunati samo na ovom nivou grupisanja, jer nema vrijednosti iznad ili ispod za izračunavanje. Na primjer, na nivou detaljne evidencije nema podataka o maksimalnoj količini u grupi, jer ti podaci vrijede samo za grupu u cjelini, a ne i za njene pojedinačne komponente.

U skladu s tim, sada je potrebno izračunati ukupne iznose za gore navedene grupe (“Skladišta”, “Vrste skladišta”) i ukupni zbroj.
Da biste to učinili, koristite funkciju CalculateExpressionWithGroupArray:
EVALUACIJA EXPRESSIONWITHGROUPARRAY (EVALEXPRESSIONWITHGROUPARRAY)
sintaksa:
EvaluateExpressionWithGroupArray(,)
Opis:
Funkcija vraća niz, čiji svaki element sadrži rezultat evaluacije izraza za grupisanje prema navedenom polju.
Kompozitor rasporeda, kada generira raspored, pretvara parametre funkcije u termine polja rasporeda sastava podataka. Na primjer, polje Račun će biti konvertirano u DataSet.Account.
Graditelj izgleda, kada generira izraze za izlaz prilagođenog polja čiji izraz sadrži samo funkciju CalculateArrayWithGroupArray(), generira izlazni izraz tako da su izlazne informacije poređane. Na primjer, za prilagođeno polje s izrazom:

CalculateExpressionWithGroupArray("Iznos(iznosPromet)", "Counterparty")
Graditelj izgleda će generirati sljedeći izraz za izlaz:

ConnectRows(Niz(Red(CalculateExpressionWithGroupingValueTable("Pregled(Sum(DataSet.AmountTurnover)),Sum(DataSet.AmountTurnover)",,"DataSet.Account"),"2")))

Opcije:

Vrsta: String. Izraz koji se vrednuje. String, na primjer, iznos (iznos obrta).

Vrsta: String. Izrazi polja za grupisanje – izrazi za grupisanje polja, odvojeni zarezima. Na primjer, Izvođač, Strana.

Vrsta: String. Izraz koji opisuje odabir primijenjen na zapise detalja. Izraz ne podržava upotrebu agregatnih funkcija. Na primjer, DeletionFlag = False.

Vrsta: String. Izraz koji opisuje odabir primijenjen na grupne zapise. Na primjer, iznos (iznos obrta) > &Parametar1.
primjer:

Maximum(CalculateExpressionWithGroupArray("Iznos(IznosPromet)", "Counterparty"));

Detaljan opis sintakse funkcije može se naći na http://its.1c.ru/db/v837doc#bookmark:dev:TI000000582
Sada, za izračun, dupliramo polje "Narudžba" sa različitim vrijednostima "Izračunaj po...", koristeći sljedeće izraze, imajte na umu da se na svakom višem nivou koriste vrijednosti nivoa ispod grupiranja .

Kao rezultat, dobijamo sljedeću konstrukciju:

U sastavu podataka postavljanje zbroja izgleda malo drugačije nego u zahtjevima. Hajde da definišemo skup podataka „Upit“ u sistemu za sastavljanje podataka.

U samom zahtjevu ne konfigurišemo zbrojeve, već idemo na karticu „Resursi“ sastava podataka. Na nivou sheme sastava podataka, mi odrediti resurse. Ovo su polja koja se moraju računati na nivou grupisanja. Kliknite na dugme “>>” i sistem će sam prenijeti sva numerička polja i definirati ih kao resurse.

Također možete specificirati nenumerička polja u resursima. Na primjer, ako odaberete atribut “Link”, sistem će prebrojati broj dokumenata u našim grupama. Ove informacije također mogu biti korisne. dakle, u dijagramu izgleda samo definiramo resurse, a sama grupisanja su konfigurirana na razini varijante izvještaja. Korisnik također može kreirati grupe koje želi vidjeti u svojim postavkama opcija izvještaja.

Kreirajmo standardnu ​​postavku sastava podataka.
Kliknite na dugme "Otvori dizajner postavki".

Odaberimo tip izvještaja - lista. Kliknite na dugme „Dalje“.

Odaberimo sva polja i pomjerimo polje druge strane na gornju poziciju. Kliknite na dugme „Dalje“.

Odaberimo sva polja i pomjerimo polje druge strane na gornju poziciju. Kliknite na dugme “OK”.

Rezultat je sljedeća postavka:

Kao što vidite, pri postavljanju opcije izvještaja, resursi su istaknuti zelenom ikonom kako bi se mogli brzo razlikovati od drugih polja.

Ako otvorimo naš izvještaj u načinu rada 1C:Enterprise i generiramo ga, vidjet ćemo da se konačni podaci generiraju na nivou grupisanja. Rezultati po stavkama i po ugovornim stranama.

Postavljanje resursa u 1C shemu sastava podataka

A sada da skrenemo pažnju na postavke koje postoje za resurse. U polju “Izraz” možemo specificirati agregatnu funkciju koja se može koristiti za dobivanje vrijednosti resursa. U padajućoj listi možete vidjeti brojne standardne funkcije, ali ne sve. Na primjer, nema funkcija.

Ovdje u polju “Izraz” možemo napisati svoj vlastiti izraz.

U polju "Izraz" možemo pristupiti i funkcijama zajedničkih modula.

Osim toga, možete odrediti u polju “Izračunaj po...” po kojim grupama treba izračunati resurs. Ako polje „Izračunaj po...“ nije popunjeno, tada će se konačna vrijednost resursa izračunati na svim nivoima grupisanja koji su definirani u postavkama opcije izvještaja. U našem slučaju, potrebno je da popunimo polje „Izračunaj po...“ resursa „Količina“, jer možemo prodavati robu sa različitim mjernim jedinicama. Na primjer: ulje u litrima i kotači u komadima. Nije li tačno da bi bilo nelogično zbrajati količine ove robe? Stoga, moramo ostaviti zbir količine na nivou stavke, a na nivou druge ugovorne strane
Uklonimo zbrajanje.

Ako generiramo izvještaj, vidjet ćemo da se zbrojevi količine obračunavaju samo po artiklima, a ukupni količine za izvođače su prazni.

Mogućnosti pri opisivanju resursa u 1C shemi sastava podataka

hajde da razmotrimo niz neočiglednih karakteristika koje se odnose na opis resursa.

  • Svaki resurs može definisati nekoliko puta. Ali ovo ima smisla samo ako
    resurs će se obračunavati prema različitim nivoima grupe. Na primjer, ako je količina, u jednom slučaju
    se sumira za stavku, a za druge strane dobijamo minimalnu vrijednost.

Ako napravimo izvještaj, vidjet ćemo da je za drugu stranu “Deriya” minimalna kupovina pet jedinica iz asortimana “Samoljepljivi papir”.

  • U polju „Izraz“, osim pisanja formule, možete koristiti posebna funkcija sastava podataka pod nazivom "Izračunaj". Ova funkcija vam omogućava da izračunate neku konačnu vrijednost koristeći određenu formulu. Na primjer, za svaku drugu ugovornu stranu potrebno je znati postotak kupovine u prirodnim jedinicama u odnosu na ukupan obim. Ali kako dobiti ukupan obim kupovina po količini? Da biste to učinili, koristite funkciju "Izračunaj" i napišite sljedeći izraz u polje "Izraz":
Zbroj(Količina)/Izračunaj("Zbroj(Količina)", "UkupnoUkupno")*100

kao što se vidi, svi parametri funkcije "Izračunaj" su stringovi. Kako bi polje za količinu bilo lijepo prikazano u izvještaju, konfigurisaćemo ga na kartici „Skupovi podataka“. U liniji za količinu naći ćemo polje „Opcije uređivanja“. Otvorimo dijalog, pronađimo liniju "Format" i uredimo liniju formata u njoj, postavljajući vrijednost "Točnost" na dva na kartici "Broj".

Pokrenimo izvještaj i vidimo rezultat izračunavanja procenta kupovina za drugu stranu "AUPP KOS TOO" u odnosu na
ukupna zapremina:


Na kraju članka želim vam preporučiti jedan besplatni od Anatolija Sotnikova. Ovo je kurs iskusnog programera. Na posebnoj osnovi će vam pokazati kako da napravite izvještaje u sistemu kontrole pristupa. Samo treba pažljivo slušati i zapamtiti! Dobićete odgovore na sledeća pitanja:
  • Kako napraviti jednostavan izvještaj o listi?
  • Čemu služe kolone Polje, Putanja i Naslov na kartici „Polja“?
  • Koja su ograničenja za polja rasporeda?
  • Kako pravilno konfigurirati uloge?
  • Koje su uloge za polja rasporeda?
  • Gdje mogu pronaći karticu sastava podataka u upitu?
  • Kako konfigurirati parametre u sistemu kontrole pristupa?
  • Postaje još zanimljivije...
Možda ne biste trebali sami da pretražujete internet u potrazi za potrebnim informacijama? Štaviše, sve je spremno za upotrebu. Samo počnite! Svi detalji o tome šta se nalazi u besplatnim video lekcijama

Evo jedne od lekcija o označavanju sastava podataka u upitu:

Pogledajmo primjer:

Nekoliko jedinica robe se isporučuje klijentu uz različite popuste. Trebate prikazati vrijednosti popusta za svaki proizvod u izvještaju i izračunati prosječan popust. Napravimo izvještaj o sistemu kontrole pristupa.
Za sva polja za koja trebamo prikazati ukupne iznose, na kartici „Resursi“ ćemo postaviti izraz (metod) za njihovo izračunavanje. Za polje "Popust" postavite metodu obračuna kao "Prosjek".

Iznosimo izvještaj:

Kao što vidite, zbir za polje „Popust“ se izračunava kao aritmetički prosjek vrijednosti polja, tj. zbir svih vrijednosti podijeljen sa brojem vrijednosti. Ali zato Budući da su količine isporučene robe s različitim popustima različite, prosječni popust se može izračunati na drugi način: na primjer, kao omjer ukupne količine isporučene robe, uzimajući u obzir popust, prema ukupnoj količini isporučene robe. Ali ovdje se postavlja pitanje: ako možete napisati formulu za izračunavanje vrijednosti polja detaljnih zapisa u ACS-u, onda se zbrojevi automatski izračunavaju prema izrazu navedenom na kartici "Resursi", a tamo, kao vidjeli smo ranije, “Prosjek” se izračunava kao aritmetička sredina prikazanih vrijednosti, kao U ovom slučaju, da li da izračunam ukupan iznos u ovoj koloni koristeći svoju vlastitu formulu?
Zapravo nije teško. Da bismo to učinili, prilagodit ćemo naš izvještaj tako što ćemo mu dodati potrebna polja koja će učestvovati u obračunu, u našem slučaju to su “AmountWithDiscount” i “AmountAtPrice”.

Kako bismo „naučili“ ACS da prikaže naše rezultate, poduzimamo sljedeće korake:
1. na kartici “Postavke” dodijelite naziv grupi “”, na primjer, “ResultSKD”, da biste to učinili, pozovite kontekstni meni za grupisanje i kliknite “dodijeli ime”;

2. na kartici “Rasporedi” dodati “izgled zaglavlja grupisanja”, gdje biramo prethodno dodijeljeno ime “TotalSKD”;

3. nacrtamo liniju layout-a, gdje ostavimo sve rezultate, čiji nam proračun odgovara, takvi kakvi jesu, a za izračunavanje prosječnog procenta popusta napišemo formulu za obračun;

Ako je sve ispravno, onda kada se izvještaj prikaže, ispod njega će se prikazati dvije ukupne linije, prvo onaj koji se automatski generira, a zatim onaj koji ste kreirali.

Da biste ostavili izlaz samo vaše ukupne linije, morate na kartici "Postavke" u odjeljku "Ostala podešavanja" izlaza izgleda, onemogućiti izlaz za "Horizontalni ukupni izgled" i "Vertikalni ukupni izgled"

Podijelite sa prijateljima ili sačuvajte za sebe:

Učitavanje...