1c хүсэлтийн одоогийн огноог авна уу. Хүсэлтэд хоосон огноог хэрхэн зааж өгөх вэ? Өнөөг хүртэл хөрвүүлэх

43
NULL – дутуу утгууд. Тэг утгатай андуурч болохгүй! NULL нь тоо биш, хоосон зай, хоосон лавлагаа эсвэл тодорхойгүй байна. NULL нь төрөл үүсгэгч утга, i.e. NULL төрөл ба энэ төрлийн ганц утга байна. NULL... 26
1С платформ дахь мэдээллийн сангийн хүснэгтэд асуулга үүсгэх, гүйцэтгэхийн тулд Query програмчлалын хэлний тусгай объектыг ашигладаг. Энэ объектыг New Request бүтцийг дуудаж үүсгэнэ. Тохиромжтой хүсэлт ... 18
Уг нийтлэлд 1С v.8.2 асуулгатай ажиллахад хэрэгтэй арга техник, түүнчлэн асуулгын хэлний талаар тийм ч сайн мэддэггүй мэдээллийг багтаасан болно. Би асуулгын хэлний талаар бүрэн тайлбар өгөхийг хичээгээгүй бөгөөд зөвхөн ... 13
LIKE - Мөрийг загвартай төстэй эсэхийг шалгах оператор. SQL дээрх LIKE-ийн аналог. SIMILAR оператор нь түүний зүүн талд заасан илэрхийллийн утгыг баруун талд заасан загварын мөртэй харьцуулах боломжийг олгодог. Илэрхийллийн утга нь...

1С тохиргоонд байгаа бүх баримт бичиг, улмаар бараг бүх бүртгэлүүд нь Date төрлийн дор хаяж нэг шинж чанартай байх ёстой тул хөгжүүлэгч бүр дараахь зүйлийг мэдэж, ойлгох ёстой.

  • Бусад төрлийн параметрүүдийг тухайн төрөл рүү хэрхэн хөрвүүлэх вэ;
  • 1С хүсэлтэд хоосон огноог хэрхэн тодорхойлох вэ;
  • Огноо ба цагийн хязгаар хоёрын ялгаа юу вэ?

Эдгээр асуултуудад бид нийтлэлдээ хариулахыг хичээх болно.

Огноо гэж юу вэ, түүнийг хэрхэн тодорхойлох вэ

Ихэнх удирдлагын шийдвэр гаргах, бүртгэл хөтлөхөд 1 секундээс илүү нарийвчлалтай хугацаа шаардагдахгүй тул 1С платформын хөгжүүлэгчид энэ утгыг огнооны форматын үнэмлэхүй хамгийн бага байхаар шийдсэн. Тиймээс програм дахь үйл явдлын цагийг тодорхойлсон шинж чанар бүр нь дараахь зүйлийг агуулна.

  • Үйл явдал болсон жил;
  • Энэ үйл явдлын сар;
  • Өдөр.

Үүнийг зааж өгөх шаардлагагүй: цаг, минут, секунд. Хэрэв эдгээр гурван параметрийг орхигдуулсан бөгөөд нэмэлт нөхцөл байхгүй бол програм автоматаар өдрийн эхэнд цагийг тохируулна.

Дэлхий дээр байгаа огнооны формат нь мэдэгдэхүйц ялгаатай байна:

  1. Орос улсад бид өдөр, дараа нь үйл явдлын сар, жилийн төгсгөлд эхний ээлжинд дассан;
  2. АНУ-ын оршин суугчид огноог сараар эхэлдэг;
  3. Чех, Польш, Словенчууд жил - сар - өдөр форматаар үеийг тэмдэглэдэг.

Энэ нь 1С платформ ашигладаг сүүлийн формат юм.

Өнөөдрийг хүртэл хөрвүүлэх

Огноо төрөлтэй параметрийг хэд хэдэн утгаас эсвэл мөрөөс авахын тулд та Зураг дээр үзүүлсэн кодыг ашиглах ёстой. 1

Дээрх зургаас харахад та огноог нэг мөр ашиглан эсвэл энэ мөрийг таслал ашиглан бүрэлдэхүүн хэсгүүдэд хуваах замаар тодорхойлж болно, үр дүн өөрчлөгдөхгүй.

Огнооны жил нь үйл явдлын мянган жил, зууныг багтаасан дөрвөн оронтой байх ёстой бөгөөд сар, өдөр, цаг, секунд нь хоёр тэмдэгтээс бүрдэх ёстой бөгөөд үүний дотор эхний тэг байх ёстой.

Хөтөлбөрт цаг тоолох нь 0001 оны 1-р сарын 1-ний өдрийн эхнээс эхэлдэг. Дээрх кодын хувьд энэ утгыг хоёр аргын аль нэгээр тодорхойлж болно (Зураг 2).

Цагаан будаа. 2

Хоёр дахь мөрөнд бид үйл явдлын цаг, минут, секундийг орхисон бөгөөд энэ нь бидний кодын гүйцэтгэлд огт нөлөөлөөгүй.

1С асуулгад огноог ашиглах онцлог

1С платформын ашигладаг ихэнх өгөгдлийн төрлүүдийн хувьд урьдчилан тодорхойлсон хүчингүй утгууд байдаг. Тоонуудын хувьд энэ нь 0, холбоосын хувьд та EmptyLink() утгыг тодорхойлж болно, огнооны хувьд хоосон утгыг ихэвчлэн эхлэх огноо гэж үздэг бөгөөд үүнтэй холбоотойгоор тохирох төрлийн дэлгэрэнгүй мэдээллийг харьцуулах шаардлагатай. хүсэлтийн параметрүүд.

Хэдийгээр тухайн төрлийн маягтын шинж чанарын утгад ямар ч тоо заагаагүй, өөрөөр хэлбэл цонх нь иймэрхүү харагдаж байна (Зураг 3), энэ нь түүнд юу ч заагаагүй гэсэн үг биш гэдгийг ойлгох нь чухал юм; Энэ параметрийг хоосон мөртэй харьцуулах нь ажиллахгүй.

Цагаан будаа. 3

Хоосон огноог хүлээн авсны дараа бид үүнийг өөрийн хүсэлтийн параметр болгон зааж өгч болно, өөрөөр хэлбэл, бүтээцийг ашиглана (Зураг 4)

Гэсэн хэдий ч, параметр болгон хоосон огноог оруулахгүйгээр хүсэлтийн үндсэн дотор шалгах нь илүү дээр байх тохиолдол байдаг. Үүнийг хийхийн тулд та хүсэлтийн кодонд тохирох нөхцөлийг (Зураг 5) оруулаад DateTime() хүсэлтийн функцийг ашиглаж болно.

Цагаан будаа. 5

Дээрх хүсэлтийн текстэд бид жил, сар, өдрийн эхний тэгийг орхисон, мөн цаг, минут, секундийг заагаагүй бөгөөд хөтөлбөр нь тэдний хэлснээр энэ таамаглалыг идэв.

Огноо ба цагийн хил хязгаар

Асуулга ба огнооны хоорондын хамаарлын талаархи бас нэг сонирхолтой баримт бол мэдээллийн сангийн янз бүрийн хүснэгтэд хандахдаа "цаг хугацааны цэг" гэсэн ойлголтыг ашиглах явдал юм.

Анхдагч огнооны төрлийг тайлбарлахдаа техникийн баримт бичигт заасан "миллисекунд хүртэлх" нарийвчлал нь хуримтлалын бүртгэлийн виртуал хүснэгтээс бичлэг сонгохдоо хамгийн тод илэрдэг: хэрэв хуримтлалын бүртгэл нь эргэлтийн хүснэгтээс гадна үлдсэн хэсэгтэй байвал. болон үлдэгдэл ба эргэлтийн хүснэгтүүд, дараа нь тэдгээрээс дээж авах нь тодорхой хугацаанд хийгдсэн , өөр үр дүн өгч болно.

Энэ нь хэрхэн, яагаад тохиолддогийг ойлгохын тулд энгийн жишээг авч үзье.

  1. Борлуулалтын баримт бичиг 12 цаг 31 минут 36 секундэд хийгдэхээс өмнө Элсэн чихрийн нэршилийн дагуу үлдэгдэл 30 кг;
  2. Баримт бичиг нь заасан хугацаанд 10 кг хассан;
  3. Үлдсэн хүснэгтийн дагуу баримт бичгийн огноо 12 цаг 31 минут 36 секундэд үүсгэсэн тайланд 30 кг-ын үлдэгдэл харагдах болно;
  4. Хүснэгт дээрх ижил тайлангийн үлдэгдэл ба эргэлтийн ижил хугацаанд 20 кг-ийн тэнцлийг харуулах болно.

Энэ зан үйлийн шалтгаан юу вэ, үүнээс хэрхэн зайлсхийх вэ?

Асуудал нь Үлдсэн хүснэгтэд хугацааг нээлттэй сегмент гэж зааж өгсөн, өөрөөр хэлбэл тайланг гаргах үед хийсэн хөдөлгөөнийг тооцдоггүй, өөрөөр хэлбэл 2-т заасан секундын эхэнд цагийг авдаг. параметр. Үүний зэрэгцээ эргэлтийн хүснэгт болон үлдэгдэл ба эргэлтийн хүснэгтийн хувьд цагийн хил хязгаарыг харгалзан үздэг, өөрөөр хэлбэл заасан секундын төгсгөлд цагийг авдаг.

Энэ байдлаас гарах хэд хэдэн арга бий:

  1. Үлдэгдэл хүснэгтийг ашиглахдаа заасан хугацаанаас 1 секундээр илүү цагийг заана уу;
  2. Зөвхөн үлдэгдэл ба эргэлтийн хүснэгтийг ашиглана уу (гүйцэтгэлийн үүднээс авч үзвэл хамгийн оновчтой сонголт биш);
  3. Хилийн тухай ойлголтыг ашигла.

Сүүлийн сонголтыг Зураг дээр үзүүлсэн кодоор илэрхийлж болно. 6.

Манай объектын эхний параметрт бид тайлан гаргах огноог зааж өгсөн бол хоёр дахь параметр нь хилийн төрлийг тодорхойлдог. Сонголтонд өгөгдсөн огнооны хөдөлгөөнийг оруулах нь бидний хувьд чухал тул бид энэ параметрийг "Оруулах" байрлалд тохируулах ёстой.

Ихэнхдээ "Огноо" төрлийн хувьсагчтай ажиллах шаардлагатай байдаг. Энэ нийтлэлд бид үндсэн аргуудыг авч үзэх болно - одоогийн огноог дамжуулах, хоосон утгыг шалгах, дурын огноо.

Асуулт бичихдээ та өгөгдлийг одоогийн огноотой харьцуулах шаардлагатай болдог. Суурилуулсан 1С хэл нь CurrentDate() функцтэй. Энэ нь таны компьютер дээрх одоогийн цаг, огноог тодорхойлох боломжийг танд олгоно. Одоогийн огноотой үйлдлийг гүйцэтгэхийн тулд та энэ функцийн утгыг хүсэлтэд параметр болгон дамжуулах ёстой.

Одоогоор үүсгэсэн огноотой зардлын тайланд хавсаргасан бүх файлыг сонгох хүсэлтийг доор харуулав.

ExampleRequest = Шинэ хүсэлт;
Жишээ хүсэлт.Текст = "
|СОНГОХ
| AdvanceReportAttachedFiles.Link
|FROM
| Directory.AdvanceReportAttachedFilesAS AdvanceReportAttachedFiles
|ХАААН
| AdvanceReportAttachedFiles.Date< &ТекДата»;
Жишээ Request.SetParameter("CurrentDate", CurrentDate());

Захиалгат огноо

Дээр дурдсан функц нь танд харьцуулах боломжийг олгодог бөгөөд ингэснээр аль ч хугацаанд сонголт хийх боломжтой. Энэ арга нь нэмэлт параметр ашиглахгүйгээр хүсэлтэд хатуу сонголтыг зааж өгөх боломжийг олгодог.

Дээрх жишээнд энэ функцийг ашиглахдаа бид зөвхөн гурван тоог (жил, сар, өдөр) оролтын параметр болгон дамжуулсан гэдгийг анхаарна уу. Сүүлийн гурав (цаг, минут, секунд) нь сонголттой бөгөөд хэрэв байхгүй бол "0" буюу өдрийн эхлэлээр солигдоно.

Энэ жишээ нь өнгөрсөн 2016 оны эцэс хүртэл зардлын тайланд хавсаргасан бүх файлыг татаж авах болно. Үүнтэй холбогдуулан бид "2016 оны 12-р сарын 31, 23:59:59" цаг, минут, секундийг харьцуулах болно.

СОНГОХ
AdvanceReportAttachedFiles.Link
FROM
Directory.AdvanceReportAttachedFiles AS AdvanceReportAttachedFiles
ХААНА
AdvanceReportAttachedFiles.Date< ДАТАВРЕМЯ(2016, 12, 31, 23, 59, 59)

Хоосон огноо

Хувьсагч хоосон огноог агуулсан эсэхийг шалгах хамгийн хялбар арга бол энгийн харьцуулалтыг ашиглах явдал юм. Энэ жишээн дээр асуулга ашиглан бид орж ирсэн огноог бөглөөгүй дансны бүх бэлэн мөнгөний баримтыг сонгох болно.

1С асуулгад ихэвчлэн огноотой ажиллах шаардлагатай болдог. Ялангуяа үе үе мэдээлэл агуулсан мета өгөгдлийн объектуудад хүсэлт гаргах үед. Дүрмээр бол эдгээр нь бүртгэл (мэдээлэл, хуримтлал, тооцоо, нягтлан бодох бүртгэл) юм. Огноотой ажиллахад 1С асуулгын хэлний хамгийн түгээмэл хэрэглэгддэг функцуудыг авч үзье. Мэдээллийн бүртгэл дээр үндэслэн бид жишээг бүтээх болно Ажилтнууд Байгууллага ZUP тохиргооны хувилбар 2.5.

  • ОН САР ӨДӨР ЦАГ

    Жил, сар, өдөр, цаг, минут, секундийг зааж өгснөөр хүсэлтийн огноог (цагтай эсвэл цаггүй) авах боломжийг танд олгоно.
    Синтакс:
    DATETIME(Жил, сар, өдөр, цаг, минут, секунд)
    Ихэвчлэн цаг, минут, секундыг заадаггүй. Жижиг жишээ хэлье. Query Console-д дараах текстийг оруулна уу:

    ОДОО ЦАГ СОНГОХ(2016, 1, 1)

    Хүсэлтийг гүйцэтгэсний үр дүнд бид 2016 оны 01-р сарын огноог авдаг
    Үнэн хэрэгтээ хүсэлтэд огноог ийм байдлаар зааж өгөх нөхцөл байдлыг төсөөлөхөд хэцүү байдаг. Эцсийн эцэст, та хугацааг зааж өгөх шаардлагатай үед параметрүүдийг ашигладаг. Гэхдээ энэ функц онцгой үнэ цэнэтэй байх тохиолдол байдаг. Энэ үед бид талбарууд эсвэл хүсэлтийн нөхцөлд хоосон огноог зааж өгөх шаардлагатай болдог. 1С хэлний хувьд хоосон огноо нь 0001.01.01 гэсэн хэлбэртэй байгааг сануулъя. Тиймээс хүсэлтэд хоосон огноо авахын тулд зүгээр л зааж өгнө үү DATETIME(1, 1, 1). Жишээ болгон мэдээллийн бүртгэлээс сонгож авъя Ажилтнууд Байгууллагабөглөөгүй бүртгэлүүд Дуусгах хугацаа:

    Байгууллагын ажилчдыг СОНГОХ.Хугацаа, Байгууллагын ажилтан.Ажилтан, Байгууллагын ажилтан.Албан тушаал, Байгууллагын ажилтан.Байгууллагын хэлтэс.Бүртгэлийн мэдээллээс.Байгууллагын ажилчдыг Байгууллагын ажилтан ХААНА БАЙГУУЛЛАГЫН АЖИЛЛАГАА.Дуусгах огноо(1,1,1)

  • ҮЕИЙН ЭХЛЭЛ

    Заасан огнооны хувьд хамаарах хугацааны эхлэлийг буцаана.
    Синтакс:
    ХУГАЦААНЫ ЭХЛЭЛ(Огноо, Хугацааны төрөл)
    PeriodType нь дараах утгыг авч болно: МИНУТ, ЦАГ, ӨДӨР, ДОЛОО ХОНОГ, САР, УЛИРЛ, ЖИЛ, АРВАН, ХАГАС ЖИЛ
    Query Console-д дараахыг оруулна уу:

    ХУГАЦААНЫ ЭХЛЭЛИЙГ СОНГОХ(DATETIME(2016, 1, 15), САР)

    Хүсэлт буцаж ирнэ - 2016-01-01
    Тэгээд одоо жишээ. Та бүхний мэдэж байгаагаар бүртгэлийн үе үе Ажилтнууд Байгууллаганэг өдөр. Бодит бичлэг хийх хугацааны оронд тухайн сарын эхлэх огноог харуулах асуулга үүсгэцгээе.

    ХУГАЦААНЫ ЭХЛЭЛИЙГ СОНГОХ(Байгууллагын ажилчид.Хугацаа, САР) Сарын эхээр Байгууллагын ажилтнууд.Ажилтан, Байгууллагын ажилтнууд.Албан тушаал, Байгууллагын ажилтнууд.Байгууллагын хэлтэс, Бүртгэлийн мэдээлэл.Байгууллагын ажилчид.

  • ХУГАЦААНЫ Төгсгөл

    Синтакс нь хугацааны эхэн үеийнхтэй ижил байна. Нэрнээс нь харахад хугацааны төгсгөлийг огноо, хугацааны төрлөөр нь буцаана. Бид үүнийг нарийвчлан авч үзэхгүй. Бяцхан жишээгээр хязгаарлая.
    Хүсэлт:

    ХУГАЦААНЫ Төгсгөлийг СОНГОХ(DATETIME(2016, 1, 15), САР)

    2016-01-31 23:59:59-д буцаж ирнэ
    Таны харж байгаагаар утгыг хоёр дахь хүртэл үнэн зөв буцаана.

  • ADDKDATE

    Заасан тооны интервалыг огноонд нэмнэ.
    Синтакс:
    ADDKDATE(Огноо, Хугацаа Төрөл, Тоо хэмжээ)
    PeriodType нь функцтэй ижил утгыг авдаг ҮЕИЙН ЭХЛЭЛ
    Жишээлбэл, хоёрдугаар сарын огноог сонгоё:

    НЭМЭГДСЭН ОДОО СОНГОХ(DATETIME(2016, 2, 15), MONTH, 2)

    Бид 2016 оны 4-р сарын 15-ны 0:00:00 огноог авдаг. 2-р сар богино сар боловч хүлээн авсан огноо нь анхныхтай ижил байна. Сарын хэдэн өдрийн талаар бодох шаардлагагүй нь маш тохиромжтой.
    Тоо хэмжээ нь сөрөг байж болно. Дараа нь интервалыг эсрэг чиглэлд тоолно.

  • ЗӨРҮҮЛЭХ огноо

    Заасан нэгжээр хоёр огнооны зөрүүг тооцоол.
    Синтакс:
    ОГНЫ ЗӨРҮҮ (Эхлэх огноо, дуусах огноо, хугацааны төрөл)
    Үеийн төрөл нь дараах утгыг авч болно. ХОЁРДУГААР, МИНУТ, ЦАГ, ӨДӨР, САР, УЛИРЛ, ЖИЛ
    Жишээлбэл:

    ЗӨРҮҮ ОДОО СОНГОХ(DATETIME(2016, 2, 15), DATETIME(2016, 3, 1), ӨДӨР)

    15-ыг буцаана

Энд бид 1С асуулгын хэлний хамгийн түгээмэл хэрэглэгддэг функцуудыг авч үзсэн. Үлдсэнийг нь маш ховор хэрэглэдэг. Шаардлагатай бол тэдэнтэй ажиллах жишээг 1С платформд суурилуулсан тусламжаас олж болно.