Uporaba virov v sistemu kontrole dostopa na primeru izdelave zunanjega tabelarnega poročila. Funkcije izraznega jezika sistema za sestavljanje podatkov Viri sistema za sestavljanje podatkov 1c

1. Izračunaj (Eval)- je namenjen ovrednotenju izraza v kontekstu neke skupine. Funkcija se uporablja za združljivost s prejšnjimi različicami platforme. Namesto tega je priporočljivo uporabiti funkcijo CalculateExpression.

Sintaksa:
Izračunaj (izraz, združevanje, vrsta izračuna)

Opcije :

  • Izraz(črta). Vsebuje izračunan izraz;
  • Združevanje v skupine(črta). Vsebuje ime združevanja, v kontekstu katerega je treba ovrednotiti izraz. Če je kot ime skupine uporabljen prazen niz, bo izračun izveden v kontekstu trenutne skupine. Če je kot ime skupine uporabljen niz GrandTotal, 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").
    V tem primeru bo rezultat razmerje med zneskom za polje »Sales.AmountTurnover« zapisa združevanja in zneskom istega polja v celotni postavitvi.
  • Vrsta izračuna(črta). Če je ta parameter nastavljen na "TotalTotal", bo izraz izračunan za vse zapise združevanja. Če je vrednost parametra "Združevanje", bodo vrednosti izračunane za trenutni zapis skupine za združevanje.
2. Ocenite izraz (EvalExpression) - je namenjen ovrednotenju izraza v kontekstu neke skupine. Funkcija upošteva izbor skupin, ne upošteva pa hierarhičnih izborov. Funkcije ni mogoče uporabiti za skupino v izboru skupine te skupine.

Sintaksa:
CalculateExpression(Expression, Grouping, CalculationType, Start, End, Sort, HierarchicalSort, ProcessingIdenticalOrderValues)

Opcije :

  • Izraz(črta). Vsebuje izračunan izraz;
  • Združevanje v skupine(črta). Vsebuje ime združevanja, v kontekstu katerega je treba ovrednotiti izraz. Če je kot ime skupine uporabljen prazen niz, bo izračun izveden v kontekstu trenutne skupine. Če je kot ime skupine uporabljen niz GrandTotal, bo izračun izveden v kontekstu skupnega seštevka. V nasprotnem primeru bo izračun izveden v kontekstu nadrejene skupine s tem imenom;
  • Vrsta izračuna(črta). Če je ta parameter nastavljen na "TotalTotal", bo izraz izračunan za vse zapise združevanja. Če je vrednost parametra "Združevanje", bodo vrednosti izračunane za trenutni zapis skupine za združevanje. Če je parameter nastavljen na »Združevanje brez virov«, bo pri izračunu funkcije za skupinski zapis po viru izraz ovrednoten za prvi skupinski zapis prvotne skupine. Pri vrednotenju funkcije CalculateExpression z vrednostjo »GroupingNonResource« za skupinske zapise, ki niso skupine glede na vir, je funkcija ovrednotena na enak način, kot bi bila ovrednotena z vrednostjo parametra »Grouping«. Graditelj postavitve sestave podatkov pri generiranju postavitve sestave podatkov pri izpisu polja - vira, po katerem se izvede združevanje v postavitev, v postavitev izpiše izraz, izračunan s pomočjo funkcije CalculateExpression z navedenim parametrom "GroupingNon-Resource". Za druge vire, razvrščene po virih, so vrnjeni običajni izrazi virov. Če je parameter nastavljen na "Hierarchy", potem je treba izraz ovrednotiti za nadrejeni hierarhični zapis, če obstaja, in za celotno skupino, če nadrejenega hierarhičnega zapisa ni. Graditelj postavitve pri generiranju izraza za % v polju Hierarchy Group ustvari izraz, ki vsebuje razmerje med izrazom vira in funkcijo CalculateExpression za izraz vira, ki se izračunava za trenutno združevanje z vrsto izračuna Hierarchy.
  • Začetek. Označuje, iz katerega zapisa se mora začeti fragment, v katerem je treba izračunati funkcije agregatnega izraza in iz katerega zapisa pridobiti vrednosti polja zunaj agregatnih funkcij. Niz, ki vsebuje eno od:
    • "prvi" 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) – sprejem 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" 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) – sprejem tretjega zapisa s konca skupine. Če je zadnji zapis izven združevanja, se šteje, da zapisov ni. Na primer, če obstajajo 3 zapisi in želite dobiti Last(4), se šteje, da ni nobenega zapisa.
    • "Prejšnji" 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 je prejšnji zapis zunaj združevanja (na primer, drugi zapis združevanja zahteva pridobitev Prejšnji(3)), se pridobi prvi zapis združevanja. Ob prejemu predhodnega zapisa za skupinski seštevek dobimo prvi zapis.
    • "Naslednji" Dobiti 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 so 3 vnosi in tretji vnos prejme Naprej, se šteje, da ni 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.
    • "Mejna vrednost". Potreba po pridobitvi zapisa z določeno vrednostjo. Za besedo LimitingValue v oklepaju 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 Period uporabljeno kot polje za naročanje in ima vrednosti 01/01/2010, 02/01/2010, 03/01/2010 in želite pridobiti LimitingValue(DateTime(2010) , 1, 15)), potem bo pridobljen zapis z datumom 02/01. 2010.
  • Konec. Označuje, na kateri zapis naj se nadaljuje fragment, v katerem naj se izračuna agregatni izraz. Niz, ki vsebuje eno od:
    • "prvi"
    • "Zadnji"
    • "Prejšnji"
    • "Naslednji"
    • "Trenutno".
    • "Mejna vrednost".
  • Razvrščanje. Niz, ki navaja izraze, ločene z vejicami, v smeri katerih naj bo zaporedje urejeno. Č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čno besedo Ascending, za razvrščanje v naraščajočem vrstnem redu, Descending, za razvrščanje v padajočem vrstnem redu, Auto-Ordering, za razvrščanje referenčnih polj po poljih, po katerih želite razvrstiti predmet, na katerega se sklicujete. Besedo Samodejni vrstni red lahko uporabite tako z besedo Naraščajoče kot z besedo Padajoče.
  • HierarchicalSorting. Podobno kot razvrščanje. Uporablja se za organiziranje hierarhičnih zapisov. Če ni podano, sestavljalec postavitve ustvari vrstni red v skladu z vrstnim redom, podanim v parametru Razvrsti.
  • Obdelava enakih vrednosti naročila. Niz, ki vsebuje eno od:
    • "Skupaj" pomeni, da se za določitev prejšnjega in naslednjega zapisa uporablja zaporedje urejenih zapisov;
    • "Ločeno" pomeni, da sta prejšnji in naslednji zapis določena na podlagi vrednosti vrstnih izrazov;
    Na primer, če je nastalo zaporedje urejeno po datumu:
    1. 1. januar 2001 Ivanov M. 10
    2. 2. januar 2001 Petrov S. 20
    3. 2. januar 2001 Sidorov R. 30
    4. 3. januar 2001 Petrov S. 40
    Pri uporabi obdelave enakih vrednosti naročila "Ločeno" bo prejšnji za zapis 3 zapis 2, pri uporabi "Skupaj" - zapis 1. In fragment za trenutni zapis za zapis 2 za "Ločeno" bo zapis 2 in za "Skupaj" - zapisa 2 in 3. Tako bo skupna vsota za trenutni zapis za "Ločeno" 20, za "Skupaj" pa 50. Ko je "Skupaj" določeno v Start in Končni parametri, ne morete določiti odmika za položaje "Prvi", "Zadnji", "Prejšnji", "Naslednji". Privzeta vrednost je "Ločeno".
primer:
Pridobivanje razmerja med zneskom za polje »Sales.AmountTurnover« zapisa združevanja in zneskom istega polja v celotni postavitvi:
Sum(Sales.SumTurnover) / CalculateExpression("Sum(Sales.SumTurnover)", "Total").

Ta primer izračuna vrednost trenutne hierarhije:
Izbira
Ko je Level() > 0
Nato EvaluateExpression("Reference", "Hierarchy")
Sicer Null
Konec

Opombe:
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 Nomenklature 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 združevanja je nastavljen na "GrossTotal") se predpostavlja, da ni zapisov za izračun podrobnih podatkov in izračun agregatnih funkcij. Pri generiranju izraza za funkcijo CalculateExpression sestavljalec postavitve, če vrstni izraz vsebuje polja, ki jih ni mogoče uporabiti pri združevanju, nadomesti funkcijo CalculateExpression z NULL.

3. Vrednotenje izraza s skupinsko matriko (EvalExpression With Group Array) - funkcija vrne matriko, katere vsak element vsebuje rezultat izračuna izraza za združevanje po podanem polju.

Sintaksa:
CalculateExpressionWithGroupArray (Expression, GroupFieldExpressions, SelectRecords, SelectGroups)

Opcije :

  • Izraz(Niz) - izraz, ki ga je treba ovrednotiti. Na primer, "Znesek (Znesek prometa)";
  • FieldExpressionsGroups
  • Izbor zapisov
  • Izbira skupin- izbor uporabljen za skupinske zapise. Na primer: "Znesek(Znesek prometa) > &Parameter1".
primer:
Maximum(CalculateExpressionWithGroupArray("Amount(AmountTurnover)", "Counterparty"));


Graditelj postavitve pri generiranju izrazov za prikaz polja po meri, katerega izraz vsebuje samo funkcijo CalculateArrayWithGroup, generira izhodni izraz na tak način, da so prikazani podatki in podatki urejeni.
Na primer za polje po meri z izrazom:
CalculateExpressionWithGroupArray("Znesek(Znesek prometa)", "Nasprotna stranka")
Graditelj postavitve bo ustvaril naslednji izraz za izpis:
ConnectRows(Array(Order(CalculateExpressionWithGroupingValueTable("View(Sum(DataSet.AmountTurnover)), Amount(DataSet.AmountTurnover)", "DataSet.Account"), "2")))

4. Izračunajte izraz z GroupValueTable (EvalExpressionWithGroupValueTable) - funkcija vrne tabelo vrednosti, katere vsak element vsebuje rezultat izračuna izraza za združevanje po podanem polju.

Sintaksa:
CalculateExpressionWithGroupValueTable (izraz, izrazi skupinskega polja, izbor zapisov, izbor skupine)

Opcije :

  • Izraz(Niz) - izraz, ki ga je treba ovrednotiti. Vrstica lahko vsebuje več izrazov, ločenih z vejicami. Za vsakim izrazom je lahko neobvezna ključna beseda AS in ime stolpca tabele vrednosti. Na primer: "Nasprotna stranka, znesek (AmountTurnover) kot obseg prodaje."
  • FieldExpressionsGroups- izrazi skupinskih polj, ločenih z vejicami. Na primer "Nasprotna stranka, stranka";
  • Izbor zapisov- izraz, ki se uporablja za podrobne zapise. Na primer, "Zastavica za izbris = False." Če ta parameter uporablja agregatno funkcijo, bo prišlo do napake pri sestavljanju podatkov;
  • Izbira skupin- izbor uporabljen za skupinske zapise. Na primer: "Znesek(Znesek prometa) > &Parameter1".
primer:
Izračunajte izraz z združevanjem tabele vrednosti ("Račun KOT Nasprotna stranka, Znesek (Znesek Promet) KOT Obseg prodaje", "Račun")

Rezultat te funkcije bo tabela vrednosti s stolpci Nasprotna stranka in Obseg prodaje, ki bo vsebovala nasprotne stranke z njihovim obsegom prodaje.
Sestavljalec postavitve pri generiranju postavitve pretvori parametre funkcije v izraze polj postavitve sestave podatkov. Na primer, polje Račun bo pretvorjeno v DataSet.Account.
Na primer polje po meri z izrazom:
CalculateExpressionWithGroupValueTable("Račun, Znesek(ZnesekPrometa)", "Račun")
Graditelj postavitve bo ustvaril naslednji izraz za izpis:
ConnectRows(GetPart(Order(CalculateExpressionWithGroupValueTable("DataSet.Account, DataSet.AccountRepresentation, Sum(DataSet.AmountTurnover), View(DataSet.AmountTurnover), DataSet.OrderingField", "DataSet.Account"), "5, 1, 3" ), "2, 4"))

5. Raven - funkcija je zasnovana tako, da pridobi trenutno raven snemanja.

Sintaksa:
Raven()

primer:
Raven()

6. Zaporedna številka - dobite naslednjo serijsko številko.

Sintaksa:
ŠteviloPoNaročilu()

primer:
ŠteviloPoNaročilu()

7. SequenceNumberInGrouping - vrne naslednjo zaporedno številko v trenutni skupini.

primer:
NumberByOrderInGroup()

8. Oblika - pridobite oblikovani niz posredovane vrednosti.

Sintaksa:
Format(Vrednost, FormatString)

Opcije :

  • Pomen- izraz, ki ga je treba oblikovati;
  • FormatString- formatni niz je nastavljen v skladu s formatnim nizom 1C:Enterprise.
primer:
Oblika (Računi za potrošno blago. Znesek dokumenta, "NPV=2")

9. BeginOfPeriod

Sintaksa:
Začetno obdobje (datum, vrsta obdobja)

Opcije :

  • datum(Datum). Določen datum;
  • Vrsta obdobja
primer:
Začetno obdobje (datum in čas (2002, 10, 12, 10, 15, 34), "mesec")
Rezultat: 10.1.2002 0:00:00

10. Konec obdobja - funkcija je zasnovana za izbiro določenega datuma od danega datuma.

Sintaksa:
EndPeriod(Datum, PeriodType)

Opcije :

  • datum(Datum). Določen datum;
  • Vrsta obdobja(črta). Vsebuje eno od naslednjih vrednosti: minute; ura; dan; Teden; mesec; četrtina; leto; desetletje; Pol leta.
primer:
Končno obdobje (datum in čas (2002, 10, 12, 10, 15, 34), "teden")
Rezultat: 13.10.2002 23:59:59

11. AddKDate (DateAdd) - funkcija je zasnovana tako, da datumu doda določeno vrednost.

Sintaksa:
AddToDate(Izraz, Vrsta prirastka, Magnituda)

Opcije :

  • Izraz(Datum). izvirni datum;
  • TypeMagnification(črta). Vsebuje eno od naslednjih vrednosti: minute; ura; dan; Teden; mesec; četrtina; leto; desetletje; Pol leta.
  • Magnituda(Številka). Za koliko je treba povečati datum, se ulomek ne upošteva.
primer:
AddToDate(DateTime(2002, 10, 12, 10, 15, 34), "Mesec", 1)
Rezultat: 12.11.2002 10:15:34

12. Datumska razlika - funkcija je zasnovana tako, da dobi razliko med dvema datumoma.

Sintaksa:
DifferenceDate(Expression1, Expression2, DifferenceType)

Opcije :

  • Izraz1(Datum). Odšteti datum;
  • Izraz2(Datum). izvirni datum;
  • TypeDifference(črta). Vsebuje eno od vrednosti: Second; Minuta; ura; dan; mesec; četrtina; leto
primer:
DATEDIFFERENCE(DATETIME(2002, 10, 12, 10, 15, 34),
DATETIME(2002, 10, 14, 9, 18, 06), "DAN")
Rezultat: 2

13. Podniz - ta funkcija je zasnovana za ekstrahiranje podniza iz niza.

Sintaksa:
Podniz (niz, položaj, dolžina)

Opcije :

  • Linija(črta). Niz, iz katerega je podniz ekstrahiran;
  • Položaj(Številka). Položaj znaka, s katerega se začne podniz, ki ga je treba ekstrahirati iz niza;
  • Dolžina(Številka). Dolžina dodeljenega podniza.
primer:
PODNIZ(Računi.Naslov, 1, 4)

14. Dolžina niza - funkcija je zasnovana za določanje dolžine niza.

Sintaksa:
StringLength(String)

Parameter:

  • Linija(črta). Niz, katerega dolžina je navedena.
primer:
Vrstica (nasprotne stranke. naslov)

15. Leto- ta funkcija je zasnovana tako, da izvleče leto iz vrednosti vrste Datum.

Sintaksa:
Leto (datum)

Parameter:

  • datum(Datum). Datum, do katerega je določeno leto.
primer:
YEAR(Stroški.Datum)

16. Četrt - ta funkcija je zasnovana za ekstrahiranje številke četrtletja iz vrednosti vrste Datum. Številka četrtine se običajno giblje od 1 do 4.

Sintaksa:
četrtletje (datum)

Parameter:

  • datum(Datum). Datum, do katerega je določeno četrtletje
primer:
ČETRTET(Stroški.Datum)

17. Mesec - ta funkcija je zasnovana tako, da ekstrahira številko meseca iz vrednosti vrste datum. Številka meseca se običajno giblje od 1 do 12.

Sintaksa:
Mesec (datum)

Parameter:

  • datum(Datum). Datum, s katerim se določi mesec.
primer:
MESEC(Stroški.Datum)

18. Dan v letu (DayOfYear) - ta funkcija je zasnovana za pridobivanje dneva v letu iz vrednosti tipa Datum. Dan v letu se običajno giblje od 1 do 365 (366).

Sintaksa:
Dan v letu (datum)

Parameter:

  • datum(Datum). Datum, s katerim se določi dan v letu.
primer:
DAYYEAR(RačunOdhodkov.Datum)

19. Dan- ta funkcija je zasnovana za pridobivanje dneva v mesecu iz vrednosti tipa Datum. Dan v mesecu se običajno giblje od 1 do 31.

Sintaksa:
dan (datum)

Parameter:

  • datum(Datum). Datum, s katerim se določi dan v mesecu.
primer:
DAN(Stroški.Datum)

20. teden - ta funkcija je zasnovana za pridobivanje številke tedna v letu iz vrednosti tipa Datum. Tedni v letu so oštevilčeni od 1.

Sintaksa:
Teden (datum)

Parameter:

  • datum(Datum). Datum, do katerega so določene številke tednov.
primer:
WEEK(Stroški.Datum)

21. WeekDay - ta funkcija je zasnovana za pridobitev dneva v tednu iz vrednosti tipa datuma. Običajni dan v tednu je od 1 (ponedeljek) do 7 (nedelja).

Sintaksa:
Dan v tednu (datum)

Parameter:

  • datum(Datum). Datum, s katerim se določi dan v tednu.
primer:
DAN V TEDNU (Stroški.Datum)

22. Ura- ta funkcija je zasnovana tako, da pridobi uro v dnevu iz vrednosti vrste Datum. Ura dneva se giblje od 0 do 23.

Sintaksa:
ura (datum)

Parameter:

  • datum(Datum). Datum, do katerega je določena ura dneva.
primer:
HOUR(Stroški.Datum)

23. Minuta - ta funkcija je zasnovana za pridobivanje minut ure iz vrednosti tipa Datum. Minuta ure se giblje od 0 do 59.

Sintaksa:
Minuta (datum)

Parameter:

  • datum(Datum). Datum, do katerega je določena urna minuta.
primer:
MINUT(Stroški.Datum)

24. Drugič - ta funkcija je zasnovana tako, da pridobi sekundo minute iz vrednosti tipa Datum. Sekunda minute se giblje od 0 do 59.

Sintaksa:
Drugi (datum)

Parameter:

  • datum(Datum). Datum, do katerega so določene sekunde minute.
primer:
SECOND(Stroški.Datum)

25. Cast - ta funkcija je zasnovana za ekstrahiranje vrste iz izraza, ki lahko vsebuje sestavljeno vrsto. Če izraz vsebuje tip, ki ni zahtevani tip, bo vrnjena vrednost NULL.

Sintaksa:
Express(Expression, Type Indication)

Opcije :

  • Izraz- izraz za pretvorbo;
  • Navedba tipa(črta). Vsebuje niz vrste. Na primer "Številka", "Niz" itd. Poleg primitivnih tipov lahko ta vrstica vsebuje ime tabele. V tem primeru se bo poskušalo izraziti sklicevanje na navedeno tabelo.
primer:
Express(Data.Props1, "Number(10,3)")

26. IsNull (IsNull) - ta funkcija vrne vrednost drugega parametra, če je vrednost prvega parametra NULL. V nasprotnem primeru bo vrnjena vrednost prvega parametra.

Sintaksa:
IsNull(Izraz1, Izraz2)

Opcije :

  • Izraz1- vrednost, ki jo je treba preveriti;
  • Izraz2- vrnjena vrednost, če je izraz1 NULL.
primer:
YesNULL(Znesek(Prodaja.ZnesekPrometa), 0)

27.ACos- izračuna ark kosinus v radianih.

Sintaksa:
ACos (izraz)

Parameter:

  • Izraz(Številka). Vrednost kosinusa (v območju -1 ... 1), s katero je določen kot.
28.ASin- izračuna arksinus v radianih.

Sintaksa:
ASin(izraz)

Parameter:

  • Izraz(Številka). Vrednost sinusa (v območju -1 ... 1), s katero je določen kot.
29.ATan- izračuna arktangens v radianih.

Sintaksa:
ATan (izraz)

Parameter:

  • Izraz(Številka). Vrednost tangente, s katero je določen kot.
30.Cos- izračuna kosinus.

Sintaksa:
Cos (izraz)

Parameter:

  • Izraz
31. Exp- povišanje števila e na potenco.

Sintaksa:
Exp (izraz)

Parameter:

  • Izraz(Številka). Pomen diplome.
32.Dnevnik- izračuna naravni logaritem.

Sintaksa:
Dnevnik (izraz)

Parameter:

  • Izraz
33.Log10- izračuna logaritem X na osnovo 10.

Sintaksa:
Log10 (izraz)

Parameter:

  • Izraz(Številka). Prvotno število je večje od 0.
34. Pow- potenciranje.

Sintaksa:
Pow (osnova, indikator)

Opcije :

  • Osnova(Številka). Osnova operacije potenciranja.
  • Kazalo(Številka). Eksponent.
35. Greh- izračuna sinus.

Sintaksa:
Greh (izraz)

Parameter:

  • Izraz(Številka). Podano v radianih.
36. Sqrt- izračuna kvadratni koren.

Sintaksa:
Sqrt (izraz)

Parameter:

  • Izraz(Številka). Nenegativno število.
37. Tan- izračuna tangens.

Sintaksa:
Tan (izraz)

Parameter:

  • Izraz(Številka). Vrednost sinusa, s katero je določen kot.
38. Okroglo- zaokroži izvirno število na zahtevano bitno globino. Način zaokroževanja je standarden (1,5 kot 2).

Sintaksa:
Env (izraz, bitna globina)

Opcije :

  • Izraz(Številka). izvirna številka;
  • Bitna globina(Številka). Število decimalnih mest, na katere želite zaokrožiti.
39. Int- odreže ulomek števila.

Sintaksa:
Predmet (izraz)

Parameter:

  • Izraz(Številka). Delno število.
40. Funkcije skupnih modulov

Izraz stroja za sestavljanje podatkov lahko vsebuje klice funkcij globalnih skupnih konfiguracijskih modulov. Za klic takšnih funkcij ni potrebna nobena dodatna sintaksa.

primer:
AbbreviatedName(Dokumenti.Povezava, Dokumenti.Datum, Dokumenti.Številka)

V tem primeru bo funkcija "AbbreviatedName" poklicana iz splošnega konfiguracijskega modula.
Upoštevajte, da je uporaba skupnih funkcij modula dovoljena le, če je določen ustrezen parameter procesorja za sestavo podatkov.
Poleg tega funkcij običajnih modulov ni mogoče uporabiti v izrazih polj po meri.

41. Zamera - ta funkcija vrne predstavitev niza posredovane vrednosti neprimitivnega tipa. Za vrednosti primitivnega tipa vrne samo vrednost.

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

primer:
Predstavitev (nasprotna stranka)

42. Niz - ta funkcija pretvori posredovano vrednost v niz.

Če je kot parameter uporabljena matrika ali tabela vrednosti, funkcija vrne niz, ki vsebuje nizovno predstavitev vseh elementov matrike, ločenih z znaki "; ". Če ima kateri koli element predstavitev praznega niza, je niz "<Пустое значение>".

primer:
Vrstica (Datum prodaje)

43. ValueIsFilled

Za vrednosti NULL Undefined vedno vrne False.
Za logične vrednosti vedno vrne True.
Za druge tipe vrne True, če se vrednost razlikuje od privzete vrednosti za dani tip.

primer:
ValueFilled(DeliveryDate)

44. LevelInGroup - ta funkcija pridobi trenutno raven snemanja glede na skupino.

Uporablja se lahko za pridobitev ravni gnezdenja zapisa v hierarhičnem združevanju.

primer:
LevelInGroup()

45. ValueType

Sintaksa:
ValueType(Expression)

Parameter:

  • Izraz(črta). Vrsta vrednosti niza.
Vrne vrednost tipa Type, ki vsebuje vrsto vrednosti parametra funkcije.

V sestavi podatkov nastavitev skupnih vrednosti izgleda malo drugače kot v zahtevah. V sistemu za sestavljanje podatkov definirajmo nabor podatkov »Poizvedba«.

V sami zahtevi ne konfiguriramo skupnih vrednosti, ampak gremo na zavihek »Viri« v sestavi podatkov. Na ravni sheme sestave podatkov smo določi vire. To so polja, ki jih je treba prešteti na ravni združevanja. Kliknite na gumb “>>” in sistem bo sam prenesel vsa številska polja in jih definiral kot vire.

V virih lahko podate tudi neštevilska polja. Na primer, če izberete atribut »Povezava«, bo sistem preštel število dokumentov v naših skupinah. Tudi te informacije so lahko koristne. Torej, v diagramu postavitve definiramo le vire, same skupine pa so konfigurirane na ravni različice poročila. Uporabnik lahko ustvari tudi skupine, ki jih želi videti v svojih nastavitvah možnosti poročila.

Ustvarimo standardno nastavitev sestave podatkov.
Kliknite gumb »Odpri oblikovalec nastavitev«.

Izberimo tip poročila – seznam. Kliknite gumb "Naprej".

Izberimo vsa polja in premaknimo polje nasprotne stranke na vrh. Kliknite gumb "Naprej".

Izberimo vsa polja in premaknimo polje nasprotne stranke na vrh. Kliknite gumb »V redu«.

Rezultat je naslednja nastavitev:

Kot lahko vidite, so pri nastavitvi možnosti poročila viri označeni z zeleno ikono, tako da jih je mogoče hitro ločiti od drugih polj.

Če naše poročilo odpremo v načinu 1C:Enterprise in ga generiramo, bomo videli, da se končni podatki generirajo na ravni združevanja. Rezultati po postavkah in po nasprotnih strankah.

Nastavitev virov v shemi sestavljanja podatkov 1C

Zdaj pa usmerimo pozornost na nastavitve, ki obstajajo za vire. V polju »Izraz« lahko določimo agregatno funkcijo, ki jo lahko uporabimo za pridobitev vrednosti vira. Na spustnem seznamu lahko vidite številne standardne funkcije, vendar ne vseh. Na primer, ni funkcij.

Tukaj v polje »Izraz« lahko napišemo svoj izraz.

V polju "Izraz" lahko dostopamo tudi do funkcij skupnih modulov.

Poleg tega lahko v polju »Izračunaj po ...« določite, po katerih skupinah naj se vir izračuna. Če polje “Izračunaj po...” ni izpolnjeno, se bo končna vrednost vira izračunala na vseh ravneh združevanja, ki so definirane v nastavitvah opcije poročila. V našem primeru moramo izpolniti polje »Izračunaj po ...« vira »Količina«, saj lahko blago prodajamo z različnimi merskimi enotami. Na primer: olje v litrih in kolesa v kosih. Mar ni res, da bi bilo količine tega blaga nelogično seštevati? Zato moramo pustiti seštevek količine na ravni postavke in na ravni nasprotne stranke
Odstranimo seštevek.

Če izdelamo poročilo, vidimo, da so količinske vsote izračunane samo po postavkah, količinske vsote za izvajalce pa so prazne.

Možnosti pri opisovanju virov v shemi sestavljanja podatkov 1C

razmislimo številne neočitne funkcije, povezane z opisom virov.

  • Vsak vir lahko večkrat določiti. A to je smiselno le, če
    vir bo izračunan na različnih ravneh združevanja. Na primer, če je količina, v enem primeru
    se za postavko sešteje, za nasprotne stranke pa dobimo minimalno vrednost.

Če ustvarimo poročilo, bomo videli, da je za nasprotno stranko »Deriya« najmanjši nakup pet enot proizvodnega programa »Samolepilni papir«.

  • V polju »Izraz« lahko poleg pisanja formule uporabite posebno funkcijo sestavljanja podatkov, imenovano »Izračunaj«. Ta funkcija vam omogoča izračun končne vrednosti z uporabo določene formule. Na primer, za vsako nasprotno stranko je treba poznati odstotek nakupov v fizičnih enotah glede na celotno količino. Toda kako priti do skupnega obsega nakupov po količini? Če želite to narediti, uporabite funkcijo »Izračunaj« in v polje »Izraz« vpišite naslednji izraz:
Sum(Quantity)/Calculate("Sum(Quantity)", "TotalTotal")*100

Kot je razvidno, vsi parametri funkcije "Izračunaj" so nizi. Da bo polje s količino v poročilu lepo prikazano, ga bomo konfigurirali na zavihku »Nabori podatkov«. V vrstici s količino bomo našli polje »Možnosti urejanja«. Odprimo pogovorno okno, poiščimo vrstico »Format« in v njej uredimo vrstico formata, tako da vrednost »Accuracy« nastavimo na dve na zavihku »Number«.

Zaženimo poročilo in poglejmo rezultat izračuna odstotka nakupov za nasprotno stranko "AUPP KOS LLP" glede na
skupna prostornina:


Na koncu članka vam želim priporočiti brezplačno Anatolija Sotnikova. To je tečaj izkušenega programerja. Na ločeni osnovi vam bo pokazal, kako zgraditi poročila v sistemu za nadzor dostopa. Morate le pozorno poslušati in si zapomniti! Prejeli boste odgovore na naslednja vprašanja:
  • Kako ustvariti preprosto poročilo s seznamom?
  • Čemu so namenjeni stolpci Polje, Pot in Naslov na kartici »Polja«?
  • Kakšne so omejitve za polja postavitve?
  • Kako pravilno konfigurirati vloge?
  • Kakšne so vloge polj postavitve?
  • Kje lahko najdem zavihek za sestavo podatkov v poizvedbi?
  • Kako konfigurirati parametre v sistemu za nadzor dostopa?
  • Postane še bolj zanimivo ...
Morda ne bi smeli sami brskati po internetu v iskanju potrebnih informacij? Poleg tega je vse pripravljeno za uporabo. Samo začni! Vse podrobnosti o tem, kaj je v brezplačnih video lekcijah

Tukaj je ena od lekcij o označevanju sestave podatkov v poizvedbi:

Obstaja informacijski register "Postanki na poti", ki hrani podatke o razdalji od začetne do končne postaje.

riž. 1. Informator "Postanki na poti"

Potrebno je izdelati poročilo o sistemu kontrole dostopa, ki bo prikazovalo razdaljo med katerima koli postankoma na poti.

rešitev

V vsaki konfiguraciji, ki podpira upravljane obrazce, bomo ustvarili neperiodični register informacij “Postanki na poti”. Dodajmo mu dimenziji Route in Stop s tipom niza dolžine 4 oziroma 50 ter vir Distance s tipom števila dolžine 10,2. Shranimo spremembe v novo konfiguracijo. Če želite ustvariti zunanje poročilo, v Meni-->Datoteka-->Novo izberite “Zunanje poročilo”, nastavite njegovo ime in odprite diagram postavitve podatkov:

riž. 2. Izdelava zunanjega poročila o sistemu kontrole pristopa

V oknu, ki se odpre, kliknite gumb »Dodaj niz podatkov« in izberite vrstico »Dodaj niz podatkov - poizvedba«:

riž. 3. Dodajanje nabora podatkov - poizvedba

Ustvarimo novo zahtevo. Za rešitev problema bomo v poizvedbi potrebovali informacijski register “Postanki na poti” in ker mora poročilo jasno prikazati razdaljo med katerima koli postankoma, bomo ustvarili poizvedbo za tabelarični prikaz po osi X in Y , z uporabo polnega zunanjega združevanja tabele registrov s seboj:

riž. 5. Določanje virov za sisteme za nadzor dostopa

Pojdimo zdaj na zavihek "Nastavitve" in kliknite gumb "Odpri oblikovalec nastavitev", izberite vrsto poročila Tabela:

riž. 7. Izbira polj poročila

Slika 8. Izbira polj za združevanje

riž. 9. Izbira polj za razvrščanje

Vse, kar ostane, je, da uporabite gumb »Lastnosti elementov uporabniških nastavitev«, da ustvarite te nastavitve, in tudi na zavihku »Druge nastavitve«, da označite, kako bodo viri locirani, in zavržete vsote (tu niso potrebni):

riž. 10 Uporabniške in druge nastavitve.

Poročilo je pripravljeno. Zdaj pa pojdimo od konfiguracije do podjetja in izpolnimo register informacij (če še ni izpolnjen):

riž. 11. Izpolnjevanje informatorja

In končno, iz Meni-->Datoteka pokličemo naše poročilo z mesta, kjer smo ga shranili v konfiguratorju, kliknemo gumb “Ustvari” in vidimo rešitev problema:

riž. 12. Poročilo "Razdalja med postanki"

Publikacija me je spodbudila k pisanju članka

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) iz levega stolpca v desni.

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.

Članek opisuje primer praktične uporabe tehtanega povprečja v rezultatih poročil. Prikazanih je nekaj tehnik za delo s sistemi za nadzor dostopa. Članek je namenjen usposobljenemu bralcu z vsaj osnovnimi znanji dela s sistemi za nadzor dostopa in graditeljem poizvedb.

Izračun tehtanega povprečja se aktivno uporablja pri nalogah, povezanih s poslovodnim računovodstvom in drugimi poslovnimi izračuni.

A-priory, - POVPREČNA TEŽA(uteženo povprečje) je aritmetično povprečje, ki upošteva težo vsakega od izrazov, za katere se to povprečje izračuna.

V skoraj vseh učbenikih poslovodnega računovodstva za ponazoritev tehtanega povprečja navajajo primer z nakupom treh serij istega izdelka - vsaka serija blaga ima drugačno nabavno ceno in drugačno količino. Jasno je, da če v takšni situaciji vzamemo aritmetično povprečje nabavnih cen, dobimo povprečno temperaturo v bolnišnici – podatek, ki nima praktičnega pomena. V takšni situaciji je smiselno ponderirano povprečje.

Isti učbeniški primer: blago je bilo kupljeno v treh serijah, od katerih je bila ena 100 ton za 70 funtov. Umetnost. na tono, drugi - 300 ton na 80 funtov. Umetnost. na tono in tretjino - 50 ton pri 95 lbs. Umetnost. na tono, potem skupaj kupi 450 ton blaga; običajna povprečna nakupna cena bo (70 + 80 + 95) : 3 = 81,7 funtov. Umetnost. Tehtana povprečna cena ob upoštevanju količine vsake serije je enaka (100 × 70) + (300 × 80) + (50 × 95) : 450 = 79,4 funtov. Umetnost. na tono.

Formula:

Kjer so X vrednosti, katerih tehtano povprečje želimo dobiti, W pa uteži.

Tukaj se teorija konča.

S tem sem se moral ukvarjati, ko sem v poročilu prikazoval podatke o prodaji blaga, razvrščene po upravljavcih, kjer je bilo treba kot rezultat pridobiti dobičkonosnost. Vrstice poročila so prikazale dobičkonosnost za vsak prodani izdelek, v rezultatih pa je bilo treba videti, s kakšno dobičkonosnostjo je upravljavec delal. V skladu s tem je dobičkonosnost "vrednost", "teža" te vrednosti pa je prihodek. Številna pojasnila za popolnost slike. Prihodek (obseg prodaje) je prodajna cena in količina izdelka, pomnožena. Bruto dobiček je prihodek minus strošek (kako natančno je bil strošek izračunan v okviru tega članka ni pomembno). In končno, naša dobičkonosnost je razmerje med bruto dobičkom in prihodki, izraženo v odstotkih.

Postavlja se vprašanje: kakšno donosnost je upravljavec dosegel v poročevalskem obdobju? Če želite pravilno odgovoriti na to vprašanje, morate izračunati tehtano povprečno vrednost dobičkonosnosti.

Za pridobitev donosno uteženega povprečja v SKD izdelamo v konstruktorju poizvedbe pomožno polje obrazcapoljubno izražanje, kjer beležimo zmnožek dobičkonosnosti in prihodkov. Temu polju dodelimo vzdevek -Pomožno polje. Glej spodnjo sliko.

Tega polja v poročilu ne bomo prikazali, podatke potrebujemo za izračun rezultatov. Rezultate bomo izračunali v zavihku ACSViri.

Druga tehnika za delo z ACS na zavihku »Viri«, kjer je naveden izračun skupnih vrednosti, je možnost uporabe izrazov v polju »Izraz« s podatki iz polja »Razpoložljiva polja«. Glej spodnjo sliko.

Za stolpec poročila »Odstotek donosnosti« zapišemo izraz Znesek (pomožno polje)/Znesek (prihodek).

Če povzamem, najprej je pomembno razumeti, kaj je tehtano povprečje in kje morate uporabiti samo aritmetično povprečje in kje morate uporabiti tehtano povprečje. S tehničnega vidika lahko dve točki predstavljata nekaj težav - ustvarjanje pomožnega polja v poročilu in možnost uporabe poljubnega izraza v virih ACS za izračun rezultatov, ki jih potrebujemo.

Upam, da bo ta članek komu koristen.