Kako podesiti pametne telefone i računare. Informativni portal
  • Dom
  • Savjet
  • 1c izračunava polja koje funkcije se mogu koristiti. Funkcije jezika za sastavljanje podataka sistema ekspresije

1c izračunava polja koje funkcije se mogu koristiti. Funkcije jezika za sastavljanje podataka sistema ekspresije

CalculateExpression je prilično teška ACS funkcija za razumijevanje, a primjeri primjene u referentnim informacijama su prilično rijetki. Ovaj članak govori o primjerima koji će sigurno biti korisni svakom programeru:

  1. kumulativno u grupisanju;
  2. kumulativni zbroj u unakrsnoj tablici;
  3. dobijanje prethodne vrednosti;
  4. PM izlaz u jednom redu.

1. Dobijanje indikatora na obračunskoj osnovi

Uzmimo količinu robe kao kumulativni zbir na nivou grupisanja. Da biste to učinili, kreirajte izračunato polje (pogledajte sliku 1).
Na kartici "Resursi" postavite funkciju za izračunato polje:
CalculateExpression("Zbroj(Obrt količine)", "Prvi", "Trenutni")
koji će zbrojiti broj proizvoda od prvog zapisa do trenutnog (vidi sliku 2).

Ako je potrebno dobiti kumulativnu ukupnu količinu stavke na nivou detaljnih zapisa, tada na kartici „Izračunata polja“ postavljamo funkciju CalculateExpression za izračunato polje (vidi sliku 3).
U zavisnosti od nivoa dobijanja kumulativnog totala, kreiramo grupisanje (vidi sliku 4): na nivou resursa - grupisanje po robi, na nivou daljinskog upravljanja - grupisanje detaljnih zapisa.
Slika 4. Grupacije izvještaja s kumulativnim ukupnim iznosima

2. Dobivanje vrijednosti indikatora iz prethodnog reda

Uzmimo kurs za datum i prethodni datum. Da biste to učinili, kreirajte izračunato polje i upišite sljedeći izraz u polje izraza (pogledajte sliku 5):
CalculateExpression("Ocijena", "Prethodno", "Prethodno")
koji će uzeti prethodnu vrijednost kursa za trenutni red, posljednji parametar funkcije ograničava prijem podataka.
Pošto radimo na nivou detaljnih zapisa, odmah idemo na karticu „Podešavanja“ i kreiramo grupisanje – detaljni zapisi.

3. Dobivanje indikatora kao kumulativnog totala u unakrsnoj tablici

Uzmimo količinu robe na obračunskoj osnovi po periodima. Da biste to učinili, kreirajte izračunato polje (pogledajte sliku 1). Na kartici “Resources” navodimo sljedeći izraz za izračunato polje (vidi sliku 6):
CalculateExpression("Zbroj(Promet količine)", "Period", "Prvi", "Trenutni")
koji će na nivou grupisanja izračunati količinu robe u intervalu od prvog reda do tekućeg u kontekstu perioda za svaku stavku.
Na kartici „Postavke“ kreirajte tabelu sa grupisanjem po stavci u redu i grupisanjem po periodu u koloni (pogledajte sliku 7).

4. Izlaz tabelarnih podataka u jednom redu

Metode za prikaz tabelarnih podataka u jednom redu, uključujući metodu pomoću funkcije CalculateExpression, razmatraju se u članku

1. Izračunaj (Eval)- je namijenjen za procjenu izraza u kontekstu nekog grupisanja. Funkcija se koristi za kompatibilnost sa prethodnim verzijama platforme. Umjesto toga preporučuje se korištenje funkcije CalculateExpression.

sintaksa:
Izračunaj (izraz, grupisanje, vrsta izračuna)

Opcije:

  • Izraz(Linija). Sadrži izračunati izraz;
  • Grupisanje(Linija). Sadrži naziv grupiranja u čijem kontekstu treba procijeniti izraz. Ako se kao ime grupisanja koristi prazan niz, proračun će se izvršiti u kontekstu trenutnog grupisanja. Ako se kao naziv grupe koristi string GrandTotal, izračunavanje će se izvršiti u kontekstu ukupnog zbroja. U suprotnom, proračun će se izvršiti u kontekstu nadređene grupe sa istim imenom.
    Na primjer:
    Zbroj(Prodaja.Ukupni promet) / Izračunaj("Zbroj(Prodaja.Zbroj prometa)", "Ukupno").
    U ovom primjeru, rezultat će biti omjer iznosa za polje "Sales.AmountTurnover" zapisa grupisanja prema iznosu istog polja u cijelom izgledu.
  • Vrsta kalkulacije(Linija). Ako je ovaj parametar postavljen na "TotalTotal", izraz će se izračunati za sve grupne zapise. Ako je vrijednost parametra "Grupiranje", vrijednosti će se izračunati za trenutni grupni zapis.
2. Procijenite izraz (EvalExpression) - je namijenjen za procjenu izraza u kontekstu nekog grupisanja. Funkcija uzima u obzir odabir grupiranja, ali ne uzima u obzir hijerarhijske odabire. Funkcija se ne može primijeniti na grupiranje u odabiru grupe te grupe.

sintaksa:
CalculateExpression(Izraz, grupisanje, CalculationType, Početak, Kraj, Sortiranje, Hijerarhijski Sort, ProcessingIdenticalOrderValues)

Opcije:

  • Izraz(Linija). Sadrži izračunati izraz;
  • Grupisanje(Linija). Sadrži naziv grupiranja u čijem kontekstu treba procijeniti izraz. Ako se kao ime grupisanja koristi prazan niz, proračun će se izvršiti u kontekstu trenutnog grupisanja. Ako se kao naziv grupe koristi string GrandTotal, izračunavanje će se izvršiti u kontekstu ukupnog zbroja. U suprotnom, proračun će se izvršiti u kontekstu roditeljskog grupiranja s tim imenom;
  • Vrsta kalkulacije(Linija). Ako je ovaj parametar postavljen na "TotalTotal", izraz će se izračunati za sve grupne zapise. Ako je vrijednost parametra "Grupiranje", vrijednosti će se izračunati za trenutni grupni zapis. Ako je parametar postavljen na "Non-Resource Grouping", tada će se prilikom izračunavanja funkcije za grupni zapis po resursu, izraz procijeniti za prvi grupni zapis originalnog grupiranja. Prilikom evaluacije funkcije CalculateExpression s vrijednošću "GroupingNonResource" za grupne zapise koji nisu grupirani prema resursu, funkcija se procjenjuje na isti način kao što bi bila procijenjena s vrijednošću parametra "Grouping". Graditelj izgleda sastava podataka, kada generira izgled sastava podataka prilikom izlaza polja - resursa pomoću kojeg se vrši grupisanje, u izgled, ispisuje u izgled izraz izračunat pomoću funkcije CalculateExpression sa navedenim parametrom "GroupingNon-Resource". Za druge resurse grupirane po resursu, vraćaju se normalni izrazi resursa. Ako je parametar postavljen na "Hijerarhija", tada se izraz mora procijeniti za roditeljski hijerarhijski zapis, ako ga postoji, i za cijelo grupisanje, ako ne postoji roditeljski hijerarhijski zapis. Graditelj rasporeda, kada generira izraz za % u polju Grupa hijerarhije, generira izraz koji sadrži odnos izraza resursa prema funkciji CalculateExpression za izraz resursa koji se izračunava za trenutno grupisanje s tipom izračuna Hijerarhija.
  • Počni. Označava od kojeg zapisa treba početi fragment, u kojem se agregatne izrazne funkcije treba izračunati i iz kojeg zapisa treba dobiti vrijednosti polja izvan agregatnih funkcija. Niz koji sadrži jedno od:
    • "prvi" Potrebno je pribaviti prvi zapis grupisanja. Nakon riječi u zagradama možete odrediti izraz čiji će se rezultat koristiti kao pomak od početka grupiranja. Rezultirajuća vrijednost mora biti cijeli broj veći od nule. Na primjer, First(3) – primanje trećeg zapisa od početka grupisanja. Ako je prvi zapis izvan grupisanja, onda se smatra da nema zapisa. Na primjer, ako postoje 3 zapisa, a želite da dobijete First(4), onda se smatra da nema zapisa.
    • "Posljednji" Morate dobiti posljednji zapis o grupisanju. Nakon riječi u zagradama možete odrediti izraz čiji će se rezultat koristiti kao pomak od kraja grupisanja. Rezultirajuća vrijednost mora biti cijeli broj veći od nule. Na primjer, Last(3) – primanje trećeg zapisa s kraja grupe. Ako je posljednji zapis izvan grupisanja, smatra se da nema zapisa. Na primjer, ako postoje 3 zapisa, a želite dobiti Last(4), onda se smatra da nema zapisa.
    • "Prethodni" Morate dobiti prethodni zapis o grupisanju. Nakon riječi u zagradama, možete odrediti izraz čiji će se rezultat koristiti kao pomak u odnosu na trenutni grupni zapis. Na primjer, Prethodno(2) – dobijanje prethodnog iz prethodnog zapisa. Ako je prethodni zapis izvan grupisanja (na primjer, drugi zapis grupisanja zahtijeva preuzimanje Prethodno(3)), tada se dobija prvi zapis grupisanja. Prilikom prijema prethodnog zapisa za zbroj grupiranja dobija se prvi zapis.
    • "Sljedeći" Morate dobiti sljedeći zapis grupisanja. Nakon riječi u zagradama, možete odrediti izraz čiji će se rezultat koristiti kao pomak naprijed od trenutnog grupnog zapisa. Na primjer, Next(2) – dobivanje sljedećeg iz sljedećeg zapisa. Ako sljedeći zapis ide dalje od grupiranja, smatra se da zapisa nema. Na primjer, ako postoje 3 unosa, a treći unos dobije Next, onda se smatra da nema unosa. Kada se primi sljedeći zapis za ukupno grupisanje, smatra se da nema zapisa.
    • "Current". Morate dobiti trenutni rekord. Prilikom preuzimanja za zbir grupiranja, dobiva se prvi zapis.
    • "BoundaryValue". Potreba da se dobije zapis po navedenoj vrijednosti. Nakon riječi LimitingValue u zagradi, potrebno je naznačiti izraz sa čijom vrijednošću želite započeti fragment, prvo polje za redoslijed. Prvi zapis čija je vrijednost polja za redoslijed veća ili jednaka navedenoj vrijednosti će biti vraćena kao zapis. Na primjer, ako se polje Period koristi kao polje za narudžbu i ima vrijednosti 01/01/2010, 02/01/2010, 03/01/2010 i želite da dobijete LimitingValue(DateTime(2010 , 1, 15)), tada će se dobiti zapisnik sa datumom 02/01. 2010.
  • Kraj. Označava na koji zapis treba nastaviti fragment, u kojem treba izračunati agregatni izraz. Niz koji sadrži jedno od:
    • "prvi"
    • "Posljednji"
    • "Prethodni"
    • "Sljedeći"
    • "Current".
    • "BoundaryValue".
  • Sortiranje. Niz koji navodi izraze, odvojene zarezima, u čijem smjeru treba poredati niz. Ako nije navedeno, tada se poredak izvodi na isti način kao i za grupisanje za koje se izraz procjenjuje. Nakon svakog izraza možete odrediti ključnu riječ Uzlazno, za redoslijed rastućim redoslijedom, Silazno, za redoslijed opadajućim, Auto-ordering, za redoslijed referentnih polja prema poljima po kojima želite poredati objekt na koji se upućuje. Riječ Auto Order može se koristiti i sa riječju Uzlazno i ​​Opadajuće.
  • HierarchicalSorting. Slično sortiranju. Koristi se za organiziranje hijerarhijskih zapisa. Ako nije navedeno, sastavljač izgleda generira redoslijed prema redoslijedu navedenom u parametru Sort.
  • Obrada istih vrijednosti narudžbe. Niz koji sadrži jedno od:
    • "Zajedno" znači da se niz uređenih zapisa koristi za određivanje prethodnog i sljedećeg zapisa;
    • "Odvojeno" znači da se prethodni i sljedeći zapis određuju na osnovu vrijednosti izraza za narudžbu;
    Na primjer, ako je rezultirajući niz poredan po datumu:
    1. 1. januara 2001. Ivanov M. 10
    2. 2. januara 2001. Petrov S. 20
    3. 2. januara 2001. Sidorov R. 30
    4. 3. januara 2001. Petrov S. 40
    Kada koristite obradu identičnih vrijednosti reda "Odvojeno", prethodni za zapis 3 će biti zapis 2, a kada se koristi "Zajedno" - zapis 1. I fragment za trenutni zapis za zapis 2 za "Odvojeno" biće zapis 2, a za "Zajedno" - zapisi 2 i 3. Dakle, ukupan broj za trenutni zapis za "Odvojeno" će biti 20, a za "Zajedno" - 50. Kada je "Zajedno" navedeno u Start i Krajnji parametri, ne možete odrediti pomak za pozicije “Prva”, “Posljednja”, “Prethodna”, “Sljedeća”. Zadana vrijednost je "Odvojeno".
primjer:
Dobivanje omjera iznosa za polje "Prodaja.IznosPromet" zapisa grupiranja prema iznosu istog polja u cijelom izgledu:
Sum(Sales.SumTurnover) / CalculateExpression("Sum(Sales.SumTurnover)", "Ukupno").

Ovaj primjer izračunava vrijednost trenutne hijerarhije:
Izbor
Kada je Level() > 0
Zatim EvaluateExpression("Referenca", "Hijerarhija")
Inače Null
Kraj

napomene:
Funkcija uzima u obzir odabir grupiranja, ali ne uzima u obzir hijerarhijske odabire. Funkcija se ne može primijeniti na grupiranje u odabiru grupe te grupe. Na primjer, pri odabiru grupiranja po nomenklaturi, ne možete koristiti izraz CalculateExpression("Sum(SumTurnover)", "TotalTotal") > 1000 . Ali takav izraz se može koristiti u hijerarhijskoj selekciji. Ako završni zapis prethodi početnom, onda se smatra da ne postoje zapisi za izračunavanje detaljnih podataka i izračunavanje agregatnih funkcija. Prilikom izračunavanja intervalnih izraza za ukupan zbroj (parametar Grupiranje je postavljen na "GrossTotal"), pretpostavlja se da ne postoje zapisi za izračunavanje detaljnih podataka i izračunavanje agregatnih funkcija. Prilikom generiranja izraza za funkciju CalculateExpression, sastavljač izgleda, ako izraz za naručivanje sadrži polja koja se ne mogu koristiti u grupisanju, zamjenjuje funkciju CalculateExpression sa NULL.

3. Procijenite izraz s grupnim nizom (EvalExpression s grupnim nizom) - funkcija vraća niz, čiji svaki element sadrži rezultat izračunavanja izraza za grupisanje prema navedenom polju.

sintaksa:
CalculateExpressionWithGroupArray (Izraz, GroupFieldExpressions, SelectRecords, SelectGroups)

Opcije:

  • Izraz(String) - izraz koji treba procijeniti. Na primjer, "Iznos(IznosPromet)";
  • FieldExpressionsGroups
  • Izbor zapisa
  • Odabir grupiranja- odabir primijenjen na grupne zapise. Na primjer: "Iznos(IznosPromet) > &Parametar1".
primjer:
Maximum(CalculateExpressionWithGroupArray("Iznos(IznosPromet)", "Counterparty"));


Graditelj rasporeda, kada generira izraze za prikaz prilagođenog polja čiji izraz sadrži samo funkciju CalculateArrayWithGroup, generiše izraz prikaza tako da su podaci prikazani od strane pogleda i podaci poređani.
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)), Amount(DataSet.AmountTurnover)", "DataSet.Account"), "2")))

4. Izračunajte izraz s GroupValueTable (EvalExpressionWithGroupValueTable) - funkcija vraća tablicu vrijednosti čiji svaki element sadrži rezultat izračunavanja izraza za grupisanje prema navedenom polju.

sintaksa:
CalculateExpressionWithGroupValueTable (izraz, izrazi grupnog polja, odabir zapisa, odabir grupe)

Opcije:

  • Izraz(String) - izraz koji treba procijeniti. Red može sadržavati više izraza odvojenih zarezima. Nakon svakog izraza može postojati opciona ključna riječ AS i ime kolone tablice vrijednosti. Na primjer: "Counterparty, iznos (iznos prometa) kao obim prodaje."
  • FieldExpressionsGroups- izrazi grupisanja polja, odvojeni zarezima. Na primjer, "Counterparty, Party";
  • Izbor zapisa- izraz koji se primjenjuje na detaljne zapise. Na primjer, "Zastavica za brisanje = False." Ako ovaj parametar koristi agregatnu funkciju, doći će do greške prilikom sastavljanja podataka;
  • Odabir grupiranja- odabir primijenjen na grupne zapise. Na primjer: "Iznos(IznosPromet) > &Parametar1".
primjer:
Izračunajte izraz s tablicom vrijednosti grupiranja ("Račun AS Counterparty, Iznos (Iznos Promet) AS Obim prodaje", "Račun")

Rezultat ove funkcije bit će tablica vrijednosti sa stupcima Counterparty i Sales Volume, koja će sadržavati druge strane sa njihovim obimom prodaje.
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.
Na primjer, prilagođeno polje s izrazom:
CalculateExpressionWithGroupValueTable("Račun, iznos (iznos obrta)", "račun")
Graditelj izgleda će generirati sljedeći izraz za izlaz:
ConnectRows(GetPart(Order(CalculateExpressionWithGroupValueTable("DataSet.Account, DataSet.AccountRepresentation), Sum(DataSet.AmountTurnover), View(DataSet.AmountTurnover), DataSet.OrderingField.", "AcountSet.OrderingField.", "CcountSet"5") ), "2, 4"))

5. Nivo - funkcija je dizajnirana da dobije trenutni nivo snimanja.

sintaksa:
Nivo()

primjer:
Nivo()

6. SequenceNumber - dobiti sljedeći serijski broj.

sintaksa:
Broj po narudžbi()

primjer:
Broj po narudžbi()

7. SequenceNumberInGrouping - vraća sljedeći redni broj u trenutnoj grupi.

primjer:
BrojByOrderInGroup()

8. Format - dobiti formatirani niz proslijeđene vrijednosti.

sintaksa:
Format (Vrijednost, Niz formata)

Opcije:

  • Značenje- izraz koji treba formatirati;
  • FormatString- niz formata je postavljen u skladu sa nizom formata 1C:Enterprise.
primjer:
Format (Računi. Iznos dokumenta, "NPV=2")

9. BeginOfPeriod

sintaksa:
Početni period (datum, vrsta perioda)

Opcije:

  • datum(Datum). Navedeni datum;
  • Tip perioda
primjer:
Početni period(DatumVrijeme(2002, 10, 12, 10, 15, 34), "Mjesec")
Rezultat: 10/01/2002 0:00:00

10. EndOfPeriod - funkcija je dizajnirana za odabir određenog datuma od datog datuma.

sintaksa:
EndPeriod(Datum, PeriodType)

Opcije:

  • datum(Datum). Navedeni datum;
  • Tip perioda(Linija). Sadrži jednu od sljedećih vrijednosti: Minute; Sat; Dan; Sedmica; Mjesec; Quarter; Godina; Decenija; Pola godine.
primjer:
EndPeriod(DatumTime(2002, 10, 12, 10, 15, 34), "Sedmica")
Rezultat: 13.10.2002 23:59:59

11. AddKDate (DateAdd) - funkcija je dizajnirana da doda određenu vrijednost datumu.

sintaksa:
AddToDate(Izraz, IncrementType, Magnitude)

Opcije:

  • Izraz(Datum). Originalni datum;
  • TypeMagnification(Linija). Sadrži jednu od sljedećih vrijednosti: Minute; Sat; Dan; Sedmica; Mjesec; Quarter; Godina; Decenija; Pola godine.
  • Magnituda(Broj). Za koliko treba povećati datum, razlomak se zanemaruje.
primjer:
AddToDate(DateTime(2002, 10, 12, 10, 15, 34), "Mjesec", 1)
Rezultat: 12.11.2002 10:15:34

12. DateDifference - funkcija je dizajnirana da dobije razliku između dva datuma.

sintaksa:
DifferenceDate(Izraz1, Izraz2, Vrsta razlike)

Opcije:

  • Izraz1(Datum). Oduzeti datum;
  • Izraz2(Datum). Originalni datum;
  • TypeDifference(Linija). Sadrži jednu od vrijednosti: Second; Minute; Sat; Dan; Mjesec; Quarter; Godina.
primjer:
DATEDIFFERENCE(DATETIME(2002, 10, 12, 10, 15, 34),
DATETIME(2002, 10, 14, 9, 18, 06), "DAN")
Rezultat: 2

13. Podniz - ova funkcija je dizajnirana da izdvoji podniz iz niza.

sintaksa:
Podniz (niz, pozicija, dužina)

Opcije:

  • Linija(Linija). Niz iz kojeg se izdvaja podniz;
  • Pozicija(Broj). Pozicija znaka iz koje počinje podniz koji se izdvaja iz niza;
  • Dužina(Broj). Dužina dodijeljenog podniza.
primjer:
SUBSTRING(Računi.Adresa, 1, 4)

14. StringLength - funkcija je dizajnirana da odredi dužinu niza.

sintaksa:
StringLength(String)

Parametar:

  • Linija(Linija). Niz čija je dužina određena.
primjer:
Linija (Counterparties.Adresa)

15. God- ova funkcija je dizajnirana da izdvoji godinu iz vrijednosti tipa datuma.

sintaksa:
godina (datum)

Parametar:

  • datum(Datum). Datum do kojeg je određena godina.
primjer:
GODINA (Trošak.Datum)

16. Kvart - ova funkcija je dizajnirana da izdvoji broj kvartala iz vrijednosti tipa datuma. Broj četvrtine se obično kreće od 1 do 4.

sintaksa:
Kvart (datum)

Parametar:

  • datum(Datum). Datum do kojeg se utvrđuje tromjesečje
primjer:
KVARTAL(Trošak.Datum)

17. Mjesec - ova funkcija je dizajnirana da izdvoji broj mjeseca iz vrijednosti tipa datuma. Broj mjeseca se obično kreće od 1 do 12.

sintaksa:
mjesec (datum)

Parametar:

  • datum(Datum). Datum do kojeg se određuje mjesec.
primjer:
MJESEC (Trošak.Datum)

18. Dan u godini (DayOfYear) - ova funkcija je dizajnirana da dobije dan u godini iz vrijednosti tipa Datum. Dan u godini se obično kreće od 1 do 365 (366).

sintaksa:
Dan u godini (datum)

Parametar:

  • datum(Datum). Datum do kojeg je određen dan u godini.
primjer:
DAYYEAR(Račun troškova.Datum)

19. Dan- ova funkcija je dizajnirana da dobije dan u mjesecu iz vrijednosti tipa Datum. Dan u mjesecu se obično kreće od 1 do 31.

sintaksa:
dan (datum)

Parametar:

  • datum(Datum). Datum do kojeg je određen dan u mjesecu.
primjer:
DAY (Trošak.Datum)

20. Sedmica - ova funkcija je dizajnirana da dobije broj sedmice u godini iz vrijednosti tipa datuma. Sedmice u godini se numerišu počevši od 1.

sintaksa:
sedmica (datum)

Parametar:

  • datum(Datum). Datum do kojeg se određuju brojevi sedmica.
primjer:
SEDMICA(Trošak.Datum)

21. WeekDay - ova funkcija je dizajnirana da dobije dan u sedmici iz vrijednosti tipa Datum. Uobičajeni dan u sedmici kreće se od 1 (ponedjeljak) do 7 (nedjelja).

sintaksa:
Dan u sedmici (datum)

Parametar:

  • datum(Datum). Datum do kojeg se određuje dan u sedmici.
primjer:
DAN U SJEDICI (Trošak.Datum)

22. Sat- ova funkcija je dizajnirana da dobije sat u danu iz vrijednosti tipa datuma. Sat u danu kreće se od 0 do 23.

sintaksa:
sat (datum)

Parametar:

  • datum(Datum). Datum do kojeg se određuje sat u danu.
primjer:
HOUR (Trošak.Datum)

23. Minuta - ova funkcija je dizajnirana da dobije minute u satu iz vrijednosti tipa datuma. Minuta u satu kreće se od 0 do 59.

sintaksa:
minuta (datum)

Parametar:

  • datum(Datum). Datum do kojeg se određuje minuta u satu.
primjer:
MINUTE(Trošak.Datum)

24. Drugo - ova funkcija je dizajnirana da dobije sekundu minute iz vrijednosti tipa datuma. Sekunda u minuti se kreće od 0 do 59.

sintaksa:
Drugi (datum)

Parametar:

  • datum(Datum). Datum do kojeg se određuju sekunde minuta.
primjer:
SECOND (Trošak.Datum)

25. Cast - ova funkcija je dizajnirana da izdvoji tip iz izraza koji može sadržavati složeni tip. Ako izraz sadrži tip koji nije potreban, bit će vraćeno NULL.

sintaksa:
Express (izraz, indikacija vrste)

Opcije:

  • Izraz- izraz koji se konvertuje;
  • Indikacija tipa(Linija). Sadrži niz tipa. Na primjer, "Broj", "String" itd. Pored primitivnih tipova, ovaj red može sadržavati naziv tabele. U ovom slučaju, pokušat će se izraziti referenca na navedenu tabelu.
primjer:
Express(Podaci.Props1, "Broj(10,3)")

26. IsNull (IsNull) - ova funkcija vraća vrijednost drugog parametra ako je vrijednost prvog parametra NULL. U suprotnom će biti vraćena vrijednost prvog parametra.

sintaksa:
IsNull(izraz1, izraz2)

Opcije:

  • Izraz1- vrijednost koju treba provjeriti;
  • Izraz2- vraća vrijednost ako je Izraz1 NULL.
primjer:
DaNULL(Iznos(Prodaja.IznosPromet), 0)

27.ACos- izračunava arc kosinus u radijanima.

sintaksa:
Acos (izraz)

Parametar:

  • Izraz(Broj). Vrijednost kosinusa (u rasponu -1 ... 1) po kojoj je kut određen.
28.ASin- izračunava arcsin u radijanima.

sintaksa:
ASin (izraz)

Parametar:

  • Izraz(Broj). Vrijednost sinusa (u rasponu -1 ... 1) po kojoj je kut određen.
29.ATan- izračunava arktangens u radijanima.

sintaksa:
ATan (izraz)

Parametar:

  • Izraz(Broj). Vrijednost tangente kojom je određen kut.
30.Cos- izračunava kosinus.

sintaksa:
Cos (izraz)

Parametar:

  • Izraz
31. Exp- podizanje broja e na stepen.

sintaksa:
Exp(Izraz)

Parametar:

  • Izraz(Broj). Značenje stepena.
32.Log- izračunava prirodni logaritam.

sintaksa:
Dnevnik (izraz)

Parametar:

  • Izraz
33.Log10- izračunava logaritam od X na osnovu 10.

sintaksa:
Log10 (izraz)

Parametar:

  • Izraz(Broj). Originalni broj je veći od 0.
34. Pow- eksponencijaliranje.

sintaksa:
Pow (baza, indikator)

Opcije:

  • Baza(Broj). Osnove operacije eksponencijacije.
  • Indeks(Broj). Eksponent.
35. Sin- izračunava sinus.

sintaksa:
grijeh (izraz)

Parametar:

  • Izraz(Broj). Navedeno u radijanima.
36. Sqrt- izračunava kvadratni korijen.

sintaksa:
Sqrt (izraz)

Parametar:

  • Izraz(Broj). Nenegativan broj.
37. Tan- izračunava tangentu.

sintaksa:
Tan (izraz)

Parametar:

  • Izraz(Broj). Vrijednost sinusa po kojoj je ugao određen.
38. Round- zaokružuje originalni broj na potrebnu dubinu bita. Režim zaokruživanja je standardni (1,5 kao 2).

sintaksa:
Env (izraz, dubina bita)

Opcije:

  • Izraz(Broj). Originalni broj;
  • Dubina bita(Broj). Broj decimalnih mjesta na koje treba zaokružiti.
39. Int- odsijeca razlomak broja.

sintaksa:
Objekt (izraz)

Parametar:

  • Izraz(Broj). Razlomak broj.
40. Funkcije zajedničkih modula

Izraz mašine za sastav podataka može sadržavati pozive funkcijama globalnih zajedničkih konfiguracijskih modula. Za pozivanje takvih funkcija nije potrebna dodatna sintaksa.

primjer:
SkraćenoNaziv(Dokumenti.Link, Dokumenti.Datum, Dokumenti.Broj)

U ovom primjeru, funkcija "AbbreviatedName" će biti pozvana iz općeg konfiguracijskog modula.
Imajte na umu da je korištenje zajedničkih funkcija modula dozvoljeno samo ako je specificiran odgovarajući parametar procesora sastava podataka.
Dodatno, funkcije zajedničkih modula ne mogu se koristiti u prilagođenim izrazima polja.

41. Zamjeranje - ova funkcija vraća string prikaz proslijeđene vrijednosti neprimitivnog tipa. Za vrijednosti primitivnog tipa, vraća samu vrijednost.

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

primjer:
Prezentacija (Counterparty)

42. String - ova funkcija pretvara proslijeđenu vrijednost u string.

Ako se kao parametar koristi niz ili tablica vrijednosti, funkcija vraća string koji sadrži string prikaz svih elemenata niza, odvojenih znakovima ";". Ako bilo koji element ima praznu reprezentaciju niza, tada string "<Пустое значение>".

primjer:
Red (Datum prodaje)

43. ValueIsFilled

Za NULL vrijednosti, Undefined uvijek vraća False.
Za Booleove vrijednosti, uvijek vraća True.
Za druge tipove, vraća True ako se vrijednost razlikuje od zadane vrijednosti za dati tip.

primjer:
ValueFilled (Datum isporuke)

44. LevelInGroup - ova funkcija dobija trenutni nivo snimanja u odnosu na grupisanje.

Može se koristiti za dobivanje razine ugniježđenja zapisa u hijerarhijskom grupisanju.

primjer:
LevelInGroup()

45. ValueType

sintaksa:
Vrsta vrijednosti (izraz)

Parametar:

  • Izraz(Linija). Vrsta vrijednosti niza.
Vraća vrijednost tipa Type koja sadrži tip vrijednosti parametra funkcije.

U svetlu predstojećeg izdanja 8.2.14, pokušaću da opišem neke nove funkcije sistema za sastavljanje podataka.

Otvorite dijagram rasporeda podataka, po mogućnosti u vanjskom izvještaju, da olakšate uređivanje.

Dodamo skup podataka tipa upita i napišemo, bilo ručno ili pomoću dizajnera upita, jednostavan upit:

1. Postavite zahtjev u sistemu kontrole pristupa.

2. Podesite izračunata polja u sistemu kontrole pristupa

3. Konfigurirajte raspored podataka na kartici postavki

4. Pokrenite 1C Enterprise 8.2.14. Otvorite izvještaj. Formiramo, primamo.

Opis samih novih funkcija:

1. Trenutni datum()

Vraća sistemski datum. Prilikom sastavljanja izgleda izgleda, u svim izrazima koji su prisutni u rasporedu, funkcija CurrentDate() se zamjenjuje vrijednošću trenutnog datuma.

2. COMPUTEEXPRESSION()

sintaksa:

IzračunajIzraz(<Выражение>, <Группировка>, <ОбластьВычисления>, <Начало>, <Конец>, <Сортировка>, <ИерархическаяСортировка>, <ОбработкаОдинаковыхЗначенийПорядка>)

Opis:

Funkcija je dizajnirana da procijeni izraz 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 te grupe. Na primjer, u odabiru grupe Nomenklatura, ne možete koristiti izraz CalculateExpression("Sum(SumTurnover)", "TotalTotal") > 1000. Ali takav izraz se može koristiti u hijerarhijskoj selekciji.

Ako završni zapis prethodi početnom, onda se smatra da ne postoje zapisi za izračunavanje detaljnih podataka i izračunavanje agregatnih funkcija.

Prilikom izračunavanja intervalnih izraza za ukupni zbroj (parametar Grupiranje je postavljen na GrandTotal), pretpostavlja se da ne postoje zapisi za izračunavanje detaljnih podataka i izračunavanje agregatnih funkcija.

Prilikom generiranja izraza za funkciju CalculateExpression, sastavljač izgleda, ako izraz za naručivanje sadrži polja koja se ne mogu koristiti u grupisanju, zamjenjuje funkciju CalculateExpression sa NULL.

Opcije

<Выражение>

Vrsta: String. Izraz koji se vrednuje.

<Группировка>

Vrsta: String. Sadrži naziv grupiranja u čijem kontekstu treba procijeniti izraz. Ako se kao ime grupisanja koristi prazan niz, proračun će se izvršiti u kontekstu trenutnog grupisanja. Ako se kao naziv grupe koristi string GrandTotal, izračunavanje će se izvršiti u kontekstu ukupnog zbroja. U suprotnom, proračun će se izvršiti u kontekstu nadređene grupe sa istim imenom.

Na primjer:

Zbroj (Prodaja.Ukupan promet)/Izračunaj(“Zbroj(Prodaja.Ukupan promet)”, “Ukupno”)

U ovom primjeru, rezultat će biti omjer iznosa za polje Sales.SumTurnover zapisa grupisanja prema iznosu istog polja u cijelom izgledu;

<ОбластьВычисления>

Vrsta: String. Parametar može imati sljedeće vrijednosti:

  • GeneralTotal - izraz će se izračunati za sve grupne zapise.
  • Hijerarhija - Izraz će biti procijenjen za roditeljski hijerarhijski zapis ako ga postoji, a za cijelo grupisanje ako ne postoji roditeljski hijerarhijski zapis.
  • Grupisanje - izraz će biti procijenjen za trenutni zapis grupisanja.
  • Grupiranje bez resursa - kada se izračunava funkcija za grupni zapis po resursu, izraz će se procijeniti za prvi grupni zapis originalnog grupiranja.

Prilikom izračunavanja funkcije IzračunajIzraz() sa vrijednošću Non-Resource Grouping za grupne zapise koji nisu grupiranje resursa, funkcija se izračunava na isti način kao što bi se izračunala da je vrijednost parametra jednaka vrijednosti grupiranja.

Graditelj rasporeda sastava podataka, kada generira raspored sastava podataka prilikom izlaza polja resursa pomoću kojeg se vrši grupisanje u izgled, postavlja izraz u izgled koji se izračunava pomoću funkcije IzračunajIzraz(), što označava parametar Grupiranje bez resursa. Za druge resurse, uobičajeni izrazi resursa se stavljaju u grupiranje resursa.

<Начало>

Vrsta: String. Označava od kojeg zapisa treba početi fragment, u kojem se agregatne izrazne funkcije treba izračunati i iz kojeg zapisa treba dobiti vrijednosti polja izvan agregatnih funkcija. Vrijednost može biti jedna od sljedećih:

<Конец>

Vrsta: String. Označava na koji zapis treba nastaviti fragment, u kojem treba izračunati agregatne funkcije izraza. Vrijednost može biti jedna od sljedećih:

  • Prvo. Potrebno je pribaviti prvi zapis grupisanja. Nakon riječi u zagradama možete odrediti izraz čiji će se rezultat koristiti kao pomak od početka grupiranja. Rezultirajuća vrijednost mora biti cijeli broj veći od nule. Na primjer, First(3) – primanje trećeg zapisa od početka grupisanja.

Ako je prvi zapis izvan grupisanja, onda se smatra da nema zapisa. Na primjer, ako postoje 3 zapisa, a želite da dobijete First(4), onda se smatra da nema zapisa.

  • Last. Morate dobiti posljednji zapis o grupisanju. Nakon riječi u zagradama možete odrediti izraz čiji će se rezultat koristiti kao pomak od kraja grupisanja. Rezultirajuća vrijednost mora biti cijeli broj veći od nule. Na primjer, Last(3) – primanje trećeg zapisa s kraja grupe.

Ako je posljednji zapis izvan grupisanja, smatra se da nema zapisa. Na primjer, ako postoje 3 zapisa, a želite da dobijete Last(4), onda se smatra da nema zapisa.

  • Prethodno. Morate dobiti prethodni zapis o grupisanju. Nakon riječi u zagradama, možete odrediti izraz čiji će se rezultat koristiti kao pomak u odnosu na trenutni grupni zapis. Na primjer, Prethodno(2) – dobijanje prethodnog iz prethodnog zapisa.

Ako prethodni zapis ide dalje od grupisanja (na primjer, za drugi zapis grupisanja trebate dobiti Previous(3), tada se dobija prvi zapis grupisanja.

Prilikom preuzimanja prethodnog zapisa za zbroj grupiranja, smatra se da je dobijen prvi zapis.

  • Sljedeći. Morate dobiti sljedeći zapis grupisanja. Nakon riječi u zagradama, možete odrediti izraz čiji će se rezultat koristiti kao pomak naprijed od trenutnog grupnog zapisa. Na primjer, Next(2) – dobivanje sljedećeg iz sljedećeg zapisa.

Ako sljedeći zapis ide dalje od grupiranja, smatra se da zapisa nema. Na primjer, ako postoje 3 zapisa i Next() je primljen za treći zapis, onda se smatra da nema zapisa.

Kada se primi sljedeći zapis za ukupno grupisanje, smatra se da nema zapisa.

  • Current. Morate dobiti trenutni rekord.

Prilikom preuzimanja za zbir grupiranja, dobiva se prvi zapis.

  • BoundaryValue. Potreba da se dobije zapis po navedenoj vrijednosti. Nakon riječi LimitingValues ​​u zagradama, trebate naznačiti izraz s čijom vrijednošću želite započeti fragment, prvo polje za redoslijed.

Prvi zapis čija je vrijednost polja za redoslijed veća ili jednaka navedenoj vrijednosti će biti vraćena kao zapis. Na primjer, ako se polje Period koristi kao polje za narudžbu i ima vrijednosti 01/01/2010, 02/01/2010, 03/01/2010 i želite da dobijete LimitingValue(DateTime(2010 , 1, 15)), tada će se dobiti zapisnik sa datumom 02/01. 2010.

<Сортировка>

Vrsta: String. Navodi izraze, odvojene zarezima, koji opisuju pravila uređenja. Ako nije navedeno, tada se poredak izvodi na isti način kao i za grupisanje za koje se izraz procjenjuje. Nakon svakog izraza možete navesti ključne riječi Uzlazno (za redoslijed u rastućem redoslijedu), Descending (za redoslijed u opadajućem redoslijedu) i AutoOrder (za redoslijed referentnih polja prema poljima po kojima želite poredati referencirani objekt). Riječ Auto Order može se koristiti i sa riječju Uzlazno i ​​Opadajuće.

<ИерархическаяСортировка>

Vrsta: String. Isto kao i opcija Sortiraj. Koristi se za organiziranje hijerarhijskih zapisa. Ako nije navedeno, sastavljač izgleda generira redoslijed prema redoslijedu navedenom u parametru Sort.

<ОбработкаОдинаковыхЗначенийПорядка>

Vrsta: String. Određuje pravilo za određivanje prethodnog ili sljedećeg zapisa u slučaju da postoji nekoliko zapisa s istom vrijednošću:

  • Odvojeno znači da se niz uređenih zapisa koristi za određivanje prethodnog i sljedećeg zapisa. Zadana vrijednost.
  • Zajedno znači da se prethodni i sljedeći zapis određuju na osnovu vrijednosti izraza za narudžbu.

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

datum Puno ime Značenje
1 1. januara 2001 Ivanov M. 10
2 2. januara 2001 Petrov S. 20
3 3. januara 2001 Sidorov R. 30
4 04. januara 2001 Petrov S. 40

Ako je vrijednost parametra odvojeno, tada:

§ prethodni unos za unos 3 će biti unos 2.

§ ako je fragment proračuna definisan kao Current, Current (respektivno, parametri Start i End), tada će se za zapis 2 ovaj fragment sastojati od jednog zapisa 2. Izraz CalculateExpression(“Sum (Value)”, Current, Current) će biti jednako 20.

Ako je vrijednost parametra Zajedno, tada:

§ prethodni unos za unos 3 će biti unos 1.

§ ako je fragment proračuna definisan kao Current, Current (respektivno, parametri Početak i Kraj), tada će se za zapis 2 ovaj fragment sastojati od zapisa 2 i 3. Izraz CalculateExpression(“Sum (Value)”, Current, Current) biće jednako 50.

Kada specificirate vrijednost parametra jednaku Together, u parametrima Start i End ne možete specificirati pomak za pozicije First, Last, Previous, Next.

CalculateExpression(“Sum(SumTurnover)”, “Prvi”, “Trenutni”)

Ako želite da dobijete vrednost grupisanja u prethodnom redu, možete koristiti sledeći izraz:

CalculateExpression(“Ocijeni”, “Prethodno”)

Lista novo funkcije:

CalculateExpressionWithGroupArray(<Выражение>, <ВыражениеПолейГруппировки>, <ОтборЗаписей>, <ОтборГруппировок>) –

Funkcija vraća niz, čiji svaki element sadrži rezultat evaluacije izraza za grupisanje prema navedenom polju.

CalculateExpressionWithGroupValueTable(<Выражения>, <ВыражениеПолейГруппировки>, <ОтборЗаписей>, <ОтборГруппировок>) –

Funkcija vraća tablicu vrijednosti, čiji svaki red sadrži rezultat evaluacije izraza za grupisanje prema navedenom polju

ValueFilled(<Выражение>) – Vraća True ako je vrijednost drugačija od zadane vrijednosti ovog tipa, osim NULL, osim prazne reference, osim Undefined. Logičke vrijednosti se provjeravaju na NULL. Stringovi se provjeravaju na odsustvo znakova koji nisu razmak

Format(<Выражение>, <Форматная строка>) – Primite formatirani niz proslijeđene vrijednosti. Niz formata je postavljen u skladu sa nizom formata sistema 1C:Enterprise.

Podniz(<Выражение>, <Начальные символ>, <ДлинаПодстроки>) – Ova funkcija je dizajnirana da izdvoji podniz iz niza.

Dužina linije(<Выражение>) – Funkcija je dizajnirana da odredi dužinu niza. Parametar - string izraz

Linija(<Выражение>) – Ako je niz proslijeđen kao parametar, funkcija vraća string koji sadrži nizove reprezentacija svih elemenata niza, odvojene znakovima “; “. Ako je tablica vrijednosti proslijeđena kao parametar, funkcija vraća string koji sadrži nizove reprezentacija svih redova tablice vrijednosti, s prikazom ćelija svakog reda odvojenim znakovima “; “, a linije su simbol za pomicanje reda. Ako bilo koji element ima praznu reprezentaciju niza, tada se string prikazuje umjesto njegovog prikaza<Пустое значение>.

Sistemski jezik za sastavljanje podataka

Jezik izraza sistema za sastav podataka dizajniran je za pisanje izraza koji se koriste u različitim dijelovima sistema.

Izrazi se koriste u sljedećim podsistemima:

  • dijagram rasporeda podataka - za opisivanje izračunatih polja, ukupnih polja, izraza veze, itd.;
  • postavke rasporeda podataka - za opisivanje prilagođenih izraza polja;
  • raspored podataka - za opisivanje izraza za povezivanje skupova podataka, opisivanje parametara rasporeda itd.

Literali

Izraz može sadržavati literale. Moguće su sljedeće vrste literala:

  • Line;
  • Broj;
  • Datum;
  • Boolean.

Linija

Literal stringa se piše u znakovima "", na primjer:

“String literal”

Ako trebate koristiti znak “” unutar literala stringa, trebali biste koristiti dva takva znaka.

Na primjer:

„Doslovno „„pod navodnicima“““

Broj

Broj se piše bez razmaka, u decimalnom formatu. Razlomak se odvaja simbolom "." Na primjer:

10.5 200

datum

Literal datuma se piše pomoću ključnog literala DATETIME. Nakon ove ključne riječi, godina, mjesec, dan, sati, minute, sekunde su navedeni u zagradama, odvojeni zarezima. Specifikacija vremena nije potrebna.

Na primjer:

DATETIME(1975, 1, 06) – 6. januar 1975. DATUM (2006, 12, 2, 23, 56, 57) – 2. decembar 2006., 23 sata 56 minuta 57 sekundi, 23 sata 56 minuta 57 sekundi

Boolean

Booleove vrijednosti se mogu napisati pomoću literala True (True), False (False).

Značenje

Za specificiranje literala drugih tipova (sistemske enumeracije, unaprijed definirani podaci), koristi se ključna riječ Vrijednost, praćena imenom literala u zagradama.

Vrijednost (Tip računa. Aktivan)

Operacije na brojevima

unarno –

Ova operacija ima za cilj promjenu predznaka broja u suprotan predznak. Na primjer:

Sales.Quantity

Unary +

Ova operacija ne izvodi nikakve radnje na broju. Na primjer:

Sales.Quantity

binarni -

Ova operacija je namijenjena za izračunavanje razlike dva broja. Na primjer:

ResidualsAndTurnovers.InitialRemaining – RemainingsAndTurnovers.FinalResidualsRemainingsAndTurnovers.InitialRemaining - 100 400 – 357

Binarno +

Ova operacija je dizajnirana da izračuna zbir dva broja. Na primjer:

RemainingsAndTurnover.InitialRemaining + RemainingAndTurnover.Ortover ResiduesAndTurnover.InitialRemaining + 100 400 + 357

Posao

Ova operacija je dizajnirana za izračunavanje proizvoda dva broja. Na primjer:

Nomenklatura.Cijena * 1,2 2 * 3.14

Division

Ova operacija je dizajnirana da dobije rezultat dijeljenja jednog operanda drugim. Na primjer:

Nomenklatura.Cijena / 1.2 2 / 3.14

Ostatak divizije

Ova operacija je dizajnirana da dobije ostatak kada se jedan operand podijeli s drugim. Na primjer:

Nomenklatura Cijena % 1,2 2 % 3.14

Operacije sa stringovima

Konkatenacija (binarni +)

Ova operacija je dizajnirana za spajanje dva niza. Na primjer:

Nomenklatura.Član + “: ”+ Nomenklatura.Naziv

Sviđa mi se

Ova operacija provjerava da li niz odgovara proslijeđenom uzorku.

Vrijednost operatora LIKE je TRUE ako je vrijednost<Выражения>zadovoljava obrazac, a u suprotnom FALSE.

Sljedeći likovi u<Строке_шаблона>imaju značenje drugačije od samo drugog znaka u retku:

  • % - procenat: niz koji sadrži nula ili više proizvoljnih znakova;
  • _ - donja crta: jedan proizvoljan znak;
  • […] - jedan ili više znakova u uglastim zagradama: jedan znak, bilo koji od onih navedenih u uglastim zagradama. Nabrajanje može sadržavati opsege, na primjer a-z, što znači proizvoljan znak uključen u raspon, uključujući krajeve raspona;
  • [^...] - u uglastim zagradama ikona negacije praćena jednim ili više znakova: bilo koji znak osim onih navedenih iza ikone negacije;

Bilo koji drugi simbol označava sam sebe i ne nosi nikakav dodatni teret. Ako jedan od navedenih znakova treba biti napisan kao sam, onda mu mora prethoditi<Спецсимвол>, navedeno iza ključne riječi SPECIAL CHARACTER (ESCAPE).

Na primjer, šablon

“%ABV[abvg]\_abv%” POSEBNI KARAKTER “\”

označava podniz koji se sastoji od niza znakova: slovo A; slova B; slova B; jedna cifra; jedno od slova a, b, c ili d; donja crta; slova a; slova b; slova v. Štaviše, ovaj niz se može locirati počevši od proizvoljne pozicije u liniji.

Operacije poređenja

Jednako

Ova operacija ima za cilj da uporedi dva operanda radi jednakosti. Na primjer:

Sales.Counterparty = Sales.NomenclatureMainSupplier

Nije jednako

Ova operacija ima za cilj da uporedi dva operanda za nejednakost. Na primjer:

Sales.Counterparty<>Sales.NomenclatureMainSupplier

Manje

Ova operacija je dizajnirana da provjeri da li je prvi operand manji od drugog. Na primjer:

SalesCurrent.Amount< ПродажиПрошлые.Сумма

Više

Ova operacija je dizajnirana da provjeri da li je prvi operand veći od drugog. Na primjer:

SalesCurrent.Sum > SalesPast.Sum

Manje ili jednako

Ova operacija je dizajnirana da provjeri da li je prvi operand manji ili jednak drugom. Na primjer:

SalesCurrent.Amount<= ПродажиПрошлые.Сумма

Više ili jednako

Ova operacija je dizajnirana da provjeri da li je prvi operand veći ili jednak drugom. Na primjer:

SalesCurrent.Amount >= SalesPast.Amount

Operacija B

Ova operacija provjerava prisutnost vrijednosti u proslijeđenoj listi vrijednosti. Rezultat operacije će biti True ako je vrijednost pronađena, ili False u suprotnom. Na primjer:

Stavka B (&Proizvod1, &Proizvod2)

Operacija provjere prisutnosti vrijednosti u skupu podataka

Operacija provjerava prisutnost vrijednosti u navedenom skupu podataka. Skup podataka za validaciju mora sadržavati jedno polje. Na primjer:

Prodaja. Counterparty To Counterparties

Operacija provjere vrijednosti za NULL

Ova operacija vraća True ako je vrijednost NULL. Na primjer:

Sales.Counterparty JE NULL

Operacija provjere vrijednosti za NULL nejednakost

Ova operacija vraća True ako vrijednost nije NULL. Na primjer:

Prodaja.Druga strana NIJE NULL

Logičke operacije

Logičke operacije prihvataju izraze tipa Boolean kao operande.

Operacija NE

Operacija NOT vraća True ako je njen operand False i False ako je njen operand Tačan. Na primjer:

NOT Document.Consignee = Dokument.Pošiljalac

Operacija I

Operacija AND vraća True ako su oba operanda Tačna, i False ako je jedan od operanda False. Na primjer:

Document.Consignee = Document.Consignor I Document.Consignee = &Counterparty

OR operacija

Operacija OR vraća True ako je jedan od njenih operanada Tačan, i False ako su oba operanda False. Na primjer:

Document.Consignee = Document.Consignor OR Document.Consignee = &Counterparty

Agregatne funkcije

Agregatne funkcije izvode neku radnju na skupu podataka.

Suma

Agregatna funkcija Sum izračunava zbir vrijednosti izraza koji su joj proslijeđeni kao argument za sve zapise detalja. Na primjer:

Iznos(Prodaja.IznosPromet)

Količina

Funkcija Count izračunava broj vrijednosti koje nisu NULL. Na primjer:

Količina (Sales.Counterparty)

Broj različitih

Ova funkcija izračunava broj različitih vrijednosti. Na primjer:

Količina (razne prodaje.Counterparty)

Maksimum

Funkcija dobiva maksimalnu vrijednost. Na primjer:

Maksimum (preostalo. Količina)

Minimum

Funkcija dobiva minimalnu vrijednost. Na primjer:

Minimum (preostalo. Količina)

Prosjek

Funkcija dobiva prosjek vrijednosti koje nisu NULL. Na primjer:

Prosjek (preostalo. Količina)

Ostale operacije

Operacija SELECT

Operacija Select je namijenjena odabiru jedne od nekoliko vrijednosti kada su ispunjeni određeni uvjeti. Na primjer:

Odaberite Kada iznos > 1000, zatim iznos inače 0 Kraj

Pravila za poređenje dvije vrijednosti

Ako se vrste vrijednosti koje se uspoređuju razlikuju jedna od druge, tada se odnosi između vrijednosti određuju na osnovu prioriteta tipova:

  • NULL (najniže);
  • Boolean;
  • Broj;
  • Datum;
  • Line;
  • Referentni tipovi

Odnosi između različitih tipova referenci određuju se na osnovu referentnih brojeva tabela koje odgovaraju određenom tipu.

Ako su tipovi podataka isti, tada se vrijednosti uspoređuju prema sljedećim pravilima:

  • za Boolean tip vrijednost TRUE je veća od vrijednosti FALSE;
  • tip Broj ima uobičajena pravila poređenja brojeva;
  • za tip Datuma, raniji datumi su manji od kasnijih;
  • za tip String - poređenje stringova u skladu sa utvrđenim nacionalnim karakteristikama baze podataka;
  • referentni tipovi se upoređuju na osnovu njihovih vrijednosti (broj zapisa itd.).

Rad sa NULL vrijednošću

Svaka operacija u kojoj je jedan od operanada NULL će proizvesti NULL rezultat.

Postoje izuzeci:

  • Operacija AND će vratiti NULL samo ako nijedan od operanada nije False;
  • Operacija OR će samo vratiti NULL ako nijedan od njenih operanada nije Tačan.

Operativni prioriteti

Operacije imaju sljedeće prioritete (prvi red ima najniži prioritet):

  • B, JE NULL, NIJE NULL;
  • =, <>, <=, <, >=, >;
  • Binarno +, Binarno – ;
  • *, /, %;
  • Unary +, Unary -.

Funkcije jezika za sastavljanje podataka sistema ekspresije

Izračunati

Funkcija Calculate je dizajnirana da izračuna izraz u kontekstu određene grupe. Funkcija ima sljedeće parametre:

  • Izraz. Tip String. Sadrži izračunati izraz;
  • Grupisanje. Tip String. Sadrži naziv grupiranja u čijem kontekstu treba procijeniti izraz. Ako se kao ime grupisanja koristi prazan niz, proračun će se izvršiti u kontekstu trenutnog grupisanja. Ako se kao naziv grupe koristi string GrandTotal, izračunavanje će se izvršiti u kontekstu ukupnog zbroja. U suprotnom, proračun će se izvršiti u kontekstu nadređene grupe sa istim imenom. Na primjer:
Zbroj(Prodaja.Ukupan promet) / Izračunaj("Zbroj(Prodaja.Ukupan promet)", "Ukupno")

U ovom primjeru, rezultat će biti omjer iznosa za polje "Sales.AmountTurnover" zapisa grupisanja prema iznosu istog polja u cijelom izgledu.

Nivo

Funkcija je dizajnirana da dobije trenutni nivo snimanja.

Nivo()

NumberInOrder

Uzmite sljedeći redni broj.

Broj po narudžbi()

NumberInOrderInGrouping

Vraća sljedeći redni broj u trenutnoj grupi.

BrojByOrderInGroup()

Format

Dobijte formatirani niz proslijeđene vrijednosti.

Niz formata je postavljen u skladu sa nizom formata 1C:Enterprise.

Opcije:

  • Značenje;
  • Format string.

Format (Računi. Iznos dokumenta, "NPV=2")

Početak perioda

Opcije:

    • Minute;
    • Dan;
    • Sedmica;
    • Mjesec;
    • Quarter;
    • Decenija;
    • Pola godine.

Početni period(DatumVrijeme(2002, 10, 12, 10, 15, 34), "Mjesec")

rezultat:

01.10.2002 0:00:00

Kraj perioda

Funkcija je dizajnirana da izdvoji određeni datum iz datog datuma.

Opcije:

  • Datum. Unesite datum. Navedeni datum;
  • Tip perioda. Tip String. Sadrži jednu od sljedećih vrijednosti:
    • Minute;
    • Dan;
    • Sedmica;
    • Mjesec;
    • Quarter;
    • Decenija;
    • Pola godine.

EndPeriod(DatumTime(2002, 10, 12, 10, 15, 34), "Sedmica")

rezultat:

13.10.2002 23:59:59

AddToDate

Funkcija je dizajnirana da doda određenu vrijednost datumu.

Opcije:

  • Vrsta uvećanja. Tip String. Sadrži jednu od sljedećih vrijednosti:
    • Minute;
    • Dan;
    • Sedmica;
    • Mjesec;
    • Quarter;
    • Decenija;
    • Pola godine.
  • Iznos – za koliko trebate povećati datum. Tip broj. Razlomački dio se zanemaruje.

AddToDate(DateTime(2002, 10, 12, 10, 15, 34), "Mjesec", 1)

rezultat:

12.11.2002 10:15:34

Razlika u datumu

Funkcija je dizajnirana da dobije razliku između dva datuma.

Opcije:

  • Izraz. Unesite datum. Originalni datum;
  • Izraz. Unesite datum. Oduzeti datum;
  • Vrsta razlike. Tip String. Sadrži jednu od sljedećih vrijednosti:
    • Sekunda;
    • Minute;
    • Dan;
    • Mjesec;
    • Quarter;

DATEDIFERENCE(DATETIME(2002, 10, 12, 10, 15, 34), DATETIME(2002, 10, 14, 9, 18, 06), "DAN")

rezultat:

Podniz

Ova funkcija je dizajnirana da izdvoji podniz iz niza.

Opcije:

  • Linija. Tip String. Niz iz kojeg se izdvaja podniz;
  • Pozicija. Tip broj. Pozicija znaka iz koje počinje podniz koji se izdvaja iz niza;
  • Dužina. Tip broj. Dužina dodijeljenog podniza.

SUBSTRING(Računi.Adresa, 1, 4)

Dužina linije

Funkcija je dizajnirana da odredi dužinu niza.

Parametar:

  • Linija. Tip String. Niz čija je dužina određena.

Linija (Counterparties.Adresa)

Godina

Ova funkcija je dizajnirana da izdvoji godinu iz vrijednosti tipa datuma.

Parametar:

  • Datum. Unesite datum. Datum do kojeg je određena godina.

GODINA (Trošak.Datum)

Kvart

Ova funkcija je dizajnirana da izdvoji broj četvrtine iz vrijednosti tipa datuma. Broj četvrtine se obično kreće od 1 do 4.

Parametar

  • Datum. Unesite datum. Datum do kojeg se utvrđuje tromjesečje
KVARTAL(Trošak.Datum)

Mjesec

Ova funkcija je dizajnirana da izdvoji broj mjeseca iz vrijednosti tipa datuma. Broj mjeseca se obično kreće od 1 do 12.

  • Datum. Unesite datum. Datum do kojeg se određuje mjesec.
MJESEC (Trošak.Datum)

Dan u godini

Ova funkcija je dizajnirana da dobije dan u godini iz vrijednosti tipa Datum. Dan u godini se obično kreće od 1 do 365 (366).

  • Datum. Unesite datum. Datum do kojeg je određen dan u godini.
DAYYEAR(Račun troškova.Datum)

Dan

Ova funkcija je dizajnirana da dobije dan u mjesecu iz vrijednosti tipa Datum. Dan u mjesecu se obično kreće od 1 do 31.

  • Datum. Unesite datum. Datum do kojeg je određen dan u mjesecu.
DAY (Trošak.Datum)

Sedmica

Ova funkcija je dizajnirana da dobije broj sedmice u godini iz vrijednosti tipa datuma. Sedmice u godini se numerišu počevši od 1.

  • Datum. Unesite datum. Datum do kojeg se određuju brojevi sedmica.
SEDMICA(Trošak.Datum)

Dan u tjednu

Ova funkcija je dizajnirana da dobije dan u sedmici iz vrijednosti tipa Datum. Uobičajeni dan u sedmici kreće se od 1 (ponedjeljak) do 7 (nedjelja).

  • Datum. Unesite datum. Datum do kojeg se određuje dan u sedmici.
DAN U SJEDICI (Trošak.Datum)

Sat

Ova funkcija je dizajnirana da dobije sat u danu iz vrijednosti tipa datuma. Sat u danu kreće se od 0 do 23.

  • Datum. Unesite datum. Datum do kojeg se određuje sat u danu.
HOUR (Trošak.Datum)

Minuta

Ova funkcija je dizajnirana da dobije minute u satu iz vrijednosti tipa datuma. Minuta u satu kreće se od 0 do 59.

  • Datum. Unesite datum. Datum do kojeg se određuje minuta u satu.
MINUTE(Trošak.Datum)

Sekunda

Ova funkcija je dizajnirana da dobije sekundu minute iz vrijednosti tipa datuma. Sekunda u minuti se kreće od 0 do 59.

  • Datum. Unesite datum. Datum do kojeg se određuju sekunde minuta.
SECOND (Trošak.Datum)

Express

Ova funkcija je dizajnirana da izdvoji tip iz izraza koji može sadržavati složeni tip. Ako izraz sadrži tip koji nije potreban, bit će vraćeno NULL.

Opcije:

  • Izraz za pretvaranje;
  • Indikacija tipa. Tip String. Sadrži niz tipa. Na primjer, "Broj", "String" itd. Pored primitivnih tipova, ovaj red može sadržavati naziv tabele. U ovom slučaju, pokušat će se izraziti referenca na navedenu tabelu.

Express(Podaci.Props1, "Broj(10,3)")

IsNull

Ova funkcija vraća vrijednost drugog parametra ako je vrijednost prvog parametra NULL.

U suprotnom će biti vraćena vrijednost prvog parametra.

DaNULL(Iznos(Prodaja.IznosPromet), 0)

Funkcije zajedničkih modula

Izraz mašine za sastav podataka može sadržavati pozive funkcijama globalnih zajedničkih konfiguracijskih modula. Za pozivanje takvih funkcija nije potrebna dodatna sintaksa.

U ovom primjeru, funkcija "AbbreviatedName" će biti pozvana iz općeg konfiguracijskog modula.

Imajte na umu da je korištenje zajedničkih funkcija modula dozvoljeno samo ako je specificiran odgovarajući parametar procesora sastava podataka.

Dodatno, funkcije zajedničkih modula ne mogu se koristiti u prilagođenim izrazima polja.

Sadržaj
1 Jezik izraza sistema kompozicije podataka
2 Literala
2.1 String
2.2 Broj
2.3 Datum
2.4 Boolean
2.5 Značenje
3 Operacije nad brojevima
3.1 Unarno –
3.2 Unarni +
3.3 Binarno -
3.4 Binarno+
3.5 Rad
3.6 Podjela
3.7 Ostatak
4 Operacije niza
4.1 Povezivanje (binarni +)
4.2 Slično
5 Operacije poređenja
5.1 Jednako
5.2 Nije jednako
5.3 Manje
5.4 Više
5.5 Manje ili jednako
5.6 Veće ili jednako
5.7 Operacija B
5.8 Operacija provjere prisutnosti vrijednosti u skupu podataka
5.9 Operacija provjere vrijednosti za NULL
5.10 Operacija provjere vrijednosti za NULL nejednakost
6 Logičke operacije
6.1 Rad NE
6.2 Operacija I
6.3 ILI rad
7 Agregatne funkcije
7.1 Iznos
7.2 Količina
7.3 Broj različitih
7.4 Maksimum
7.5 Minimum
7.6 Prosjek
8 Ostale operacije
8.1 SELECT operacija
9 Pravila za poređenje dvije vrijednosti
10 Rad sa NULL vrijednošću
11 Operativni prioriteti
12 Funkcije jezika izraza sistema kompozicije podataka
12.1 Izračunajte
12.2 Nivo
12.3 NumberInOrder
12.4 Broj u redoslijedu u grupisanju
12.5 Format
12.6 Početak perioda
12.7 Kraj perioda
12.8 AddToDate
12.9 Razlika u datumu
12.10 Podniz
12.11 Dužina linije
12.12 God
12.13 Kvart
12.14 Mjesec
12.15 Dan u godini
12.16 Dan
12.17 Sedmica
12.18 Dan u sedmici
12.19 sati
12.20 minut
12.21 Drugo
12.22 Express
12.23 YesNull
12.24 Funkcije zajedničkih modula

Sistemski jezik za sastavljanje podataka

Jezik izraza sistema za sastav podataka dizajniran je za pisanje izraza koji se koriste u različitim dijelovima sistema.

Izrazi se koriste u sljedećim podsistemima:

  • dijagram rasporeda podataka - za opisivanje izračunatih polja, ukupnih polja, izraza veze, itd.;
  • postavke rasporeda podataka - za opisivanje prilagođenih izraza polja;
  • raspored podataka - za opisivanje izraza za povezivanje skupova podataka, opisivanje parametara rasporeda itd.

Literali

Izraz može sadržavati literale. Moguće su sljedeće vrste literala:

  • Line;
  • Broj;
  • Datum;
  • Boolean.

Linija

Literal stringa se piše u znakovima "", na primjer:

“String literal”


Ako trebate koristiti znak “” unutar literala stringa, trebali biste koristiti dva takva znaka.

Na primjer:

„Doslovno „„pod navodnicima“““

Broj

Broj se piše bez razmaka, u decimalnom formatu. Razlomak se odvaja simbolom "." Na primjer:

datum

Literal datuma se piše pomoću ključnog literala DATETIME. Nakon ove ključne riječi, godina, mjesec, dan, sati, minute, sekunde su navedeni u zagradama, odvojeni zarezima. Specifikacija vremena nije potrebna.

Na primjer:
DATUM VRIJEME (1975, 1, 06) – 6. januar 1975
DATUM VRIJEME (2006, 12, 2, 23, 56, 57) – 2. decembar 2006., 23 sata 56 minuta 57 sekundi, 23 sata 56 minuta 57 sekundi

Boolean

Booleove vrijednosti se mogu napisati pomoću literala True (True), False (False).

Značenje

Za specificiranje literala drugih tipova (sistemske enumeracije, unaprijed definirani podaci), koristi se ključna riječ Vrijednost, praćena imenom literala u zagradama.
Vrijednost (Tip računa. Aktivan)

Operacije na brojevima

unarno –

Ova operacija ima za cilj promjenu predznaka broja u suprotan predznak. Na primjer:
-Prodaja. Količina

Unary +

Ova operacija ne izvodi nikakve radnje na broju. Na primjer:
+Prodaja.Količina

binarni -

Ova operacija je namijenjena za izračunavanje razlike dva broja. Na primjer:
RemainsAndTurnover.InitialRemainder – RemainsAndTurnover.FinalRemainder
RemainsAndTurnover.InitialRemaining - 100
400 – 357

Binarno +

Ova operacija je dizajnirana da izračuna zbir dva broja. Na primjer:
RemainsAndTurnover.InitialRemaining + RemainsAndTurnover.Turnover
RemainsAndTurnover.InitialRemaining + 100
400 + 357

Posao

Ova operacija je dizajnirana za izračunavanje proizvoda dva broja. Na primjer:
Nomenklatura.Cijena * 1.2
2 * 3.14

Division

Ova operacija je dizajnirana da dobije rezultat dijeljenja jednog operanda drugim. Na primjer:
Nomenklatura.Cijena / 1.2
2 / 3.14

Ostatak divizije

Ova operacija je dizajnirana da dobije ostatak kada se jedan operand podijeli s drugim. Na primjer:
Nomenklatura.Cijena% 1.2
2 % 3.14

Operacije sa stringovima

Konkatenacija (binarni +)

Ova operacija je dizajnirana za spajanje dva niza. Na primjer:
Nomenklatura.Član + “: ”+ Nomenklatura.Naziv

Sviđa mi se

Ova operacija provjerava da li niz odgovara proslijeđenom uzorku.

Vrijednost operatora LIKE je TRUE ako je vrijednost<Выражения>zadovoljava obrazac, a u suprotnom FALSE.

Sljedeći likovi u<Строке_шаблона>imaju značenje drugačije od samo drugog znaka u retku:

  • % - procenat: niz koji sadrži nula ili više proizvoljnih znakova;
  • _ - donja crta: jedan proizvoljan znak;
  • […] - jedan ili više znakova u uglastim zagradama: jedan znak, bilo koji od onih navedenih u uglastim zagradama. Nabrajanje može sadržavati opsege, na primjer a-z, što znači proizvoljan znak uključen u raspon, uključujući krajeve raspona;
  • [^...] - u uglastim zagradama ikona negacije praćena jednim ili više znakova: bilo koji znak osim onih navedenih iza ikone negacije;

Bilo koji drugi simbol označava sam sebe i ne nosi nikakav dodatni teret. Ako jedan od navedenih znakova treba biti napisan kao sam, onda mu mora prethoditi<Спецсимвол>, navedeno iza ključne riječi SPECIAL CHARACTER (ESCAPE).

Na primjer, šablon
“%ABV[abvg]\_abv%” POSEBNI KARAKTER “\”

označava podniz koji se sastoji od niza znakova: slovo A; slova B; slova B; jedna cifra; jedno od slova a, b, c ili d; donja crta; slova a; slova b; slova v. Štaviše, ovaj niz se može locirati počevši od proizvoljne pozicije u liniji.

Operacije poređenja

Jednako

Ova operacija ima za cilj da uporedi dva operanda radi jednakosti. Na primjer:
Sales.Counterparty = Sales.NomenclatureMainSupplier

Nije jednako

Ova operacija ima za cilj da uporedi dva operanda za nejednakost. Na primjer:
Prodaja, prodaja druge strane, nomenklatura Glavni dobavljač

Manje

Ova operacija je dizajnirana da provjeri da li je prvi operand manji od drugog. Na primjer:
SalesCurrent.Amount

Više

Ova operacija je dizajnirana da provjeri da li je prvi operand veći od drugog. Na primjer:
SalesCurrent.Sum > SalesPast.Sum

Manje ili jednako

Ova operacija je dizajnirana da provjeri da li je prvi operand manji ili jednak drugom. Na primjer:
SalesCurrent.Amount

Više ili jednako

Ova operacija je dizajnirana da provjeri da li je prvi operand veći ili jednak drugom. Na primjer:
SalesCurrent.Amount >= SalesPast.Amount

Operacija B

Ova operacija provjerava prisutnost vrijednosti u proslijeđenoj listi vrijednosti. Rezultat operacije će biti True ako je vrijednost pronađena, ili False u suprotnom. Na primjer:
Stavka B (&Proizvod1, &Proizvod2)

Operacija provjere prisutnosti vrijednosti u skupu podataka

Operacija provjerava prisutnost vrijednosti u navedenom skupu podataka. Skup podataka za validaciju mora sadržavati jedno polje. Na primjer:
Prodaja. Counterparty To Counterparties

Operacija provjere vrijednosti za NULL

Ova operacija vraća True ako je vrijednost NULL. Na primjer:
Sales.Counterparty JE NULL

Operacija provjere vrijednosti za NULL nejednakost

Ova operacija vraća True ako vrijednost nije NULL. Na primjer:
Prodaja.Druga strana NIJE NULL

Logičke operacije

Logičke operacije prihvataju izraze tipa Boolean kao operande.

Operacija NE

Operacija NOT vraća True ako je njen operand False i False ako je njen operand Tačan. Na primjer:
NOT Document.Consignee = Dokument.Pošiljalac

Operacija I

Operacija AND vraća True ako su oba operanda Tačna, i False ako je jedan od operanda False. Na primjer:
Document.Consignee = Document.Consignor I Document.Consignee = &Counterparty

OR operacija

Operacija OR vraća True ako je jedan od njenih operanada Tačan, i False ako su oba operanda False. Na primjer:
Document.Consignee = Document.Consignor OR Document.Consignee = &Counterparty

Agregatne funkcije

Agregatne funkcije izvode neku radnju na skupu podataka.

Suma

Agregatna funkcija Sum izračunava zbir vrijednosti izraza koji su joj proslijeđeni kao argument za sve zapise detalja. Na primjer:
Iznos(Prodaja.IznosPromet)

Količina

Funkcija Count izračunava broj vrijednosti koje nisu NULL. Na primjer:
Količina (Sales.Counterparty)

Broj različitih

Ova funkcija izračunava broj različitih vrijednosti. Na primjer:
Količina (razne prodaje.Counterparty)

Maksimum

Funkcija dobiva maksimalnu vrijednost. Na primjer:
Maksimum (preostalo. Količina)

Minimum

Funkcija dobiva minimalnu vrijednost. Na primjer:
Minimum (preostalo. Količina)

Prosjek

Funkcija dobiva prosjek vrijednosti koje nisu NULL. Na primjer:
Prosjek (preostalo. Količina)

Ostale operacije

Operacija SELECT

Operacija Select je namijenjena odabiru jedne od nekoliko vrijednosti kada su ispunjeni određeni uvjeti. Na primjer:
Odaberite Kada iznos > 1000, zatim iznos inače 0 Kraj

Pravila za poređenje dvije vrijednosti

Ako se vrste vrijednosti koje se uspoređuju razlikuju jedna od druge, tada se odnosi između vrijednosti određuju na osnovu prioriteta tipova:
NULL (najniže);
Boolean;
Broj;
Datum;
Line;
Referentni tipovi

Odnosi između različitih tipova referenci određuju se na osnovu referentnih brojeva tabela koje odgovaraju određenom tipu.

Ako su tipovi podataka isti, tada se vrijednosti uspoređuju prema sljedećim pravilima:
za Boolean tip vrijednost TRUE je veća od vrijednosti FALSE;
tip Broj ima uobičajena pravila poređenja brojeva;
za tip Datuma, raniji datumi su manji od kasnijih;
za tip String - poređenje stringova u skladu sa utvrđenim nacionalnim karakteristikama baze podataka;
referentni tipovi se upoređuju na osnovu njihovih vrijednosti (broj zapisa itd.).

Rad sa NULL vrijednošću

Svaka operacija u kojoj je jedan od operanada NULL će proizvesti NULL rezultat.

Postoje izuzeci:
Operacija AND će vratiti NULL samo ako nijedan od operanada nije False;
Operacija OR će samo vratiti NULL ako nijedan od njenih operanada nije Tačan.

Operativni prioriteti

Operacije imaju sljedeće prioritete (prvi red ima najniži prioritet):
OR;
AND;
NE;
B, JE NULL, NIJE NULL;
=, <>, <=, <, >=, >;
Binarno +, Binarno – ;
*, /, %;
Unary +, Unary -.

Funkcije jezika za sastavljanje podataka sistema ekspresije

Izračunati

Funkcija Calculate je dizajnirana da izračuna izraz u kontekstu određene grupe. Funkcija ima sljedeće parametre:
Izraz. Tip String. Sadrži izračunati izraz;
Grupisanje. Tip String. Sadrži naziv grupiranja u čijem kontekstu treba procijeniti izraz. Ako se kao ime grupisanja koristi prazan niz, proračun će se izvršiti u kontekstu trenutnog grupisanja. Ako se kao naziv grupe koristi string GrandTotal, izračunavanje će se izvršiti u kontekstu ukupnog zbroja. U suprotnom, proračun će se izvršiti u kontekstu nadređene grupe sa istim imenom. Na primjer:
Zbroj(Prodaja.Ukupan promet) / Izračunaj("Zbroj(Prodaja.Ukupan promet)", "Ukupno")

U ovom primjeru, rezultat će biti omjer iznosa za polje "Sales.AmountTurnover" zapisa grupisanja prema iznosu istog polja u cijelom izgledu.

Nivo

Funkcija je dizajnirana da dobije trenutni nivo snimanja.

primjer:
Nivo()

NumberInOrder

Uzmite sljedeći redni broj.

primjer:
Broj po narudžbi()

NumberInOrderInGrouping

Vraća sljedeći redni broj u trenutnoj grupi.

primjer:
BrojByOrderInGroup()

Format

Dobijte formatirani niz proslijeđene vrijednosti.

Niz formata je postavljen u skladu sa nizom formata 1C:Enterprise.

Opcije:
Značenje;
Format string.

primjer:
Format (Računi. Iznos dokumenta, "NPV=2")

Početak perioda

Opcije:

    • Minute;
    • Dan;
    • Sedmica;
    • Mjesec;
    • Quarter;
    • Decenija;
    • Pola godine.

primjer:
Početni period(DatumVrijeme(2002, 10, 12, 10, 15, 34), "Mjesec")

rezultat:

01.10.2002 0:00:00

Kraj perioda

Funkcija je dizajnirana da izdvoji određeni datum iz datog datuma.

Opcije:

  • Datum. Unesite datum. Navedeni datum;
  • Tip perioda. Tip String. Sadrži jednu od sljedećih vrijednosti:
    • Minute;
    • Dan;
    • Sedmica;
    • Mjesec;
    • Quarter;
    • Decenija;
    • Pola godine.

primjer:
EndPeriod(DatumTime(2002, 10, 12, 10, 15, 34), "Sedmica")

rezultat:

13.10.2002 23:59:59

AddToDate

Funkcija je dizajnirana da doda određenu vrijednost datumu.

Opcije:

  • Vrsta uvećanja. Tip String. Sadrži jednu od sljedećih vrijednosti:
    • Minute;
    • Dan;
    • Sedmica;
    • Mjesec;
    • Quarter;
    • Decenija;
    • Pola godine.
Iznos – za koliko trebate povećati datum. Tip broj. Razlomački dio se zanemaruje.

primjer:
AddToDate(DateTime(2002, 10, 12, 10, 15, 34), "Mjesec", 1)

rezultat:

12.11.2002 10:15:34

Razlika u datumu

Funkcija je dizajnirana da dobije razliku između dva datuma.

Opcije:

  • Izraz. Unesite datum. Originalni datum;
  • Izraz. Unesite datum. Oduzeti datum;
  • Vrsta razlike. Tip String. Sadrži jednu od sljedećih vrijednosti:
    • Sekunda;
    • Minute;
    • Dan;
    • Mjesec;
    • Quarter;

primjer:
DATEDIFFERENCE(DATETIME(2002, 10, 12, 10, 15, 34),
DATETIME(2002, 10, 14, 9, 18, 06), "DAN")

rezultat:

Podniz

Ova funkcija je dizajnirana da izdvoji podniz iz niza.

Opcije:

  • Linija. Tip String. Niz iz kojeg se izdvaja podniz;
  • Pozicija. Tip broj. Pozicija znaka iz koje počinje podniz koji se izdvaja iz niza;
  • Dužina. Tip broj. Dužina dodijeljenog podniza.

primjer:
SUBSTRING(Računi.Adresa, 1, 4)

Dužina linije

Funkcija je dizajnirana da odredi dužinu niza.

Parametar:
Linija. Tip String. Niz čija je dužina određena.

primjer:
Linija (Counterparties.Adresa)

Ova funkcija je dizajnirana da izdvoji godinu iz vrijednosti tipa datuma.

Parametar:
Datum. Unesite datum. Datum do kojeg je određena godina.

GODINA (Trošak.Datum)

Kvart

Ova funkcija je dizajnirana da izdvoji broj četvrtine iz vrijednosti tipa datuma. Broj četvrtine se obično kreće od 1 do 4.

Parametar
Datum. Unesite datum. Datum do kojeg se utvrđuje tromjesečje

KVARTAL(Trošak.Datum)

Mjesec

Ova funkcija je dizajnirana da izdvoji broj mjeseca iz vrijednosti tipa datuma. Broj mjeseca se obično kreće od 1 do 12.
Datum. Unesite datum. Datum do kojeg se određuje mjesec.
MJESEC (Trošak.Datum)

Dan u godini

Ova funkcija je dizajnirana da dobije dan u godini iz vrijednosti tipa Datum. Dan u godini se obično kreće od 1 do 365 (366).
Datum. Unesite datum. Datum do kojeg je određen dan u godini.
DAYYEAR(Račun troškova.Datum)

Dan

Ova funkcija je dizajnirana da dobije dan u mjesecu iz vrijednosti tipa Datum. Dan u mjesecu se obično kreće od 1 do 31.
Datum. Unesite datum. Datum do kojeg je određen dan u mjesecu.
DAY (Trošak.Datum)

Sedmica

Ova funkcija je dizajnirana da dobije broj sedmice u godini iz vrijednosti tipa datuma. Sedmice u godini se numerišu počevši od 1.
Datum. Unesite datum. Datum do kojeg se određuju brojevi sedmica.
SEDMICA(Trošak.Datum)

Dan u tjednu

Ova funkcija je dizajnirana da dobije dan u sedmici iz vrijednosti tipa Datum. Uobičajeni dan u sedmici kreće se od 1 (ponedjeljak) do 7 (nedjelja).
Datum. Unesite datum. Datum do kojeg se određuje dan u sedmici.
DAN U SJEDICI (Trošak.Datum)

Ova funkcija je dizajnirana da dobije sat u danu iz vrijednosti tipa datuma. Sat u danu kreće se od 0 do 23.
Datum. Unesite datum. Datum do kojeg se određuje sat u danu.
HOUR (Trošak.Datum)

Minuta

Ova funkcija je dizajnirana da dobije minute u satu iz vrijednosti tipa datuma. Minuta u satu kreće se od 0 do 59.
Datum. Unesite datum. Datum do kojeg se određuje minuta u satu.
MINUTE(Trošak.Datum)

Sekunda

Ova funkcija je dizajnirana da dobije sekundu minute iz vrijednosti tipa datuma. Sekunda u minuti se kreće od 0 do 59.
Datum. Unesite datum. Datum do kojeg se određuju sekunde minuta.
SECOND (Trošak.Datum)

Express

Ova funkcija je dizajnirana da izdvoji tip iz izraza koji može sadržavati složeni tip. Ako izraz sadrži tip koji nije potreban, bit će vraćeno NULL.

Opcije:
Izraz za pretvaranje;
Indikacija tipa. Tip String. Sadrži niz tipa. Na primjer, "Broj", "String" itd. Pored primitivnih tipova, ovaj red može sadržavati naziv tabele. U ovom slučaju, pokušat će se izraziti referenca na navedenu tabelu.

primjer:
Express(Podaci.Props1, "Broj(10,3)")

IsNull

Ova funkcija vraća vrijednost drugog parametra ako je vrijednost prvog parametra NULL.

U suprotnom će biti vraćena vrijednost prvog parametra.

primjer:
DaNULL(Iznos(Prodaja.IznosPromet), 0)

Funkcije zajedničkih modula

Izraz mašine za sastav podataka može sadržavati pozive funkcijama globalnih zajedničkih konfiguracijskih modula. Za pozivanje takvih funkcija nije potrebna dodatna sintaksa.

primjer:
SkraćenoNaziv(Dokumenti.Link, Dokumenti.Datum, Dokumenti.Broj)

U ovom primjeru, funkcija "AbbreviatedName" će biti pozvana iz općeg konfiguracijskog modula.

Imajte na umu da je korištenje zajedničkih funkcija modula dozvoljeno samo ako je specificiran odgovarajući parametar procesora sastava podataka.

Dodatno, funkcije zajedničkih modula ne mogu se koristiti u prilagođenim izrazima polja.

[morate se registrirati da vidite link]

Najbolji članci na ovu temu