Az aktuális dátum lekérése 1s 8.3
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:
- Paraméter átadása. Ezzel a módszerrel csak az aktuális munkamenet dátuma érhető el;
- A lekérdezés dátumának lekérése a kiválasztási mezőből;
- 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 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;
- KÜLÖNBSÉG. Lekérdezi a dátumok közötti különbséget a megadott egységekben;
- 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ÉGEAz 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)