Navedite datum u zahtjevu 1s. Kako navesti prazan datum u zahtjevu? Više o neispravnim i redovnim vezama.

Datum je jedan od primitivnih tipova podataka u sistemu 1C:Enterprise. Datum uvijek ima format godina, mjesec, dan, sat, minut, sekunda. Dakle, varijabla kao datum sadrži ne samo datum, već i vrijeme.

Kreirajte varijablu s tipom datum može se uraditi na nekoliko načina:

Metoda 1:

Dodjeljivanje varijable vrijednosti tipa 'GGGGMMDDhhmmss' ili 'GGGG.MM.DD:hh:hh:ss'

Preuzimanje pojedinačnih komponenti datuma

Dokument može imati jednu oznaku, više oznaka ili uopće ne imati oznake. Ako polje nema vrijednosti, kako se pohranjuje u invertiranom indeksu? Ovo je kontroverzno pitanje jer je odgovor: uopće se ne pohranjuje. Pogledajmo ovaj obrnuti indeks iz prethodnog odjeljka.

Kako biste pohranili polje koje ne postoji u ovoj strukturi podataka? Obrnuti indeks je jednostavno lista tokena i dokumenata koji ih sadrže. Ako polje ne postoji, ono ne sadrži nikakve tokene, što znači da neće biti predstavljeno u invertiranoj strukturi podataka indeksa.

‘20100304235959’ — će vratiti datum 03/04/2010 23:59:59.

‘2011.10.09:22:10:12’ - vratiće datum 10/09/2011 22:10:12.

Metoda 2:

Korištenje funkcije globalnog konteksta Datum (godina, mjesec, dan, sat, minute, sekunde).

Datum (2010, 07, 14, 12, 13, 14) —

Ista funkcija može pretvoriti niz u datum.

Datum (20100714121314) —će vratiti vrijednost 07/14/2010 12:13:14

Oni jednostavno ne postoje u obrnutom indeksu! Prvi alat u vašem arsenalu je postojeći upit. Ovaj upit će vratiti dokumente koji imaju bilo koju vrijednost u navedenom polju. Koristimo oznake primjera i indeksirajmo neke primjere dokumenata.

Više o neispravnim i redovnim vezama

Rezultirajući obrnuti indeks za naše polje oznaka će izgledati ovako. Naš cilj je pronaći sve dokumente koji imaju postavljenu oznaku. Nije nas briga šta je oznaka sve dok postoji unutar dokumenta. Naš upit vraća tri dokumenta. Rezultati su lako razumljivi. Svaki dokument koji je imao pojmove u polju za oznake vraćen je kao pogodak.

Metoda 3 (za upite):

Korištenje izraza DATETIME (godina, mjesec, dan, sat, minuta, sekunda)

Za bilo koju od metoda, navođenje sati, minuta i sekundi nije obavezno.

Datum (2 010, 07, 14) će vratiti vrijednost 07/14/2010 0:00:00

Metoda 4:

Također možete zatražiti od korisnika da unese željeni datum. Da biste to učinili, trebate koristiti funkciju Unesite datum (datum, upit, dio datuma). Prvi parametar specificira varijablu kojoj će biti dodijeljena unesena vrijednost. Drugi parametar je naslov dijaloškog okvira, treći parametar određuje koji dio tipa datum mora biti uneto. Može poprimiti sljedeće vrijednosti:

Brzi vodič za kriterije kriterija upita

Zamijenimo postojeći upit upitom koji nedostaje iz prethodnog primjera. I, kao što možete očekivati, vraćamo dva dokumenta koja nemaju stvarne vrijednosti u polju oznaka: dokumenti 3 i 4. Sa zadanim ponašanjem koje smo vidjeli ranije, to nije moguće; Podaci su izgubljeni. Iako su ovi kriteriji prilično jednostavni, svako vam može pomoći da izvršite smislene pretrage vaših podataka.

Jednostavni kriterijumi za sve tipove podataka

Ako vam je ovaj vodič koristan, uvijek budite pri ruci.

Varijable, vrijednosti i izrazi

Pratite nas za još sadržaja u ovoj seriji. Možete ga koristiti da kreirate nove alate, pojednostavite uobičajene zadatke, pa čak i preradite postojeće funkcije uređivača. Na kraju krajeva, cijela poenta skripti je smanjiti količinu kucanja koju morate učiniti.

  • PartsDate.Date - Unosit će se samo godina, mjesec i dan;
  • PartsDates.Times - Biće uneseni samo sati, minute, sekunde. U ovom slučaju, datum će izgledati ovako 0001.01.01 hh:mm:ss.
  • PartsDate.DateTime — Sve komponente datuma i vremena će biti unesene.

Metoda 5 (dobi trenutni datum i vrijeme)

Datum = TrenutniDatum() ;

Međutim, morate unijeti deset ili više znakova svaki put kada želite uključiti isticanje sintakse. Ovo uzrokuje da sekvenca uključi ili isključi isticanje sintakse svaki put kada se unese kada ste u normalnom načinu rada. Pogledajmo svaku komponentu ove skripte.

Redovi koji se nastavljaju koristeći obrnute kose crte

Ovaj posao se odnosi na izvršavanje naredbe. Na primjer, možete kreirati mapiranje tipkovnice tako da vaš razmak djeluje kao tipka za dolje, na primjer. Također možete staviti dva ili više iskaza u jedan red tako što ćete ih odvojiti okomitom trakom.

Provjeravamo prazan datum

Često je potrebno provjeriti da li je datum upisan ili ne. Prazan datum je prvi januar 1. godine, 0 sati, 0 minuta, 0 sekundi. Provjera bi mogla izgledati ovako:

Ako je Datum provjere = Datum(1, 1, 1) Onda
//akcija na prazan datum
EndIf ;

Detaljno korištenje datuma

Imajte na umu da se nizovi mogu specificirati sa dvostrukim navodnicima ili jednostrukim navodnicima kao graničnicima. Nasuprot tome, jednostruki navodniki tretiraju sve unutar svojih graničnika kao doslovne znakove, s izuzetkom dva uzastopna pojedinačna navodnika, koji se tretiraju kao doslovni pojedinačni navodnik. Imajte na umu da vrijednosti u listi ili rječniku ne moraju biti istog tipa, možete miješati nizove, brojeve, pa čak i ugniježđene liste i rječnike ako želite.

Provjeravamo prazan datum

Za razliku od vrijednosti, varijable nemaju ugrađeni tip. Umjesto toga, oni uzimaju tip prve vrijednosti koja im je dodijeljena. Dakle, u prethodnom primjeru, varijable imena i visine su sada skalarne, sada su interesi varijabla liste, a sada je telefon varijabla rječnika. Varijabilni tipovi, kada su dodijeljeni, trajni su i striktno se pridržavaju tokom izvršenja.

U detaljima referentnih knjiga, dokumenata itd. može biti korišteno:

  • datum, tada je vrijeme uvijek 00:00:00;
  • samo vrijeme, tada je datum 01.01.0001;
  • datum i vrijeme.

Preuzimanje pojedinačnih komponenti datuma

Uzmi godinu:

Rezultat= Godina(Datum) ;

Uzmi mjesec:

Rezultat= Mjesec(Datum) ;

Dobijte broj dana u mjesecu:

Operacije konverzije datuma

Po defaultu, varijabla je vezana za funkciju u kojoj je prvi put dodijeljena ili je globalna ako se njena prva dodjela dogodi izvan bilo koje funkcije. Međutim, varijable se također mogu eksplicitno deklarirati da pripadaju drugim opsegima korištenjem raznih prefiksa, kao što je navedeno u tabeli.

Oni su sažeti u tabeli. Varijanta "pseudo-varijable" može biti posebno korisna. Na primjer, možete konfigurirati dvije mape tipki za povećanje ili smanjenje trenutne kartice na ovaj način. Ovo sprječava da mapa ključeva smanji trenutni razmak između kartica ispod minimalno potrebnog. Dostupni operatori su sažeti u tabeli. Kada se niz koristi kao boolean, on se prvo pretvara u cijeli broj, a zatim se procjenjuje na true ili false. To znači da će se velika većina stringova, uključujući većinu nepraznih stringova, procijeniti na false.

Rezultat= Dan (Datum) ;

Dobijte broj dana u godini:

Rezultat = Dan u godini (Datum) ;

Dobijte broj dana u sedmici:

Rezultat=Dan u nedelji(Datum) ;

Dobijte broj sedmice u godini:

Rezultat = Sedmica u godini (datum) ;

Dobiti sat:

Rezultat=Sat(Datum) ;

Dobijte minutu:

Rezultat= Minuta(Datum) ;

Uzmi drugo:

Detaljno korištenje datuma

Uobičajena greška je provjeravanje praznog niza kao što je ovaj. Ispravno rješenje je eksplicitna provjera nizova da li su praznine koristeći odgovarajuću ugrađenu funkciju. Konkretno, ako je jedan operand string, a drugi broj, string će biti konvertovan u broj i dva operanda će se zatim numerički porediti.

Odakle dolaze

To može dovesti do manjih grešaka. Pouzdanije rješenje u takvim slučajevima. Veoma je preporučljivo koristiti "eksplicitno zaokružene" operatore za sva podudaranja nizova, jer oni osiguravaju da se skripte ponašaju pouzdano, bez obzira na promjene postavki korisničkih opcija.

Rezultat=Drugi(Datum) ;

Operacije konverzije datuma

Datum predstavlja broj sekundi koji su prošli od 1. januara 0001 00:00:00. Stoga, da biste datumu dodali dane, sate, minute itd., morate dodati odgovarajući broj sekundi.

Rezultat= Datum + 1 ; //Dodan sekund
Rezultat= Datum + 2 * 60 ; //Dodano 2 minute
Rezultat = Datum + 3 * 60 * 60 * 24 ; //Dodano 3 dana

Problem sa celobrojnom aritmetikom

Uobičajena greška u ranijim verzijama bila je da se napiše nešto poput. Lako je prilagoditi skriptu za prebacivanje sintakse prikazanu ranije za kreiranje drugih korisnih alata. Ova skripta bi mogla izgledati ovako.

Isticanje često pogrešno korištenih riječi

Ovo vam omogućava da uključite provjeru riječi nezavisno za svaki prozor uređivača. Utakmica očekuje specifikaciju za isticanje teksta iza koje slijedi regularni izraz, koji određuje koji tekst treba istaknuti.

Ovaj skup alternativa se zatim stavlja u zagrade koristeći granice riječi koje ne razlikuju velika i mala slova kako bi se osiguralo da se podudaraju samo cijele riječi, bez obzira na njihovo pisanje velikim slovom. Možete koristiti isti opći predložak da pozovete karticu za umetanje ili skraćenicu da izvršite bilo koju radnju koja je dostupna skripti. Zapamtite, međutim, da ovo nije isto. Prilozi za mapiranje mogu uključivati ​​skripte koje su znatno složenije od prethodnih primjera. U takvim slučajevima, obično je dobra ideja preformatirati kod u prilagođenu funkciju koju mapiranje ključa tada može pozvati.

Dodajte ili oduzmite jedan ili više mjeseci od datuma.