Kako postaviti pametne telefone i računala. Informativni portal
  • Dom
  • OS
  • Jezik izraza sustava za sastav podataka (1Cv8). Dobivanje u zahtjevu za cijene na datum dokumenta Kako postaviti trenutni datum u ckd

Jezik izraza sustava za sastav podataka (1Cv8). Dobivanje u zahtjevu za cijene na datum dokumenta Kako postaviti trenutni datum u ckd

ACS 1C je skraćenica za Sustav sastavljanja podataka. ACS 1C je novi način pisanja izvješća u 1C, koji omogućuje korisniku da sam u potpunosti prilagodi izvješće.

Nedostatak ACS 1C je što su njegove postavke prilično složene i ne uče ih svi korisnici brzo.

Pisanje ACS izvješća zahtijeva sposobnost rada sa zahtjevima u 1C, o čemu smo raspravljali u.

Koja je tehnologija za izradu ACS 1C izvješća:

  • Napišite 1C zahtjev u 1C ACS, koji osigurava prijem podataka
  • Odredite ulogu polja ACS 1C (izračunata polja, resursi)
  • Unesite zadane postavke 1C ACS-a.

Korisniku ostaje mogućnost mijenjanja mnogih postavki po želji.

Koja je tehnologija za izradu izvješća o prethodnim tehnologijama:

  • Napišite zahtjev u programu 1C
  • Razviti obrazac postavki (jedinstven za izvješće) koji će omogućiti promjenu samo N postavki koje je programer odabrao
  • Napišite kod (program) za izvršavanje zahtjeva i izgradnju ispisnog obrasca izvješća.

Kao što vidite, ACS 1C ima značajnu prednost i za korisnika i za programera:

  • Programer - eliminira potrebu za pisanjem programa za izvršavanje izvješća i postavki
  • Korisnik - dobiva značajan pristup postavkama izvješća.

U svim novim 1C konfiguracijama, sva izvješća će se koristiti samo na 1C ACS-u.

Pogledajmo kako sami izraditi izvješće o ACS 1C od nule.

Izrađujemo izvješće SKD 1C

U konfiguratoru kliknite gumb za novu datoteku (izbornik Datoteka / Novo).

Odaberite vrstu datoteke Novo izvješće.

Novo izvješće će se generirati. Upišimo naziv - bez razmaka za konfiguraciju, sinonim za korisnika.

Napravimo osnovnu 1C ACS shemu.

Napravite zahtjev za izvješće ACS 1C

Za ACS 1C može postojati mnogo izvora podataka. Za korištenje, na primjer, dva odvojena upita - dodajte prvo "Set podataka - Unija", a zatim nekoliko upita.

U našem primjeru koristit ćemo jednostavan upit.

Skicirajmo zahtjev za dobivanje podataka.

Rad s konstruktorom upita ne razlikuje se od uobičajenog, o tome smo raspravljali u.

Kao rezultat formiranja zahtjeva, ACS 1C će stvoriti popis polja dostupnih za korištenje i ispuniti nazive prema zadanim postavkama.

Ako vam ime nije zgodno, možete ga promijeniti ovdje.

Imajte na umu da smo u zahtjevu koristili parametar &StartDate. U ACS 1C postoji zadani parametar (datum) s nazivom & Razdoblje i možete ga koristiti.

Štoviše, ne morate ga navesti izravno u zahtjevu - koristit će se automatski. Međutim, postoji suptilnost - odnosi se na sve tablice, uključujući lijeve spojeve i tako dalje, što može dovesti do pogrešaka.

Na primjer, na početku mjeseca dobijete stanje, a lijevom vezom podatke za danas. Kada koristite Razdoblje će se primijeniti na sve tablice jednako i upit neće raditi ispravno.

Postavke ACS-a 1C

Na kartici Resursi naznačit ćemo polja koja će se zbrojiti za zbrojeve (tj. brojeve). Za polja možete odrediti funkciju zbrajanja. Prema zadanim postavkama, ovo je Zbroj (tj. zbrojite brojeve iz svih redaka i dobijete zbroj), ali možete koristiti Prosjek, Količina, Maksimum itd.

Na kartici Parametri onemogućit ćemo one nepotrebne, a omogućiti potrebne. Ovdje također možete postaviti ljudsko ime parametra.

Glavne postavke su napravljene na kartici Postavke:


Otvorimo ga u Enterprise modu. Napominjemo da nismo radili nikakvo programiranje, crtanje oblika ili bilo što drugo. Da biste postavili parametar, kliknite gumb Postavke.

Korisnik vidi gotovo isti oblik postavki kao i programer.

Voila. Izvještaj radi.

Postavke ACS-a 1C

Sve postavke izvješća ACS 1C vrše se klikom na gumb Postavke. Barem u zadanom predlošku. Moguće je izraditi najveći oblik izvješća ACS 1C, a zatim se postavke mogu prenijeti u druge oblike koje programer samostalno crta.

Povucite skladište iz stupca u retke.

Povucite nomenklaturu u skladište.

Kliknite OK i generirajte izvješće. Ura - upravo smo promijenili način rada izvješća u načinu Programiranje bez programiranja.

Desnom tipkom miša kliknite linije (ili možete na bilo koje od polja) i odaberite Novo grupiranje.

Proširite polje Skladište i odaberite jedno od njegovih polja, na primjer Vrsta skladišta.

Razmišljajući, sjetili smo se da bismo željeli da se u jednom stupcu istovremeno prikaže nekoliko polja. Dvaput kliknite na novostvoreno polje lijevom tipkom miša. Ovdje možete dodati polja.

Ako dodate novo grupiranje, ali ne odaberete polje, to znači Sva polja (prikazano kao Detail Records). To izgleda ovako.

Zgrabite naše grupiranje lijevom tipkom miša (Skladište / Nomenklatura) i povucite ga na novo grupiranje (Vrsta skladišta).

Rezultat naših postavki.

Osim postavki, čiju radnju je lako pogoditi po imenu (Odabir, Razvrstavanje, itd.), tu je i kartica "Ostale postavke". Omogućuje vam da omogućite ili onemogućite takve stvari kao što su prikaz ukupnih vrijednosti, uređenje grupiranja u stupcima itd.

Imajte na umu da se postavke mogu odrediti za cijelo izvješće (Izvješće je odabrano) ili za određeni redak polja (odaberite redak, na primjer Nomenklatura, i odaberite Postavke: Nemenklatura).

Jezik izraza sustava za sastav podataka

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

Izrazi se koriste u sljedećim podsustavima:

  • shema sastava podataka - za opisivanje izračunatih polja, ukupnih polja, izraza odnosa itd.
  • postavke sastava podataka - za opisivanje prilagođenih izraza polja;
  • Predložak sastava podataka - za opisivanje izraza odnosa skupa podataka, opisivanje parametara predloška itd.

Literali

Izrazi mogu sadržavati literale. Mogući su literali sljedećih vrsta:

  • Crta;
  • Broj;
  • Datum;
  • Boolean.

Crta

Literal niza je napisan u znakovima "" ", na primjer:

"String literal"

Ako trebate koristiti znak "" "unutar literala niza, trebali biste koristiti dva takva znaka.

Na primjer:

"Doslovno" "u navodnicima" ""

Broj

Broj se piše bez razmaka, u decimalnom formatu. Frakcijski dio je odvojen simbolom "." Na primjer:

10.5 200

datum

Literal datuma se zapisuje pomoću ključnog literala DATETIME. Nakon ove ključne riječi, u zagradama, odvojenim zarezima, navode se godina, mjesec, dan, sati, minute, sekunde. Vrijeme je izborno.

Na primjer:

DATUM VRIJEME (1975, 1, 06) - 6. siječnja 1975. DATUM (2006, 12, 2, 23, 56, 57) - 2. prosinca 2006., 23 sata 56 minuta 57 sekundi, 23 sata 56 minuta 57 sekundi

Boolean

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

Značenje

Za određivanje literala drugih vrsta (nabrajanja sustava, unaprijed definiranih podataka), koristi se ključna riječ Value, nakon čega slijedi naziv literala u zagradama.

Vrijednost (vrsta računa. Aktivan)

Operacije nad brojevima

unarno -

Ova operacija ima za cilj obrnuti predznak broja. Na primjer:

Prodaja.Broj

Unarno +

Ova operacija ne izvodi nikakvu radnju na broju. Na primjer:

Prodaja.Broj

binarni -

Ova je operacija osmišljena za izračunavanje razlike između dva broja. Na primjer:

Ostaci i obrti.Početni saldo - Ostaci i obrti.Završni saldo Ostaci i obrti.Početni saldo - 100 400 - 357

Binarno +

Ova operacija je dizajnirana za izračunavanje zbroja dvaju brojeva. Na primjer:

Stanja i obrti.Početni saldo + Stanja i obrti.Promet Stanja i obrti.Početni saldo + 100 400 + 357

Raditi

Ova operacija je dizajnirana za izračunavanje umnoška dvaju brojeva. Na primjer:

Nomenklatura.Cijena * 1,2 2 * 3,14

Podjela

Ova operacija namijenjena je dobivanju rezultata dijeljenja jednog operanda drugim. Na primjer:

Nomenklatura.Cijena / 1.2 2 / 3.14

Ostatak divizije

Ova operacija je namijenjena za dobivanje ostatka od dijeljenja jednog operanda s drugim. Na primjer:

Nomenklatura Cijena% 1,2 2% 3.14

Operacije niza

Povezivanje (binarni +)

Ova operacija je namijenjena spajanju dva niza. Na primjer:

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

Kao

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

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

Sljedeći likovi u<Строке_шаблона>ima smisla osim samo sljedećeg retka:

  • % - postotak: 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 raspone, na primjer, a-z, što znači proizvoljan znak uključen u raspon, uključujući krajeve raspona;
  • [^…] - u uglatim zagradama ikona negacije nakon koje slijedi jedan ili više znakova: bilo koji znak osim onih navedenih iza ikone negacije;

Bilo koji drugi simbol znači sam po sebi i ne nosi nikakvo dodatno značenje. Ako je potrebno napisati jedan od navedenih znakova kao sebe, tada mu mora prethoditi<Спецсимвол>navedeno iza ključne riječi ESCAPE.

Na primjer, predložak

"% ABC [abvg] \ _ abc%" POSEBNI SIMBOL "\"

označava podniz koji se sastoji od niza znakova: slovo A; slova B; slova B; jedna znamenka; jedno od slova a, b, c ili d; znak podvlake; slova a; slova b; slova c. Štoviše, ovaj slijed se može locirati počevši od proizvoljnog položaja u liniji.

Operacije usporedbe

Jednako

Ova operacija namijenjena je usporedbi dvaju operanda radi jednakosti. Na primjer:

Prodaja.Izvođač = Prodaja.Nomenklatura Glavni dobavljač

Nejednak

Ova operacija namijenjena je usporedbi dvaju operanda za nejednakost. Na primjer:

Prodaja, izvođač radova<>Prodaja.Nomenklatura Glavni dobavljač

Manje

Ova operacija ima za cilj provjeriti je li prvi operand manji od drugog. Na primjer:

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

Više

Ova operacija ima za cilj provjeriti je li prvi operand veći od drugog. Na primjer:

SalesCurrent.Total> SalesPast.Amount

Manje ili jednako

Ova operacija ima za cilj provjeriti je li prvi operand manji ili jednak drugom. Na primjer:

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

Više ili jednako

Ova operacija ima za cilj provjeriti je li prvi operand veći ili jednak drugom. Na primjer:

SalesCurrent.Amount> = Prošla prodaja

Operacija B

Ova operacija provjerava prisutnost vrijednosti u proslijeđenom popisu vrijednosti. Rezultat operacije bit će True ako je vrijednost pronađena ili False u suprotnom. Na primjer:

Stavka B (& Stavka1, & Stavka2)

Operacija provjere postojanja vrijednosti u skupu podataka

Operacija provjerava postojanje vrijednosti u navedenom skupu podataka. Skup podataka za provjeru valjanosti mora sadržavati jedno polje. Na primjer:

Prodaja. Counterparty to Counterparty

Operacija provjere vrijednosti za NULL

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

Prodaja.Izvođač JE NULL

Operacija provjere vrijednosti za NULL nejednakost

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

Prodaja.Izvođač NIJE NULL

Logičke operacije

Logičke operacije uzimaju Booleove izraze kao operande.

Operacija NE

Operacija NE vraća True ako je njen operand False, i False ako je njen operand True. Na primjer:

NOT Document.Consignee = Dokument.Pošiljatelj

Operacija I

Operator AND vraća True ako su oba operanda True, i False ako je jedan od operanda False. Na primjer:

Document.Consignee = Dokument.Pošiljatelj I Document.Consignee = & Counterparty

ILI operacija

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

Document.Consignee = Document.Crier OR Document.Consignee = & Counterparty

Agregatne funkcije

Agregatne funkcije izvode neku radnju na skupu podataka.

Iznos

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

Iznos (Prodaja.Ukupan promet)

Količina

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

Količina (Prodaja. Izvođač)

Broj različitih

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

Količina (razna prodaja. Izvođač)

Maksimum

Funkcija dobiva maksimalnu vrijednost. Na primjer:

Maksimum (Stanje. Količina)

Minimum

Funkcija dobiva minimalnu vrijednost. Na primjer:

Minimum (Stanje. Količina)

Prosječno

Funkcija dobiva srednju vrijednost vrijednosti koje nisu NULL. Na primjer:

Prosjek (Stanje.Iznos)

Ostale operacije

Operacija SELECT

Operacija Select dizajnirana je za odabir jedne od nekoliko vrijednosti kada su ispunjeni određeni uvjeti. Na primjer:

Odabir Kada je iznos> 1000 Zatim iznos ostalo 0 Kraj

Pravila za usporedbu dviju vrijednosti

Ako se vrste uspoređenih vrijednosti međusobno razlikuju, tada se odnos između vrijednosti određuje na temelju prioriteta tipova:

  • NULL (najniže);
  • Boolean;
  • Broj;
  • Datum;
  • Crta;
  • Referentne vrste

Odnosi između različitih referentnih tipova određuju se na temelju referentnih brojeva tablica koje odgovaraju određenom tipu.

Ako se vrste podataka podudaraju, tada se vrijednosti uspoređuju prema sljedećim pravilima:

  • Boolean tip ima vrijednost TRUE veću od vrijednosti FALSE;
  • tip Broj ima uobičajena pravila za usporedbu brojeva;
  • tip Datum ima ranije datume manje od kasnijih;
  • za tip String - usporedbe nizova u skladu s utvrđenim nacionalnim karakteristikama baze podataka;
  • referentni tipovi se uspoređuju na temelju njihovih vrijednosti (brojevi zapisa itd.).

Rad s NULL vrijednostima

Svaka operacija u kojoj je vrijednost jednog od operanada NULL rezultirat će NULL.

Postoje iznimke:

  • operacija AND će vratiti NULL samo ako nijedan od operanada nije False;
  • operacija OR će vratiti NULL samo ako nijedan od operanada nije True.

Prioriteti operacije

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

  • B IS NULL NIJE NULL;
  • =, <>, <=, <, >=, >;
  • Binarno +, Binarno -;
  • *, /, %;
  • Unarno +, Unarno -.

Funkcije jezika izraza sustava sastavljanja podataka

Izračunati

Funkcija Calculate dizajnirana je za procjenu izraza u kontekstu nekog grupiranja. Funkcija ima sljedeće parametre:

  • Izraz. Upišite String. Sadrži izračunati izraz;
  • Grupiranje. Upišite String. Sadrži naziv grupiranja u čijem kontekstu se izraz treba evaluirati. Ako se kao naziv grupiranja koristi prazan niz, izračun će se izvesti u kontekstu trenutnog grupiranja. Ako se redak GeneralTotal koristi kao naziv grupiranja, izračun će se izvesti u kontekstu ukupnog zbroja. U suprotnom, izračun će se izvesti u kontekstu nadređene grupe s istim imenom. Na primjer:
Iznos (Sales.SumTurnover) / Izračunajte ("Iznos (Sales.SumTurnover)", "TotalTotal")

U ovom primjeru, rezultat će biti omjer iznosa za polje Sales.SumTurnover zapisa grupiranja i iznosa istog polja u cijelom izgledu.

Razina

Funkcija je namijenjena dobivanju trenutne razine snimanja.

Razina()

BrojNaredba

Uzmite sljedeći redni broj.

Broj Red ()

NumberOrderInGroup

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

NumberOrderInGrouping ()

Format

Dobijte formatirani niz proslijeđene vrijednosti.

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

Parametri:

  • Značenje;
  • Oblikujte niz.

Format (Fakture.SumDoc, "NPT = 2")

Početak razdoblja

Parametri:

    • Minuta;
    • Dan;
    • Tjedan;
    • Mjesec;
    • Četvrtina;
    • Desetljeće;
    • Pola godine.

Početak razdoblja (Datum i vrijeme (2002, 10, 12, 10, 15, 34), "Mjesec")

Proizlaziti:

01.10.2002 0:00:00

Kraj razdoblja

Funkcija je dizajnirana za izdvajanje određenog datuma iz određenog datuma.

Parametri:

  • Datum. Upišite datum. Navedeni datum;
  • Vrsta razdoblja. Upišite String. Sadrži jednu od vrijednosti:
    • Minuta;
    • Dan;
    • Tjedan;
    • Mjesec;
    • Četvrtina;
    • Desetljeće;
    • Pola godine.

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

Proizlaziti:

13.10.2002 23:59:59

Dodaj datumu

Funkcija je namijenjena za dodavanje određene vrijednosti datumu.

Parametri:

  • Vrsta povećanja. Upišite String. Sadrži jednu od vrijednosti:
    • Minuta;
    • Dan;
    • Tjedan;
    • Mjesec;
    • Četvrtina;
    • Desetljeće;
    • Pola godine.
  • Vrijednost - za koliko treba povećati datum. Vrsta Broj. Frakcijski dio se zanemaruje.

Dodaj datumu (Datum i vrijeme (2002, 10, 12, 10, 15, 34), "Mjesec", 1)

Proizlaziti:

12.11.2002 10:15:34

Razlika u datumu

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

Parametri:

  • Izraz. Upišite datum. Izvorni datum;
  • Izraz. Upišite datum. Oduzeti datum;
  • Vrsta razlike. Upišite String. Sadrži jednu od vrijednosti:
    • Drugi;
    • Minuta;
    • Dan;
    • Mjesec;
    • Četvrtina;

RAZLIKA (DATUM VRIJEME (2002, 10, 12, 10, 15, 34), DATUM VRIJEME (2002, 10, 14, 9, 18, 06), "DAN")

Proizlaziti:

Podniz

Ova je funkcija dizajnirana za izdvajanje podniza iz niza.

Parametri:

  • Crta. Upišite String. Niz iz kojeg treba izdvojiti podniz;
  • Položaj. Vrsta Broj. Položaj znaka iz kojeg počinje podniz koji se izdvaja iz niza;
  • Duljina. Vrsta Broj. Duljina podniza za odabir.

PODLOGA (Izvođači. Adresa, 1, 4)

Duljina linije

Funkcija je dizajnirana za određivanje duljine niza.

Parametar:

  • Crta. Upišite String. Niz koji treba navesti u dužini.

Niz (Računi.Adresa)

Godina

Ova je funkcija dizajnirana za izdvajanje godine iz vrijednosti tipa Datum.

Parametar:

  • Datum. Upišite datum. Datum do kojeg se utvrđuje godina.

GODINA (Datum fakture)

Četvrtina

Ova funkcija namijenjena je izdvajanju broja četvrtine iz vrijednosti tipa Datum. Broj četvrtine je obično u rasponu od 1 do 4.

Parametar

  • Datum. Upišite datum. Datum do kojeg se utvrđuje tromjesečje
KVARTAL (Datum isporuke)

Mjesec

Ova funkcija namijenjena je izdvajanju broja mjeseca iz vrijednosti tipa Datum. Broj mjeseca obično je u rasponu od 1 do 12.

  • Datum. Upišite datum. Datum do kojeg se određuje mjesec.
MJESEC (Datum fakture)

Dan u godini

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

  • Datum. Upišite datum. Datum po kojem se određuje dan u godini.
DAN U GODINI (Datum fakture)

Dan

Ova funkcija namijenjena je dobivanju dana u mjesecu iz vrijednosti tipa Datum. Dan u mjesecu je obično u rasponu od 1 do 31.

  • Datum. Upišite datum. Datum do kojeg se određuje dan u mjesecu.
DAY (Datum fakture)

Tjedan

Ova funkcija namijenjena je dobivanju broja tjedna u godini iz vrijednosti tipa Datum. Tjedni u godini se numeriraju počevši od 1.

  • Datum. Upišite datum. Datum do kojeg se određuju brojevi tjedana.
TJEDAN (Datum fakture)

Dan u tjednu

Ova funkcija namijenjena je dobivanju dana u tjednu iz vrijednosti tipa Datum. Dan u tjednu je obično između 1 (ponedjeljak) i 7 (nedjelja).

  • Datum. Upišite datum. Datum do kojeg se određuje dan u tjednu.
DAN U TJEDNU (Datum fakture)

Sat

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

  • Datum. Upišite datum. Datum do kojeg se određuje sat u danu.
HOUR (Datum isporuke)

Minuta

Ova funkcija namijenjena je dobivanju minute od jednog sata iz vrijednosti tipa Datum. Minuta u satu kreće se od 0 do 59.

  • Datum. Upišite datum. Datum do kojeg se određuje minuta u satu.
MINUTE (Datum fakture)

Drugi

Ova funkcija namijenjena je dobivanju sekunde minute iz vrijednosti tipa Datum. Sekunda minute kreće se od 0 do 59.

  • Datum. Upišite datum. Datum do kojeg se određuju sekunde minute.
DRUGO (Datum fakture)

Izraziti

Ova funkcija namijenjena je izdvajanju tipa iz izraza koji može sadržavati složeni tip. Ako izraz sadrži tip koji nije traženi tip, bit će vraćena NULL vrijednost.

Parametri:

  • Izraz koji treba pretvoriti;
  • Oznaka tipa. Upišite String. Sadrži niz tipa. Na primjer, "Broj", "String" itd. Osim primitivnih tipova, ovaj niz može sadržavati naziv tablice. U ovom slučaju, pokušat će se izraziti referenca na navedenu tablicu.

Express (Podaci.Props1, "Broj (10.3)")

DaNull

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.ukupan promet), 0)

Uobičajene funkcije modula

Izraz stroja 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" bit će pozvana iz modula opće konfiguracije.

Imajte na umu da je korištenje funkcija zajedničkih modula dopušteno samo kada je naveden odgovarajući parametar procesora sastava podataka.

Osim toga, funkcije zajedničkih modula ne mogu se koristiti u izrazima prilagođenih polja.

U nekom trenutku javlja se potreba za radom s varijablama tipa "Datum". U ovom članku ćemo pogledati osnovne tehnike - prolazak tekućeg datuma, provjeru prazne vrijednosti, proizvoljan datum.

Prilikom pisanja upita često je potrebno usporediti podatke s trenutnim datumom. Ugrađeni 1C jezik ima funkciju CurrentDate (). Omogućuje vam da odredite trenutno vrijeme i datum na vašem računalu. Za izvođenje operacija s tekućim datumom potrebno je zahtjevu proslijediti vrijednost ove funkcije kao parametar.

U nastavku se nalazi upit koji odabire sve datoteke priložene izvješćima o troškovima s datumom izrade do sada:

Primjer Zahtjev = Novi zahtjev;
ExampleRequest.Text = "
| ODABIR
| Unaprijed izvješće Priložene datoteke. Veza
| OD
| Reference.AvailableReportAttachedFilesASA AdvanceReportAttachedFiles
| GDJE
| Unaprijed izvješće Priložene datoteke.Datum< &ТекДата»;
ExampleRequest.SetParameter ("Trenutačni datum", CurrentDate ());

Prilagođeni datum

Gornja funkcija omogućuje vam usporedbu i stoga odabir za bilo koje razdoblje. Ova metoda vam omogućuje da navedete strogi odabir u upitu bez korištenja dodatnih parametara.

Imajte na umu da smo korištenjem ove funkcije u gornjem primjeru proslijedili samo tri broja (godina, mjesec, dan) kao ulazne parametre. Posljednja tri (sat, minuta, sekunda) nisu obavezna i, ako ih nema, zamjenjuju se s "0", odnosno početkom dana.

Za ovaj primjer, primit ćete sve datoteke priložene izvješćima o troškovima do kraja prošle 2016. S tim u vezi naznačit ćemo sat, minutu i sekundu radi usporedbe s trenutkom u vremenu "31. prosinca 2016. u 23:59:59".

IZABERI
Unaprijed izvješće Priložene datoteke. Veza
IZ
Directory.AvailableReportAttachedFiles AS AdvanceReportAttachedFiles
GDJE
Unaprijed izvješće Priložene datoteke.Datum< ДАТАВРЕМЯ(2016, 12, 31, 23, 59, 59)

Prazan datum

Najlakše je jednostavnom usporedbom provjeriti varijablu da vidite sadrži li prazan datum. U ovom primjeru, pomoću upita ćemo odabrati sva primanja sredstava na bankovni račun za koje nije popunjen ulazni datum.

Prijavite se kao student

Sustav sastavljanja podataka 1C 8.3 za početnike: prvo izvješće o ACS-u

Ako niste pročitali uvod u ovaj modul, pročitajte ga:.

Da biste dovršili lekcije, trebat će vam 1C 8.3 (ne niže 8.3.13.1644 ) .

Ako već imate instaliranu verziju 1C 8.3, upotrijebite je. Ako ne, preuzmite i instalirajte obrazovnu verziju koju 1C izdaje posebno u obrazovne svrhe:.

Na radnoj površini trebao bi se pojaviti sljedeći prečac:

Za sve lekcije iz ovog ciklusa koristit ćemo Gastronomsku bazu koju sam pripremio. Potpuno se poklapa s bazom koju smo koristili u školskim modulima prilikom proučavanja upita. Stoga očekujem da ste upoznati s njezinim priručnicima i dokumentima.

Ako ste ga izbrisali, preuzmite ga ponovno na sljedećem, raspakirajte ga i unesite u popis baza podataka.

Konačno, radno mjesto je postavljeno i sada ćemo zajedno izraditi naše prvo izvješće koristeći sustav za sastavljanje podataka. Bit će vrlo jednostavno demonstrirati opće mogućnosti sustava za sastavljanje podataka (skraćeno SKD).

Postavili smo cilj

Svrha ovog vodiča- izraditi izvješće koje u korisničkom načinu rada prikazuje popis klijenata sa sljedećim poljima:

  • Ime
  • Kat
  • Omiljena boja klijenta.

Izvješće mora biti eksterno. To znači da će se kreirati i konfigurirati u konfiguratoru, a zatim spremiti kao zasebna (vanjska) datoteka na vašem računalu.

Za generiranje takvog izvješća u 1C, korisnik će morati pokrenuti bazu podataka u korisničkom načinu rada, otvoriti ovu datoteku i kliknuti gumb "Generiraj".

Ići!

Napravite izvješće

Pokrenite konfigurator za Gastronom bazu podataka:

Iz glavnog izbornika odaberite stavku "Datoteka" -> "Novo ...":

Odabiremo "Vanjski izvještaj":

Izradite shemu sastava podataka unutar izvješća

Otvoren je prozor za izradu vanjskog izvješća. Unesite kao ime: " Lekcija 1"a zatim pritisnite gumb" Otvorena shema sastava podataka":

Kreator sheme je pokrenut. Slažem se sa zadanim imenom " Izgled osnovnih podataka"i pritisnite gumb" Spreman":

Otvoren je glavni radni prozor s mnogo kartica i polja u kojima ćemo prilagoditi našu shemu sastava podataka.

Ne treba se bojati – ovdje ima zaista mnogo prilika, ali ne trebaju nam sve. Pogotovo u prvoj lekciji.

Sada smo na bookmarku " Skupovi podataka"Ostat ćemo na tome.

Zahtjev pišemo kroz konstruktor

Sustav sastavljanja podataka (skraćeno ACS) zahtijeva od nas podaci, koje će prikazati korisniku.

Najlakši način - napišite zahtjev do baze. U školama smo naučili kako pisati i razumjeti upite - pa očekujem da imate odgovarajuće vještine.

Kliknite na zelena znak plus i na padajućem popisu odaberite stavku " Dodaj skup podataka - upit":

Naš zadatak je napisati tekst zahtjeva u ovo polje. Jeste li već zaboravili kako se to radi?

Dat ću vam savjet:

U ovom upitu odabrali smo tri polja (" Ime", "Kat"i" Omiljena boja") sa stola" Imenik.Klijenti".

Ali nemojte žuriti ručno napisati ovaj tekst u polje "Zahtjev".

Sada ćemo isti upit kreirati vizualno, samo uz pomoć miša. Ova metoda se zove " Konstruktor upita".

Da biste pozvali ovaj konstruktor, pritisnite " Konstruktor upita..."u gornjem desnom dijelu polja" Zahtjev ":

U prozoru koji se otvori povucite tablicu " Klijenti"od prvog stupca do drugog, da naznačimo što ćemo točno iz ove tablice tražiti podatke:

Ispalo je ovako:

Zatim, otvorimo stol " Klijenti"u drugom stupcu znakom" plus"vidjeti sva njegova polja i povući polje" Ime"od drugog stupca do trećeg, kako bismo naznačili da iz ove tablice moramo upiti polje" Ime ":

Ispalo je ovako:

Učinimo isto s poljima " Kat"i" Omiljena boja". Rezultat će biti ovakav:

Pritisnite gumb "OK" da izađete iz konstruktora upita i vidite da je tekst upita automatski dodan u polje "Upit".

Štoviše, na temelju teksta zahtjeva, 1C je sam izvukao nazive polja (područje iznad zahtjeva) koje će koristiti shema sastava podataka:

Sada kada smo sastavili zahtjev, ACS zna kako doći do podataka za izvješće.

Postavljanje prezentacije podataka

Ostao nekako vizualizirati ove podatke za korisnika u obliku tiskanog obrasca. I ovdje ACS može raditi čuda!

Da biste stvorili takvo čudo, idite na " Postavke"i kliknite gumb dizajnera postavki ( čarobni štapić):

U prozoru koji se otvori navedite vrstu izvješća " Popis" i pritisnite " Unaprijediti":

U sljedećem prozoru odaberite (povlačenjem) polja koja će se morati prikazati na popisu (povlačenjem i ispuštanjem svega što nam je dostupno: " Omiljena boja", "Ime"i" Kat"):

Dobijmo sljedeći rezultat i pritisnite gumb " u redu":

Konstruktor postavki je zatvoren i stavka " Detaljni zapisi":

Izvještaj je spreman, idemo provjeriti. Da biste to učinili, prvo spremite izvješće kao vanjsku datoteku.

Spremite izvješće kao datoteku

Otvorimo stavku glavnog izbornika " Datoteka"->"Uštedjeti":

Spremit ću ga na svoju radnu površinu pod imenom " Lekcija 1":

Provjera izvješća u korisničkom načinu rada

Konačno, zatvorimo konfigurator i idemo u našu bazu podataka u korisničkom načinu:

Korisničko ime "Administrator", bez lozinke:

Odaberite stavku " Datoteka"->"Otvorena...":

I naznačit ćemo datoteku izvješća (spremio sam je na radnu površinu pod imenom "Lesson1.erf":

Obrazac za prijavu se otvorio, pritisnite gumb " Oblikovati":

Spreman! Ovdje je naš ispis s popisom klijenata, njihovom omiljenom bojom i spolom:

Tiskani obrazac može se jednostavno ispisati. Da biste to učinili, samo odaberite stavku " Datoteka"->"Pečat...":

Toliko je jednostavno, bez programiranja, uspjeli smo napraviti cjelovito izvješće koje korisnici mogu otvoriti u svojim bazama podataka, generirati i ispisati.

studenti - odgovaram poštom, ali prvo pogledajte.

Prijavite se kao student

Prijavite se kao učenik za pristup školskim materijalima

U svjetlu nadolazećeg izdanja 8.2.14, pokušat ću opisati neke od novih funkcija sustava za sastavljanje podataka.

Otvorite shemu sastava podataka, po mogućnosti u vanjskom izvješću, kako biste je lakše uredili.

Dodamo skup podataka tipa upita i pišemo, bilo ručno ili pomoću konstruktora upita, najjednostavniji upit:

1. Postavite zahtjev u ACS.

2. Konfiguriranje izračunatih polja u ACS-u

3. Konfiguriramo sastav podataka na kartici postavki

4. Pokretanje 1C Enterprise 8.2.14. Otvaramo izvještaj. Formiramo, dobivamo.

Opis samih novih funkcija:

1. Trenutni datum()

Vraća datum sustava. Kada je izgled izgleda povezan, u svim izrazima koji su prisutni u izgledu, funkcija CurrentDate () zamjenjuje se vrijednošću trenutnog datuma.

2. IZRAČUNAJ IZRAZ ()

Sintaksa:

Procijeni izraz (,)

Opis:

Funkcija je dizajnirana za procjenu izraza 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 grupnom odabiru ove grupe. Na primjer, u odabiru nomenklature grupiranja ne možete koristiti izraz CalculateExpression ("Sum (SumTurnover)", "TotalTotal")> 1000... Ali takav se izraz može koristiti u hijerarhijskoj selekciji.

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

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

Layout linker prilikom generiranja izraza funkcije EvaluateExpression, u slučaju da izraz za naručivanje sadrži polja koja se ne mogu koristiti u grupiranju, zamjenjuje funkciju EvaluateExpression na NULL.

Parametri

vrsta: Crta... Izraz za procjenu.

vrsta: Crta... Sadrži naziv grupiranja u čijem kontekstu se izraz treba evaluirati. Ako se kao naziv grupiranja koristi prazan niz, izračun će se izvesti u kontekstu trenutnog grupiranja. Ako se redak GeneralTotal koristi kao naziv grupiranja, izračun će se izvesti u kontekstu ukupnog zbroja. U suprotnom, izračun će se izvesti u kontekstu nadređene grupe s istim imenom.

Na primjer:

Iznos (Sales.SumTurnover) / Izračunajte ("Iznos (Sales.SumTurnover)", "TotalTotal")

U ovom primjeru, rezultat će biti omjer zbroja nad poljem Prodaja.IznosPromet grupiranje zapisa u zbroj istog polja u cijelom izgledu;

vrsta: Crta... Parametar može imati sljedeće vrijednosti:

· Ukupni rezultat- izraz će se evaluirati za sve zapise grupiranja.

· Hijerarhija- izraz će se evaluirati za nadređeni hijerarhijski zapis, ako postoji, i za cijelo grupiranje, ako ne postoji nadređeni hijerarhijski zapis.

· Grupiranje- izraz će se evaluirati za trenutni grupni zapis grupiranja.

· Grupiranje bez resursa- kada se izračunava funkcija za grupni zapis prema resursima, izraz će se izračunati za prvi grupni zapis izvornog grupiranja.

Pri izračunu funkcije EvaluateExpression () sa značenjem Grupiranje bez resursa 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 Grupiranje.

Sastavljač predloška sastava podataka, kada generira predložak sastava podataka, pri izlazu polja resursa pomoću kojeg se vrši grupiranje u predložak, postavlja izraz izračunat pomoću funkcije EvaluateExpression () , navodeći parametar Grupiranje bez resursa... Za ostale resurse, regularni izrazi resursa su grupirani po resursima.

vrsta: Crta... Označava s kojim zapisom započeti fragment, u kojem izračunati agregatne funkcije izraza i iz kojeg zapisa dobiti vrijednosti polja izvan agregatnih funkcija. Vrijednost može biti jedna od sljedećeg:

· Prvi

· Posljednji

· Prethodni

· Sljedeće (Sljedeće)

· Trenutno

· Granična vrijednost(granična vrijednost) Granična vrijednost

vrsta: Crta... Označava na koji zapis nastaviti fragment u kojem se procjenjuju agregatne funkcije izraza. Vrijednost može biti jedna od sljedećeg:

· Prvi... Morate dobiti prvi zapis o grupiranju. Nakon riječi u zagradama možete odrediti izraz čiji će se rezultat koristiti kao pomak od početka grupiranja. Dobivena vrijednost mora biti cijeli broj veći od nule. Na primjer, Prvi (3) - dobivanje trećeg zapisa s početka grupiranja.

Ako je prvi zapis izvan granica grupiranja, smatra se da zapisa nema. Na primjer, ako postoje 3 zapisa, a želite dobiti Prvi (4), onda se smatra da nema zapisa.

· Posljednji... Morate dobiti najnoviji zapis o grupiranju. Izraz se može navesti iza riječi u zagradama, čiji će se rezultat koristiti kao pomak od kraja grupiranja. Dobivena vrijednost mora biti cijeli broj veći od nule. Na primjer, Last (3) - dobivanje trećeg zapisa s kraja grupiranja.

Ako je zadnji zapis izvan granica grupiranja, smatra se da zapisa nema. Na primjer, ako postoje 3 zapisa, a želite dobiti Posljednji (4), tada se smatra da nema zapisa.

· Prethodni... Morate dobiti prethodni zapis o grupiranju. Izraz se može navesti iza riječi u zagradama, čiji će se rezultat koristiti kao pomak unatrag od trenutnog zapisa grupiranja. Na primjer, Prethodni (2) - dohvatite prethodni iz prethodnog zapisa.

Ako je prethodni zapis izvan grupiranja (na primjer, za drugi zapis grupiranja koji želite dobiti Prethodni (3), tada se dobiva prvi zapis grupiranja.

Prilikom dohvaćanja prethodnog zapisa za zbroj grupiranja, smatra se da je prvi zapis dobiven.

· Sljedeće (Sljedeće)... Morate dobiti sljedeći zapis grupiranja. Izraz se može navesti iza riječi u zagradama, čiji će se rezultat koristiti kao pomak naprijed od trenutnog zapisa grupiranja. Na primjer, Next (2) - dohvatite sljedeći iz sljedećeg zapisa.

Ako sljedeći zapis izađe iz grupiranja, tada se smatra da zapisa nema. Na primjer, ako postoje 3 zapisa i Next () je primljen za treći zapis, tada nema zapisa.

Kada se primi sljedeći zapis za zbroj grupiranja, smatra se da zapisa nema.

· Trenutno... Morate dobiti trenutni rekord.

Prilikom dohvaćanja za zbroj grupiranja dobiva se prvi zapis.

· Granična vrijednost(granična vrijednost)... Potreba za dobivanjem zapisa na navedenoj vrijednosti. Nakon riječi Granična vrijednost u zagradama morate navesti izraz s čijom vrijednošću želite započeti fragment, prvo polje za redoslijed.

Kao zapis, dobit će se prvi zapis čija je vrijednost polja za narudžbu veća ili jednaka navedenoj vrijednosti. Na primjer, ako se polje Razdoblje koristi kao polje za narudžbu i ima vrijednosti 01/01/2010, 01/02/2010, 01/03/2010, a želite dobiti ConstrainingValue (datum i vrijeme (2010, 1, 15)), tada ćete dobiti zapisnik s datumom 01.02.2010.

vrsta: Crta... Popis izraza odvojenih zarezima koji opisuju pravila usporedbe. Ako nije navedeno, poredak se izvodi na isti način kao i za grupiranje za koje se izraz evaluira. Nakon svakog izraza možete odrediti ključnu riječ Dob(po redoslijedu uzlaznim redoslijedom), Silazni(za silazni red) i Automatsko naručivanje(za redoslijed referenciranih polja prema poljima po kojima želite poredati referencirani objekt). Riječ Automatsko naručivanje može se koristiti kao s riječju Dob, tako i s riječju Silazni.

vrsta: Crta... Slično parametru Sortiranje... Koristi se za sređivanje hijerarhijskih zapisa. Ako nije navedeno, sastavljač izgleda generira redoslijed prema redoslijedu navedenom u parametru Sortiranje.

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

· Odvojeno označava da se slijed uređenih zapisa koristi za definiranje prethodnog i sljedećeg zapisa. Zadana vrijednost.

· Zajedno označava da su prethodni i sljedeći zapisi određeni na temelju vrijednosti izraza za narudžbu.

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

datum Puno ime Značenje
1 1. siječnja 2001

Ivanov M.

10
2 2. siječnja 2001 Petrov S. 20
3 3. siječnja 2001 R. 30
4 4. siječnja 2001 Petrov S. 40

Odvojeno, zatim:

Prethodni unos za unos 3 bit će unos 2.

Struja, struja(odnosno, parametri Početak 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, zatim:

Prethodni unos za unos 3 bit će unos 1.

§ ako je izračunati fragment definiran kao Struja, struja(odnosno, parametri Početak i Kraj), tada će se za zapis 2 ovaj fragment sastojati od zapisa 2 i 3. Izraz Izračunaj izraz ("Zbroj (Vrijednost)", Trenutna, Trenutna) bit će jednako 50.

Kada je navedeno, vrijednost parametra je Zajedno, u parametrima Početak i Kraj ne možete odrediti pomak za pozicije Prvi, zadnji, prethodni, sljedeći.

Izračunaj izraz ("Zbroj (SumTurnover)", "Prvi", "Trenutačni")

Ako želite dobiti vrijednost grupiranja u prethodnom retku, možete koristiti sljedeći izraz:

Evaluacija izraza (tečaj, prethodni)

Popis novi funkcije:

EvaluateExpressionGroupedArray(,) -

Funkcija vraća niz čiji svaki element sadrži rezultat evaluacije izraza koji se grupira prema navedenom polju.

EvaluateExpressionGroupedValuesTable(,) -

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

ValueFilled() - Vraća True ako je vrijednost različita od zadane vrijednosti danog tipa, osim NULL, osim prazne reference, osim Undefined. Za Booleove vrijednosti provodi se provjera nule. Za nizove se provjerava da nema znakova koji nisu razmak

Format(,) - Dobijte formatirani niz proslijeđene vrijednosti. Niz formata postavljen je u skladu s nizom formata sustava 1C: Enterprise.

Podniz(,,) - Ova je funkcija dizajnirana za izdvajanje podniza iz niza.

Duljina linije() - Funkcija je dizajnirana za određivanje duljine niza. Parametar je izraz tipa string

Crta() - Ako je niz proslijeđen kao parametar, funkcija vraća niz koji sadrži nizove prikaza svih elemenata niza odvojenih znakovima ";". Ako se tablica vrijednosti prosljeđuje kao parametar, funkcija vraća niz koji sadrži nizove prikaza svih redaka tablice vrijednosti, s prikazima ćelija svakog retka odvojenim znakovima ";", a nizovi - znakom novog retka. Ako bilo koji element ima prazan prikaz niza, tada se prikazuje niz umjesto njegovog prikaza.

Vrhunski povezani članci