Dobiti trenutni datum 1s 8.3

19.11.2019 Savjet

Vrsta "Datum" u 1C jedna je od 4 glavne vrste podataka zajedno s brojem, nizom i Booleovim. Datumi su sveprisutni u konfiguracijama - nemoguće je izbjeći rad s ovom vrstom podataka tijekom razvoja. Stoga je bolje početi pisati upite već s razumijevanjem kako obrađivati ​​datume, koje opcije postoje za rad s njima i kako se pohranjuju. Pogledajmo primjere svih nijansi pisanja upita s različitim datumima.

Primjeri rada s datumima u 1C upitima

Prije svega, morate dobiti datum u zahtjevu u traženom formatu- sa ili bez vremena. Postoji nekoliko načina za dovršenje ovog zadatka:

  1. Prijelaz preko parametra. Ovom metodom možete dobiti samo trenutni datum sesije;
  2. Dobiti datum u upitu iz polja za odabir;
  3. Pretvorite iz numeričkih vrijednosti pomoću funkcije DATETIME().

Najčešći zadatak pri radu s dokumentima je provjera praznog datuma u zahtjevu 1C. U ovom slučaju najlakše je usporediti varijablu ili polje s praznim datumom koji se dobiva pomoću funkcije DATETIME(1,1,1):

DATETIME (1, 1, 1)

Pomoću slične naredbe možete dobiti proizvoljan datum i vrijeme u zahtjevu. Štoviše, mogu se odrediti s točnošću do sekunde određivanjem 6 brojeva kao parametara. Ako se koriste samo 3 broja, tada će sati, minute i sekunde biti postavljeni na 0 (početak dana). Na primjer, u zahtjevu moramo odabrati dokumente za prvih 10 dana siječnja 2018.:

SELECT Potvrda na tekući račun. Poveži KAO Veza FROM dokumenta. Potvrda na tekući račun AS Potvrda na tekući račun WHERE Potvrda na tekući račun. Datum IZMEĐU DATETIME(2018, 1, 1, 0, 0, 0) I DATETIME(2018, 1, 10, 23, 59, 59)

U upitu na ugrađenom 1C jeziku ne možete samo odabrati različita polja i primati parametre. Postoje mnoge funkcije koje olakšavaju formatiranje datuma za određeni zadatak. Ako često radite s datumima u upitu, trebali biste znati ove naredbe:

  • POČETAK MJESEČNICE. Parametri određuju datum i vremensko razdoblje u kontekstu kojeg je potrebno dobiti početak datuma. Koristi se za pretvaranje datuma u bezvremenski format. Da biste to učinili, morate postaviti drugi parametar - "DAN";
POČETAK RAZDOBLJA(,) POČETAK RAZDOBLJA(&Datum, DAN) period>datum>
  • KRAJ RAZDOBLJA. Slična naredba koja vraća zadnji datum u smislu jedinica navedenih u parametrima;
  • DODAJ DATUM. Omogućuje vam da dobijete datum koji je veći za određeni broj navedenih vremenskih jedinica. Funkcijski parametri uključuju datum, vremensku jedinicu i broj;
ADDKDATE(,) ADDKDATE(&Datum, DAY, 10) količina>tip>datum>
  • DATUM RAZLIKE. Dobiva razliku između datuma u navedenim jedinicama;
DIFFERENCEDATE(,) DIFFERENCEDATE(&Datum1, &Datum2, DAY) tip>datum2>datum1>
  • DAN U TJEDNU. Vraća redni broj jednog od dana u tjednu.

Ispravnim korištenjem ovih funkcija programer može riješiti prilično netrivijalne probleme. Na primjer, dobivanje naziva dana u tjednu trenutnog datuma u zahtjevu kao niz:

ODABERITE WHENDAY U TJEDNU(&TrenutniDatum) = 1 ZATIM "Ponedjeljak" WHENDAYDAY(&TrenutniDatum) = 2 ZATIM "Utorak" WHENDAY U TJEDNU(&TrenutniDatum) = 3 ZATIM "Srijeda" WHENDAYDAY(&TrenutniDatum) = 4 ZATIM "Četvrtak" WHENDAY U TJEDNU (&TrenutniDatum) = 5 ONDA "Petak" DAN U TJEDNU(&TrenutniDatum) = 6 ONDA "Subota" DRUGO "Nedjelja" KRAJ

Pretvaranje tipova u 1C upitu iz broja ili niza u datum zahtjevan je zadatak. Datum možete dobiti iz brojeva pomoću funkcije DATETIME, iz niza - kombinacijom funkcije SUBSTRING i konstrukcije SELECT WHEN THEN ELSE. Na temelju toga, programeri radije dobivaju datum od drugih tipova u modulu i prosljeđuju ga zahtjevu pomoću parametra. Nažalost, to nije uvijek izvedivo, pa morate promijeniti format datuma u zahtjevu.

Moguće je navesti datum u zahtjevu 1C kao parametar za dobivanje podataka iz tablica virtualnog registra. Ova uloga također može koristiti sve gore navedene funkcije. Ali ovdje je važno ne dopustiti da prazan datum u zahtjevu 1C utječe na konačni rezultat izvršavanja koda, pa se mora izvršiti provjera.

Vrlo često postoji potreba za radom s varijablama tipa "Datum". U ovom članku ćemo pogledati osnovne tehnike - prosljeđivanje trenutnog datuma, provjera prazna vrijednost, proizvoljni datum.

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

Ispod je upit koji odabire sve datoteke priložene izvješćima o troškovima s datumom izrade do sada:

ExampleRequest = Novi zahtjev;
Primjer zahtjeva.Tekst = "
|ODABIR
| AdvanceReportAttachedFiles.Link
|OD
| Directory.AdvanceReportAttachedFilesAS AdvanceReportAttachedFiles
|GDJE
| AdvanceReportAttachedFiles.Date< &ТекДата»;
Primjer Request.SetParameter("CurrentDate", CurrentDate());

Prilagođeni datum

Gore spomenuta funkcija omogućuje vam usporedbu i stoga odabir za bilo koje razdoblje. Ova metoda omogućuje vam da odredite strogi odabir u zahtjevu bez korištenja dodatnih parametara.

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

Unutar ovaj primjer Primit će se sve datoteke priložene izvješćima o troškovima do kraja prošle 2016. godine. U tom smislu, navest ćemo sat, minutu i sekundu za usporedbu vremenske točke "31. prosinca 2016. 23:59:59".

BIRAJTE
AdvanceReportAttachedFiles.Link
IZ
Imenik.AdvanceReportAttachedFiles KAO AdvanceReportAttachedFiles
GDJE
AdvanceReportAttachedFiles.Date< ДАТАВРЕМЯ(2016, 12, 31, 23, 59, 59)

Prazan datum

Najlakši način da provjerite sadrži li varijabla prazan datum je obična usporedba. U ovom primjeru koristit ćemo upit za odabir svih računa Novac na račune na kojima nije upisan datum prispjeća.

Tip: Broj; Datum od; Booleov. Vrijednost koju treba formatirati.<ФорматнаяСтрока>(neobavezno) Vrsta: niz. Niz formata je vrijednost niza koja uključuje opcije oblikovanja. Opcije oblikovanja navedene su odvojene simbolom “;”. Prisutnost parametra znači da se oblikovanje razlikuje od standardnog. Ako parametar nije naveden, tada se primjenjuje standardno oblikovanje, što u osnovi odgovara pretvaranju vrijednosti u niz. Međutim, za vrijednosti tipa Broj i Datum, zadana vrijednost (0 i 01/01/0001 00:00:00, respektivno) vratit će prazan niz. Svaki parametar određen je imenom parametra, simbolom "=" i vrijednošću parametra. Vrijednost parametra može se navesti u jednom ili dvostruki navodnici. Ovo je neophodno ako vrijednost parametra sadrži znakove koji se koriste u sintaksi niza formata. Unutar vrijednosti parametra mogu se specificirati proizvoljni znakovi, koji će biti prikazani takvi kakvi jesu prilikom generiranja rezultirajućeg niza. Na taj način, primjerice, možete odrediti razdjelnike za sat, minutu i sekundu prilikom formatiranja vremena. Ako ti znakovi odgovaraju vrijednostima niza formata, moraju biti zatvoreni u jednostruke navodnike. Imena i vrijednosti parametara niza formata: L (L) - naziv jezika, država za koju će se izvršiti standardno oblikovanje. Nazivi dostupnih jezika nalaze se nakon opisa niza formata. ND - ukupan broj decimalnih mjesta prikazanih i za cijeli i za razlomak. Izvorni broj zaokružuje se u skladu s pravilima zaokruživanja Okr15as20. Ako je ovaj parametar naveden, tada je za prikaz razlomljenog dijela broja potrebno navesti parametar NPV, inače se razlomački dio neće prikazati. NFD - broj decimalnih mjesta u razlomku. Izvorni broj zaokružuje se u skladu s pravilima zaokruživanja Okr15as20. ChS (NS) - pomak znamenki: pozitivno - dijeljenje, negativno - množenje. Drugim riječima, to znači da će izvorni broj biti pomnožen ili podijeljen s 10*C, gdje je C apsolutna vrijednost parametra. NDS je simbol koji odvaja cijeli i razlomački dio. CHRG (NGS) je grupni razdjelnik za cijeli broj. Ako koristite prazan niz kao razdjelnik, tada će razdjelnik biti znak neprekinuti prostor. NZ (NZ) je niz koji predstavlja nultu vrijednost broja. Ako nije navedeno, tada se predstavlja kao prazan niz. Ako je navedeno “CHN=”, tada u obliku “0”. Ne koristi se za numerička polja za unos. CHN (NLZ) - treba li ispisati vodeće nule. Vrijednost ovog parametra nije navedena; prisutnost samog parametra određuje izlaz vodećih nula. CHG (NG) - redoslijed grupiranja znamenki broja. Vrijednosti su brojevi, odvojeni zarezima, koji označavaju broj grupiranih znamenki s desna na lijevo. Samo prva dva broja imaju smisla. Prva od njih označava primarno grupiranje, to jest ono koje će se koristiti za najmanje značajne znamenke cijelog dijela broja. Ako drugi broj nije naveden, grupirat će se samo znamenke najmanjeg značaja. Ako je 0 navedena kao drugi broj, tada će se za sve znamenke cijelog broja primijeniti vrijednost navedena za primarno grupiranje. Ako se kao drugi broj koristi vrijednost koja nije 0, tada će se ta vrijednost koristiti za grupiranje svih znamenki osim onih najmanje značajnih koje su već grupirane. CHO (NN) - prezentacija negativni brojevi. 0 (0) — niz poput “(1,1)”; 1 (1) — niz poput “-1,1”; 2 (2) — niz oblika "- 1,1"; 3 (3) — niz oblika “1,1-“; 4 (4) — niz oblika “1,1 -“. DF (DF) - format datuma. d (d) — dan u mjesecu (u brojevima) bez vodeće nule; dd (dd) — dan u mjesecu (u brojevima) s početnom nulom; ddd (ddd) - kratko ime dan u tjednu *); dddd (dddd) - puni naziv dana u tjednu *); M (M) — broj mjeseca (u brojevima) bez vodeće nule; MM (MM) - broj mjeseca (u brojevima) s početnom nulom; MMM (MMM) - kratki naziv mjeseca *); MMMM (MMMM) - puni naziv mjeseca *); k (q) - broj kvartala u godini; g (y) — broj godine bez stoljeća i vodeće nule; yy (yy) - broj godine bez stoljeća s početnom nulom; gggg (gggg) - broj godine sa stoljećem; h (h) — sat u 12-satnoj verziji bez vodećih nula; hh (hh) — sat u 12-satnoj verziji s početnom nulom; H (H) — sat u 24-satnom formatu bez vodećih nula; HH (HH) — sat u 24-satnom načinu s vodećom nulom; m (m) — minuta bez vodeće nule; mm (mm) — minuta s vodećom nulom; s (s) — sekunda bez vodeće nule; ss (ss) — sekunda s početnom nulom; bb (tt) - prikaz polovice dana AM/PM (vrijedi samo za konfiguracijske jezike koji podržavaju opciju 12-satnog prikaza vremena). Napomena: *) - ne koristi se za niz formata polja za unos datuma. DLF je lokalni format datuma. Određuje opciju za prikaz dijelova datuma. D (D) - datum (u brojevima); DD (DD) - dugi datum (mjesec riječima); B (T) - puno radno vrijeme, datum se može kombinirati s vremenom; DT - datum i vrijeme. Primjer: izraz Format('20051120140323',"DLF=DDV") ima vrijednost "November 20, 2005 14:03:23". Važno! Redoslijed opcija niza formata za DLF<дата + время>(DV ili DDV) nije moguće promijeniti. DP (DE) - niz koji predstavlja prazan datum (na primjer, Format('00010101000000' ,"DP=""prazan datum""") vratit će niz "prazan datum"). BL (BF) je niz koji predstavlja logičku vrijednost False. BI (BT) je niz koji predstavlja logičku vrijednost True. Bilješka. Korištenje parametara za polje za unos: DP (DE) parametar se ne koristi; parametar DLF koristi se samo s vrijednostima D (D), B (T) i DV (DT). Povratna vrijednost: Tip: String. Niz koji je rezultat oblikovanja proslijeđene vrijednosti. Opis: Generira lako čitljiv prikaz vrijednosti. Korisno za korištenje u izvješćima i drugim vizualnim prikazima vrijednosti. Dostupnost: Tanak klijent, web klijent, poslužitelj, debeli klijent, vanjski spoj , mobilna aplikacija (klijent), mobilna aplikacija (poslužitelj). Popis jezika: af afrikaans af_NA (af_NA) afrikaans (Namibija) af_ZA afrikaans (Južna Afrika) am amharski am_ET amharski (Etiopija) ar arapski ar_AE arapski (Ujedinjeni Arapski Emirati) ar_BH arapski (Bahrein) ar_DZ arapski (Alžir) ar_EG arapski (Egipat) ) ar_IQ arapski (Irak) ar_JO arapski (Jordan) ar_KW arapski (Kuvajt) ar_LB arapski (Libanon) ar_LY arapski (Libija) ar_MA arapski (Maroko) ar_OM arapski (Oman) ar_QA arapski (Katar) ar_SA arapski (Saudijska Arabija) ar_SD arapski ( Sudan ) ar_SY arapski (Sirija) ar_TN arapski (Tunis) ar_YE arapski (Jemen) kao asamski as_IN asamski (Indija) az azerbajdžanski az_AZ azerbajdžanski (Azerbajdžan) az_Cyrl azerbajdžanski (ćirilica) az_Cyrl_AZ azerbajdžanski (ćirilica, Azerbajdžan) az_Latn Azer baijani (latinica) az_Lat n_AZ azerbajdžanski (latinica, Azerbajdžan) be bjeloruski be_BY bjeloruski (Bjelorusija) bg bugarski bg_BG bugarski (Bugarska) bn bengalski bn_IN bengalski (Indija) ca katalonski ca_ES katalonski (Španjolska) cs češki cs_CZ češki (Češka) cy velški cy_GB velški (Ujedinjeno Kraljevstvo) da danski da_DK danski (Danska) de njemački de_AT njemački (Austrija) de_BE njemački (Belgija) de_CH njemački (Švicarska) de_DE njemački (Njemačka) de_LI (de_LI) njemački (Lihtenštajn) de_LU njemački (Luksemburg) el grčki el_CY (el_CY) grčki ( Cipar) el_GR grčki (Grčka) en engleski en_AU engleski (Australija) en_BE engleski (Belgija) en_BW engleski (Bocvana) en_BZ (en_BZ) engleski (Belize) en_CA engleski (Kanada) en_GB engleski (UK) en_HK engleski (Hong Kong, (posebno) Administrativna regija) , Kina)) en_IE engleski (Irska) en_IN engleski (Indija) en_JM (en_JM) engleski (Jamajka) en_MH (en_MH) engleski (Maršalovi otoci) en_MT engleski (Malta) en_NA (en_NA) engleski (Namibija) en_NZ engleski ( Novi Zeland) en_PH engleski (Filipini) en_PK engleski (Pakistan) en_SG engleski (Singapur) en_TT (en_TT) engleski (Trinidad i Tobago) en_US engleski (Sjedinjene Američke Države) en_VI engleski (Američki Djevičanski otoci) en_ZA engleski (Južna Afrika) en_ZW engleski (Zimbabve) es španjolski es_AR španjolski (Argentina) es_BO španjolski (Bolivija) es_CL španjolski (Čile) es_CO španjolski (Kolumbija) es_CR španjolski (Kostarika) es_DO španjolski (Dominikanska Republika) es_EC španjolski (Ekvador) es_ES španjolski (Španjolska) es_GT španjolski (Gvatemala) es_HN španjolski (Honduras) es_MX španjolski (Meksiko) es_NI španjolski (Nikaragva) es_PA španjolski (Panama) es_PE španjolski (Peru) es_PR španjolski (Portoriko) es_PY španjolski (Paragvaj) es_SV španjolski (El Salvador) es_US španjolski (Sjedinjene Države Amerike) es_ UY španjolski (Urugvaj) es_VE španjolski (Venezuela) et estonski et_EE estonski (Estonija) eu baskijski eu_ES baskijski (Španjolska) fa perzijski fa_AF perzijski (Afganistan) fa_IR perzijski (Iran) fi finski fi_FI finski (Finska) fo ferski fo_FO Farski (Farski otoci) fr francuski fr_BE francuski (Belgija) fr_CA francuski (Kanada) fr_CH francuski (Švicarska) fr_FR francuski (Francuska) fr_LU francuski (Luksemburg) fr_MC (fr_MC) francuski (Monako) fr_SN (fr_SN) francuski (Senegal) ga irski ga_IE irski (Irska) gl galicijski gl_ES, galicijski (Španjolska) gu guarati gu_IN guarati (Indija) he hebrejski he_IL hebrejski (Izrael) hi hindski hi_IN hindski (Indija) hr hrvatski hr_HR hrvatski (Hrvatska) hu mađarski hu_HU mađarski (Mađarska) hy armenski hy_AM armenski (Ar menia) hy_AM_REVISED armenski (Armenija, REVISED) id indonezijski id_ID indonezijski (Indonezija) je islandski is_IS islandski (Island) it talijanski it_CH, talijanski (Švicarska) it_IT talijanski (Italija) ja japanski ja_JP japanski (Japan) ka gruzijski ka_GE gruzijski (Gruzija) kk kazaški kk_KZ kazaški (Kazahstan) kl grenlandski kl_GL grenlandski (Grenland) kn kannada kn_IN kannada (Indija) ko korejski ko_KR korejski ( Južna Korea ) kok konkani kok_IN konkani (Indija) ky kirgiski ky_KY kirgiski (Kirgistan) lt litavski lt_LT litavski (Litva) lv latvijski lv_LV latvijski (Letonija) mk makedonski mk_MK makedonski (Makedonija) ml malajalam ml_IN malajalam (Indija) mr marati mr_ IN marati (Indija) ) ms Malajski ms_BN Malajski (Brunej) ms_MY Malajski (Malezija) mt Malteški mt_MT Malteški (Malta) nb Norveški Bokmål nb_NO Norveški Bokmål (Norveška) nl Nizozemski nl_BE Nizozemski (Belgija) nl_NL Nizozemski (Nizozemska) nn Norveški Nynorsk nn_NO Norveška Z hsky Nynorsk (Norveška ) om Oromo (Afan) om_ET Oromo (Afan) (Etiopija) om_KE Oromo (Afan) (Kenija) ili Oriya or_IN Oriya (Indija) pa Punjabi pa_IN Punjabi (Indija) pl Poljski pl_PL Poljski (Poljska) ps Pashto (Pushto) ps_AF Pashto (Pushto ) (Afganistan) pt portugalski pt_BR portugalski (Brazil) pt_PT portugalski (Portugal) ro rumunjski ro_RO rumunjski (Rumunjska) ru ruski ru_RU ruski (Rusija) ru_UA ruski (Ukrajina) sk slovački sk_SK slovački (Slovačka) sl slovenski sl_SI slovenski (slov. so Somalia so_DJ Somalia (Djibouti) so_ET Somalia (Etiopija) so_KE Somalia (Kenija) so_SO Somalia (Somalija) sq albanski sq_AL albanski (Albanija) sr srpski sr_BA (sr_BA) srpski (Bosna i Hercegovina) sr_CS srpski (Srbija i Crna Gora) sr _Cyrl srpski (ćirilica) sr_Cyrl_BA (sr_Cyrl_BA) srpski (ćirilica, Bosna i Hercegovina) sr_Cyrl_CS srpski (ćirilica, Srbija i Crna Gora) sr_Cyrl_ME (sr_Cyrl_ME) srpski (ćirilica, Crna Gora) sr_Cyrl_RS (sr_Cyrl_RS) srpski (ćirilica, Srbija) sr_Latn srpski (latinica) sr_Latn_BA ( sr_Latn_BA) srpski (latinica, Bosna i Hercegovina) sr_Latn_CS srpski (latinica, Srbija i Crna Gora) sr_Latn_ME (sr_Latn_ME) srpski (latinica, Crna Gora) sr_Latn_RS (sr_Latn_RS) srpski (latinica, Srbija) sr_ME (s r_ME) srpski (Crna Gora) sr_RS (sr_RS ) srpski (Srbija) sv švedski sv_FI švedski (finska) sv_SE švedski (Švedska) sw svahili sw_KE svahili (svahili) sw_TZ svahili (Tanzanija) ta tamilski ta_IN tamilski (Indija) te telugu te_IN telugu (Indija) th tajlandski th_TH tajlandski (Tajland) ti Tigrinya ti_ER Tigrinija (Eritreja) ti_ET Tigrinija (Etiopija) tr turski tr_TR turski (Turska) uk ukrajinski uk_UA ukrajinski (Ukrajina) ur urdu ur_PK urdu (Pakistan) uz uzbečki uz_Cyrl uzbečki (ćirilica) uz_Cyrl_UZ uzbečki (ćirilica, Uz bekistan) ) uz_Latn uzbečki (latinica) uz_Latn_UZ uzbečki (latinica, Uzbekistan) uz_UZ uzbečki (Uzbekistan) vi vijetnamski vi_VN vijetnamski (Vijetnam) zh kineski zh_CN kineski (Kina) zh_Hans kineski (Hans) zh_Hans_CN kineski (Hans, Kina) zh_Hans_SG kineski (Hans, Singapur) ) zh_Hant China skiy ( Hant) zh_Hant_HK kineski (Hant, Hong Kong (posebna administrativna regija, Kina)) zh_Hant_MO kineski (Hant, Macau (posebna administrativna regija, Kina)) zh_Hant_TW kineski (Hant, Tajvan) zh_HK kineski (Hong Kong (posebno) Administrativna regija, Kina) Administracija, Kina)) zh_MO kineski (Makao (posebna administrativna regija, Kina)) zh_SG kineski (Singapur) zh_TW kineski (Tajvan)