Az aktuális dátum lekérése 1s 8.3

19.11.2019 Tanácsot

A „Dátum” típus az 1C-ben a 4 fő adattípus egyike a szám, karakterlánc és logikai érték mellett. A dátumok mindenütt jelen vannak a konfigurációkban – lehetetlen elkerülni, hogy ezzel az adattípussal dolgozzunk a fejlesztés során. Ezért jobb, ha már elkezdi írni a lekérdezéseket, hogy megértse, hogyan kell feldolgozni a dátumokat, milyen lehetőségek vannak a velük való munkavégzésre és tárolásuk módjára. Nézzünk példákat a különböző dátumú lekérdezések írásának minden árnyalatára.

Példák a dátumokkal való munkavégzésre az 1C lekérdezésekben

Először is meg kell adnia a kérésben szereplő dátumot a szükséges formátumban- idővel vagy anélkül. A feladat végrehajtásának többféle módja van:

  1. Paraméter átadása. Ezzel a módszerrel csak az aktuális munkamenet dátuma érhető el;
  2. A lekérdezés dátumának lekérése a kiválasztási mezőből;
  3. Konvertálja a numerikus értékeket a DATETIME() függvény segítségével.

A dokumentumokkal való munka során a leggyakoribb feladat az üres dátum ellenőrzése az 1C kérésben. Ebben az esetben a legegyszerűbb egy változót vagy mezőt egy üres dátummal összehasonlítani, amelyet a DATETIME(1,1,1) függvény segítségével kapunk meg:

DATETIME (1, 1, 1)

Hasonló paranccsal tetszőleges dátumot és időpontot kaphat egy kérésben. Sőt, 6 szám paraméterként történő megadásával akár másodperc pontossággal is megadhatók. Ha csak 3 számot használ, akkor az órák, percek és másodpercek 0-ra lesznek állítva (a nap eleje). Például 2018. január első 10 napjára vonatkozó dokumentumokat kell kiválasztanunk a kérelemben:

SELECT Nyugta a folyószámlához. Link AS Link FROM dokumentum. Nyugta folyószámlához AS Nyugta folyószámlához WHERE Nyugta folyószámlához. Dátum BETWEEN DATETIME(2018, 1, 1, 0, 0, 0) AND DATETIME(2018, 1, 10, 23, 59, 59)

A beépített 1C nyelv lekérdezésében nem csak különféle mezőket választhat ki és paramétereket fogadhat. Számos funkció megkönnyíti a dátumok formázását egy adott feladathoz. Ha gyakran dolgozik dátumokkal egy lekérdezésben, akkor ismernie kell ezeket a parancsokat:

  • IDŐSZAK KEZDETE. A paraméterek azt a dátumot és időszakot jelzik, amelynek keretében a dátum kezdetét meg kell kapni. A dátum időtlen formátummá alakítására szolgál. Ehhez be kell állítania a második paramétert - „DAY”;
IDŐSZAK KEZDETE(,) IDŐSZAK KEZDETE(&Dátum, NAP) időszak>dátum>
  • IDŐSZAK VÉGE. Hasonló parancs, amely az utolsó dátumot adja vissza a paraméterekben megadott mértékegységek szerint;
  • ADDKDATE. Lehetővé teszi, hogy olyan dátumot kapjon, amely egy megadott számú meghatározott időegységnél nagyobb. A funkció paraméterei közé tartozik a dátum, az időegység és a szám;
ADDKDATE(,) ADDKDATE(&Date, DAY, 10) mennyiség>típus>dátum>
  • KÜLÖNBSÉG. Lekérdezi a dátumok közötti különbséget a megadott egységekben;
DIFFERENCEDATE(,) DIFFERENCEDATE(&Date1, &Date2, DAY) type>date2>date1>
  • A HÉT NAPJA. A hét egyik napjának sorszámát adja vissza.

E funkciók helyes használatával a fejlesztő egészen nem triviális problémákat tud megoldani. Például az aktuális dátum hét napjának nevének lekérése egy kérésben karakterláncként:

KIVÁLASZTJA A HÉT HÉTNAPJÁT(&JelenlegiDátum) = 1 MAJD "Hétfő" WHENDAYDAY(&AktuálisDátum) = 2 MAJD "Kedd" A HÉT WHENDAPJA(&JelenlegiDátum) = 3 MAJD "Szerda" WHENDAYDAY(&Aktuális HÉTDÁTUM(&Aktuális DÁTUM) "HÉNDÁP4 (&Aktuális dátum) = 5 MAJD "Péntek" A HÉT WHENDAPJA(&AktuálisDátum) = 6 MAJD "Szombat" EGYÉB "VASÁRNAP" VÉGE

Az 1C lekérdezésben szereplő típusok számból vagy karakterláncból dátummá konvertálása munkaigényes feladat. Dátumot kaphat számokból a DATETIME függvény segítségével, karakterláncból - a SUBSTRING függvény és a SELECT WHEN THEN ELSE konstrukció kombinálásával. Ennek alapján a fejlesztők előszeretettel kérik le a dátumot a modulban lévő más típusoktól, és egy paraméter segítségével adják át a kérésnek. Sajnos ez nem mindig kivitelezhető, ezért meg kell változtatni a dátumformátumot a kérelemben.

Lehetőség van a dátum megadására egy 1C kérésben paraméterként a virtuális regisztertáblákból való adatok lekéréséhez. Ez a szerepkör a fenti funkciók mindegyikét is használhatja. De itt fontos, hogy az 1C kérés üres dátuma ne befolyásolja a kód végrehajtásának végeredményét, ezért ellenőrizni kell.

Gyakran előfordul, hogy „Dátum” típusú változókkal kell dolgozni. Ebben a cikkben megvizsgáljuk az alapvető technikákat - az aktuális dátum átadása, ellenőrzése üres érték, tetszőleges dátum.

Lekérdezések írásakor gyakran össze kell hasonlítania az adatokat az aktuális dátummal. A beépített 1C nyelvnek van CurrentDate() függvénye. Lehetővé teszi annak meghatározását aktuális időés a dátumot a számítógépen. Az aktuális dátummal végzett műveletek végrehajtásához a függvény értékét paraméterként kell átadnia a kérésnek.

Az alábbiakban egy lekérdezés található, amely a költségjelentésekhez csatolt összes fájlt kiválasztja a létrehozás dátumáig:

ExampleRequest = Új kérés;
Példa Request.Text = "
|KIVÁLASZTÁS
| AdvanceReportAttachedFiles.Link
|FROM
| Directory.AdvanceReportAttachedFilesAS AdvanceReportAttachedFiles
|HOL
| AdvanceReportAttachedFiles.Date< &ТекДата»;
Példa Request.SetParameter("CurrentDate", CurrentDate());

Egyedi dátum

A fent tárgyalt funkció lehetővé teszi az összehasonlítást, és ezáltal bármely időszakra vonatkozó kiválasztást. Ez a módszer lehetővé teszi, hogy a kérésben szigorú kijelölést adjon meg további paraméterek használata nélkül.

Kérjük, vegye figyelembe, hogy a fenti példában ezt a függvényt használva csak három számot (év, hónap, nap) adtunk meg bemeneti paraméterként. Az utolsó három (óra, perc, másodperc) nem kötelező, és ha hiányzik, akkor „0”-ra, azaz a nap elejét helyettesíti.

Belül ezt a példát A 2016-os év végéig a költségelszámolásokhoz csatolt összes fájl beérkezik. Ebben a tekintetben az órát, percet és másodpercet feltüntetjük az időpont összehasonlításához „2016. december 31. 23:59:59”.

VÁLASZT
AdvanceReportAttachedFiles.Link
TÓL TŐL
Directory.AdvanceReportAttachedFiles AS AdvanceReportAttachedFiles
AHOL
AdvanceReportAttachedFiles.Date< ДАТАВРЕМЯ(2016, 12, 31, 23, 59, 59)

Üres dátum

A legegyszerűbb módja annak, hogy ellenőrizze, hogy egy változó tartalmaz-e üres dátumot közönséges összehasonlítás. Ebben a példában egy lekérdezést fogunk használni az összes nyugta kiválasztásához Pénz olyan számlákra, ahol nincs kitöltve a beérkezési dátum.

Típus: Szám; Időpontja; Boolean. A formázandó érték.<ФорматнаяСтрока>(opcionális) Típus: Karakterlánc. A formázási karakterlánc olyan karakterlánc-érték, amely formázási beállításokat tartalmaz. A formázási lehetőségek a „;” szimbólummal elválasztva jelennek meg. Egy paraméter jelenléte azt jelenti, hogy a formázás eltér a szabványostól. Ha a paraméter nincs megadva, akkor a rendszer alkalmazza szabványos formázás, ami alapvetően egy érték karakterláncsá alakításának felel meg. A Number és Date típusú értékek esetében azonban az alapértelmezett érték (0 és 01/01/0001 00:00:00) üres karakterláncot ad vissza. Minden paramétert a paraméter neve, a "=" szimbólum és a paraméterérték határoz meg. A paraméter értéke megadható egyszeres ill dupla idézőjelek. Erre akkor van szükség, ha a paraméter értéke a formátum string szintaxisában használt karaktereket tartalmazza. A paraméterértéken belül tetszőleges karakterek adhatók meg, amelyek a kapott karakterlánc generálásakor úgy jelennek meg, ahogyan vannak. Így például óra, perc és másodperc elválasztót adhat meg az idő formázásakor. Ha ezek a karakterek megegyeznek a formátum karakterlánc-értékeivel, idézőjelek közé kell tenni őket. Formátumkarakterlánc-paraméterek nevei és értékei: L (L) - annak a nyelvnek, országnak a neve, amelyre a szabványos formázást végrehajtják. Az elérhető nyelvnevek a formátum karakterlánc leírása után találhatók. ND – a tizedesjegyek teljes száma az egész és a tört részek esetében. Az eredeti szám kerekítése az Okr15as20 kerekítési szabályok szerint történik. Ha ez a paraméter meg van adva, akkor egy szám tört részének megjelenítéséhez meg kell adni az NPV paramétert, ellenkező esetben a tört rész nem jelenik meg. NFD - a tizedesjegyek száma a tört részben. Az eredeti szám kerekítése az Okr15as20 kerekítési szabályok szerint történik. ChS (NS) - számjegyek eltolása: pozitív - osztás, negatív - szorzás. Más szóval ez azt jelenti, hogy az eredeti számot megszorozzuk vagy elosztjuk 10*C-vel, ahol C a paraméter abszolút értéke. Az NDS egy szimbólum, amely elválasztja az egész és a tört részeket. A CHRG (NGS) egy csoport elválasztó szimbólum egy szám egész részéhez. Ha üres karakterláncot használ elválasztóként, akkor a határoló lesz a karakter nem törő tér. NZ (NZ) egy karakterlánc, amely egy szám nulla értékét reprezentálja. Ha nincs megadva, akkor üres karakterláncként jelenik meg. Ha „CHN=” van megadva, akkor „0” formában. Nem használt numerikus beviteli mezőkhöz. CHN (NLZ) – ki kell-e adni a kezdő nullákat. Ennek a paraméternek az értéke nincs megadva, maga a paraméter jelenléte határozza meg a kezdő nullák kimenetét. CHG (NG) - a számjegyek csoportosításának sorrendje. Az értékek számok, vesszővel elválasztva, és a csoportosított számjegyek számát jelzik jobbról balra. Csak az első két számnak van értelme. Ezek közül az első az elsődleges csoportosítást jelöli, vagyis azt, amelyik a szám egész részének legkisebb jelentőségű számjegyeihez kerül felhasználásra. Ha a második szám nincs megadva, csak a legkisebb jelentőségű számjegyek kerülnek csoportosításra. Ha második számként 0 van megadva, akkor a szám egész részének minden számjegyére az elsődleges csoportosításnál megadott érték lesz érvényes. Ha 0-tól eltérő értéket használ második számként, akkor ez az érték fogja használni az összes számjegy csoportosítását, kivéve a már csoportosított legkisebb jelentőségűeket. CHO (NN) - teljesítmény negatív számok. 0 (0) – egy karakterlánc, például „(1,1)”; 1 (1) – egy karakterlánc, például „-1,1”; 2 (2) – „- 1,1” alakú karakterlánc; 3 (3) – „1,1-” formájú karakterlánc; 4 (4) – „1,1 -” formátumú karakterlánc. DF (DF) - dátumformátum. d (d) – a hónap napja (számokban) nulla elõtt; dd (dd) – a hónap napja (számokban), kezdő nullával; ddd (ddd) - Rövid név a hét napja *); dddd (dddd) - a hét napjának teljes neve *); М (M) — a hónap száma (számokban) kezdő nulla nélkül; MM (MM) - a hónap száma (számokban) kezdő nullával; MMM (MMM) - a hónap rövid neve *); MMMM (MMMM) - a hónap teljes neve *); k (q) - negyedév száma az évben; g (y) – évszám század és kezdő nulla nélkül; yy (yy) - az év száma század nélkül, kezdő nullával; yyyy (yyyy) - évszám századdal; h (h) – óra a 12 órás változatban kezdő nullák nélkül; hh (hh) — óra a 12 órás változatban kezdő nullával; H (H) – óra 24 órás formátumban kezdő nullák nélkül; HH (HH) – óra 24 órás üzemmódban, kezdő nullával; m (m) – perc kezdő nulla nélkül; mm (mm) – perc kezdő nullával; s (s) – második bevezető nulla nélkül; ss (ss) – második, kezdő nullával; bb (tt) - a nap felének megjelenítése AM/PM (csak azokra a konfigurációs nyelvekre érvényes, amelyek támogatják a 12 órás időkijelzési opciót). Megjegyzés: *) - nem a dátumbeviteli mező formátum karakterláncaként használatos. A DLF egy helyi dátumformátum. Meghatározza a dátumrészek megjelenítési beállítását. D (D) - dátum (számokban); DD (DD) - hosszú dátum (hónap szavakkal); B (T) - teljes munkaidő, a dátum idővel kombinálható; DT - dátum és idő. Példa: a Formátum('20051120140323',"DLF=DDV") kifejezés értéke "2005. november 20. 14:03:23". Fontos! A DLF formátum karakterlánc-beállításainak sorrendje<дата + время>(DV vagy DDV) nem módosítható. DP (DE) - egy üres dátumot jelentő karakterlánc (például a Format('00010101000000' ,,DP=""empty date""") az "üres dátum" karakterláncot adja vissza). A BL (BF) a False logikai értéket képviselő karakterlánc. A BI (BT) egy karakterlánc, amely a True logikai értéket képviseli. Jegyzet. Paraméterek használata a beviteli mezőhöz: a DP (DE) paraméter nincs használatban; a DLF paraméter csak a D (D), B (T) és DV (DT) értékekkel használható. Visszatérési érték: Típus: String. Az átadott érték formázásából származó karakterlánc. Leírás: Az értékek könnyen olvasható megjelenítését hozza létre. Hasznos jelentések és egyéb vizuális értékek megjelenítéséhez. Elérhetőség: Vékony kliens, webkliens, szerver, vastag kliens, külső csatlakozás , mobil alkalmazás (kliens), mobil alkalmazás (szerver). Nyelvek listája: af afrikaans af_NA (af_NA) afrikaans (Namíbia) af_ZA afrikaans (Dél-Afrika) amhara am_ET amhara (Etiópia) ar arab ar_AE arab (Egyesült Arab Emírségek) ar_BH Arab (Bahrein)E arab arab (Bahrein) ar_DZ arab_ ar_DZ ) ar_IQ Arab (Irak) ar_JO Arab (Jordánia) ar_KW Arab (Kuwait) ar_LB Arab (Libanon) ar_LY Arab (Líbia) ar_MA Arab (Marokkó) ar_OM Arab (Omán) ar_QA Arab (Katar) ar_SA Arab (Szaúd-Arábia) Szudán ) ar_SY Arabic (Szíria) ar_TN Arab (Tunézia) ar_YE Arab (Jemen) as Assamese as_IN Assamese (India) az Azerbaijani az_AZ Azerbaijani (Azerbaijan) az_Cyrl Azerbaijani (Cirill) az_Cyrl_ Azer, La Baic Azer, Azer Azer ni (latin) az_Latn_AZ azerbajdzsáni (latin, azerbajdzsán) be_BY fehérorosz (Fehéroroszország) bg bolgár bg_BG bolgár (Bulgária) bn bengáli bn_IN bengáli (India) ca katalán ca_ES katalán (Spanyolország) cs cseh cs_CZ cseh (Cseh Köztársaság) cy walesi cy_GB Welsh da dán da_DK dán (Dánia) de német de_AT német (Ausztria) de_BE német (Belgium) de_CH német (Svájc) de_DE német (Németország) de_LI (de_LI) német (Liechtenstein) de_LU német (Luxemburg) el görög el_CY (el_CY) görög Ciprus el_GR Görög (Görögország) hu angol en_AU angol (Ausztrália) en_BE angol (Belgium) en_BW angol (Botswana) en_BZ (en_BZ) angol (Belize) en_CA angol (Kanada) en_GB angol (UK) en_HK angol (Hong Kong, (Special) Közigazgatási régió) , Kína)) en_IE angol (Írország) en_IN angol (India) en_JM (en_JM) angol (Jamaica) en_MH (en_MH) angol (Marshall-szigetek) en_MT angol (Málta) en_NA (en_NA) angol (Namíbia) en_NZ angol ( Új-Zéland) en_PH angol (Fülöp-szigetek) en_PK angol (Pakisztán) en_SG angol (Szingapúr) en_TT (en_TT) angol (Trinidad és Tobago) en_US angol (Amerikai Egyesült Államok) en_VI angol (US Virgin-szigetek) en_ZA angol (Dél-Afrika) en_ZW-Afrika angol (Zimbabwe) es spanyol es_AR spanyol (Argentína) es_BO spanyol (Bolívia) es_CL spanyol (Chile) es_CO spanyol (Kolumbia) es_CR spanyol (Costa Rica) es_DO spanyol (Dominikai Köztársaság) es_EC spanyol (Ecuador) es_ES spanyol (Spanyolország) es_GT spanyol (Guatemala) es_HN spanyol (Honduras) es_MX spanyol (Mexikó) es_NI spanyol (Nicaragua) es_PA spanyol (Panama) es_PE spanyol (Peru) es_PR spanyol (Puerto Rico) es_PY spanyol (Paraguay) es_SV spanyol (El Salvador) es_US spanyol (Egyesült Államok) Amerika) es_ UY spanyol (Uruguay) es_VE spanyol (Venezuela) et észt et_EE Észt (Észtország) eu baszk eu_ES baszk (Spanyolország) fa perzsa fa_AF perzsa (Afganisztán) fa_IR perzsa (Irán) fi finn fi_FI finn (Finnország) fo feröeri Feröer (Feröer-szigetek) fr francia fr_BE Francia (Belgium) fr_CA Francia (Kanada) fr_CH Francia (Svájc) fr_FR Francia (Franciaország) fr_LU Francia (Luxemburg) fr_MC (fr_MC) Francia (Monaco) fr_SN (fr_SN) Francia (Szenegál) ga Ír ga_IE ír (Írország) gl galíciai gl_ES, galíciai (Spanyolország) gu Guarati gu_IN Guarati (India) he Héber he_IL Héber (Izrael) hi Hindi hi_IN Hindi (India) hr Horvát hr_HR Horvát (Horvátország) hu magyar hu_HU Armenian hy magyar (Magyarország) hy_AM Örmény (Ar menia) hy_AM_REVISED Örmény (Örményország, FELÜLVIZSGÁLT) id Indonéz id_ID Az indonéz (Indonézia) az izlandi is_IS izlandi (Izland) it olasz it_CH, olasz (Svájc) it_IT olasz (Olaszország) és japán ja_JP Georgian japán (Japán) grúz (Grúzia) kk kazah kk_KZ kazah (Kazahsztán) kl grönlandi kl_GL grönlandi (Grönland) kn kannada kn_IN kannada (India) ko koreai ko_KR koreai ( Dél-Korea ) kok Konkani kok_IN Konkani (India) ky Kirgiz ky_KY Kirgiz (Kirgizisztán) lt Litván lt_LT Litván (Litvánia) lv Lett lv_LV Lett (Lettország) mk Macedón mk_MK Macedón (Macedónia) ml Malayalam ml_IN Malayalam IN Marathi (India) In_ Marathi ) ms maláj ms_BN maláj (Brunei) ms_MY maláj (Malajzia) mt máltai mt_MT máltai (Málta) nb norvég bokmål nb_NO norvég bokmål (Norvégia) nl holland nl_BE holland (Belgium) nl_BE holland (Belgium) nl_norvég zhn égbolt Nynorsk (Norvégia ) om Oromo (Afan) om_ET Oromo (Afan) (Etiópia) om_KE Oromo (Afan) (Kenya) vagy Oriya or_IN Oriya (India) pa pandzsábi pa_IN pandzsábi (India) pl lengyel pl_PL lengyel (Lengyelország) ps pastu (Pusto) (pushto ) (Afganisztán) pt portugál pt_BR portugál (Brazília) pt_PT portugál (Portugália) ro román ro_RO román (Románia) ru orosz ru_RU orosz (Oroszország) ru_UA orosz (Ukrajna) sk szlovák sk_SK szlovák (Szlovákia) sl szlovén szlovén so Somalia so_DJ Szomália (Dzsibuti) so_ET Szomália (Etiópia) so_KE Szomália (Kenya) so_SO Szomália (Somália) sq Albán sq_AL Albán (Albánia) sr Szerb sr_BA (sr_BA) Szerb (Bosznia és Hercegovina) Szerbia (Bosznia és Hercegovina) Szerbia_GroC_S szerb (cirill) sr_Cyrl_BA (sr_Cyrl_BA) szerb (cirill, Bosznia és Hercegovina) sr_Cyrl_CS Szerb (cirill, Szerbia és Montenegró) sr_Cyrl_ME (sr_Cyrl_ME) Szerb (cirill) Szerb (Cirill_, Montenegro Cyrl_RS) Rilic, Szerbia) sr_Latn Szerb (latin) sr_Latn_BA ( sr_Latn_BA) szerb (latin, Bosznia és Hercegovina) sr_Latn_CS Szerb (latin, Szerbia és Montenegró) sr_Latn_ME (sr_Latn_ME) Szerb (Latin, Montenegró) sr_Latn_Lat (Szerb_RS) Szerb_RS (Szerb_RS) ME) szerb (Montenegró) sr_RS (sr_RS ) szerb (Szerbia) sv svéd sv_FI svéd (Finnország) sv_SE svéd (Svédország) sw szuahéli sw_KE szuahéli (szuahéli) sw_TZ szuahéli (Tanzánia) ta tamil ta_IN tamil (India) telugu thai (India) IN TH telugu (Thaiföld) ti Tigrinya ti_ER Tigrinia (Eritrea) ti_ET Tigrinia (Etiópia) tr török ​​tr_TR török ​​(Törökország) uk ukrán uk_UA ukrán (Ukrajna) ur urdu ur_PK urdu (Pakisztán) üzbég uz_Cyrl üzbég (uzki, üzbég) uz_Cyrl üzbég, üzbég U uz_ cirill üzbég ) uz_Latn üzbég (latin) uz_latn_UZ üzbég (latin, üzbegisztán) uz_UZ üzbég (Üzbegisztán) vi vietnami vi_VN vietnami (vietnami) zh kínai zh_CN kínai (Kína) zh_Hans kínai szingapúri kínai (hans) zh_hans_CN kínai (Hans) zh_Hans_CN kínai ) zh_Hant China skiy ( Hant) zh_Hant_HK kínai (Hant, Hong Kong (különlegesen közigazgatási terület, Kína)) zh_Hant_MO kínai (Hant, Makaó (Kifejezetten közigazgatási terület, Kína)) zh_Hant_TW kínai (Hant, Tajvan) zh_HK kínai (Hong Kong (különösen) Közigazgatási régió, Kína) Közigazgatás, Kína)) zh_MO kínai (Makaó (Speciálisan közigazgatási terület, Kína)) zh_SG kínai (Szingapúr) zh_TW kínai (Tajvan)