1c கோரிக்கையில் தேதிகளின் ஒப்பீடு. கோரிக்கையில் காலியான தேதியை எவ்வாறு குறிப்பிடுவது? தேதிக்கு மாற்றவும்

பெரும்பாலும் "தேதி" வகையின் மாறிகளுடன் வேலை செய்ய வேண்டிய அவசியம் உள்ளது. இந்த கட்டுரையில் நாம் அடிப்படை நுட்பங்களைப் பார்ப்போம் - தற்போதைய தேதியை கடந்து, ஒரு வெற்று மதிப்பு, ஒரு தன்னிச்சையான தேதியை சரிபார்த்தல்.

வினவல்களை எழுதும் போது, ​​நீங்கள் அடிக்கடி தற்போதைய தேதியுடன் தரவை ஒப்பிட வேண்டும். உள்ளமைக்கப்பட்ட 1C மொழி CurrentDate() செயல்பாட்டைக் கொண்டுள்ளது. உங்கள் கணினியில் தற்போதைய நேரத்தையும் தேதியையும் தீர்மானிக்க இது உங்களை அனுமதிக்கிறது. தற்போதைய தேதியுடன் செயல்பாடுகளைச் செய்ய, இந்த செயல்பாட்டின் மதிப்பை கோரிக்கைக்கு அளவுருவாக அனுப்ப வேண்டும்.

இதுவரை உருவாக்கப்பட்ட தேதியுடன் செலவு அறிக்கைகளுடன் இணைக்கப்பட்ட அனைத்து கோப்புகளையும் தேர்ந்தெடுக்கும் வினவல் கீழே உள்ளது:

எடுத்துக்காட்டு கோரிக்கை = புதிய கோரிக்கை;
எடுத்துக்காட்டு கோரிக்கை. உரை = "
|தேர்ந்தெடு
| AdvanceReportAttachedFiles.Link
|இருந்து
| அடைவு.AdvanceReportAttachedFilesAS AdvanceReportAttachedFiles
|எங்கே
| AdvanceReportAttachedFiles.தேதி< &ТекДата»;
உதாரணம் கோரிக்கை.SetParameter("CurrentDate", CurrentDate());

விருப்ப தேதி

மேலே விவாதிக்கப்பட்ட செயல்பாடு ஒப்பிட்டுப் பார்க்க உங்களை அனுமதிக்கிறது, எனவே, எந்த காலத்திற்கும் ஒரு தேர்வு செய்யுங்கள். கூடுதல் அளவுருக்களைப் பயன்படுத்தாமல் கோரிக்கையில் கடுமையான தேர்வைக் குறிப்பிட இந்த முறை உங்களை அனுமதிக்கிறது.

மேலே உள்ள எடுத்துக்காட்டில் இந்தச் செயல்பாட்டைப் பயன்படுத்தும் போது, ​​உள்ளீட்டு அளவுருக்களாக மூன்று எண்களை (ஆண்டு, மாதம், நாள்) மட்டுமே அனுப்பினோம். கடைசி மூன்று (மணிநேரம், நிமிடம், வினாடி) விருப்பமானது மற்றும் இல்லாவிட்டால், "0" என்று மாற்றப்படும், அதாவது நாளின் ஆரம்பம்.

இந்த உதாரணம் கடந்த ஆண்டு 2016 இறுதி வரை செலவு அறிக்கைகளுடன் இணைக்கப்பட்ட அனைத்து கோப்புகளையும் மீட்டெடுக்கும். இது சம்பந்தமாக, "டிசம்பர் 31, 2016 23:59:59" நேரப் புள்ளியை ஒப்பிட்டுப் பார்க்க, மணிநேரம், நிமிடம் மற்றும் வினாடியைக் குறிப்பிடுவோம்.

தேர்வு
AdvanceReportAttachedFiles.Link
இருந்து
அடைவு.AdvanceReportAttachedFiles AS AdvanceReportAttachedFiles
எங்கே
AdvanceReportAttachedFiles.தேதி< ДАТАВРЕМЯ(2016, 12, 31, 23, 59, 59)

வெற்று தேதி

ஒரு மாறியில் காலியான தேதி இருக்கிறதா என்று பார்ப்பதற்கான எளிதான வழி, எளிமையான ஒப்பீட்டைப் பயன்படுத்துவதாகும். இந்த எடுத்துக்காட்டில், ஒரு வினவலைப் பயன்படுத்தி, உள்வரும் தேதி நிரப்பப்படாத கணக்கிற்கான அனைத்து பண ரசீதுகளையும் நாங்கள் தேர்ந்தெடுப்போம்.

43
NULL - விடுபட்ட மதிப்புகள். பூஜ்ஜிய மதிப்புடன் குழப்பமடைய வேண்டாம்! NULL என்பது எண் அல்ல, இது ஒரு இடைவெளி, வெற்றுக் குறிப்பு அல்லது வரையறுக்கப்படாதது. NULL என்பது ஒரு வகை உருவாக்கும் மதிப்பு, அதாவது. ஒரு வகை NULL மற்றும் இந்த வகையின் ஒற்றை மதிப்பு உள்ளது. ஏதுமில்லை... 26
1C இயங்குதளத்தில் தரவுத்தள அட்டவணைகளுக்கு வினவல்களை உருவாக்க மற்றும் செயல்படுத்த, வினவல் நிரலாக்க மொழியின் சிறப்புப் பொருள் பயன்படுத்தப்படுகிறது. புதிய கோரிக்கை கட்டமைப்பை அழைப்பதன் மூலம் இந்த பொருள் உருவாக்கப்பட்டது. வசதியான கோரிக்கை... 18
கட்டுரை 1C v.8.2 வினவல்களுடன் பணிபுரியும் போது பயனுள்ள நுட்பங்களை வழங்குகிறது, அத்துடன் வினவல் மொழியைப் பற்றி அதிகம் அறியப்படாத தகவல்களையும் வழங்குகிறது. நான் கொடுக்க முயற்சிக்கவில்லை முழு விளக்கம்வினவல் மொழி, ஆனால் நான் அதில் வசிக்க விரும்புகிறேன்... 13
லைக் - பேட்டர்ன் ஒற்றுமைக்காக சரத்தை சரிபார்ப்பதற்கான ஆபரேட்டர். SQL இல் LIKE இன் அனலாக். SIMILAR ஆபரேட்டர், அதன் இடதுபுறத்தில் குறிப்பிடப்பட்ட வெளிப்பாட்டின் மதிப்பை வலதுபுறத்தில் குறிப்பிடப்பட்ட மாதிரி சரத்துடன் ஒப்பிட உங்களை அனுமதிக்கிறது. வெளிப்பாட்டின் அர்த்தம்...

1C இல் உள்ள "தேதி" வகையானது எண், சரம் மற்றும் பூலியன் ஆகியவற்றுடன் 4 முக்கிய தரவு வகைகளில் ஒன்றாகும். உள்ளமைவுகளில் தேதிகள் எங்கும் காணப்படுகின்றன - மேம்பாட்டின் போது இந்த தரவு வகையுடன் வேலை செய்வதைத் தவிர்க்க முடியாது. எனவே, தேதிகளை எவ்வாறு செயலாக்குவது, அவற்றுடன் பணிபுரிய என்ன விருப்பங்கள் உள்ளன, அவை எவ்வாறு சேமிக்கப்படுகின்றன என்பதைப் புரிந்துகொண்டு வினவல்களை எழுதத் தொடங்குவது நல்லது. வெவ்வேறு தேதிகளுடன் வினவல்களை எழுதுவதற்கான அனைத்து நுணுக்கங்களின் எடுத்துக்காட்டுகளைப் பார்ப்போம்.

1C வினவல்களில் தேதிகளுடன் பணிபுரிவதற்கான எடுத்துக்காட்டுகள்

முதலில், நீங்கள் கோரிக்கையில் தேதியை தேவையான வடிவத்தில் பெற வேண்டும் - நேரத்துடன் அல்லது இல்லாமல். இந்த பணியை நிறைவேற்ற பல வழிகள் உள்ளன:

  1. அளவுரு வழியாக அனுப்பவும். இந்த முறையைப் பயன்படுத்தி தற்போதைய அமர்வு தேதியை மட்டுமே நீங்கள் பெற முடியும்;
  2. தேர்வு புலத்திலிருந்து வினவலில் தேதியைப் பெறவும்;
  3. DATETIME() செயல்பாட்டைப் பயன்படுத்தி எண் மதிப்புகளிலிருந்து மாற்றவும்.

ஆவணங்களுடன் பணிபுரியும் போது மிகவும் பொதுவான பணி 1C கோரிக்கையில் ஒரு வெற்று தேதியை சரிபார்க்கிறது. இந்த வழக்கில், ஒரு மாறி அல்லது புலத்தை வெற்று தேதியுடன் ஒப்பிடுவது எளிதானது, இது DATETIME(1,1,1) செயல்பாட்டைப் பயன்படுத்தி பெறப்படுகிறது:

தேதிநேரம் (1, 1, 1)

இதேபோன்ற கட்டளையைப் பயன்படுத்தி, கோரிக்கையில் தன்னிச்சையான தேதி மற்றும் நேரத்தைப் பெறலாம். மேலும், 6 எண்களை அளவுருக்களாகக் குறிப்பிடுவதன் மூலம் அவற்றை ஒரு நொடி வரை துல்லியமாகக் குறிப்பிடலாம். 3 எண்கள் மட்டுமே பயன்படுத்தப்பட்டால், மணிநேரம், நிமிடங்கள் மற்றும் வினாடிகள் 0 ஆக அமைக்கப்படும் (நாளின் ஆரம்பம்). எடுத்துக்காட்டாக, கோரிக்கையில் ஜனவரி 2018 முதல் 10 நாட்களுக்கு ஆவணங்களைத் தேர்ந்தெடுக்க வேண்டும்:

நடப்புக் கணக்கிற்கான ரசீதைத் தேர்ந்தெடுங்கள். ஆவணத்திலிருந்து இணைப்பு. நடப்புக் கணக்கிற்கான ரசீது என நடப்புக் கணக்கிற்கான ரசீது நடப்புக் கணக்கிற்கான ரசீது. தேதிக்கு இடைப்பட்ட தேதி(2018, 1, 1, 0, 0, 0) மற்றும் தேதி, நேரம்(2018 10, 23, 59, 59)

உள்ளமைக்கப்பட்ட 1C மொழியில் உள்ள வினவலில், நீங்கள் பல்வேறு புலங்களைத் தேர்ந்தெடுத்து அளவுருக்களை மட்டும் பெற முடியாது. ஒரு குறிப்பிட்ட பணிக்கான தேதிகளை வடிவமைப்பதை எளிதாக்கும் பல செயல்பாடுகள் உள்ளன. வினவலில் நீங்கள் அடிக்கடி தேதிகளுடன் பணிபுரிந்தால், பின்வரும் கட்டளைகளை நீங்கள் அறிந்து கொள்ள வேண்டும்:

  • காலத்தின் ஆரம்பம்.அளவுருக்கள் தேதியின் தொடக்கத்தைப் பெற வேண்டிய சூழலில் தேதி மற்றும் நேரத்தைக் குறிப்பிடுகின்றன. தேதியை காலமற்ற வடிவத்திற்கு மாற்றப் பயன்படுகிறது. இதை செய்ய, நீங்கள் இரண்டாவது அளவுருவை அமைக்க வேண்டும் - "DAY";
காலத்தின் ஆரம்பம்(,) காலத்தின் ஆரம்பம்(&தேதி, நாள்) காலம்>தேதி>
  • காலத்தின் முடிவு.அளவுருக்களில் குறிப்பிடப்பட்ட அலகுகளின் அடிப்படையில் கடைசி தேதியை வழங்கும் ஒத்த கட்டளை;
  • ADDKDATE.குறிப்பிட்ட நேர அலகுகளின் குறிப்பிட்ட எண்ணிக்கையில் அதிகமான தேதியைப் பெற உங்களை அனுமதிக்கிறது. செயல்பாட்டு அளவுருக்களில் தேதி, நேர அலகு மற்றும் எண் ஆகியவை அடங்கும்;
ADDKDATE(,) ADDKDATE(&தேதி, நாள், 10) அளவு>வகை>தேதி>
  • வேறுபாடு.குறிப்பிட்ட அலகுகளில் தேதிகளுக்கு இடையிலான வேறுபாட்டைப் பெறுகிறது;
DIFFERENCEDATE(,) DIFFERENCEDATE(&Date1, &Date2, DAY) வகை>date2>date1>
  • வாரம் ஒரு நாள்.வாரத்தின் ஒரு நாளின் வரிசை எண்ணை வழங்கும்.

இந்த செயல்பாடுகளை சரியாகப் பயன்படுத்துவதன் மூலம், டெவலப்பர் மிகவும் அற்பமான சிக்கல்களைத் தீர்க்க முடியும். எடுத்துக்காட்டாக, கோரிக்கையில் தற்போதைய தேதியின் வாரத்தின் நாளின் பெயரை சரமாகப் பெறுதல்:

வாரத்தின் நாளை (&தற்போதைய தேதி) = 1 பின்னர் "திங்கட்கிழமை" வியாழன் (&தற்போதைய தேதி) = 2 பின்னர் "செவ்வாய்" வாரத்தின் கிழமை (&தற்போதைய தேதி) = 3 பின்னர் "புதன்கிழமை" வியாழக்கிழமை = 4 "புதன்கிழமை" வியாழக்கிழமை (&4) கே.எஸ் (&தற்போதைய தேதி) = 5 பின்னர் "வெள்ளிக்கிழமை" வாரத்தின் கிழமை (&தற்போதைய தேதி) = 6 பின்னர் "சனிக்கிழமை" மற்றது "ஞாயிறு" முடிவு

1C வினவலில் உள்ள வகைகளை எண் அல்லது சரத்திலிருந்து தேதிக்கு மாற்றுவது உழைப்பு மிகுந்த பணியாகும். நீங்கள் DATETIME செயல்பாட்டைப் பயன்படுத்தி எண்களிலிருந்து தேதியைப் பெறலாம், ஒரு சரத்திலிருந்து - SUBSTRING செயல்பாடு மற்றும் தேர்ந்தெடுக்கும் போது வேறு கட்டுமானத்தை இணைப்பதன் மூலம். இதன் அடிப்படையில், டெவலப்பர்கள் தொகுதியில் உள்ள பிற வகைகளிலிருந்து தேதியைப் பெற விரும்புகிறார்கள் மற்றும் ஒரு அளவுருவைப் பயன்படுத்தி கோரிக்கைக்கு அனுப்புகிறார்கள். துரதிர்ஷ்டவசமாக, இது எப்போதும் சாத்தியமில்லை, எனவே நீங்கள் கோரிக்கையில் தேதி வடிவமைப்பை மாற்ற வேண்டும்.

மெய்நிகர் பதிவு அட்டவணையில் இருந்து தரவைப் பெற ஒரு அளவுருவாக 1C கோரிக்கையில் தேதியைக் குறிப்பிடலாம். இந்த பாத்திரம் மேலே உள்ள அனைத்து செயல்பாடுகளையும் பயன்படுத்தலாம். ஆனால் இங்கே அனுமதிக்காதது முக்கியம் வெற்று தேதி 1C கோரிக்கையில் குறியீடு செயல்படுத்தலின் இறுதி முடிவை பாதிக்கலாம், எனவே ஒரு சரிபார்ப்பு செய்யப்பட வேண்டும்.

பெரும்பாலும் 1C வினவல்களில் நீங்கள் தேதிகளுடன் வேலை செய்ய வேண்டும். குறிப்பாக குறிப்பிட்ட கால இடைவெளியில் தகவல்களைக் கொண்ட மெட்டாடேட்டா பொருள்களுக்கு கோரிக்கை விடுக்கப்படும் போது. ஒரு விதியாக, இவை பதிவேடுகள் (தகவல், குவிப்பு, கணக்கீடு, கணக்கியல்). தேதிகளுடன் பணிபுரிய 1C வினவல் மொழியின் பொதுவாகப் பயன்படுத்தப்படும் செயல்பாடுகளைப் பார்ப்போம். தகவல் பதிவேட்டின் அடிப்படையில் எடுத்துக்காட்டுகளை உருவாக்குவோம் பணியாளர்கள் அமைப்புகள் ZUP கட்டமைப்புகள் பதிப்பு 2.5.

  • தேதி நேரம்

    ஆண்டு, மாதம், நாள், மணி, நிமிடம், வினாடி ஆகியவற்றைக் குறிப்பிடுவதன் மூலம் கோரிக்கையில் (நேரத்துடன் அல்லது இல்லாமல்) தேதியைப் பெற உங்களை அனுமதிக்கிறது.
    தொடரியல்:
    DATETIME(ஆண்டு, மாதம், நாள், மணிநேரம், நிமிடம், இரண்டாவது)
    பொதுவாக மணி, நிமிடம் மற்றும் வினாடி குறிப்பிடப்படுவதில்லை. ஒரு சின்ன உதாரணம் தருவோம். வினவல் கன்சோலில் பின்வரும் உரையை உள்ளிடவும்:

    தேதி நேரத்தைத் தேர்ந்தெடு (2016, 1, 1)

    கோரிக்கையை நிறைவேற்றியதன் விளைவாக, தேதியைப் பெறுகிறோம் - 01/01/2016
    உண்மையில், ஒரு கோரிக்கையில் தேதி இந்த வழியில் குறிக்கப்படும் சூழ்நிலையை கற்பனை செய்வது கடினம். எல்லாவற்றிற்கும் மேலாக, நீங்கள் ஒரு காலத்தை குறிப்பிட வேண்டும் போது, ​​அளவுருக்கள் பயன்படுத்தப்படுகின்றன. ஆனால் இந்த செயல்பாடு குறிப்பிட்ட மதிப்புடையதாக இருக்கும்போது ஒரு வழக்கு உள்ளது. புலங்களில் அல்லது கோரிக்கை நிபந்தனைகளில் வெற்று தேதியைக் குறிப்பிட வேண்டியிருக்கும் போது இதுவே ஆகும். 0001.01.01 - 1C மொழிக்கான வெற்று தேதியில் படிவம் உள்ளது என்பதை உங்களுக்கு நினைவூட்டுகிறேன். எனவே, கோரிக்கையில் காலியான தேதியைப் பெற, குறிப்பிடவும் DATETIME(1, 1, 1). உதாரணமாக, தகவல் பதிவேட்டில் இருந்து தேர்ந்தெடுக்கலாம் பணியாளர்கள் அமைப்புகள்நிரப்பப்படாத பதிவுகள் நிறைவு காலம்:

    நிறுவனப் பணியாளர்களைத் தேர்ந்தெடுங்கள்.காலம், நிறுவனப் பணியாளர்கள். பணியாளர்கள், நிறுவனப் பணியாளர்கள். பதவி, நிறுவனப் பணியாளர்கள். நிறுவனப் பிரிவு பதிவேடு தகவலிலிருந்து. நிறுவனப் பணியாளர்கள் நிறுவனப் பணியாளர்கள் என நிறுவனப் பணியாளர்கள் எங்கு நிறுவனப் பணியாளர்கள் = 1 நாள், பணியமர்த்தப்பட்ட நேரம்.

  • காலத்தின் ஆரம்பம்

    க்கு குறிப்பிட்ட தேதிஅது நுழையும் காலத்தின் தொடக்கத்தைத் திருப்பித் தருகிறது.
    தொடரியல்:
    காலத்தின் ஆரம்பம் (தேதி, கால வகை)
    பீரியட் டைப் பின்வரும் மதிப்புகளை எடுக்கலாம்: நிமிடம், மணிநேரம், நாள், வாரம், மாதம், காலாண்டு, ஆண்டு, தசாப்தம், அரையாண்டு
    வினவல் கன்சோலில், உள்ளிடவும்:

    காலத்தின் தொடக்கத்தைத் தேர்ந்தெடுக்கவும் (தேதிநேரம்(2016, 1, 15), மாதம்)

    கோரிக்கை திரும்பும் - 01/01/2016
    இப்போது ஒரு உதாரணம். உங்களுக்குத் தெரியும், பதிவேட்டின் கால இடைவெளி பணியாளர்கள் அமைப்புகள்ஒரு நாள். உண்மையான பதிவு காலத்திற்குப் பதிலாக மாதத்தின் தொடக்கத் தேதி காட்டப்படும் வினவலை உருவாக்குவோம்.

    மாதத்தின் தொடக்கம், நிறுவனங்களின் பணியாளர்கள்

  • காலத்தின் முடிவு

    தொடரியல் காலத்தின் தொடக்கத்தைப் போலவே உள்ளது. பெயர் குறிப்பிடுவது போல, இது தேதி மற்றும் கால வகையின்படி காலத்தின் முடிவை வழங்குகிறது. நாங்கள் அதை விரிவாகக் கருத்தில் கொள்ள மாட்டோம். ஒரு சிறிய உதாரணத்திற்கு நம்மை மட்டுப்படுத்துவோம்.
    கோரிக்கை:

    காலத்தின் முடிவைத் தேர்ந்தெடு (தேதிநேரம்(2016, 1, 15), மாதம்)

    01/31/2016 23:59:59 திரும்பும்
    நீங்கள் பார்க்க முடியும் என, மதிப்பு இரண்டாவது துல்லியமாக திரும்பும்.

  • ADDKDATE

    தேதியுடன் குறிப்பிட்ட நேர இடைவெளிகளின் எண்ணிக்கையைச் சேர்க்கிறது.
    தொடரியல்:
    ADDKDATE(தேதி, கால வகை, அளவு)
    பீரியட் டைப் செயல்பாட்டிற்கான அதே மதிப்புகளை எடுக்கும் காலத்தின் ஆரம்பம்
    எடுத்துக்காட்டாக, பிப்ரவரி தேதியைத் தேர்வு செய்வோம்:

    ADDKDATE (தேதிநேரம்(2016, 2, 15), மாதம், 2) தேர்ந்தெடுக்கவும்

    பிப்ரவரி 04/15/2016 0:00:00 தேதியைப் பெறுகிறோம், பிப்ரவரி ஒரு குறுகிய மாதமாக இருந்தாலும், பெறப்பட்ட தேதியின் நாள் அசல் ஒன்றைப் போலவே உள்ளது. மாதங்களில் நாட்களின் எண்ணிக்கையைப் பற்றி நீங்கள் சிந்திக்க வேண்டியதில்லை என்பது மிகவும் வசதியானது.
    அளவு எதிர்மறையாகவும் இருக்கலாம். பின்னர் இடைவெளி எதிர் திசையில் கணக்கிடப்படுகிறது.

  • வேறுபாடு

    குறிப்பிட்ட அலகுகளில் இரண்டு தேதிகளுக்கு இடையிலான வேறுபாட்டைக் கணக்கிடவும்.
    தொடரியல்:
    தேதி வேறுபாடு (தொடக்க தேதி, முடிவு தேதி, கால வகை)
    கால வகை பின்வரும் மதிப்புகளை எடுக்கலாம்: இரண்டாவது, நிமிடம், மணிநேரம், நாள், மாதம், காலாண்டு, ஆண்டு
    உதாரணத்திற்கு:

    வேறுபாட்டைத் தேர்ந்தெடுக்கவும் (தேதிநேரம்(2016, 2, 15), தேதிநேரம்(2016, 3, 1), நாள்)

    திரும்புகிறது 15

1C வினவல் மொழியின் அடிக்கடி பயன்படுத்தப்படும் செயல்பாடுகளை இங்கு மதிப்பாய்வு செய்துள்ளோம். மீதமுள்ளவை மிகவும் அரிதாகவே பயன்படுத்தப்படுகின்றன. தேவைப்பட்டால், அவர்களுடன் பணிபுரியும் எடுத்துக்காட்டுகள் 1C இயங்குதளத்தில் கட்டப்பட்ட உதவியில் காணலாம்.



பிழை:உள்ளடக்கம் பாதுகாக்கப்படுகிறது!!