Izračunata polja u SKD. Jezik izraza sistema sastava podataka (1Cv8)

Zdravo, dragi čitaoče! Imamo još jednu lekciju o osnovama sistema rasporeda. Upoznali ste se sa funkcijama SKD izraznog jezika, vidjeli karakteristike sistema rasporeda, a također ste razumjeli osnovne postavke polja rasporeda. Sada ćemo pogledati novi materijal. Idi!

Dodatne postavke za ACS polja.

Kolona "Vrsta vrijednosti" Omogućava vam da odredite tip podataka za polje izgleda. Zašto specificirati vrstu, na primjer, za polje „Nomenklatura“, ako već znate o kojoj se vrsti radi? Ovo je neophodno ako je polje rasporeda kompozitnog tipa. Možete odabrati određeni tip, tada će se prilikom odabira po ovom polju odabrati vrijednosti ove vrste.

Kolona "Dostupne vrijednosti" omogućava vam da odredite vrijednosti koje su dostupne za odabir i ograničite izbor korisnika na određene granice.

Kolona "dekor" omogućava vam da odredite dizajn polja izgleda bez upotrebe izgleda. Možete odrediti boju fonta, boju okvira, orijentaciju teksta itd.

Kolona "Opcije uređivanja" Omogućava vam da odredite kako urediti polje izgleda. Na primjer, možete odrediti brzi odabir elemenata sa liste u odabiru. Podrazumevano, polje rasporeda nasljeđuje sve opcije uređivanja od metapodataka objekta.

Izračunata polja

Na kartici „Izračunata polja“ sastava podataka možete kreirati vlastita izračunata polja.

Zašto su vam potrebna izračunata polja kada ih možete kreirati na nivou upita? Ne mogu se sva polja opisati pomoću upita. Ako trebate kreirati složeno polje iz različitih skupova podataka, na primjer, kao što su upit i objekt, onda ne možete bez izračunatih polja. Ne možete dodati polje sastava podataka ako je izvor podataka upit i automatsko popunjavanje je omogućeno, ali pomoću izračunatih polja možete dodati onoliko polja koliko želite.

U koloni "Izraz" izračunatog polja potrebno je da napišete proizvoljan izraz koji koristi polja sastava podataka, pristupajući njihovoj putanji (kolona "Putanja" na kartici "Skupovi podataka"). Ili možete koristiti funkcije matematičke transformacije ili pristupiti funkcijama zajedničkih modula. Na primjer, upišemo u kolonu „Putanja podataka“ naziv izračunatog polja „Odstupanje“, a u polje „Izraz“ sljedeće.

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, 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 kao naziv grupe koristi string GeneralTotal, izračunavanje ć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 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() , koji 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 dobiti 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 zapisa nema.

· 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(DatumTime(2010, 1, 15)), tada će biti primljen zapisnik sa datumom 02.01.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č Dob(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 Dob, 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 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 4. 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("Zbroj(Vrijednost)", Trenutni, Trenutni) 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 dobiti vrijednost grupiranja u prethodnom redu, možete koristiti sljedeć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 Tačno 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.

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, 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 kao naziv grupe koristi string GeneralTotal, izračunavanje ć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 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() , koji 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 dobiti 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 zapisa nema.

· 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(DatumTime(2010, 1, 15)), tada će biti primljen zapisnik sa datumom 02.01.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č Dob(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 Dob, 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 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 4. 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("Zbroj(Vrijednost)", Trenutni, Trenutni) 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 dobiti vrijednost grupiranja u prethodnom redu, možete koristiti sljedeć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 Tačno 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.

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 roditeljskog grupiranja s 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 i iznosa 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 resursima, 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 dobiti 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 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.
    • "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 zapisa nema.
    • "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 naručivanje 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.
  • 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"
    • "trenutni"
    • "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 specificirati ključnu riječ Uzlazno, za redoslijed rastućim redoslijedom, Silazno, za redoslijed opadajućem, 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 se koristi obrada 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" će biti 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 "Sales.AmountTurnover" 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 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)

Opcije:

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


Kreator 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 pogledima 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. 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)

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, "Delete Flag = False." Ako ovaj parametar koristi agregatnu funkciju, doći će do greške prilikom sastavljanja podataka;
  • Izbor grupa- odabir primijenjen na grupne zapise. Na primjer: "Iznos(IznosPromet) > &Parametar1".
primjer:
CalculateExpressionWithGroupValueTable("Račun AS Counterparty, Iznos(IznosPromet) AS Sales Volume", "Račun")

Rezultat ove funkcije bit će tablica vrijednosti sa stupcima Counterparty i Sales Volume, koja će sadržavati druge strane s njihovim obimom prodaje.
Kreator rasporeda, kada generira izgled, pretvara parametre funkcije u termine polja rasporeda 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)

Opcije:

  • Značenje- izraz koji treba formatirati;
  • FormatString- niz formata je postavljen u skladu sa nizom formata 1C:Enterprise.
primjer:
Format (fakture potrošnog materijala. 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, vrsta inkrementa, veličina)

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), "Month", 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). String čija je dužina specificirana.
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škovi.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 kreće se 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 tablicu.
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 se kut određuje.
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 određen kut.
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.Veza, Dokumenti.Datum, Dokumenti.Broj)

U ovom primjeru, funkcija "AbbreviatedName" će biti pozvana iz modula opće konfiguracije.
Imajte na umu da je korištenje zajedničkih funkcija modula dopušteno 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 dobijanje nivoa 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.

Pravilna upotreba sheme sastava podataka (DCS) omogućava vam da:

  • značajno smanjiti vrijeme potrebno za izradu izvještaja;
  • eliminirati potrebu za kreiranjem upravljanog obrasca;
  • dobiti prekrasan rezultat uz mogućnost dodatnog prilagođavanja od strane korisnika.

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.

Šta je izračunato polje

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:

  • Izlaz niza podataka primljenih zahtjevom u određenu ćeliju, kombinirajući nekoliko linija u jedan;
  • Pristup izvoznim funkcijama općeg modula;
  • Izvršite različite izraze dostupne za jezik rasporeda i koristite posebne funkcije EvaluateExpression.

Hajdemo kroz ovu listu.

Niz vrijednosti u jednoj ćeliji

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 vrijednosti, u njemu se mogu postaviti još dva:

  1. Element Separator – označava koji znak će odvojiti jedan element niza ili jedan red tablice vrijednosti od drugog (u našem slučaju smo izostavili ovaj parametar i po defaultu je dodijeljen prijelom reda);
  2. Razdjelnik stupaca – znak koji se koristi za razdvajanje stupaca u tablici vrijednosti (tačka i zarez se koristi po defaultu).

Pristup funkcijama izvoza zajedničkog modula

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

Nekoliko važnih tačaka:

  • Funkcija mora biti izvozna;
  • Ako se funkcija nalazi u zajedničkom modulu sa skupom atributa “Global”, poziva se direktno po imenu, u suprotnom se funkcija mora pozvati prema shemi “Shared module name”. "Naziv funkcije koju treba pozvati."

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.

Izrazi jezika rasporeda

Vrlo često u radu programera dolazi do situacije kada je potrebno prikazati rezultat podjele u ACS polju:

  1. Izračunajte prosječnu cijenu artikla;
  2. Sve vrste interesa;
  3. Obračun prosječne zarade itd.

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 prilično novoj funkciji 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 iznos dokumenta iz prethodnog reda našeg zahtjeva tako što ćete navesti vrijednost Izračunaj izraz ("Iznos dokumenta", "Prethodni iznos") u polju "Izraz".