Күнді тексеру 1с бос. Күнге түрлендіру

Көбінесе «Күн» түріндегі айнымалылармен жұмыс істеу қажеттілігі туындайды. Бұл мақалада біз негізгі әдістерді қарастырамыз - ағымдағы күнді өту, бос мәнді тексеру, ерікті күн.

Сұрауларды жазу кезінде деректерді ағымдағы күнмен жиі салыстыру қажет. Кірістірілген 1С тілінде CurrentDate() функциясы бар. Ол компьютердегі ағымдағы уақыт пен күнді анықтауға мүмкіндік береді. Ағымдағы күнмен операцияларды орындау үшін осы функцияның мәнін сұрауға параметр ретінде беру керек.

Төменде қазірге дейін жасалған күні бар шығыс есептеріне тіркелген барлық файлдарды таңдайтын сұрау берілген:

ExampleRequest = Жаңа сұраныс;
Мысал сұрау.Мәтін = "
|ТАҢДАУ
| AdvanceReportAttachedFiles.Link
|FROM
| Directory.AdvanceReportAttachedFilesAS AdvanceReportAttachedFiles
|ҚАЙДА
| AdvanceReportAttachedFiles.Date< &ТекДата»;
Example Request.SetParameter("CurrentDate", CurrentDate());

Арнаулы күн

Жоғарыда қарастырылған функция салыстыруға және, демек, кез келген кезең үшін таңдау жасауға мүмкіндік береді. Бұл әдіс қосымша параметрлерді пайдаланбай сұрауда қатаң таңдауды көрсетуге мүмкіндік береді.

Жоғарыдағы мысалда бұл функцияны пайдаланған кезде біз тек үш санды (жыл, ай, күн) енгізу параметрлері ретінде бергенімізді ескеріңіз. Соңғы үшеуі (сағат, минут, секунд) міндетті емес және егер жоқ болса, «0» белгісімен ауыстырылады, яғни күннің басы.

Бұл мысал өткен 2016 жылдың соңына дейін шығыс есептеріне тіркелген барлық файлдарды шығарып алады. Осыған байланысты біз «2016 жылдың 31 желтоқсаны 23:59:59» уақыт нүктесін салыстыру үшін сағатты, минутты және секундты көрсетеміз.

ТАҢДАУ
AdvanceReportAttachedFiles.Link
FROM
Directory.AdvanceReportAttachedFiles AS AdvanceReportAttachedFiles
ҚАЙДА
AdvanceReportAttachedFiles.Date< ДАТАВРЕМЯ(2016, 12, 31, 23, 59, 59)

Бос күн

Айнымалы мәнде бос күн бар-жоғын тексерудің ең оңай жолы қарапайым салыстыруды пайдалану болып табылады. Бұл мысалда сұрауды пайдалана отырып, кіріс күні толтырылмаған шотқа барлық қолма-қол ақша түсімдерін таңдаймыз.

1С күндермен жұмыс істегенде күн бөліктерінің әдеттегі реті жыл, ай, күн, сағат, минут, секунд болып табылады. Бұл жағдайда сағаттарды, минуттарды, секундтарды өткізіп жіберуге болады.

Жолдан күн жасағанда («күнге трансляциялау») оны жергілікті пішімде (күн.ай.жыл сағат:минут:секунд) көрсетуге болады, бірақ тек толық көлемде.

Мысалы:
//1С күндермен жұмыс істеу - бөліктерден күнді 1С-ге түрлендіру - жыл, ай, күн (плюс қосымша уақыт)
Дата = Дата(2012,10,30); //уақыт жоқ
Дата = Дата(2012,10,30,12,00,00); //уақытпен

//1С даталарымен жұмыс істеу – жолдан күнді 1С-қа түрлендіру, әртүрлі әдістер
Дата = Дата("20121030"); //жыл, ай, күн
Дата = Дата("30.10.2012 12:00:00"); //локализацияланған формат, тек толық

//1С күндермен жұмыс істеу – күннің мәнін кастингсіз көрсету, тікелей
Күні = "20121030"; //уақыт жоқ
Күні = "20121030120000"; //уақытпен

1С даталармен жұмыс - Бос дата 1С

1С күнін толықтығын тексеру үшін оны «бос күнмен» салыстырады. Анықтамалық кітапта/құжатта күн түрі бар атрибут болса, пайдаланушы бұл жолды толтырмаса, оның мәні де «бос күн» болады.

«Бос күн» 01/01/0001 00:00:00.

Мысалы:
EmptyDate = "00010101000000";
Егер RequiredDate = "00010101000000" Содан кейін
Есеп («Сіз өте қажетті күнді толтырмадыңыз»);
endIf;

Күндермен жұмыс істеу 1С - егжей-тегжейлі күн (анықтамалар, құжаттар және т.б.)

Төлсипат түрін көрсеткенде, пайдалануды көрсетуге болады:

  • Тек күн (уақыт әрқашан 00:00:00 болады)
  • Тек уақыт (күн әрқашан 01/01/0001)
  • Күні мен уақыты

Күнді алу

Күн мен уақытты алу үшін 1C CurrentDate() функциясын пайдаланыңыз.

Бұл функция шақырылатын орын өте маңызды - клиентте немесе серверде. Қосымша ақпарат алу үшін «Өнімділік режимі/Өнімділік» тақырыбын қараңыз. Көбінесе клиенттік машиналардағы уақыт сәл өзгеше болады, сондықтан олар сервер уақытын барлық жерде пайдалануға тырысады - тіпті серверде қате орнатылған болса да, кем дегенде барлық клиенттерде бірдей дұрыс емес уақыт болады.

Сервер күнін (компьютер серверінің операциялық жүйесінде орнатылған күн) алу үшін әдетте конфигурацияда сипаттарда «Сервер» құсбелгісін қойып, жалпы модуль жасалады және онда функция жасалады.
//функция ортақ модульде орналасқан, мысалы Сервер функциялары атауымен
//жалпы модульдің қасиеттерінде «Сервер» құсбелгісі қойылады және «Клиент» құсбелгі қойылмайды
GetServerDate() функциясы экспорттау
CurrentDate();
EndFunction

//бұл функцияны басқа модульден пайдалану үшін шақыру келесідей көрінеді
DocumentObject.Date = ServerFunctions.GetServerDate(); //ModuleName.FunctionName()

Сондай-ақ жұқа клиентте модуль функцияларының жанында оның орындалатын жері көрсетіледі:

Күннің басталуы мен аяқталуы

«30.10.2012» күні үшін:

  • күннің басталу күні "30.10.2012 00:00:00" сияқты көрінеді
  • күннің аяқталу күні келесідей: “30.10.2012 23:59:59”

Кезең үшін деректерді алуды талап ететін есептер мен сұрауларда қолданылады - күн, ай, жыл.

Мысалы, «01/01/2012 00:00:00» мен «31/01/2012 00:00:00» аралығы дұрыс емес, себебі ол айдың бір күнін қамтымайды (бірақ бір секундты қамтиды). айдың соңғы күні).

1С күндермен жұмыс - Күндерді салыстыру

Күнде күн мен уақыт бар. Күндерді салыстыру кезінде (уақытты есепке алмай) әдетте күннің басына (ай, жыл) қысқарады.

Мысалы:
Күн1 = Күн("30.10.2012 12:00:00");
Егер StartDay(Date1) = StartDay(DocumentLink.Date) Содан кейін
Хабарлау («Құжат көрсетілген күні енгізілді»);
endIf;

Кез келген жағдайда, кезеңдегі күндерді салыстыру мысалы:
Егер DocumentLink.Date >= Айдың басы(CurrentDate()) және
DocumentLink.Date

Күндермен жұмыс 1С - Күнді өзгерту

Күн - секундтар саны. Егер біз бір күннің екіншісінен үлкен екенін ғана емес, сонымен қатар қанша үлкен екенін білгіміз келсе, онда айырмашылықты секундтарда аламыз.

Мысалы:
Күннің басынан = CurrentDate() – Күннің басы (CurrentDate());
Есеп("Күн басынан бері" + Сызық(Күннің басынан) + " секундтар өтті");
Есеп("Күн басынан бері" + Сызық(Күн басынан/60) + "минуттар өтті");
Есеп("Күн басынан бері" + Жол(Күннің басынан/60/60) + "сағат өтті");

Біз күнді де өзгерте аламыз, өзгерту кезінде секундтар санын қосамыз немесе азайтамыз:
StartThisDay = StartDay(CurrentDate());

Басы ofPreviousDay = Start ofDay(StartofThisDay – 1); //екіншіні алып тастаңыз - «кеше» жасау және күннің басын «кешеден» алыңыз

Алдыңғы күннің басы = Осы күннің басы – 24*60*60; //басқа әдіс - 24 сағатты шегеру - 24 (сағат) * 60 (минут) * 60 (секунд)

Күндермен жұмыс 1С - Уақыт сәті

Уақыт нүктесі құжаттарға (және осылайша тіркелулерге) қолданылатын күннің ұзартылған көрінісі болып табылады.

Құжаттардың күні мен уақыты бірдей болса, құжаттардың уақытын салыстыру қажет. Тиісінше, оны сұраулардағы таңдау үшін пайдалануға болады.

Уақыт нүктесін құжаттан келесі жолдармен алуға болады:
//1-әдіс
DocumentTimePoint = DocumentLink.TimeTime();

Сондай-ақ уақыт нүктесін күн/уақытпен салыстыруға болады:
TimePointReference = Жаңа уақыт нүктесі(күннің басталуы(ағымдағыкүн()));
DocumentRef.TimePoint().Салыстыру(TimeTimeReference) = -1 болса
Хабарлау («Құжат бүгіннен ертерек енгізілді»);
endIf;
//Егер құжат бүгінгі күнмен 00:00:00-де енгізілсе, ол әлі де енгізілген - бүгін

Күндермен жұмыс 1С - Күнді пішімдеу

Бос сілтемелерді, күндерді немесе жолдарды анықтауға арналған құралдар. 1С сұрауында бос сілтемені, күнді немесе жолды қалай тексеруге болатынын қарастырайық.

Арнайы операторларды қолдану арқылы нөлдік деректерді анықтауға болады.

1С дерекқорынан ақпарат сұрау тілі (Query) сияқты құралдың көмегімен сұралады (содан кейін қабылданады). Олар латын және кириллицада жазылған. Ал ақпаратты қабылдау кезіндегі негізгі сөз командаларының (операторлардың) бірі кейбір конструкциялармен тіркесетін SELECT (ағылшын) командалық сөзі болып табылады. Тақырып бойынша бізді қызықтыратын сұралған тапсырмаларды құру мысалдары:

NULL мазмұны тексерілуде

Бұл тапсырманы SELECT операторы «IS NULL» конструкциясымен бірге орындайды:

ТАҢДАУ
Тапсырыстар қалды. Тұтынушы,
Тапсырыстар Қалған. Саны Қалған
FROM
Жинақтауларды тіркеңіз. Тапсырыстар. Тапсырыстар қалдырылады
ҚАЙДА
Тапсырыстар Қалған. Саны Қалған НҰЛ

Күнді бақылау

1С сұранысындағы бос күн «DATETIME(1, 1, 1, 0, 0, 0)» конструкциясы арқылы енгізіледі:

ТАҢДАУ
InvoiceIncomingSupplier.Link.
Шот-фактура Кіріс Жеткізуші.Келу күні
FROM
Құжат. Жеткізушінің шот-фактурасы AS Жеткізушінің шот-фактурасы
ҚАЙДА
InvoiceIncomingSupplier.IncomingDate = DATETIME(1, 1, 1, 0, 0, 0)

Анықтамалық тексеру

Бар емес ішкі анықтамалық мәндер (шоттар диаграммалары, каталогтар және т.б. үшін) «VALUE(Directory.Name…EmptyLink)» конструкциясы арқылы тексеріледі:

Жолды тексеру

Бос жолдар тырнақшадағы бос орынды «» пайдалану арқылы анықталады:

ТАҢДАУ
Сатып алушылар.Сілтеме
FROM
Анықтамалық Сатып алушылар Сатып алушылар AS
ҚАЙДА
Buyers.Code = ""

Сынған және тұрақты сілтемелер туралы толығырақ

«Жарғанат» - бұл жоқ элементке апаратын (нүктелер) сілтеме. Жоқ деп дерекқорда жоқ дегенді айтамыз. Мұндай сілтемелер туралы білу пайдалы, кем дегенде жүйеден хабарламаларды түсінікті түрде алу үшін. Ал шынайы емес нысандарды жазу, жою және ашу мағынасы жоқ.

1С платформаларында оларды кесу үшін ішкі құралдар жоқ. Сондай-ақ, сіз «сынғандардан» басқа жүйеде бір-бірінен ерекшеленуі керек арнайы «бос сілтемелер» бар екенін түсінуіңіз керек.
Мұны дерекқорды сұраусыз табуға болады:

1С-7,7 жүйесінде

«бит» үшін Link.Selected() әдісі және EmptyValue() функциясы нөлді қайтарады. «Бос» үшін - бірінші жағдайда ол нөлге тең, ал екінші жағдайда ол бір. «Қалыпты» үшін - бір және нөл. 1С-7.7-де «сынған» таңдалған болып саналмайтын жоқ мән емес екені белгілі болды.

1C-8.x жүйесінде

Барлығы басқаша - екі жағдайда да («үзілген» және «қалыпты» үшін) әдіс False мәнін қайтарады, ал функция True мәнін қайтарады. Шешім мынада: «Бұзылған» әдіс үшін Link.GetObject() әдісі «Анықталмаған» функциясын қайтарады. «Бос» үшін - «Мәтінмәндік әдіс қатесі» жіберіледі. «Қалыпты» үшін - мән құжаттамаға сәйкес қайтарылады; 1C-8.x нұсқасында «сынған» анықтамалық нысанның Анықталмаған мәнін қайтаратын сілтеме түрінің жоқ функциясы болмайды.

Олар қайдан келеді

Сынған сілтеменің жоқ мекенжайына өту кезінде пайдаланушыға ең жақсы жағдайда нысан табылмағаны туралы хабарлама, ең нашар жағдайда сервер бетінің суреті көрсетіледі. Олардың ең жаман қасиеті - құпиялылық. Сондықтан олардың дұрыстығын тексеру қиын. Конфигурациямен жұмыс істеу кезінде ол үнемі нақтыланып, жаңартылып отырады. Кейбір нысандарды жою керек, құрылымы өзгереді. Ал жойылған элементке сілтеме құрылымдар мен алгоритмдерде қалады. Осылайша, элементтің өзі (адреспен бірге) жойылғаннан кейін жүйеде жоқ мекенжайлар қалады.

Бүгінгі басылым арнайы сұрау салуды қарастырды. Дизайн үлгілері келтірілген. Бұл бос мәндерді іздеу кезінде пайдалы болады.

1С конфигурациясында бар барлық құжаттар, демек, барлық дерлік регистрлерде Date түрі бар кем дегенде бір атрибут болуы керек, сондықтан әрбір әзірлеуші ​​білуі және түсінуі керек:

  • Басқа түрлердің параметрлерін қарастырылып отырған түрге қалай түрлендіруге болады;
  • 1С сұранысындағы бос күнді қалай анықтауға болады;
  • Күн мен уақыт шегінің айырмашылығы неде?

Дәл осы сұрақтарға біз мақаламызда жауап беруге тырысамыз.

Күн дегеніміз не және оны қалай анықтауға болады

Көптеген басқару шешімдерін қабылдау және жазбаларды жүргізу 1 секундтан асатын уақыт дәлдігін талап етпейтіндіктен, 1С платформасын әзірлеушілер бұл мән күн пішіміндегі абсолютті минимум болады деп шешті. Осылайша, бағдарламадағы оқиғаның уақытын сипаттайтын әрбір атрибут мыналарды қамтуы керек:

  • Оқиға болған жыл;
  • Бұл оқиғаның айы;
  • Күн.

Көрсетудің қажеті жоқ: сағат, минут және секунд. Осы үш параметр алынып тасталса және қосымша шарттар болмаса, бағдарлама уақытты автоматты түрде күннің басына орнатады.

Әлемде бар күн пішімдері айтарлықтай айырмашылықтарға ие:

  1. Ресейде біз алдымен күнді, содан кейін оқиғаның айын, ал соңында жылды қоюды әдетке айналдырдық;
  2. АҚШ тұрғындары күнді айдан бастайды;
  3. Чехтар, поляктар және словендер кезеңдерді Жыл – Ай – Күн форматында жазады.

Бұл 1С платформасы қолданатын соңғы пішім.

Күнге түрлендіру

Бірнеше мәндерден немесе жолдан Date түрі бар параметрді алу үшін суретте көрсетілген кодты пайдалану керек. 1

Жоғарыдағы суреттен көріп отырғанымыздай, күнді бір жолды пайдаланып немесе осы жолды үтір арқылы құрамдас бөліктерге бөлу арқылы анықтауға болады, нәтиже өзгермейді.

Күннің жылы оқиғаның мыңжылдығы мен ғасырын қоса алғанда, төрт саннан тұруы керек, ай, күн, сағат және секунд екі таңбадан тұруы керек, оның ішінде алдыңғы нөлдер болуы керек екенін түсіну маңызды.

Бағдарламадағы уақытты кері санау 0001 жылдың 1 қаңтарындағы күннің басынан басталады. Жоғарыдағы код үшін бұл мәнді екі жолдың бірімен анықтауға болады (2-сурет).

Күріш. 2

Екінші жолда оқиғаның сағаттарын, минуттарын және секундтарын өткізіп жібердік, бұл біздің кодымыздың жұмысына мүлде әсер етпеді.

1С сұраныстарында күнді пайдалану ерекшеліктері

1С платформасы пайдаланатын көптеген деректер түрлері үшін алдын ала анықталған бос мәндер бар. Сандар үшін бұл 0, сілтемелер үшін EmptyLink() мәнін анықтауға болады, күн үшін бос мән әдетте басталу күні болып саналады және дәл осымен сәйкес түрдің мәліметтерін орнату кезінде салыстыру қажет. сұрау параметрлері.

Қарастырылып отырған түрдегі пішін атрибутының мәні ешқандай сандарды қамтымаса, яғни терезе (3-сурет) сияқты көрінсе де, бұл онда ештеңе көрсетілмегенін білдірмейтінін түсіну маңызды; салыстыру бұл параметрдің бос жолы жұмыс істемейді.

Күріш. 3

Бос күнді алғаннан кейін біз оны сұрауымызға параметр ретінде көрсете аламыз, яғни конструкцияны пайдаланамыз (Cурет 4)

Дегенмен, параметр ретінде бос күнді өткізбей, сұрау органының ішінде тексерген дұрыс. Ол үшін сұраныс кодына сәйкес шартты енгізуге болады (5-сурет) және DateTime() сұрау функциясын пайдалануға болады.

Күріш. 5

Жоғарыдағы сұрау мәтінінде біз жылдың, айдың және күннің алдыңғы нөлдерін алып тастадық, сонымен қатар сағаттарды, минуттарды және секундтарды көрсетпедік, ал бағдарлама, олар айтқандай, бұл болжамды жеп қойды.

Күн мен уақыт шекарасы

Сұраулар мен күндер арасындағы қарым-қатынасқа қатысты тағы бір қызықты факт әртүрлі дерекқор кестелеріне қол жеткізу кезінде «уақыт нүктесі» түсінігін пайдалану болып табылады.

Қарапайым Дата түрін сипаттау кезінде техникалық құжаттамада көрсетілген «миллисекундқа дейін» дәлдік жинақтау тізілімінің виртуалды кестелерінен жазбаларды таңдау кезінде айқын көрінеді: егер жинақтау тізілімінде «Айналым» кестесінен басқа, Қалған және Қалған және Айналым кестелері, содан кейін олардан іріктеу белгілі бір уақыт ішінде жүргізіледі , әртүрлі нәтижелер беруі мүмкін.

Мұның қалай және неге болатынын түсіну үшін қарапайым мысалды қарастырыңыз:

  1. Сату құжаты 12 сағат 31 минут 36 секундта жүргізілгенге дейін Қант номенклатурасы бойынша қалдықтар 30 кг;
  2. Құжат көрсетілген уақытта 10 кг есептен шығарды;
  3. Қалған кестеге сәйкес құжат күні 12 сағат 31 минут 36 секундта жасалған есепте 30 кг баланс көрсетіледі;
  4. Бір уақыттағы қалдықтар мен айналымдар кестесіндегі бірдей есеп 20 кг теңгерімді көрсетеді.

Бұл мінез-құлықтың себебі неде және оны қалай болдырмауға болады?

Мәселе мынада, Қалған кестеде кезең ашық сегмент ретінде көрсетіледі, яғни есеп құру кезінде жасалған қозғалыстар есепке алынбайды, яғни уақыт келесіде көрсетілген секундтың басында алынады. параметр. Бұл ретте Айналым кестесі үшін және Қалдық және Айналым кестесі үшін уақыт шекаралары ескеріледі, яғни уақыт көрсетілген секундтың соңында алынады.

Бұл жағдайдан шығудың бірнеше жолы бар:

  1. Remains кестесін пайдаланған кезде көрсетілгеннен 1 секунд артық уақыт нүктесін көрсетіңіз;
  2. Қалдықтар мен айналымдар кестесін ғана пайдаланыңыз (өнімділік тұрғысынан ең оңтайлы нұсқа емес);
  3. Шекара ұғымын қолданыңыз.

Соңғы опцияны суретте көрсетілген кодпен көрсетуге болады. 6.

Нысанымыздың бірінші параметрінде есепті құру керек күнді көрсетеміз, екінші параметр шекара түрін анықтайды. Біз үшін белгілі бір күндегі қозғалыстардың таңдауға қосылғаны маңызды болғандықтан, біз бұл параметрді «Соның ішінде» күйіне орнатуымыз керек.

1С сұрауларында жиі күндермен жұмыс істеуге тура келеді. Әсіресе мерзімді ақпаратты қамтитын метадеректер нысандарына сұрау жасалғанда. Әдетте, бұл регистрлер (ақпарат, жинақтау, есептеу, есепке алу). Күндермен жұмыс істеу үшін 1С сұраныс тілінің ең жиі қолданылатын функцияларын қарастырайық. Ақпараттық регистр негізінде мысалдар құрастырамыз Қызметкерлер Ұйымдары ZUP конфигурацияларының 2.5 нұсқасы.

  • КҮН УАҚЫТ

    Жылды, айды, күнді, сағатты, минутты, секундты көрсету арқылы сұрауда күнді (уақыты бар немесе жоқ) алуға мүмкіндік береді.
    Синтаксис:
    DATETIME(жыл, ай, күн, сағат, минут, секунд)
    Әдетте сағат, минут және секунд көрсетілмейді. Шағын мысал келтірейік. Сұрау консоліне келесі мәтінді енгізіңіз:

    КҮН УАҚЫТЫН ТАҢДАУ(2016, 1, 1)

    Сұранысты орындау нәтижесінде біз күнді аламыз - 01.01.2016
    Шындығында, сұрауда күн осылай көрсетілетін жағдайды елестету қиын. Өйткені, кезеңді көрсету қажет болғанда, параметрлер пайдаланылады. Бірақ бұл функция ерекше мәнге ие болатын жағдай бар. Бұл өрістерде немесе сұрау шарттарында бос күнді көрсетуіміз керек кезде. Естеріңізге сала кетейін, 1С тілі үшін бос дата – 0001.01.01. Осылайша, сұрауда бос күнді алу үшін жай ғана көрсетіңіз DATETIME(1, 1, 1). Мысал ретінде ақпарат тізілімінен таңдап алайық Қызметкерлер Ұйымдарытолтырылмаған жазбалар Аяқтау кезеңі:

    Ұйым қызметкерлерін ТАҢДАҢЫЗ. Мерзім, ұйым қызметкерлері. Қызметкер, ұйым қызметкерлері. Лауазым, ұйым қызметкерлері. Ұйым бөлімшесі. Тіркеу ақпаратынан. Ұйым қызметкерлері ұйымдық қызметкерлер ҚАЙДАҒЫ ұйымдық қызметкерлер ретінде. Аяқталу кезеңі (КҮНІ, 11, = 1,)

  • КЕЗЕҢ БАСЫ

    Көрсетілген күн үшін ол тиесілі кезеңнің басын қайтарады.
    Синтаксис:
    МЕЗГІЛДІҢ БАСЫ(Күні, кезең түрі)
    PeriodType келесі мәндерді қабылдай алады: МИНУТ, САҒАТ, КҮН, АПТА, АЙ, ТЕКСЕН, ЖЫЛ, ОНДЫҚ, ЖАРТЫ ЖЫЛ
    Сұрау консолінде мынаны енгізіңіз:

    МЕЗГИЛДІҢ БАСТАУЫН ТАҢДАУ(DATETIME(2016, 1, 15), АЙ)

    Сұраныс қайтарылады - 01.01.2016
    Ал енді мысал. Өздеріңіз білетіндей, тізілімнің кезеңділігі Қызметкерлер Ұйымдарыбір күн. Нақты жазба кезеңінің орнына айдың басталу күні көрсетілетін сұрауды жасайық.

    КЕЗЕҢ БАСЫН ТАҢДАҢЫЗ (Ұйымдар қызметкерлері. Мерзім, АЙ) Айдың басы, Ұйым қызметкерлері.

  • КЕЗЕҢ СОҢЫ

    Синтаксис кезең басындағыдай. Және аты айтып тұрғандай, ол күн мен кезең түрі бойынша кезеңнің соңын қайтарады. Біз оны егжей-тегжейлі қарастырмаймыз. Шағын мысалмен шектелейік.
    Сұраныс:

    КЕЗЕҢ СОҢЫН ТАҢДАУ(DATETIME(2016, 1, 15), АЙ)

    31.01.2016 23:59:59 қайтарылады
    Көріп отырғаныңыздай, мән екіншіге дәл қайтарылады.

  • ADDKDATE

    Уақыт аралықтарының көрсетілген санын күнге қосады.
    Синтаксис:
    ADDKDATE(Күні, кезең түрі, саны)
    PeriodType функциясы үшін бірдей мәндерді қабылдайды КЕЗЕҢ БАСЫ
    Мысалы, ақпан күнін таңдайық:

    ҚОСУ КҮНІН ТАҢДАУ(DATETIME(2016, 2, 15), АЙ, 2)

    Біз күнді аламыз 15.04.2016 0:00:00 Ақпан қысқа ай болғанына қарамастан, алынған күннің күні бастапқы күнмен бірдей. Айлардағы күндер саны туралы ойлаудың қажеті жоқ өте ыңғайлы.
    Саны теріс болуы мүмкін. Содан кейін аралық қарама-қарсы бағытта есептеледі.

  • DIFFERENCEDATE

    Көрсетілген бірліктерде екі күннің айырмашылығын есептеңіз.
    Синтаксис:
    КҮН АЙЫРМАСЫ (басталу күні, аяқталу күні, кезең түрі)
    Кезең түрі келесі мәндерді қабылдай алады: ЕКІНШІ, МИНУТ, САҒАТ, КҮН, АЙ, ТЕКСЕН, ЖЫЛ
    Мысалы:

    ДИФЕРЕНЦИЯНЫ ТАҢДАУ(DATETIME(2016, 2, 15), DATETIME(2016, 3, 1), DAY)

    15 қайтарады

Мұнда біз 1С сұрау тілінің ең жиі қолданылатын функцияларын қарастырдық. Қалғандары өте сирек қолданылады. Қажет болса, олармен жұмыс істеу мысалдарын 1С платформасында орнатылған анықтамадан табуға болады.