1. Izračunaj (Eval)- je namijenjen za procjenu izraza u kontekstu nekog grupisanja. Ova funkcija se koristi za kompatibilnost sa prethodne verzije platforme. Umjesto toga preporučuje se korištenje funkcije CalculateExpression.
sintaksa:
Izračunaj (izraz, grupisanje, vrsta izračuna)
Parametri:
sintaksa:
CalculateExpression(Izraz, grupisanje, CalculationType, Početak, Kraj, Sortiranje, Hijerarhijski Sort, ProcessingIdenticalOrderValues)
Parametri:
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 ukupni 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)
Parametri:
Graditelj izgleda, kada generira izraze za prikaz prilagođenog polja čiji izraz sadrži samo funkciju CalculateArrayWithGroup, generiše izlazni izraz na takav način da su podaci za prikaz 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, GroupFieldExpressions, SelectRecords, SelectGroups)
Parametri:
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(CalculateExpressionWithGroupingValueTable("DataSet.Account, DataSet.AccountRepresentation, Sum(DataSet.AmountTurnover), View(DataSet.AmountTurnover), DataSet.OrderingField), "CDataSet.SorderingField.", "CDataSet.SerderingField.") ), "2, 4"))
5. Nivo - funkcija je dizajnirana da dobije trenutni nivo snimanja.
sintaksa:
Nivo()
primjer:
Nivo()
6. SequenceNumber - dobiti sljedeći serijski broj.
sintaksa:
BrojByOrder()
primjer:
BrojByOrder()
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)
Parametri:
9. BeginOfPeriod
sintaksa:
Početni period (datum, vrsta perioda)
Parametri:
10. EndOfPeriod - funkcija je dizajnirana za odabir određenog datuma od datog datuma.
sintaksa:
EndPeriod(Datum, PeriodType)
Parametri:
11. AddKDate (DateAdd) - funkcija je dizajnirana da doda određenu vrijednost datumu.
sintaksa:
AddToDate(izraz, vrsta inkrementa, veličina)
Parametri:
12. DateDifference - funkcija je dizajnirana da dobije razliku između dva datuma.
sintaksa:
DifferenceDate(Izraz1, Izraz2, Vrsta razlike)
Parametri:
13. Podniz - ovu funkciju je namijenjen za izdvajanje podniza iz niza.
sintaksa:
Podniz (niz, pozicija, dužina)
Parametri:
14. StringLength - funkcija je dizajnirana da odredi dužinu niza.
sintaksa:
StringLength(String)
Parametar:
15. God- ova funkcija je dizajnirana da izdvoji godinu iz vrijednosti tipa datuma.
sintaksa:
godina (datum)
Parametar:
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:
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:
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:
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:
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:
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:
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:
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:
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:
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)
Parametri:
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)
Parametri:
27.ACos- izračunava arc kosinus u radijanima.
sintaksa:
Acos (izraz)
Parametar:
sintaksa:
ASin (izraz)
Parametar:
sintaksa:
ATan (izraz)
Parametar:
sintaksa:
Cos (izraz)
Parametar:
sintaksa:
Exp(Izraz)
Parametar:
sintaksa:
Dnevnik (izraz)
Parametar:
sintaksa:
Log10 (izraz)
Parametar:
sintaksa:
Pow (baza, indikator)
Parametri:
sintaksa:
grijeh (izraz)
Parametar:
sintaksa:
Sqrt (izraz)
Parametar:
sintaksa:
Tan (izraz)
Parametar:
sintaksa:
Env (izraz, dubina bita)
Parametri:
sintaksa:
Objekt (izraz)
Parametar:
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 ovog tipa.
primjer:
ValueFilled (Datum isporuke)
44. LevelInGroup - ova funkcija dobija trenutni nivo snimanja u odnosu na grupisanje.
Može se koristiti za dobijanje nivoa ugniježđenja zapisa u hijerarhijskom grupisanju.
primjer:
LevelInGroup()
45. ValueType
sintaksa:
Vrsta vrijednosti (izraz)
Parametar:
Pravilna upotreba sheme sastava podataka (DCS) omogućava vam da:
Ali ne koriste svi programeri na najbolji način mogućnosti sheme, budući da nisu sve njegove postavke očigledne i intuitivne. Konkretno, mnogi ljudi znaju da u 1C SKD postoje izračunata polja, međutim, ne razumiju u potpunosti opseg njihove upotrebe i metode rada s njima.
U većini slučajeva, izvor podataka u dijagramu izgleda je upit. U principu, unutar samog upita već možete koristiti razne formule, konstrukcije i izraze. Postavlja se prirodno pitanje: zašto nam je potrebna duplirana funkcionalnost?
Činjenica je da je sistem kontrole pristupa nešto više od pukog prikaza rezultata upita, a to je jasno vidljivo iz obrasca za kreiranje dijagrama (Sl. 1).
Izračunata polja vam omogućavaju da izvršite određene radnje s generiranim skupom podataka:
Hajdemo kroz ovu listu.
Simulirajmo situaciju u kojoj je potrebno primiti sve brojeve dokumenata prijema za drugu stranu u zasebnoj ćeliji:
Tako smo kreirali dodatno polje za izračunavanje u našoj šemi;
Kao što možete vidjeti iz gornjeg primjera, nema poteškoća u dodavanju i obrađivanju izračunatih polja. Koristili smo dvije funkcije: Array() i ConnectRows().
Nekoliko riječi o potonjem. Osim prvog parametra koji označava identifikator niza, vrijednosti ili vrijednost, u njemu se mogu postaviti još dva:
Funkcije zajedničkog modula mogu služiti kao izvor podataka za popunjavanje izračunatog polja.
Nekoliko važnih tačaka:
Kao primjer upotrebe, uzećemo isti zahtjev za dokumente o prijemu i prikazati ga u posebnoj koloni. Nećemo opisivati sam zahtjev, prijeđimo direktno na izračunata polja:
Dakle, vidimo da se gotovo svaki procesor podataka može inicijalizirati iz sistema kontrole pristupa, što značajno proširuje mogućnosti korištenja šeme.
Često se u radu programera javlja situacija kada je potrebno prikazati rezultat podjele u ACS polju:
Da biste izbjegli probleme, u ovim slučajevima preporučljivo je unijeti test za dijeljenje sa 0 u izračunato polje.
Ovo se može uraditi pomoću konstrukcije „Izbor kada….Onda… Inače… Kraj“.
Na kraju, nekoliko riječi o dovoljno nova funkcija CalculateExpression(). Uz njegovu pomoć, posebno, možete izračunati odstupanja u troškovima između tekuće i prethodne linije, kumulativno stanje itd.
Recimo da možete dobiti zbir dokumenta iz prethodnog reda našeg zahtjeva tako što ćete navesti vrijednost Calculate Expression ("Document Sum", "Previous Sum") u polju "Izraz".
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:
Slika 4. Grupacije izvještaja s kumulativnim ukupnim iznosima |
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. CurrentDate()
Vraća sistemski datum. Prilikom sastavljanja izgleda izgleda, svi izrazi koji su prisutni u rasporedu zamjenjuju funkciju CurrentDate() 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, 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 ukupni zbroj (parametar Grupiranje je postavljen na GrandTotal), pretpostavlja se da ne postoje zapisi za izračunavanje detaljnih podataka i izračunavanje agregatnih funkcija.
Layout linker prilikom generiranja izraza funkcije CalculateExpression, ako izraz za naručivanje sadrži polja koja se ne mogu koristiti u grupiranju, zamjenjuje funkciju CalculateExpression on NULL.
Opcije
Vrsta: Linija. Izraz koji se vrednuje.
Vrsta: 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 string GeneralTotal koristi kao ime grupisanja, izračun će se izvršiti u kontekstu ukupnog zbroja. U suprotnom, proračun će se izvršiti u kontekstu nadređene grupe s istim imenom.
na primjer:
Zbroj(Prodaja.Ukupan promet)/Izračunaj("Zbroj(Prodaja.Ukupan promet)", "Ukupno")
U ovom primjeru, rezultat će biti omjer zbroja po polju Sales.AmountTurnover grupisanje zapisa na zbir istog polja u cijelom izgledu;
Vrsta: Linija. Parametar može imati sljedeće vrijednosti:
· Ukupno— izraz će se izračunati za sve grupne zapise.
· Hijerarhija— izraz će se procijeniti za roditeljski hijerarhijski zapis, ako ga postoji, i za cijelo grupisanje, ako ne postoji roditeljski hijerarhijski zapis.
· Grupisanje— izraz će biti procijenjen za trenutni zapis grupnog grupisanja.
· GroupingNonResource— kada se izračunava funkcija za grupni zapis prema resursima, izraz će se izračunati za prvi grupni zapis originalnog grupiranja.
Prilikom izračunavanja funkcije IzračunajIzraz() sa značenjem GroupingNonResource za grupne zapise koji nisu grupirani prema resursima, funkcija se izračunava na isti način kao što bi se izračunala da je vrijednost parametra jednaka vrijednosti Grupisanje.
Kreator rasporeda sastava podataka, kada generira raspored sastava podataka prilikom izlaza polja resursa kojim se vrši grupisanje u izgled, postavlja izraz u izgled koji se izračunava pomoću funkcije IzračunajIzraz() , što označava parametar GroupingNonResource. Za druge resurse, uobičajeni izrazi resursa se stavljaju u grupiranje resursa.
Vrsta: Linija. 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:
· Prvo
· Posljednji (Posljednji)
· Prethodno
· Sljedeće (Sljedeće)
· Current
· LimitingValue(granična vrijednost) LimitingValue
Vrsta: Linija. 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.
· Posljednji (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 sa 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, Previous(2) - dobijanje prethodnog iz prethodnog zapisa.
Ako prethodni zapis ide dalje od grupisanja (na primjer, za drugi zapis grupisanja morate dobiti Previous(3)), tada se dobija prvi zapis grupisanja.
Prilikom preuzimanja prethodnog zapisa za zbroj grupiranja, smatra se da je dobijen prvi zapis.
· Sljedeće (Sljedeće). 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 unosa grupisanja. 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 prima Next() , tada 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.
· LimitingValue(granična vrijednost). Potreba da se dobije zapis po navedenoj vrijednosti. Posle reči LimitingValue u zagradama treba da naznačite izraz sa čijom vrednošću želite da pokrenete fragment, prvo polje za redosled.
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 naručivanje, a ima vrijednosti 01.01.2010., 01.02.2010., 03.01.2010., a želite da dobijete LimitingValue(DatumVrijeme(2010, 1, 15)), tada će biti primljen zapisnik sa datumom 01.02.2010.
Vrsta: Linija. 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 odrediti ključnu riječ Starost(za naručivanje uzlaznim redoslijedom), Silazno(za redoslijed u opadajućem redoslijedu) i Auto-order(za redoslijed referentnih polja prema poljima po kojima želite poredati referentni objekt). Riječ Auto-order može se koristiti kao sa riječju Starost, tako i sa riječju Silazno.
Vrsta: Linija. Isto kao parametar Sortiranje. Koristi se za organiziranje hijerarhijskih zapisa. Ako nije navedeno, graditelj izgleda generira redoslijed prema redoslijedu navedenom u parametru Sortiranje.
Vrsta: Linija. Određuje pravilo za određivanje prethodnog ili sljedećeg zapisa u slučaju da postoji nekoliko zapisa s istom vrijednošću:
· Odvojeno označava da se niz uređenih zapisa koristi za određivanje prethodnog i sljedećeg zapisa. Zadana vrijednost.
· Zajedno označava da su prethodni i sljedeći zapisi određeni na osnovu vrijednosti izraza za naručivanje.
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 |
Odvojeno, To:
§ prethodni unos za unos 3 će biti unos 2.
Current, Current(prema tome, parametri Počni I Kraj), tada će se za zapis 2 ovaj fragment sastojati od jednog zapisa 2. Izraz će biti jednak 20.
Ako je vrijednost parametra Zajedno, To:
§ prethodni unos za unos 3 će biti unos 1.
§ ako je fragment proračuna definisan kao Current, Current(prema tome, parametri Počni 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 Zajedno, u parametrima Počni I Kraj ne možete specificirati pomak za pozicije Prvi, posljednji, prethodni, sljedeći.
CalculateExpression("Sum(SumTurnover)", "Prvi", "Trenutni")
Ako želite da dobijete vrednost grupisanja u prethodnom redu, možete koristiti sledeći izraz:
CalculateExpression("Ocijena", "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. Booleove vrijednosti se provjeravaju za NULL vrijednosti. 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 je string izraz
Linija() - Ako je niz proslijeđen kao parametar, funkcija vraća string koji sadrži string reprezentacije svih elemenata niza, odvojene znakovima ";". Ako je tabela vrijednosti proslijeđena kao parametar, funkcija vraća niz koji sadrži nizove svih redova tablice vrijednosti, s prikazima ćelija svakog reda odvojenim znakovima ";" i redovima novim redom karakter. Ako je string reprezentacija elementa prazna, tada se prikazuje string umjesto njegovog prikaza.
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:
Izraz može sadržavati literale. Moguće su sljedeće vrste literala:
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 se piše bez razmaka, u decimalnom formatu. Razlomak se odvaja simbolom "." na primjer:
10.5 200
Datumski literal se piše pomoću ključnog literala DATETIME. Nakon ovoga ključna riječ, u zagradama, odvojeno zarezima, navedeni su godina, mjesec, dan, sati, minute, sekunde. 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
Booleove vrijednosti se mogu napisati korištenjem literala True (True), False (False).
Za specifikaciju 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)
Ova operacija ima za cilj promjenu predznaka broja u suprotan predznak. na primjer:
Sales.Quantity
Ova operacija ne izvodi nikakve radnje na broju. na primjer:
Sales.Quantity
Ova operacija je namijenjena za izračunavanje razlike dva broja. na primjer:
ResidualsAndTurnovers.InitialRemaining – ResiduesAndTurnovers.FinalResidualsRemainingsAndTurnovers.InitialRemaining - 100 400 – 357
Ova operacija je dizajnirana da izračuna zbir dva broja. na primjer:
RemainingsAndTurnover.InitialRemaining + RemainingAndTurnover.Ortover ResiduesAndTurnover.InitialRemaining + 100 400 + 357
Ova operacija je dizajnirana za izračunavanje proizvoda dva broja. na primjer:
Nomenklatura.Cijena * 1,2 2 * 3.14
Ova operacija je dizajnirana da dobije rezultat dijeljenja jednog operanda drugim. na primjer:
Nomenklatura.Cijena / 1.2 2 / 3.14
Ova operacija je dizajnirana da dobije ostatak kada se jedan operand podijeli s drugim. na primjer:
Nomenklatura Cijena % 1,2 2 % 3.14
Ova operacija je dizajnirana za spajanje dva niza. na primjer:
Nomenklatura.Član + “: ”+ Nomenklatura.Naziv
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 drugačije značenje od samo drugog znaka u retku:
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.
Ova operacija ima za cilj da uporedi dva operanda radi jednakosti. na primjer:
Sales.Counterparty = Sales.NomenclatureMainSupplier
Ova operacija je dizajnirana da uporedi dva operanda za nejednakost. na primjer:
Sales.Counterparty<>Sales.NomenclatureMainSupplier
Ova operacija je dizajnirana da provjeri da li je prvi operand manji od drugog. na primjer:
SalesCurrent.Amount< ПродажиПрошлые.Сумма
Ova operacija je dizajnirana da provjeri da li je prvi operand veći od drugog. na primjer:
SalesCurrent.Sum > SalesPast.Sum
Ova operacija je dizajnirana da provjeri da li je prvi operand manji ili jednak drugom. na primjer:
SalesCurrent.Amount<= ПродажиПрошлые.Сумма
Ova operacija je dizajnirana da provjeri da li je prvi operand veći ili jednak drugom. na primjer:
SalesCurrent.Amount >= SalesPast.Amount
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 provjerava prisutnost vrijednosti u navedenom skupu podataka. Skup podataka za validaciju mora sadržavati jedno polje. na primjer:
Sales to Counterparties
Ova operacija vraća True ako je vrijednost NULL. na primjer:
Sales.Counterparty JE NULL
Ova operacija vraća True ako vrijednost nije NULL. na primjer:
Prodaja NIJE NULL
Logičke operacije prihvataju izraze tipa Boolean kao operande.
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 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
Operacija OR vraća Tačno ako je jedan od njenih operanada Tačan, i False ako su oba operanda Netačna. na primjer:
Document.Consignee = Document.Consignor OR Document.Consignee = &Counterparty
Agregatne funkcije izvode neku radnju na skupu podataka.
Agregatna funkcija Sum izračunava zbir vrijednosti izraza koji su joj proslijeđeni kao argument za sve zapise detalja. na primjer:
Iznos(Prodaja.IznosPromet)
Funkcija Count izračunava broj vrijednosti koje nisu NULL. na primjer:
Količina (Sales.Counterparty)
Ova funkcija izračunava broj različitih vrijednosti. na primjer:
Količina (razne prodaje.Counterparty)
Funkcija dobiva maksimalnu vrijednost. na primjer:
Maksimum (preostalo. Količina)
Funkcija dobiva minimalnu vrijednost. na primjer:
Minimum (preostalo. Količina)
Funkcija dobiva prosjek vrijednosti koje nisu NULL. na primjer:
Prosjek (preostalo. Količina)
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
Ako se vrste vrijednosti koje se uspoređuju razlikuju jedna od druge, tada se odnosi između vrijednosti određuju na osnovu prioriteta tipova:
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:
Svaka operacija u kojoj je jedan od operanada NULL će proizvesti NULL rezultat.
Postoje izuzeci:
Operacije imaju sljedeće prioritete (prvi red ima najniži prioritet):
Funkcija Calculate je dizajnirana da izračuna izraz u kontekstu određene grupe. Funkcija ima sljedeće parametre:
U ovom primjeru, rezultat će biti omjer iznosa za polje "Sales.AmountTurnover" zapisa grupisanja prema iznosu istog polja u cijelom izgledu.
Funkcija je dizajnirana da dobije trenutni nivo snimanja.
Nivo()
Uzmite sljedeći redni broj.
BrojByOrder()
Vraća sljedeći redni broj u trenutnoj grupi.
BrojByOrderInGroup()
Dobijte formatirani niz proslijeđene vrijednosti.
Niz formata je postavljen u skladu sa nizom formata 1C:Enterprise.
Parametri:
Format (Računi. Iznos dokumenta, "NPV=2")
Parametri:
Početni period(DatumVrijeme(2002, 10, 12, 10, 15, 34), "Mjesec")
rezultat:
01.10.2002 0:00:00
Funkcija je dizajnirana da izdvoji određeni datum iz datog datuma.
Parametri:
EndPeriod(DatumTime(2002, 10, 12, 10, 15, 34), "Sedmica")
rezultat:
13.10.2002 23:59:59
Funkcija je dizajnirana da doda određenu vrijednost datumu.
Parametri:
AddToDate(DateTime(2002, 10, 12, 10, 15, 34), "Mjesec", 1)
rezultat:
12.11.2002 10:15:34
Funkcija je dizajnirana da dobije razliku između dva datuma.
Parametri:
DATEDIFERENCE(DATETIME(2002, 10, 12, 10, 15, 34), DATETIME(2002, 10, 14, 9, 18, 06), "DAN")
rezultat:
Ova funkcija je dizajnirana da izdvoji podniz iz niza.
Parametri:
SUBSTRING(Računi.Adresa, 1, 4)
Funkcija je dizajnirana da odredi dužinu niza.
Parametar:
Linija (Counterparties.Adresa)
Ova funkcija je dizajnirana da izdvoji godinu iz vrijednosti tipa datuma.
Parametar:
GODINA (Trošak.Datum)
Ova funkcija je dizajnirana da izdvoji broj četvrtine iz vrijednosti tipa datuma. Broj četvrtine se obično kreće od 1 do 4.
Parametar
Ova funkcija je dizajnirana da izdvoji broj mjeseca iz vrijednosti tipa datuma. Broj mjeseca se obično kreće od 1 do 12.
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).
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.
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.
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).
Ova funkcija je dizajnirana da dobije sat u danu iz vrijednosti tipa datuma. Sat u danu kreće se od 0 do 23.
Ova funkcija je dizajnirana da dobije minute u satu iz vrijednosti tipa datuma. Minuta u satu kreće se od 0 do 59.
Ova funkcija je dizajnirana da dobije sekundu minute iz vrijednosti tipa datuma. Sekunda u minuti se kreće od 0 do 59.
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.
Parametri:
Express(Podaci.Props1, "Broj(10,3)")
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)
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.