किसी अनुरोध में रिक्त दिनांक कैसे निर्दिष्ट करें? 1सी एक अनुरोध में तारीखों के साथ काम करने के लिए कार्य करता है।

1C कॉन्फ़िगरेशन में मौजूद सभी दस्तावेज़, और परिणामस्वरूप, लगभग सभी रजिस्टरों में दिनांक प्रकार के साथ कम से कम एक विशेषता होनी चाहिए, यही कारण है कि प्रत्येक डेवलपर को यह जानने और समझने की आवश्यकता है:

  • अन्य प्रकार के मापदंडों को प्रश्नगत प्रकार में कैसे परिवर्तित करें;
  • 1सी अनुरोध में रिक्त तिथि कैसे निर्धारित करें;
  • दिनांक और समय सीमा में क्या अंतर है?

ये वे प्रश्न हैं जिनका उत्तर हम अपने लेख में देने का प्रयास करेंगे।

दिनांक क्या है और इसका निर्धारण कैसे करें?

चूँकि अधिकांश प्रबंधन निर्णय लेने और रिकॉर्ड रखने के लिए 1 सेकंड से अधिक की समय सटीकता की आवश्यकता नहीं होती है, 1C प्लेटफ़ॉर्म के डेवलपर्स ने निर्णय लिया कि यह मान दिनांक प्रारूप में पूर्ण न्यूनतम होगा। इस प्रकार, कार्यक्रम में किसी घटना के समय का वर्णन करने वाली प्रत्येक विशेषता में शामिल होना चाहिए:

  • जिस वर्ष घटना घटी;
  • इस घटना का महीना;
  • दिन।

यह इंगित करना आवश्यक नहीं है: घंटा, मिनट और सेकंड। यदि इन तीन मापदंडों को छोड़ दिया जाता है और कोई अतिरिक्त शर्तें नहीं हैं, तो प्रोग्राम स्वचालित रूप से दिन की शुरुआत का समय निर्धारित करता है।

दुनिया में मौजूद दिनांक स्वरूपों में महत्वपूर्ण अंतर हैं:

  1. रूस में, हम पहले दिन, फिर घटना का महीना और अंत में वर्ष रखने के आदी हैं;
  2. अमेरिकी निवासी तारीख की शुरुआत महीने से करते हैं;
  3. चेक, पोल्स और स्लोवेनियाई वर्ष-माह-दिन प्रारूप में अवधि रिकॉर्ड करते हैं।

यह बाद वाला प्रारूप है जिसका उपयोग 1C प्लेटफ़ॉर्म करता है।

दिनांक में कनवर्ट करें

कई मानों से या एक स्ट्रिंग से दिनांक प्रकार के साथ एक पैरामीटर प्राप्त करने के लिए, आपको चित्र में दिखाए गए कोड का उपयोग करना होगा। 1

जैसा कि उपरोक्त चित्र से देखा जा सकता है, आप या तो एक पंक्ति का उपयोग करके या अल्पविराम का उपयोग करके इस पंक्ति को इसके घटक भागों में विभाजित करके तिथि निर्धारित कर सकते हैं, परिणाम नहीं बदलेगा।

यह समझना महत्वपूर्ण है कि तारीख के वर्ष में चार अंक होने चाहिए, जिसमें घटना की सहस्राब्दी और सदी शामिल होनी चाहिए, महीना, दिन, घंटे और सेकंड दो अक्षर लंबे होने चाहिए, जिसमें अग्रणी शून्य भी शामिल होना चाहिए।

कार्यक्रम में समय की उलटी गिनती 1 जनवरी, 0001 को दिन की शुरुआत से शुरू होती है। उपरोक्त कोड के लिए, यह मान दो तरीकों में से एक में निर्धारित किया जा सकता है (चित्र 2)।

चावल। 2

दूसरी पंक्ति में, हमने घटना के घंटे, मिनट और सेकंड छोड़ दिए, जिससे हमारे कोड के प्रदर्शन पर कोई असर नहीं पड़ा।

1सी प्रश्नों में दिनांक का उपयोग करने की विशेषताएं

1C प्लेटफ़ॉर्म द्वारा उपयोग किए जाने वाले अधिकांश डेटा प्रकारों के लिए, पूर्वनिर्धारित शून्य मान होते हैं। संख्याओं के लिए, यह 0 है; लिंक के लिए, आप EmptyLink() मान को परिभाषित कर सकते हैं; किसी तिथि के लिए, खाली मान को आमतौर पर प्रारंभिक तिथि माना जाता है; इसके साथ ही संबंधित प्रकार के विवरण की तुलना की जानी चाहिए अनुरोध पैरामीटर सेट करना।

यह समझना महत्वपूर्ण है कि भले ही फॉर्म विशेषता के मूल्य में कोई संख्या निर्दिष्ट नहीं की गई है, जिसका प्रकार प्रश्न में है, यानी, विंडो जैसा दिखता है (चित्र 3), इसका मतलब यह नहीं है कि इसमें कुछ भी निर्दिष्ट नहीं है; खाली स्ट्रिंग के साथ इस पैरामीटर की तुलना काम नहीं करेगी।

चावल। 3

एक खाली तारीख प्राप्त करने के बाद, हम इसे अपने अनुरोध के पैरामीटर के रूप में निर्दिष्ट कर सकते हैं, यानी निर्माण का उपयोग कर सकते हैं (चित्र 4)

हालाँकि, ऐसे समय होते हैं जब एक पैरामीटर के रूप में खाली तारीख को पारित किए बिना, अनुरोध निकाय के अंदर जांच करना बेहतर होता है। ऐसा करने के लिए, आप अनुरोध कोड (चित्र 5) में उचित शर्त दर्ज कर सकते हैं और DateTime() अनुरोध फ़ंक्शन का उपयोग कर सकते हैं।

चावल। 5

उपरोक्त अनुरोध पाठ में, हमने वर्ष, महीने और दिन के अग्रणी शून्य को छोड़ दिया, और घंटों, मिनटों और सेकंडों को भी इंगित नहीं किया, और जैसा कि वे कहते हैं, कार्यक्रम ने इस धारणा को खा लिया।

दिनांक और समय सीमा

एक और दिलचस्प तथ्यविभिन्न डेटाबेस तालिकाओं तक पहुँचते समय प्रश्नों और तिथियों के बीच संबंध से संबंधित "समय में बिंदु" की अवधारणा का उपयोग होता है।

आदिम दिनांक प्रकार का वर्णन करते समय तकनीकी दस्तावेज में निर्दिष्ट "एक मिलीसेकंड तक" सटीकता संचय रजिस्टर की आभासी तालिकाओं से रिकॉर्ड का चयन करते समय सबसे स्पष्ट रूप से प्रकट होती है: यदि संचय रजिस्टर, टर्नओवर तालिका के अलावा, शेष है और शेष और टर्नओवर तालिकाएँ, फिर उनमें से चयन जारी रखा गया कुछ समय, भिन्न परिणाम दे सकता है।

यह कैसे और क्यों होता है यह समझने के लिए, एक सरल उदाहरण पर विचार करें:

  1. बिक्री दस्तावेज़ 12 घंटे 31 मिनट 36 सेकंड पर निष्पादित होने से पहले, चीनी नामकरण के अनुसार शेष राशि 30 किलो थी;
  2. दस्तावेज़ में विस्तृत समय 10 किलो बट्टे खाते में डाल दिए गए;
  3. शेष तालिका के अनुसार दस्तावेज़ दिनांक 12 घंटे 31 मिनट 36 सेकंड पर उत्पन्न रिपोर्ट 30 किलो का संतुलन दिखाएगी;
  4. एक ही समय के लिए अवशेष और टर्नओवर तालिका पर एक ही रिपोर्ट 20 किलो का संतुलन दिखाएगी।

इस व्यवहार का कारण क्या है और इससे कैसे बचा जाए?

समस्या यह है कि शेष तालिका में, अवधि को एक खुले खंड के रूप में निर्दिष्ट किया गया है, यानी, रिपोर्ट तैयार होने के समय किए गए आंदोलनों को ध्यान में नहीं रखा जाता है, यानी, दूसरे निर्दिष्ट की शुरुआत में समय लिया जाता है पैरामीटर में. उसी समय, टर्नओवर की तालिका के लिए और अवशेष और टर्नओवर की तालिका के लिए, समय सीमाओं को ध्यान में रखा जाता है, अर्थात, समय निर्दिष्ट सेकंड के अंत में लिया जाता है।

इस स्थिति से बाहर निकलने के कई तरीके हैं:

  1. अवशेष तालिका का उपयोग करते समय, निर्दिष्ट समय से 1 सेकंड अधिक समय बिंदु इंगित करें;
  2. केवल अवशेष और टर्नओवर तालिका का उपयोग करें (प्रदर्शन के दृष्टिकोण से सबसे इष्टतम विकल्प नहीं);
  3. सीमा की अवधारणा का प्रयोग करें.

अंतिम विकल्प को चित्र में दिखाए गए कोड द्वारा दर्शाया जा सकता है। 6.

हमारे ऑब्जेक्ट के पहले पैरामीटर में हम उस तारीख को इंगित करते हैं जिसके लिए रिपोर्ट तैयार करने की आवश्यकता है, दूसरा पैरामीटर बॉर्डर के प्रकार को निर्धारित करता है। चूँकि यह हमारे लिए महत्वपूर्ण है कि किसी निश्चित तिथि पर होने वाले आंदोलनों को चयन में शामिल किया जाए, हमें इस पैरामीटर को "शामिल" स्थिति पर सेट करना होगा।

अक्सर "दिनांक" प्रकार के चर के साथ काम करने की आवश्यकता होती है। इस लेख में हम बुनियादी तकनीकों को देखेंगे - वर्तमान तिथि को पास करना, खाली मान की जाँच करना, एक मनमानी तारीख।

प्रश्न लिखते समय, आपको अक्सर वर्तमान तिथि के साथ डेटा की तुलना करने की आवश्यकता होती है। अंतर्निहित 1C भाषा में currentDate() फ़ंक्शन है। यह आपको अपने कंप्यूटर पर वर्तमान समय और तारीख निर्धारित करने की अनुमति देता है। वर्तमान तिथि के साथ संचालन करने के लिए, आपको इस फ़ंक्शन के मान को अनुरोध के पैरामीटर के रूप में पास करना होगा।

नीचे एक क्वेरी है जो अब तक की निर्माण तिथि के साथ व्यय रिपोर्ट से जुड़ी सभी फाइलों का चयन करती है:

उदाहरण अनुरोध = नया अनुरोध;
उदाहरण अनुरोध.पाठ = "
|चुनें
| एडवांसरिपोर्टअटैच्डफाइल्स.लिंक
|से
| निर्देशिका.एडवांसरिपोर्टअटैच्डफाइल्सएएस एडवांसरिपोर्टअटैच्डफाइल्स
|कहां
| एडवांसरिपोर्टअटैच्डफाइल्स.दिनांक< &ТекДата»;
उदाहरण Request.SetParameter('CurrentDate', currentDate());

कस्टम तिथि

ऊपर चर्चा किया गया फ़ंक्शन आपको तुलना करने की अनुमति देता है और इसलिए, किसी भी अवधि के लिए चयन करता है। यह विधि आपको अतिरिक्त मापदंडों का उपयोग किए बिना अनुरोध में एक सख्त चयन निर्दिष्ट करने की अनुमति देती है।

कृपया ध्यान दें कि उपरोक्त उदाहरण में इस फ़ंक्शन का उपयोग करते समय, हमने इनपुट पैरामीटर के रूप में केवल तीन संख्याएं (वर्ष, महीना, दिन) पारित कीं। अंतिम तीन (घंटा, मिनट, सेकंड) वैकल्पिक हैं और, यदि अनुपस्थित हैं, तो उन्हें "0" से बदल दिया जाता है, यानी दिन की शुरुआत।

यह उदाहरण पिछले वर्ष 2016 के अंत तक व्यय रिपोर्ट से जुड़ी सभी फाइलों को पुनः प्राप्त करेगा। इस संबंध में, हम समय बिंदु "दिसंबर 31, 2016 23:59:59" की तुलना करने के लिए घंटा, मिनट और सेकंड का संकेत देंगे।

चुनना
एडवांसरिपोर्टअटैच्डफाइल्स.लिंक
से
निर्देशिका.एडवांसरिपोर्टअटैच्डफाइलें एडवांसरिपोर्टअटैच्डफाइल्स के रूप में
कहाँ
एडवांसरिपोर्टअटैच्डफाइल्स.दिनांक< ДАТАВРЕМЯ(2016, 12, 31, 23, 59, 59)

रिक्त दिनांक

किसी वेरिएबल की जांच करने का सबसे आसान तरीका यह देखना है कि उसमें कोई खाली तारीख है या नहीं, एक साधारण तुलना का उपयोग करना है। इस उदाहरण में, एक क्वेरी का उपयोग करके, हम उस खाते की सभी नकद प्राप्तियों का चयन करेंगे जिनके लिए आने वाली तारीख नहीं भरी गई है।

1सी क्वेरीज़, साथ ही 1सी:एंटरप्राइज़ प्लेटफ़ॉर्म की अंतर्निहित भाषा में तारीखों के साथ काम करने के कार्य हैं। वे प्रश्नों में दिनांक रूपांतरण को सरल बनाने में मदद करते हैं और बड़ी संख्या में मापदंडों का उपयोग करने से बचते हैं। आइए इन कार्यों पर नजर डालें।

1सी प्रश्नों में दिनांक को स्थिरांक के रूप में कैसे सेट करें

दिनांकसमय (वर्ष, माह, दिन, घंटा, मिनट, दूसरा). विकल्प वर्ष माहऔर दिनअनिवार्य हैं, अन्य नहीं हैं। यदि आप समय निर्दिष्ट नहीं करते हैं, तो सिस्टम दिन की शुरुआत निर्धारित कर देगा।

अनुरोध। पाठ= "चुनना
दिनांकसमय (2016,09,28,12,22,00)"
; // परिणाम: 28 सितंबर 2016 12:22:00

इसके अलावा, इस फ़ंक्शन के पैरामीटर के रूप में केवल संख्याओं को स्पष्ट रूप से निर्दिष्ट किया जा सकता है। आप अन्य फ़ंक्शन के मान को पैरामीटर के रूप में निर्दिष्ट नहीं कर सकते। उदाहरण के लिए, यह निर्माण काम नहीं करेगा:

अनुरोध। पाठ= "चुनना
दिनांकसमय (वर्ष (स्रोत दिनांक),09,28,12,22,00)
निर्देशिका से। स्रोत एएस स्रोत"
;

1C प्रश्नों में एक वर्ष, आधे वर्ष, तिमाही, महीने, दशक, सप्ताह, दिन, घंटे, मिनट की शुरुआत या अंत कैसे प्राप्त करें

इसके लिए निम्नलिखित कार्यों का उपयोग किया जाता है:

  • प्रारंभअवधि(दिनांक, अवधि)
  • समाप्ति अवधि (दिनांक, अवधि)

एक पैरामीटर के रूप में तारीखप्रकार के साथ एक मान पारित किया गया है की तारीख।पैरामीटर अवधि .

अनुरोध। पाठ= "चुनना
प्रारंभ अवधि(दिनांकसमय (2016,09,28,12,22,00), दशक)"
; // परिणाम: 21 सितंबर 2016 0:00:00

अनुरोध। पाठ= "चुनना
समाप्ति अवधि(दिनांकसमय (2016,09,28,12,22,00), तिमाही)"
; // परिणाम: सितंबर 30, 2016 23:59:59

जैसा कि आप उदाहरणों से देख सकते हैं, आप इन फ़ंक्शंस में अन्य नेस्टेड फ़ंक्शंस का उपयोग कर सकते हैं।

1C प्रश्नों में किसी दिनांक से वर्ष, वर्ष का दिन, तिमाही, माह, सप्ताह, सप्ताह का दिन, दिन, घंटा, मिनट, सेकंड कैसे प्राप्त करें

ऐसा करने के लिए, संबंधित फ़ंक्शन हैं जिनके लिए आपको पैरामीटर के रूप में दिनांक पास करने की आवश्यकता है।

  • समारोह वर्ष (तारीख)- वर्ष संख्या लौटाता है;
  • समारोह दिनवर्ष (तारीख)- वर्ष में दिन की संख्या बढ़ जाती है;
  • समारोह तिमाही (तारीख)- तिमाही संख्या लौटाता है;
  • समारोह महीना दिनांक)- माह संख्या लौटाता है;
  • समारोह सप्ताह (तारीख)- वर्ष में सप्ताह की संख्या लौटाता है;
  • समारोह सप्ताह का दिन (तारीख)- सप्ताह में दिन की संख्या लौटाता है (सोमवार - 1, रविवार - 7);
  • समारोह दिवा तिथि)- महीने में दिन की संख्या लौटाता है;
  • समारोह घंटा (तारीख)- घंटा लौटाता है;
  • समारोह मिनट (दिनांक)- मिनट लौटाता है;
  • समारोह दूसरा (तारीख)- सेकंड लौटाता है।

अनुरोध। पाठ= "चुनना
वर्ष(दिनांकसमय (2016,09,28,12,22,00))"
; // परिणाम: 2016

अनुरोध। पाठ= "चुनना
सप्ताह(दिनांकसमय (2016,09,28,12,22,00))"
; // परिणाम: 40

अनुरोध। पाठ= "चुनना
कार्यदिवस(दिनांकसमय (2016,09,28,12,22,00))"
; // परिणाम: 3

अनुरोध। पाठ= "चुनना
दिनवर्ष(दिनांकसमय (2016,09,28,12,22,00))"
; // परिणाम: 272

अनुरोध। पाठ= "चुनना
दिन(दिनांकसमय (2016,09,28,12,22,00))"
; // परिणाम: 28

1C प्रश्नों में किसी तारीख से वर्ष, अर्ध-वर्ष, तिमाही, माह, दशक, सप्ताह, दिन, घंटा, मिनट, सेकंड को कैसे जोड़ें या घटाएं

ऐसा करने के लिए, फ़ंक्शन का उपयोग करें AddToDate(दिनांक, अवधि, मान)।

एक पैरामीटर के रूप में तारीखप्रकार के साथ एक मान पारित किया गया है की तारीख।पैरामीटर अवधिनिम्नलिखित में से कोई एक मान ले सकते हैं: दूसरा, मिनट, घंटा, दिन, सप्ताह, दशक, महीना, तिमाही, आधा वर्ष, वर्ष.

पैरामीटर अर्थजोड़ी जाने वाली अवधियों की संख्या दर्शाता है। यदि अवधि को घटाना हो तो पैरामीटर अर्थनकारात्मक होना चाहिए.

अनुरोध। पाठ= "चुनना
AddToDate(DATETIME(2016, 9, 28, 12, 22, 0), आधा वर्ष, 1)"
; // परिणाम: 28 मार्च, 2017 12:22:00

अनुरोध। पाठ= "चुनना
AddKDate(DATETIME(2016, 9, 28, 12, 22, 0), दशक, -1)"
; // परिणाम: सितंबर 18, 2016 12:22:00

1सी प्रश्नों में दिनांक अंतर की गणना कैसे करें

ऐसा करने के लिए, फ़ंक्शन का उपयोग करें अंतर दिनांक (दिनांक 1, दिनांक 2, अवधि)।

पैरामीटर तिथि 1- घटाई जाने वाली तारीख.

पैरामीटर दिनांक2--दिनांक जिसमें से घटाना है.

पैरामीटर अवधिनिम्नलिखित में से कोई एक मान ले सकते हैं: दूसरा, मिनट, घंटा, दिन, महीना, तिमाही, वर्ष. इससे पता चलता है कि हम किन इकाइयों में परिणाम प्राप्त करना चाहते हैं

अनुरोध। पाठ= "चुनना
अंतर दिनांक(दिनांकसमय(2016, 9, 28, 12, 22, 0), दिनांकसमय(2017, 9, 28, 12, 22, 0), तिमाही)"
; // परिणाम: 4

अनुरोध। पाठ= "चुनना
अंतर दिनांक(दिनांकसमय(2016, 9, 28, 12, 22, 0), दिनांकसमय(2017, 9, 28, 12, 22, 0), दूसरा)"
; // परिणाम: 31,536,000

फ़ंक्शन को छोड़कर सभी फ़ंक्शन में दिनांक समय, एक पैरामीटर के रूप में तारीखयह न केवल एक विशिष्ट दिनांक मान (स्थिर या क्वेरी पैरामीटर) हो सकता है, बल्कि स्रोत तालिका फ़ील्ड भी हो सकता है।

1C में "दिनांक" प्रकार संख्या, स्ट्रिंग और बूलियन के साथ 4 मुख्य डेटा प्रकारों में से एक है। कॉन्फ़िगरेशन में तिथियां सर्वव्यापी हैं—विकास के दौरान इस डेटा प्रकार के साथ काम करने से बचना असंभव है। इसलिए, तारीखों को कैसे संसाधित करना है, उनके साथ काम करने के लिए क्या विकल्प हैं और उन्हें कैसे संग्रहीत किया जाता है, यह समझकर पहले से ही प्रश्न लिखना शुरू करना बेहतर है। आइए विभिन्न तिथियों के साथ प्रश्न लिखने की सभी बारीकियों के उदाहरण देखें।

1सी प्रश्नों में तिथियों के साथ काम करने के उदाहरण

सबसे पहले, आपको आवश्यक प्रारूप में अनुरोध में तारीख प्राप्त करने की आवश्यकता है - समय के साथ या उसके बिना। इस कार्य को पूरा करने के कई तरीके हैं:

  1. पैरामीटर से गुजरें. आप इस पद्धति का उपयोग करके केवल वर्तमान सत्र की तारीख प्राप्त कर सकते हैं;
  2. चयन फ़ील्ड से क्वेरी में दिनांक प्राप्त करें;
  3. DATETIME() फ़ंक्शन का उपयोग करके संख्यात्मक मानों से कनवर्ट करें।

दस्तावेज़ों के साथ काम करते समय सबसे आम कार्य 1C अनुरोध में रिक्त दिनांक की जाँच करना है। इस मामले में, किसी वैरिएबल या फ़ील्ड की तुलना खाली तारीख से करना सबसे आसान है, जो DATETIME(1,1,1) फ़ंक्शन का उपयोग करके प्राप्त किया जाता है:

दिनांकसमय (1, 1, 1)

समान कमांड का उपयोग करके, आप अनुरोध में एक मनमाना दिनांक और समय प्राप्त कर सकते हैं। इसके अलावा, उन्हें पैरामीटर के रूप में 6 संख्याओं को निर्दिष्ट करके एक सेकंड तक की सटीकता के साथ निर्दिष्ट किया जा सकता है। यदि केवल 3 संख्याओं का उपयोग किया जाता है, तो घंटे, मिनट और सेकंड 0 (दिन की शुरुआत) पर सेट किए जाएंगे। उदाहरण के लिए, हमें अनुरोध में जनवरी 2018 के पहले 10 दिनों के लिए दस्तावेज़ों का चयन करना होगा:

चालू खाते के लिए रसीद का चयन करें। दस्तावेज़ से लिंक के रूप में लिंक करें। चालू खाते की रसीद, चालू खाते की रसीद के रूप में, जहां चालू खाते की रसीद। दिनांक समय (2018, 1, 1, 0, 0, 0) और दिनांक समय (2018, 1) के बीच की तारीख 10, 23, 59, 59)

अंतर्निहित 1C भाषा में एक क्वेरी में, आप न केवल विभिन्न फ़ील्ड का चयन कर सकते हैं और पैरामीटर प्राप्त कर सकते हैं। ऐसे कई फ़ंक्शन हैं जो किसी विशिष्ट कार्य के लिए तिथियों को प्रारूपित करना आसान बनाते हैं। यदि आप अक्सर किसी क्वेरी में तारीखों के साथ काम करते हैं, तो आपको इन आदेशों को जानना चाहिए:

  • काल की शुरुआत.पैरामीटर उस दिनांक और समय अवधि को निर्दिष्ट करते हैं जिसके संदर्भ में दिनांक की शुरुआत प्राप्त करना आवश्यक है। किसी दिनांक को कालातीत प्रारूप में परिवर्तित करने के लिए उपयोग किया जाता है। ऐसा करने के लिए, आपको दूसरा पैरामीटर सेट करना होगा - "DAY";
अवधि की शुरुआत(,) अवधि की शुरुआत(&तारीख, दिन) अवधि>तिथि>
  • अवधि का अंत.एक समान आदेश जो मापदंडों में निर्दिष्ट इकाइयों के संदर्भ में अंतिम तिथि लौटाता है;
  • दिनांक जोड़ें.आपको एक ऐसी तारीख प्राप्त करने की अनुमति देता है जो निर्दिष्ट समय इकाइयों की एक निर्दिष्ट संख्या से अधिक है। फ़ंक्शन पैरामीटर में दिनांक, समय इकाई और संख्या शामिल हैं;
ADDKDATE(,) ADDKDATE(&दिनांक, दिन, 10) मात्रा>प्रकार>दिनांक>
  • विभेदित दिनांक।निर्दिष्ट इकाइयों में तिथियों के बीच अंतर प्राप्त करता है;
भिन्नतिथि(,) भिन्नतिथि(&दिनांक1, औरदिनांक2, दिन) प्रकार>दिनांक2>दिनांक1>
  • सप्ताह का दिन।सप्ताह के किसी एक दिन की क्रम संख्या लौटाता है।

इन फ़ंक्शंस का सही ढंग से उपयोग करके, डेवलपर काफी गैर-तुच्छ समस्याओं को हल कर सकता है। उदाहरण के लिए, किसी अनुरोध में वर्तमान दिनांक के सप्ताह के दिन का नाम एक स्ट्रिंग के रूप में प्राप्त करना:

सप्ताह का कौन सा दिन चुनें (और वर्तमान दिनांक) = 1 फिर "सोमवार" किस दिन (और वर्तमान दिनांक) = 2 फिर "मंगलवार" सप्ताह का कौन सा दिन (और वर्तमान दिनांक) = 3 फिर "बुधवार" कब सप्ताह का दिन (और वर्तमान दिनांक) = 4 फिर "गुरुवार" कब दिन सप्ताह (&वर्तमान दिनांक) = 5 फिर "शुक्रवार" सप्ताह का कौन सा दिन (और वर्तमान दिनांक) = 6 फिर "शनिवार" अन्यथा "रविवार" समाप्त

1C क्वेरी में प्रकारों को किसी संख्या या स्ट्रिंग से दिनांक में परिवर्तित करना एक श्रम-केंद्रित कार्य है। आप DATETIME फ़ंक्शन का उपयोग करके संख्याओं से एक तारीख प्राप्त कर सकते हैं, एक स्ट्रिंग से - SUBSTRING फ़ंक्शन और SELECT WHEN THEN ELSE निर्माण को मिलाकर। इसके आधार पर, डेवलपर्स मॉड्यूल में अन्य प्रकारों से तारीख प्राप्त करना पसंद करते हैं और इसे एक पैरामीटर का उपयोग करके अनुरोध में पास करते हैं। दुर्भाग्य से, यह हमेशा संभव नहीं है, इसलिए आपको अनुरोध में दिनांक प्रारूप बदलना होगा।

वर्चुअल रजिस्टर तालिकाओं से डेटा प्राप्त करने के लिए पैरामीटर के रूप में 1C अनुरोध में दिनांक निर्दिष्ट करना संभव है। यह भूमिका उपरोक्त सभी कार्यों का भी उपयोग कर सकती है। लेकिन यहां अनुमति न देना महत्वपूर्ण है रिक्त तिथि 1सी में अनुरोध कोड निष्पादन के अंतिम परिणाम को प्रभावित कर सकता है, इसलिए जांच अवश्य की जानी चाहिए।

अक्सर 1सी प्रश्नों में आपको तारीखों के साथ काम करना पड़ता है। खासकर जब अनुरोध मेटाडेटा ऑब्जेक्ट के लिए किया जाता है जिसमें आवधिक जानकारी होती है। एक नियम के रूप में, ये रजिस्टर (सूचना, संचय, गणना, लेखांकन) हैं। आइए तारीखों के साथ काम करने के लिए 1C क्वेरी भाषा के सबसे अधिक उपयोग किए जाने वाले कार्यों को देखें। हम सूचना रजिस्टर के आधार पर उदाहरण बनाएंगे कर्मचारीसंगठन ZUP कॉन्फ़िगरेशन संस्करण 2.5.

  • दिनांक समय

    आपको वर्ष, माह, दिन, घंटा, मिनट, सेकंड निर्दिष्ट करके अनुरोध में (समय के साथ या बिना) तारीख प्राप्त करने की अनुमति देता है।
    वाक्य - विन्यास:
    दिनांकसमय(वर्ष, माह, दिन, घंटा, मिनट, दूसरा)
    आमतौर पर घंटा, मिनट और सेकंड का संकेत नहीं दिया जाता है। चलिए एक छोटा सा उदाहरण देते हैं. क्वेरी कंसोल में निम्नलिखित पाठ दर्ज करें:

    दिनांक समय चुनें(2016, 1, 1)

    अनुरोध को निष्पादित करने के परिणामस्वरूप, हमें दिनांक प्राप्त होती है - 01/01/2016
    वास्तव में, ऐसी स्थिति की कल्पना करना कठिन है जिसमें किसी अनुरोध में तारीख इस प्रकार इंगित की जाएगी। आख़िरकार, जब आपको कोई अवधि निर्दिष्ट करने की आवश्यकता होती है, तो पैरामीटर का उपयोग किया जाता है। लेकिन एक ऐसा मामला है जब यह फ़ंक्शन विशेष महत्व का होता है। यह तब होता है जब हमें फ़ील्ड में या अनुरोध शर्तों में एक खाली तारीख इंगित करने की आवश्यकता होती है। मैं आपको याद दिला दूं कि 1सी भाषा के लिए एक खाली तारीख का फॉर्म होता है - 0001.01.01। इस प्रकार, अनुरोध में एक खाली तारीख प्राप्त करने के लिए, बस निर्दिष्ट करें दिनांकसमय(1, 1, 1). उदाहरण के तौर पर, आइए सूचना रजिस्टर से चयन करें कर्मचारीसंगठनजो रिकार्ड भरे नहीं गए हैं समापन अवधि:

    संगठनात्मक कर्मचारियों का चयन करें। अवधि, संगठनात्मक कर्मचारी। कर्मचारी, संगठनात्मक कर्मचारी। स्थिति, संगठनात्मक कर्मचारी। रजिस्टर जानकारी से संगठन प्रभाग। संगठनात्मक कर्मचारी जहां संगठनात्मक कर्मचारी हैं। समापन अवधि = दिनांक समय (1, 1, 1)

  • काल की शुरुआत

    निर्दिष्ट तिथि के लिए, उस अवधि की शुरुआत लौटाता है जिसमें वह संबंधित है।
    वाक्य - विन्यास:
    अवधि की शुरुआत (दिनांक, अवधि प्रकार)
    periodType निम्नलिखित मान ले सकता है: मिनट, घंटा, दिन, सप्ताह, महीना, तिमाही, वर्ष, दशक, आधा वर्ष
    क्वेरी कंसोल में, दर्ज करें:

    अवधि की शुरुआत चुनें (दिनांकसमय(2016, 1, 15), महीना)

    अनुरोध वापस आएगा - 01/01/2016
    और अब एक उदाहरण. जैसा कि आप जानते हैं, रजिस्टर की आवधिकता कर्मचारीसंगठनएक दिन। आइए एक क्वेरी बनाएं जिसमें वास्तविक रिकॉर्ड अवधि के बजाय महीने की आरंभ तिथि प्रदर्शित की जाएगी।

    माह की शुरुआत के रूप में अवधि की शुरुआत (संगठनों के कर्मचारी। अवधि, महीना) का चयन करें, संगठनों के कर्मचारी। कर्मचारी, संगठनों के कर्मचारी। पद, संगठनों के कर्मचारी। रजिस्टर जानकारी से संगठन का विभाजन। संगठनों के कर्मचारी संगठनों के कर्मचारियों के रूप में चुनें

  • अवधि का अंत

    वाक्यविन्यास अवधि की शुरुआत के समान ही है। और जैसा कि नाम से पता चलता है, यह दिनांक और अवधि प्रकार के अनुसार अवधि का अंत लौटाता है। हम इस पर विस्तार से विचार नहीं करेंगे. आइए स्वयं को एक लघु उदाहरण तक सीमित रखें।
    अनुरोध:

    अवधि का अंत चुनें (दिनांकसमय(2016, 1,15), महीना)

    रिटर्न 01/31/2016 23:59:59
    जैसा कि आप देख सकते हैं, मान दूसरे पर सटीक लौटाया जाता है।

  • दिनांक जोड़ें

    दिनांक में समय अंतरालों की निर्दिष्ट संख्या जोड़ता है।
    वाक्य - विन्यास:
    ADDKDATE (दिनांक, अवधि प्रकार, मात्रा)
    पीरियडटाइप फ़ंक्शन के लिए समान मान लेता है काल की शुरुआत
    उदाहरण के लिए, आइए फरवरी की तारीख चुनें:

    अतिरिक्त दिनांक (दिनांक समय (2016, 2, 15), माह, 2) चुनें

    हमें तारीख मिलती है 04/15/2016 0:00:00 इस तथ्य के बावजूद कि फरवरी एक छोटा महीना है, प्राप्त तारीख का दिन मूल तारीख के समान ही है। यह बहुत सुविधाजनक है कि आपको महीनों में दिनों की संख्या के बारे में सोचने की ज़रूरत नहीं है।
    मात्रा ऋणात्मक भी हो सकती है. फिर अंतराल को विपरीत दिशा में गिना जाता है।

  • विभेदित दिनांक

    निर्दिष्ट इकाइयों में दो तिथियों के बीच अंतर की गणना करें।
    वाक्य - विन्यास:
    तिथि अंतर (प्रारंभ तिथि, समाप्ति तिथि, अवधि प्रकार)
    अवधि प्रकार निम्नलिखित मान ले सकता है: दूसरा, मिनट, घंटा, दिन, महीना, तिमाही, वर्ष
    उदाहरण के लिए:

    भिन्न दिनांक (दिनांक समय (2016, 2, 15), दिनांक समय (2016, 3, 1), दिन) का चयन करें।

    रिटर्न 15

यहां हमने 1सी क्वेरी भाषा के सबसे अधिक उपयोग किए जाने वाले कार्यों की समीक्षा की। बाकी का उपयोग बहुत ही कम किया जाता है। यदि आवश्यक हो, तो उनके साथ काम करने के उदाहरण 1C प्लेटफ़ॉर्म में निर्मित सहायता में पाए जा सकते हैं।



गलती:सामग्री सुरक्षित है!!