Ինչպե՞ս նշել դատարկ ամսաթիվ հարցման մեջ: 1c-ը գործում է հարցումով ամսաթվերի հետ աշխատելու համար:

1C կոնֆիգուրացիաներում առկա բոլոր փաստաթղթերը և, հետևաբար, գրեթե բոլոր ռեգիստրները պետք է ունենան առնվազն մեկ հատկանիշ Date տեսակի հետ, այդ իսկ պատճառով յուրաքանչյուր մշակող պետք է իմանա և հասկանա.

  • Ինչպես փոխարկել այլ տեսակների պարամետրերը տվյալ տեսակին.
  • Ինչպես որոշել դատարկ ամսաթիվը 1C հարցումում;
  • Ո՞րն է տարբերությունը ամսաթվի և ժամկետի միջև:

Հենց այս հարցերին մենք կփորձենք պատասխանել մեր հոդվածում։

Ինչ է ամսաթիվը և ինչպես որոշել այն

Քանի որ կառավարման որոշումների մեծ մասի կայացումը և գրառումների պահպանումը չի պահանջում 1 վայրկյանից ավելի ժամանակի ճշգրտություն, 1C պլատֆորմի մշակողները որոշեցին, որ այս արժեքը կլինի բացարձակ նվազագույնը ամսաթվի ձևաչափում: Այսպիսով, ծրագրում իրադարձության ժամանակը նկարագրող յուրաքանչյուր հատկանիշ պետք է պարունակի.

  • Իրադարձության տեղի ունեցած տարին;
  • Այս իրադարձության ամիսը;
  • Օր.

Պետք չէ նշել՝ ժամ, րոպե և վայրկյան։ Եթե ​​այս երեք պարամետրերը բաց թողնվեն, և չկան լրացուցիչ պայմաններ, ծրագիրը ավտոմատ կերպով սահմանում է ժամը օրվա սկզբին:

Աշխարհում գոյություն ունեցող ամսաթվերի ձևաչափերը էական տարբերություններ ունեն.

  1. Ռուսաստանում մենք սովոր ենք սկզբում դնել օրը, հետո միջոցառման ամիսը, իսկ վերջում՝ տարին;
  2. ԱՄՆ բնակիչները ամսաթիվը սկսում են ամսով.
  3. Չեխերը, լեհերը և սլովենացիները գրանցում են ժամանակաշրջաններ Տարի-Ամիս-Օր ձևաչափով:

Հենց վերջին ձևաչափն է օգտագործում 1C հարթակը։

Փոխակերպել ամսաթվին

Մի քանի արժեքներից կամ տողից Date տեսակի պարամետր ստանալու համար դուք պետք է օգտագործեք Նկ. 1

Ինչպես երևում է վերևի նկարից, դուք կարող եք որոշել ամսաթիվը կամ օգտագործելով մեկ տող, կամ այս տողը բաժանելով իր բաղադրիչ մասերի ստորակետի միջոցով, արդյունքը չի փոխվի:

Կարևոր է հասկանալ, որ ամսաթվի տարեթիվը պետք է պարունակի չորս թվանշան, ներառյալ իրադարձության հազարամյակն ու դարը, ամիսը, օրը, ժամերը և վայրկյանները պետք է պարունակեն երկու նիշ, ներառյալ սկզբնական զրոները:

Ծրագրում ժամանակի հետհաշվարկը սկսվում է 0001 թվականի հունվարի 1-ի օրվա սկզբից։ Վերը նշված կոդի համար այս արժեքը կարող է որոշվել երկու եղանակներից մեկով (Նկար 2):

Բրինձ. 2

Երկրորդ տողում մենք բաց ենք թողել իրադարձության ժամերը, րոպեները և վայրկյանները, ինչը բացարձակապես չի ազդել մեր կոդի աշխատանքի վրա։

1C հարցումներում ամսաթվի օգտագործման առանձնահատկությունները

1C պլատֆորմի կողմից օգտագործվող տվյալների տեսակների մեծ մասի համար կան նախապես սահմանված դատարկ արժեքներ: Թվերի համար սա 0 է, հղումների համար կարող եք սահմանել EmptyLink(); ամսաթվի համար դատարկ արժեքը սովորաբար համարվում է մեկնարկի ամսաթիվը, դրա հետ է, որ համապատասխան տեսակի մանրամասները պետք է համեմատվեն, երբ հայտի պարամետրերի կարգավորում:

Կարևոր է հասկանալ, որ նույնիսկ եթե ձևի հատկանիշի արժեքում թվեր չեն նշվում, որն ունի տվյալ տեսակը, այսինքն՝ պատուհանը նման է (նկ. 3), դա չի նշանակում, որ դրանում ոչինչ նշված չէ. Այս պարամետրի համեմատությունը դատարկ տողի հետ չի աշխատի:

Բրինձ. 3

Ստանալով դատարկ ամսաթիվ՝ մենք կարող ենք այն նշել որպես մեր հարցման պարամետր, այսինքն՝ օգտագործել կոնստրուկցիան (նկ. 4)

Այնուամենայնիվ, կան ժամանակներ, երբ ավելի լավ է ստուգել հարցման մարմնի ներսում, առանց դատարկ ամսաթիվը որպես պարամետր անցնելու: Դա անելու համար կարող եք հարցումի կոդում մուտքագրել համապատասխան պայմանը (նկ. 5) և օգտագործել DateTime() հարցման ֆունկցիան։

Բրինձ. 5

Վերը նշված հարցման տեքստում մենք բաց թողեցինք տարվա, ամսվա և օրվա առաջատար զրոները, ինչպես նաև չնշեցինք ժամերը, րոպեները և վայրկյանները, և ծրագիրը, ինչպես ասում են, խժռեց այս ենթադրությունը:

Ամսաթվի և ժամի սահմանը

Մեկ այլ հետաքրքիր փաստՀարցումների և ամսաթվերի միջև կապի հետ կապված է «ժամանակի կետ» հասկացության օգտագործումը տվյալների բազայի տարբեր աղյուսակներ մուտք գործելիս:

Տեխնիկական փաստաթղթերում նշված «մինչև միլիվայրկյան» ճշգրտությունը պարզունակ Date տեսակը նկարագրելիս առավել հստակ դրսևորվում է կուտակման ռեգիստրի վիրտուալ աղյուսակներից գրառումներ ընտրելիս. և Մնացած և Շրջանառության աղյուսակները, այնուհետև իրականացվել է դրանցից ընտրություն որոշակի ժամանակ, կարող է տարբեր արդյունքներ տալ։

Հասկանալու համար, թե ինչպես և ինչու է դա տեղի ունենում, հաշվի առեք մի պարզ օրինակ.

  1. Մինչ վաճառքի փաստաթղթի կատարումը 12 ժամ 31 րոպե 36 վայրկյան, մնացորդները, ըստ Շաքարի անվանացանկի, կազմում էին 30 կգ.
  2. Փաստաթուղթ նշված ժամանակըԴուրս է գրվել 10 կգ;
  3. Փաստաթղթի ամսաթվին 12 ժամ 31 րոպե 36 վայրկյանում ստեղծված հաշվետվությունը, ըստ Մնացած աղյուսակի, ցույց կտա 30 կգ մնացորդը.
  4. Նույն հաշվետվությունը սեղանի վրա «Մնացորդներ» և «Շրջանառություններ» նույն ժամանակում ցույց կտա 20 կգ մնացորդ:

Ինչո՞վ է պայմանավորված այս պահվածքը և ինչպե՞ս խուսափել դրանից:

Խնդիրն այն է, որ Մնացած աղյուսակում ժամանակաշրջանը նշված է որպես բաց հատված, այսինքն՝ հաշվետվության ստեղծման պահին կատարված շարժումները հաշվի չեն առնվում, այսինքն՝ ժամանակը վերցվում է նշված երկրորդի սկզբում։ պարամետրում. Միևնույն ժամանակ, Շրջանառությունների աղյուսակի և Մնացորդների և Շրջանառությունների աղյուսակի համար հաշվի են առնվում ժամանակային սահմանները, այսինքն՝ ժամանակը վերցվում է նշված վայրկյանի վերջում:

Այս իրավիճակից մի քանի ելքեր կան.

  1. Մնացորդների աղյուսակն օգտագործելիս նշեք նշվածից 1 վայրկյանով մեծ ժամանակային կետ.
  2. Օգտագործեք միայն մնացորդների և շրջանառությունների աղյուսակը (գործողության տեսանկյունից ամենաօպտիմալ տարբերակը չէ);
  3. Օգտագործեք սահման հասկացությունը:

Վերջին տարբերակը կարող է ներկայացվել Նկ. 6.

Մեր օբյեկտի առաջին պարամետրում մենք նշում ենք այն ամսաթիվը, որի համար պետք է ստեղծվի զեկույցը, երկրորդ պարամետրը որոշում է եզրագծի տեսակը: Քանի որ մեզ համար կարևոր է, որ տվյալ ամսաթվի շարժումները ներառվեն ընտրության մեջ, մենք պետք է այս պարամետրը դնենք «Ներառում» դիրքի վրա:

Հաճախ անհրաժեշտություն է առաջանում աշխատել «Ամսաթիվ» տիպի փոփոխականների հետ։ Այս հոդվածում մենք կդիտարկենք հիմնական տեխնիկան՝ փոխանցել ընթացիկ ամսաթիվը, ստուգել դատարկ արժեք, կամայական ամսաթիվ:

Հարցումներ գրելիս հաճախ պետք է տվյալները համեմատել ընթացիկ ամսաթվի հետ: Ներկառուցված 1C լեզուն ունի CurrentDate() ֆունկցիան: Այն թույլ է տալիս որոշել ձեր համակարգչի ընթացիկ ժամը և ամսաթիվը: Ընթացիկ ամսաթվով գործողություններ կատարելու համար դուք պետք է այս ֆունկցիայի արժեքը որպես պարամետր փոխանցեք հարցումին:

Ստորև ներկայացված է հարցում, որն ընտրում է ծախսերի հաշվետվություններին կցված բոլոր ֆայլերը՝ մինչ այժմ ստեղծման ամսաթվով.

ExampleRequest = Նոր հարցում;
Օրինակ Request.Text = "
|ԸՆՏՐԵԼ
| AdvanceReportAttachedFiles.Link
|ԻՑ
| Directory.AdvanceReportAttachedFilesAS AdvanceReportAttachedFiles
|ՈՐՏԵՂ
| AdvanceReportAttachedFiles.Date< &ТекДата»;
Օրինակ Request.SetParameter ("CurrentDate", CurrentDate());

Պատվերով ամսաթիվ

Վերևում քննարկված գործառույթը թույլ է տալիս համեմատել և, հետևաբար, ընտրություն կատարել ցանկացած ժամանակաշրջանի համար: Այս մեթոդը թույլ է տալիս հարցումում նշել խիստ ընտրություն՝ առանց լրացուցիչ պարամետրեր օգտագործելու:

Խնդրում ենք նկատի ունենալ, որ վերը նշված օրինակում այս ֆունկցիան օգտագործելիս մենք ընդամենը երեք թիվ ենք փոխանցել (տարի, ամիս, օր) որպես մուտքային պարամետրեր: Վերջին երեքը (ժամ, րոպե, վայրկյան) կամընտիր են և բացակայելու դեպքում փոխարինվում են «0»-ով, այսինքն՝ օրվա սկիզբ:

Այս օրինակը կվերցնի բոլոր ֆայլերը, որոնք կցված են ծախսերի հաշվետվություններին մինչև անցյալ տարվա վերջ 2016 թ. Այս առումով կնշենք ժամը, րոպեն և վայրկյանը՝ համեմատելու «Դեկտեմբերի 31, 2016թ. 23:59:59» ժամանակային կետը:

ԸՆՏՐԵԼ
AdvanceReportAttachedFiles.Link
ԻՑ
Directory.AdvanceReportAttachedFiles AS AdvanceReportAttachedFiles
ՈՐՏԵՂ
AdvanceReportAttachedFiles.Date< ДАТАВРЕМЯ(2016, 12, 31, 23, 59, 59)

Դատարկ ամսաթիվ

Փոփոխականը ստուգելու ամենահեշտ ձևը պարզ համեմատություն օգտագործելն է, թե արդյոք այն պարունակում է դատարկ ամսաթիվ: Այս օրինակում, օգտագործելով հարցում, մենք կընտրենք բոլոր դրամական մուտքերը այն հաշվին, որի մուտքային ամսաթիվը լրացված չէ:

1C հարցումները, ինչպես նաև 1C:Enterprise հարթակի ներկառուցված լեզուն ունեն ամսաթվերի հետ աշխատելու գործառույթներ։ Դրանք օգնում են պարզեցնել հարցումներում ամսաթվերի փոխարկումները և խուսափել մեծ թվով պարամետրեր օգտագործելուց: Եկեք նայենք այս գործառույթներին:

Ինչպես նշել ամսաթիվը 1C հարցումներում որպես հաստատուն

DATETIME (տարի, ամիս, օր, ժամ, րոպե, վայրկյան). Ընտրանքներ Տարի, ամիսԵվ Օրպարտադիր են, մյուսները՝ ոչ։ Եթե ​​ժամը չնշեք, համակարգը կսահմանի օրվա սկիզբը:

Հայց. Տեքստ = «ԸՆՏՐԵՔ
DATETIME (2016,09,28,12,22,00)»
; // Արդյունք՝ 28 սեպտեմբերի, 2016 12:22:00

Բացի այդ, միայն թվերը կարող են հստակորեն նշվել որպես այս ֆունկցիայի պարամետրեր: Դուք չեք կարող նշել այլ գործառույթների արժեքները որպես պարամետրեր: Օրինակ, այս շինարարությունը չի աշխատի.

Հայց. Տեքստ = «ԸՆՏՐԵՔ
DATETIME (տարի (Աղբյուր.Date),09,28,12,22,00)
Directory.Source AS Աղբյուրից»
;

Ինչպես ստանալ տարվա սկիզբը կամ ավարտը, կես տարի, եռամսյակ, ամիս, տասնամյակ, շաբաթ, օր, ժամ, րոպե 1C հարցումներում

Դրա համար օգտագործվում են հետևյալ գործառույթները.

  • Մեկնարկային ժամանակաշրջան (ամսաթիվ, ժամանակաշրջան)
  • Վերջնաժամկետ (ամսաթիվ, ժամանակաշրջան)

Որպես պարամետր ամսաթիվըփոխանցվում է տիպի արժեք Ամսաթիվը.Պարամետր Ժամանակաշրջան .

Հայց. Տեքստ = «ԸՆՏՐԵՔ
Մեկնարկի ժամանակաշրջան (DATETIME (2016,09,28,12,22,00), Տասնամյակ)"
; // Արդյունք՝ 21 սեպտեմբերի, 2016 0:00:00

Հայց. Տեքստ = «ԸՆՏՐԵՔ
Վերջնաժամկետ (DATETIME (2016,09,28,12,22,00), QUARTER)"
; // Արդյունք՝ սեպտեմբերի 30, 2016 23:59:59

Ինչպես տեսնում եք օրինակներից, այս գործառույթներում կարող եք օգտագործել այլ ներդիր ֆունկցիաներ:

Ինչպես ստանալ տարեթիվը, տարվա օրը, եռամսյակը, ամիսը, շաբաթը, շաբաթվա օրը, օրը, ժամը, րոպեն, վայրկյանը ամսաթվից 1C հարցումներում

Դա անելու համար կան համապատասխան գործառույթներ, որոնց պետք է փոխանցեք ամսաթիվը որպես պարամետր:

  • Գործառույթ ՏԱՐԻ (ամսաթիվ)— վերադարձնում է տարվա համարը.
  • Գործառույթ DAYYEAR (ամսաթիվ)— ավելացնում է տարվա օրերի քանակը.
  • Գործառույթ QUARTER (ամսաթիվ)— վերադարձնում է եռամսյակի համարը.
  • Գործառույթ MONTH (ամսաթիվ)— վերադարձնում է ամսվա համարը.
  • Գործառույթ ՇԱԲԱԹ (ամսաթիվ)— վերադարձնում է տարվա շաբաթվա թիվը.
  • Գործառույթ ՇԱԲԱԹՎԱ ՕՐ (ամսաթիվ)— վերադարձնում է շաբաթվա օրերի թիվը (երկուշաբթի — 1, կիրակի — 7);
  • Գործառույթ DAY (ամսաթիվ)— վերադարձնում է ամսվա օրվա թիվը.
  • Գործառույթ HOUR (ամսաթիվ)— վերադարձնում է ժամը;
  • Գործառույթ MINUTE (ամսաթիվ)— վերադարձի րոպեներ;
  • Գործառույթ SECOND (ամսաթիվ)— վերադառնում է վայրկյաններ:

Հայց. Տեքստ = «ԸՆՏՐԵՔ
ՏԱՐԻ (DATETIME (2016,09,28,12,22,00))"
; // Արդյունք՝ 2016թ

Հայց. Տեքստ = «ԸՆՏՐԵՔ
WEEK(DATETIME (2016,09,28,12,22,00))"
; // Արդյունք՝ 40

Հայց. Տեքստ = «ԸՆՏՐԵՔ
ՇԱԲԱԹՕՐ (DATETIME (2016,09,28,12,22,00))"
; // Արդյունք՝ 3

Հայց. Տեքստ = «ԸՆՏՐԵՔ
ՕՐՅԱ (DATETIME (2016,09,28,12,22,00))"
; // Արդյունք՝ 272

Հայց. Տեքստ = «ԸՆՏՐԵՔ
DAY(DATETIME (2016,09,28,12,22,00))"
; // Արդյունք՝ 28

Ինչպես գումարել կամ հանել ամսաթվից տարին, կիսամյակը, եռամսյակը, ամիսը, տասնամյակը, շաբաթը, օրը, ժամը, րոպեն, վայրկյանը 1C հարցումներում

Դա անելու համար օգտագործեք գործառույթը AddToDate (ամսաթիվ, ժամանակաշրջան, արժեք):

Որպես պարամետր ամսաթիվըփոխանցվում է տիպի արժեք Ամսաթիվը.Պարամետր Ժամանակաշրջանկարող է վերցնել հետևյալ արժեքներից մեկը. ԵՐԿՐՈՐԴ, ՐՈՊԵ, ԺԱՄ, ՕՐ, ՇԱԲԱԹ, Տասնամյակ, ԱՄԻՍ, ԵՌԱՄՍՅԱԿ, ԿԵՍՏԱՐԻ, ՏԱՐԻ.

Պարամետր Իմաստըցույց է տալիս ավելացվելիք ժամանակաշրջանների քանակը: Եթե ​​ժամկետը պետք է հանել, ապա պարամետրը Իմաստըպետք է բացասական լինի.

Հայց. Տեքստ = «ԸՆՏՐԵՔ
AddToDate(DATETIME(2016, 9, 28, 12, 22, 0), ԿԵՍ ՏԱՐԻ, 1)"
; // Արդյունք՝ 28.03.2017 12:22:00

Հայց. Տեքստ = «ԸՆՏՐԵՔ
ԱվելացնելKDate(DATETIME(2016, 9, 28, 12, 22, 0), DECADE, -1)"
; // Արդյունք՝ 18 սեպտեմբերի, 2016 12:22:00

Ինչպես հաշվարկել ամսաթվի տարբերությունը 1C հարցումներում

Դա անելու համար օգտագործեք գործառույթը DifferenceDate (Ամսաթիվ 1, Ամսաթիվ 2, ժամանակաշրջան):

Պարամետր Ամսաթիվ 1- հանման ամսաթիվը.

Պարամետր Ամսաթիվ 2 —ամսաթիվ, որից պետք է հանել.

Պարամետր Ժամանակաշրջանկարող է վերցնել հետևյալ արժեքներից մեկը. ԵՐԿՐՈՐԴ, ՐՈՊԵ, ԺԱՄ, ՕՐ, ԱՄԻՍ, ԵՌԱՄՍՅԱԿ, ՏԱՐԻ. Այն ցույց է տալիս, թե ինչ միավորներով ենք ուզում արդյունք ստանալ

Հայց. Տեքստ = «ԸՆՏՐԵՔ
DifferenceDate(DATETIME(2016, 9, 28, 12, 22, 0), DATETIME(2017, 9, 28, 12, 22, 0), QUARTER)"
; // Արդյունք՝ 4

Հայց. Տեքստ = «ԸՆՏՐԵՔ
DifferenceDate(DATETIME(2016, 9, 28, 12, 22, 0), DATETIME (2017, 9, 28, 12, 22, 0), Երկրորդ)"
; // Արդյունք՝ 31.536.000

Բոլոր գործառույթներում, բացի ֆունկցիայից Ամսաթիվ ԺԱՄԱՆԱԿ, որպես պարամետր ամսաթիվըկարող է լինել ոչ միայն կոնկրետ ամսաթվի արժեք (հաստատուն կամ հարցման պարամետր), այլ նաև աղբյուրի աղյուսակի դաշտեր:

«Ամսաթիվ» տեսակը 1C-ում տվյալների 4 հիմնական տեսակներից մեկն է՝ թվով, տողով և բուլյանով: Ամսաթվերը համատարած են կոնֆիգուրացիաներում. անհնար է խուսափել այս տվյալների տեսակի հետ աշխատելուց մշակման ընթացքում: Հետևաբար, ավելի լավ է սկսել հարցումներ գրել՝ արդեն հասկանալով, թե ինչպես մշակել ամսաթվերը, ինչ տարբերակներ կան դրանց հետ աշխատելու համար և ինչպես են դրանք պահվում: Դիտարկենք տարբեր տարեթվերով հարցումներ գրելու բոլոր նրբությունների օրինակները:

1C հարցումներում ամսաթվերի հետ աշխատելու օրինակներ

Նախևառաջ պետք է հայտում ամսաթիվը ստանալ անհրաժեշտ ձևաչափով՝ ժամանակով կամ առանց ժամանակի: Այս առաջադրանքն իրականացնելու մի քանի եղանակ կա.

  1. Անցում պարամետրով: Դուք կարող եք ստանալ ընթացիկ նստաշրջանի ամսաթիվը միայն այս մեթոդով.
  2. Ստացեք հարցման ամսաթիվը ընտրության դաշտից;
  3. Փոխակերպեք թվային արժեքներից՝ օգտագործելով DATETIME() ֆունկցիան:

Փաստաթղթերի հետ աշխատելիս ամենատարածված խնդիրը 1C հարցումում դատարկ ամսաթվի ստուգումն է: Այս դեպքում ամենահեշտն է համեմատել փոփոխականը կամ դաշտը դատարկ ամսաթվի հետ, որը ստացվում է DATETIME(1,1,1) ֆունկցիայի միջոցով.

DATETIME (1, 1, 1)

Օգտագործելով նմանատիպ հրաման, դուք կարող եք ստանալ կամայական ամսաթիվ և ժամ հարցումում: Ավելին, դրանք կարող են ճշգրտվել մինչև վայրկյանի ճշգրտությամբ՝ որպես պարամետր նշելով 6 թիվ։ Եթե ​​օգտագործվում է ընդամենը 3 թիվ, ապա ժամերը, րոպեները և վայրկյանները կսահմանվեն 0 (օրվա սկիզբ): Օրինակ, մենք պետք է ընտրենք փաստաթղթեր 2018 թվականի հունվարի առաջին 10 օրվա համար հարցումում.

ԸՆՏՐԵՔ անդորրագիրը ընթացիկ հաշվին: Հղեք AS Հղում փաստաթղթից: Անդորրագիր ընթացիկ հաշվին AS անդորրագիր ընթացիկ հաշվին WHERE ստացականը ընթացիկ հաշվին: Ամսաթիվ DATETIME (2018, 1, 1, 0, 0, 0) ԵՎ DATETIME (2018, 10, 23, 59, 59)

Ներկառուցված 1C լեզվով հարցումով դուք կարող եք ոչ միայն ընտրել տարբեր դաշտեր և ստանալ պարամետրեր: Կան բազմաթիվ գործառույթներ, որոնք հեշտացնում են կոնկրետ առաջադրանքի համար ամսաթվերի ձևաչափումը: Եթե ​​դուք հաճախ եք աշխատում ամսաթվերի հետ հարցման մեջ, ապա դուք պետք է իմանաք այս հրամանները.

  • ԺԱՄԱՆԱԿԻ ՍԿԶԲԸ.Պարամետրերը նշում են ամսաթիվը և ժամանակաշրջանը, որի համատեքստում անհրաժեշտ է ստանալ ամսաթվի սկիզբը: Օգտագործվում է ամսաթիվը անժամկետ ձևաչափի փոխարկելու համար: Դա անելու համար անհրաժեշտ է սահմանել երկրորդ պարամետրը՝ «ՕՐ»;
START OF PERIOD(,) START OF PERIOD(&Date, DAY) period>date>
  • ԺԱՄԱՆԱԿԻ ՎԵՐՋ.Նմանատիպ հրաման, որը վերադարձնում է վերջին ամսաթիվը պարամետրերում նշված միավորների առումով.
  • ADDKDATE:Թույլ է տալիս Ձեզ ստանալ ամսաթիվ, որն ավելի մեծ է նշված ժամանակային միավորների որոշակի քանակով: Գործառույթի պարամետրերը ներառում են ամսաթիվը, ժամանակի միավորը և համարը.
ADDKDATE(,) ADDKDATE(&Date, DAY, 10) քանակ>տեսակ>ամսաթիվ>
  • ՏԱՐԲԵՐՎԵԼ.Ստանում է նշված միավորների ամսաթվերի տարբերությունը.
DIFFERENCEDATE(,) DIFFERENCEDATE(&Date1, &Date2, DAY) type>date2>date1>
  • ՇԱԲԱԹՎԱ ՕՐ.Վերադարձնում է շաբաթվա օրերից մեկի հերթական համարը:

Այս գործառույթները ճիշտ օգտագործելով՝ ծրագրավորողը կարող է լուծել բավականին ոչ տրիվիալ խնդիրներ։ Օրինակ՝ ստանալով ընթացիկ ամսաթվի շաբաթվա օրվա անվանումը հարցումում՝ որպես տող.

ԸՆՏՐԵԼ ՇԱԲԱԹՎԱ ԿԱԶՄԱԿԵՐՊՈՒՄ (&Ընթացիկ ամսաթիվ) = 1 ՀԵՏՈ «Երկուշաբթի» ՈՒՍԱՆՅՈՒԹ (&Ընթացիկ Ամսաթիվ) = 2 ՀԵՏՈ «Երեքշաբթի» ՇԱԲԱԹՕՐ (&Ընթացիկ Ամսաթիվ) = 3 ՀԵՏՈ «Չորեքշաբթի» ՈՒԲ (&ԸնթացիկՕՕՕՕ (&ԸնթացիկՕրՕՕՕ (&ԸնթացիկՕր) ԺՈ. = 5 ՀԵՏՈ «Ուրբաթ» ՇԱԲԱԹԻ ՈՒՐԲԱԹ (&Ընթացիկ ամսաթիվ) = 6 ՀԵՏՈ «Շաբաթ» ԱՅԼ «Կիրակի» ՎԵՐՋ

1C հարցումում տիպերը թվից կամ տողից ամսաթվի փոխակերպելը աշխատատար խնդիր է: Դուք կարող եք ամսաթիվ ստանալ թվերից՝ օգտագործելով DATETIME ֆունկցիան, տողից՝ համատեղելով SUBSTRING ֆունկցիան և SELECT WHEN THEN ELSE կառուցվածքը: Ելնելով դրանից՝ մշակողները նախընտրում են ստանալ ամսաթիվը մոդուլի այլ տեսակներից և այն փոխանցել հարցումին՝ օգտագործելով պարամետր: Ցավոք, դա միշտ չէ, որ հնարավոր է, այնպես որ դուք պետք է փոխեք ամսաթվի ձևաչափը հարցումում:

Հնարավոր է նշել ամսաթիվը 1C հարցումում որպես պարամետր՝ վիրտուալ ռեգիստրի աղյուսակներից տվյալներ ստանալու համար: Այս դերը կարող է նաև օգտագործել վերը նշված բոլոր գործառույթները: Բայց այստեղ կարեւոր է թույլ չտալ դատարկ ամսաթիվ 1C հարցումը կարող է ազդել կոդի կատարման վերջնական արդյունքի վրա, ուստի պետք է ստուգել:

Շատ հաճախ 1C հարցումներում դուք պետք է աշխատեք ամսաթվերի հետ: Հատկապես, երբ հարցումը կատարվում է մետատվյալների օբյեկտներին, որոնք պարունակում են պարբերական տեղեկատվություն: Որպես կանոն, դրանք ռեգիստրներ են (տեղեկատվություն, կուտակում, հաշվարկ, հաշվառում): Դիտարկենք 1C հարցումների լեզվի ամենատարածված գործառույթները՝ ամսաթվերի հետ աշխատելու համար: Մենք օրինակներ կկառուցենք տեղեկատվական ռեգիստրի հիման վրա ԱշխատակիցներԿազմակերպություններ ZUP կոնֆիգուրացիաների տարբերակ 2.5.

  • Ամսաթիվ ԺԱՄԱՆԱԿ

    Թույլ է տալիս Ձեզ ստանալ հայտի ամսաթիվ (ժամանակով կամ առանց ժամանակի)՝ նշելով տարին, ամիսը, օրը, ժամը, րոպեն, վայրկյանը:
    Շարահյուսություն:
    DATETIME (տարի, ամիս, օր, ժամ, րոպե, վայրկյան)
    Սովորաբար ժամը, րոպեն և վայրկյանը նշված չեն: Եկեք մի մինի օրինակ բերենք. Հարցման վահանակում մուտքագրեք հետևյալ տեքստը.

    SELECT DATETIME (2016, 1, 1)

    Հարցման կատարման արդյունքում ստանում ենք ամսաթիվ՝ 01.01.2016թ
    Իրականում դժվար է պատկերացնել մի իրավիճակ, երբ խնդրանքում ամսաթիվն այսպես նշվի։ Ի վերջո, երբ դուք պետք է նշեք ժամկետ, օգտագործվում են պարամետրեր: Բայց կա դեպք, երբ այս ֆունկցիան առանձնահատուկ արժեք ունի։ Սա այն դեպքում, երբ մենք պետք է դաշտերում կամ հարցումների պայմաններում նշենք դատարկ ամսաթիվ: Հիշեցնեմ, որ 1C լեզվի համար դատարկ ամսաթիվ ունի 0001.01.01 ձևը: Այսպիսով, հարցումում դատարկ ամսաթիվ ստանալու համար պարզապես նշեք DATETIME (1, 1, 1). Որպես օրինակ՝ ընտրենք տեղեկատվական ռեգիստրից ԱշխատակիցներԿազմակերպություններգրառումներ, որոնք չեն լրացվում Ավարտման ժամկետը:

    SELECT Organizational Employees.Period, Organizational Employees.Employee, Organizational Employees.Position, Organizational Employees.Organization Division FROM Register Information.Organizational Employees AS Organizational Employees WHERE Organizational Employees.Ավարտման ժամանակաշրջան = DATETIME(1, 1)

  • ԺԱՄԱՆԱԿԻ ՍԿԶԲԸ

    Նշված ամսաթվի համար վերադարձնում է այն ժամանակաշրջանի սկիզբը, որին պատկանում է:
    Շարահյուսություն:
    ԺԱՄԱՆԱԿԱՇՐՋԱՆԻ ՄԵԿՆԱՐԿ (ամսաթիվ, ժամանակաշրջանի տեսակ)
    PeriodType-ը կարող է ընդունել հետևյալ արժեքները. ՐՈՊԵ, ԺԱՄ, ՕՐ, ՇԱԲԱԹ, ԱՄԻՍ, ԵՌԱՄՍՅԱԿ, ՏԱՐԻ, Տասնամյակ, ԿԵՍ ՏԱՐԻ
    Հարցման վահանակում մուտքագրեք.

    ԸՆՏՐԵՔ ԺԱՄԱՆԱԿԱՀԱՏՎԱԾԻ ՍԿՍԻԶԲ (ԱՄՍՎԱԾ ԺԱՄԱՆԱԿ(2016, 1, 15), ԱՄԻՍ)

    Հարցումը կվերադառնա - 01/01/2016
    Իսկ հիմա օրինակ. Ինչպես գիտեք, ռեգիստրի պարբերականությունը ԱշխատակիցներԿազմակերպություններմի օր. Եկեք ստեղծենք հարցում, որում փաստացի ռեկորդային ժամանակահատվածի փոխարեն կցուցադրվի ամսվա սկզբի ամսաթիվը:

    SELECT BEGINNING OF PERIOD(Employees of Organizations.Period, MONTH) AS Սկիզբը, Employees of Organizations.Employee, Employee of Organizations.Position, Employees of Organizations.Organization of Division FROM Register Information.Employees of Organizations AS Employees of Organizations.

  • ԺԱՄԱՆԱԿԻ ՎԵՐՋ

    Շարահյուսությունը նույնն է, ինչ ժամանակաշրջանի սկզբի համար: Եվ ինչպես ենթադրում է անունը, այն վերադարձնում է ժամանակաշրջանի ավարտը ըստ ամսաթվի և ժամանակաշրջանի տեսակի: Մենք դա մանրամասն չենք դիտարկի։ Սահմանափակվենք մինի օրինակով.
    Հայց.

    ԸՆՏՐԵՔ ԺԱՄԱՆԱԿԱՇՐՋԱՆԻ ԱՎԱՐՏԸ (DATETIME (2016, 1, 15), ԱՄԻՍ)

    Վերադարձ 31.01.2016 23:59:59
    Ինչպես տեսնում եք, արժեքը ճշգրիտ վերադարձվում է երկրորդին:

  • ADDKDATE

    Ամսաթվին ավելացնում է նշված թվով ժամանակային ընդմիջումներ:
    Շարահյուսություն:
    ADDKDATE (ամսաթիվ, ժամանակաշրջանի տեսակ, քանակ)
    PeriodType-ն ընդունում է նույն արժեքները, ինչ ֆունկցիայի համար ԺԱՄԱՆԱԿԻ ՍԿԶԲԸ
    Օրինակ՝ ընտրենք փետրվարի ամսաթիվը.

    SELECT ADDKDATE(DATETIME(2016, 2, 15), MONTH, 2)

    Մենք ստանում ենք ամսաթիվ 04/15/2016 0:00:00 Չնայած այն հանգամանքին, որ փետրվարը կարճ ամիս է, ստացված ամսաթվի օրը նույնն է, ինչ սկզբնականը: Շատ հարմար է, որ դուք ստիպված չեք լինի մտածել ամիսների օրերի քանակի մասին:
    Քանակը կարող է լինել նաև բացասական։ Այնուհետեւ միջակայքը հաշվում են հակառակ ուղղությամբ։

  • ՏԱՐԲԵՐՎԵԼ

    Հաշվեք նշված միավորներում երկու ամսաթվերի տարբերությունը:
    Շարահյուսություն:
    ԱՄՍԹՎԱՅԻ ՏԱՐԲԵՐՈՒԹՅՈՒՆ (Սկիզբի ամսաթիվ, ավարտի ամսաթիվ, ժամանակաշրջանի տեսակ)
    Ժամանակահատվածի տեսակը կարող է վերցնել հետևյալ արժեքները. ԵՐԿՐՈՐԴ, ՐՈՊԵ, ԺԱՄ, ՕՐ, ԱՄԻՍ, ԵՌԱՄՍՅԱԿ, ՏԱՐԻ
    Օրինակ:

    ԸՆՏՐԵԼ ՏԱՐԲԵՐՈՒԹՅՈՒՆԸ (DATETIME (2016, 2, 15), DATETIME (2016, 3, 1), DAY)

    վերադարձնում է 15

Այստեղ մենք վերանայեցինք 1C հարցումների լեզվի առավել հաճախ օգտագործվող գործառույթները: Մնացածները բավականին հազվադեպ են օգտագործվում։ Անհրաժեշտության դեպքում նրանց հետ աշխատելու օրինակները կարելի է գտնել 1C հարթակում ներկառուցված օգնության մեջ:



սխալ:Բովանդակությունը պաշտպանված է!!