सर्वर से जानकारी स्थानांतरित करना. सर्वर से जानकारी स्थानांतरित करना प्रक्रिया स्थिति अधिसूचना

1C:Enterprise प्लेटफ़ॉर्म पर प्रोग्राम में, उपयोगकर्ता को एक संदेश विभिन्न तरीकों से दिखाया जा सकता है।

1. विधि चेतावनी दिखाएँ.

दिखाएँचेतावनी(< ОписаниеОповещенияОЗавершении> , < ТекстПредупреждения> , < Таймаут> , < Заголовок> )

इस डिज़ाइन का उपयोग करते समय, प्रोग्राम इंटरफ़ेस के केंद्र में एक चेतावनी विंडो दिखाई देती है।

पैरामीटर:

विवरणसंपूर्ण अलर्ट(वैकल्पिक)
प्रकार: विवरण अलर्ट। इसमें उस प्रक्रिया का विवरण शामिल है जिसे निम्नलिखित मापदंडों के साथ अलर्ट विंडो बंद करने के बाद बुलाया जाएगा: अतिरिक्त पैरामीटर - वह मान जो अलर्ट विवरण ऑब्जेक्ट बनाते समय निर्दिष्ट किया गया था। यदि पैरामीटर निर्दिष्ट नहीं है, तो पूरा होने पर कोई प्रक्रिया नहीं बुलाई जाएगी।

चेतावनी पाठ(आवश्यक)
प्रकार: स्ट्रिंग; स्वरूपितस्ट्रिंग। चेतावनी पाठ.

समयबाह्य (वैकल्पिक)
प्रकार: संख्या. सेकंड में समय अंतराल जिसके दौरान सिस्टम उपयोगकर्ता की प्रतिक्रिया की प्रतीक्षा करेगा। जब अंतराल समाप्त हो जाएगा, तो चेतावनी विंडो बंद हो जाएगी। यदि पैरामीटर निर्दिष्ट नहीं है, तो प्रतीक्षा समय असीमित है। यदि पैरामीटर है नकारात्मक मूल्य, एक अपवाद फेंक दिया जाएगा। डिफ़ॉल्ट मान: 0.

शीर्षक (वैकल्पिक)
प्रकार: स्ट्रिंग. इसमें चेतावनी विंडो का शीर्षक शामिल है. विवरण: एक चेतावनी विंडो प्रदर्शित करता है, लेकिन इसके बंद होने की प्रतीक्षा नहीं करता है।

उपलब्धता: पतला क्लाइंट, वेब क्लाइंट, मोटा क्लाइंट, मोबाइल एप्लिकेशन (क्लाइंट)।

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

2. विधि चेतावनी.

प्रोग्राम इंटरफ़ेस के केंद्र में एक चेतावनी विंडो दिखाई देती है। हालाँकि, यदि कॉन्फ़िगरेशन प्रॉपर्टी उपयोग की पद्धतिउपयोग न करें पर सेट है, तो विधि काम नहीं करती है।

उपलब्धता: थिन क्लाइंट, वेब क्लाइंट, मोबाइल ग्राहक, मोटा ग्राहक, मोबाइल एप्लिकेशन (क्लाइंट)।

3. विधि शोयूजरअलर्ट.

शोयूजरअलर्ट(< Текст> , < ДействиеПриНажатии> , < Пояснение> , < Картинка> , < СтатусОповещенияПользователя> , < КлючУникальности> )

इस पद्धति का उपयोग करते समय, इंटरफ़ेस के निचले दाएं कोने में एक संदेश दिखाई देता है।

उपलब्धता: पतला ग्राहक, वेब ग्राहक, मोटा ग्राहक।

4. रिपोर्ट विधि.

प्रतिवेदन(< ТекстСообщения> , < Статус> )

उपलब्धता: पतला क्लाइंट, वेब क्लाइंट, मोबाइल क्लाइंट, सर्वर, मोटा क्लाइंट, बाहरी कनेक्शन, मोबाइल एप्लिकेशन (क्लाइंट), मोबाइल एप्लिकेशन (सर्वर)।

5. वस्तु उपयोगकर्ता को संदेश.

संदेश मापदंडों को संग्रहीत करने के लिए डिज़ाइन किया गया है जिन्हें उपयोगकर्ता को प्रदर्शित करने की आवश्यकता है। यदि संदेश अभी तक उपयोगकर्ता को नहीं दिखाया गया है (यह सर्वर साइड पर, पृष्ठभूमि कार्य, बाहरी कनेक्शन या वेब सेवाओं में काम करते समय हो सकता है), तो आप विधि का उपयोग करके संचित संदेश प्राप्त कर सकते हैं उपयोगकर्ता को संदेश प्राप्त करें.

गुण: गंतव्य आईडी(लक्ष्यआईडी); डेटाकी; मैदान; डेटापाथ(डेटापाथ); मूलपाठ।

तरीके: संदेश; सेटडेटा(सेटडेटा)।

संदेश इंटरफ़ेस के नीचे एक पंक्ति में दिखाई देता है।

संदेश = नया MessageToUser(); संदेश। पाठ ="पर्याप्त नामकरण नहीं" ;संदेश। फ़ील्ड =

  1. "नामकरण। मात्रा"
    ;
    संदेश। सेटडेटा(डेटाऑब्जेक्ट);
  2. संदेश। प्रतिवेदन() ;

    प्लेटफार्म 8.2. आर्किटेक्चर - क्लाइंट-सर्वर। कार्य: सर्वर को सर्वर से जुड़े किसी विशिष्ट क्लाइंट पर एक विशिष्ट प्रक्रिया को कॉल करने की आवश्यकता होती है।
  3. क्या इसे लागू करना संभव है और कैसे?
    (यह ICQ और इसी तरह के सॉफ़्टवेयर के संचालन के सिद्धांत के समान है, जब यह प्रतीक्षा हैंडलर नहीं है जो समय-समय पर सर्वर को प्रदूषित करता है, बल्कि सर्वर स्वयं क्लाइंट पर इवेंट हैंडलर को कॉल करता है)।
    क्लाइंट को सर्वर से कॉल करना असंभव है, आप केवल क्लाइंट से सर्वर को कॉल कर सकते हैं, "सर्वर" कोड निष्पादित करने के बाद, नियंत्रण क्लाइंट पर वापस आ जाता है।

    या इस विचार को अधिक स्पष्ट रूप से व्यक्त करें कि क्या आवश्यक है और किस उद्देश्य का अनुसरण किया जा रहा है।

    क्लाइंट को सर्वर से कॉल करना असंभव है, आप केवल क्लाइंट से सर्वर को कॉल कर सकते हैं, "सर्वर" कोड निष्पादित करने के बाद, नियंत्रण क्लाइंट पर वापस आ जाता है। क्षमा करें, यह आर्किटेक्चर है, और यह स्पष्ट नहीं है कि क्लाइंट को सर्वर से क्यों कॉल किया जाए। 8.2 आर्किटेक्चर को समझें।या इस विचार को अधिक स्पष्ट रूप से व्यक्त करें कि क्या आवश्यक है और किस उद्देश्य का अनुसरण किया जा रहा है।
    विस्तार करने के लिए क्लिक करें...
    कार्य कुछ घटनाओं के घटित होने के बारे में उपयोगकर्ताओं को सूचित करने के लिए एक तंत्र लागू करना है। उदाहरण के लिए, एक प्रबंधक किसी चालान या चालान के भुगतान के लिए अनुरोध बनाता है। अकाउंटेंट (जो मैनेजर से दूर है) बैंक को बर्बाद कर रहा है। और जब अकाउंटेंट चालान का भुगतान करने के लिए भुगतान करता है
    यदि कुछ ग्राहक सिस्टम के साथ काम करते हैं, तो, सिद्धांत रूप में, पहला समाधान विकल्प कारण नहीं बनेगा बड़ी समस्याएँ. समस्याएँ तब उत्पन्न होने लगती हैं जब ग्राहकों की संख्या कई सौ तक बढ़ जाती है, और कभी-कभी कुछ दर्जन भी वास्तव में ट्रैफ़िक को रोक सकते हैं और सर्वर को लोड कर सकते हैं। ऑपरेशन का तरीका, जब क्लाइंट सर्वर पर घटनाओं की सूची की सदस्यता लेता है और फिर "सुनने" मोड पर स्विच करता है, तो बेकार ट्रैफ़िक को काफी कम कर देता है और सर्वर पर बेकार अनुरोधों को लोड नहीं करता है। उदाहरण के लिए, यदि सूची प्रपत्र में कोई परिवर्तन नहीं हुआ है तो उसे समय-समय पर अद्यतन क्यों करें? जब किसी सूचना रजिस्टर या कार्य में कुछ भी बदलाव नहीं हुआ है तो समय-समय पर मतदान क्यों करें? केवल सर्वर ही जानता है कि यह बदला है या नहीं। इसलिए, यह तर्कसंगत है कि क्लाइंट को हर 5 सेकंड में सर्वर को एक अनुरोध नहीं भेजना चाहिए और एक ही प्रतिक्रिया प्राप्त करनी चाहिए, लेकिन सर्वर, किसी ईवेंट की सदस्यता लेते समय (उदाहरण के लिए, किसी कार्य के लिए "लिखते समय"), इसका कारण होगा "इच्छुक" ग्राहकों पर इस घटना का प्रसंस्करण। अब ईवेंट केवल उन क्लाइंट्स पर प्रोसेस किए जाते हैं जिन्होंने सीधे तौर पर इस ईवेंट की शुरुआत की है, लेकिन मैं चाहूंगा कि ईवेंट अन्य क्लाइंट्स पर प्रोसेस किया जाए (केवल एक अलग हैंडलर द्वारा)।
    ब्राउज़र ऑपरेशन का यह सिद्धांत WebSocket तकनीक द्वारा सुनिश्चित किया गया है, जिसे पिछले साल पहले ही मानकीकृत किया गया था (http://www.rfc-editor.org/info/rfc6455) और 4 ब्राउज़रों (इंटरनेट एक्सप्लोरर को छोड़कर) द्वारा समर्थित है। यह तकनीक भविष्य है.

  4. 800 उपयोगकर्ता. उड़ान स्थिर और सामान्य है. यह सब इस बात पर निर्भर करता है कि आवश्यक डेटा कैसे चुना जाए, वैसे, ट्रैफ़िक न्यूनतम है।

    उदाहरण के लिए, ताकि सर्वर इस बात पर नज़र न रख सके कि उपयोगकर्ताओं के पास वर्तमान में उनकी सूची में कौन से चयन हैं।
    इसके अलावा, क्या होगा यदि उपयोगकर्ता को सूची को अद्यतन करने की आवश्यकता नहीं है ->

    कई सर्वर हो सकते हैं. जहां तक ​​प्रबंधित एप्लिकेशन का सवाल है, सर्वर के साथ कोई स्थायी कनेक्शन नहीं है। आपका अनुरोध क्लस्टर में किसी अन्य सर्वर पर एक प्रक्रिया द्वारा संसाधित किया जा सकता है।

    इसलिए, यह तर्कसंगत है कि क्लाइंट को हर 5 सेकंड में सर्वर को एक अनुरोध नहीं भेजना चाहिए और एक ही प्रतिक्रिया प्राप्त करनी चाहिए, लेकिन सर्वर, किसी ईवेंट की सदस्यता लेते समय (उदाहरण के लिए, किसी कार्य के लिए "लिखते समय"), इसका कारण होगा "इच्छुक" ग्राहकों पर इस घटना का प्रसंस्करण। अब ईवेंट केवल उन क्लाइंट्स पर प्रोसेस किए जाते हैं जिन्होंने सीधे तौर पर इस ईवेंट की शुरुआत की है, लेकिन मैं चाहूंगा कि ईवेंट अन्य क्लाइंट्स पर प्रोसेस किया जाए (केवल एक अलग हैंडलर द्वारा)।

    या इस विचार को अधिक स्पष्ट रूप से व्यक्त करें कि क्या आवश्यक है और किस उद्देश्य का अनुसरण किया जा रहा है।

    1सी एक लेखांकन है, बिलिंग प्रणाली नहीं। उसे इसकी जरूरत नहीं है. इसलिए, 5 सेकंड की समस्या को अन्य तरीकों से हल किया जा सकता है (यदि इसकी बिल्कुल आवश्यकता हो)।

  5. ठीक है, आपने ई-मेल द्वारा अधिसूचना के बारे में कुछ भी नहीं कहा - लेकिन यह मानक माध्यमों का उपयोग करके व्यवस्थित किया गया है।
    ठीक है, आप वास्तव में ICQ को 1Ske (Google libs, स्मोक मैना, रोल आउट कोड) से जोड़ सकते हैं - लेकिन IMHO की परेशानी इसके लायक नहीं है।

    लेकिन एक और तरीका भी है.



    (बी) बस बैठता है और एक समर्पित पोर्ट को सुनता है (यह पोर्ट पर डेटा पैकेट की प्रतीक्षा करता है)
    2) 1 सी में, किसी दस्तावेज़ को रिकॉर्ड करते समय प्रसंस्करण में, हम एक कोड लिखते हैं जो विश्लेषण करता है कि क्या यह पहला रिकॉर्ड है, और क्या पिछले रिकॉर्ड के बाद से कुछ महत्वपूर्ण रूप से बदल गया है (अन्यथा अकाउंटेंट दस्तावेज़ को आसानी से पुनः प्रेषित कर सकते हैं, और हर बार प्रबंधक इस केस संदेश के लिए एक हर्षजनक स्टेंट प्राप्त होता है) और यदि यह नया दस्तावेज़, या यह महत्वपूर्ण रूप से बदल गया है (राशि, भुगतानकर्ता, उद्देश्य) तो:

    खैर, ऐसा ही कुछ.


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

  6. 800 उपयोगकर्ता. उड़ान स्थिर और सामान्य है. यह सब इस बात पर निर्भर करता है कि आवश्यक डेटा कैसे चुना जाए, वैसे, ट्रैफ़िक न्यूनतम है।

    सभी ग्राहकों को एक ऐसी प्रक्रिया के लिए कॉल आवंटित करने का प्रयास करें जो एक अनुरोध उत्पन्न करती है, उदाहरण के लिए, सूचना के एक रजिस्टर के लिए जिसमें सूचनाएं लिखी जाएंगी या उपयोगकर्ता कार्यों के लिए। और ताकि इस प्रक्रिया को वेट हैंडलर द्वारा कम से कम हर मिनट में कॉल किया जाए। सर्वर और नेटवर्क कैसे कनेक्ट होंगे?

    उदाहरण के लिए, ताकि सर्वर इस बात पर नज़र न रख सके कि उपयोगकर्ताओं के पास वर्तमान में उनकी सूची में कौन से चयन हैं।
    इसके अलावा, क्या होगा यदि उपयोगकर्ता को सूची को अद्यतन करने की आवश्यकता नहीं है -> सूची डेटा को क्लाइंट तक खींचने की कोई आवश्यकता नहीं है (यह न भूलें कि क्लाइंट को केवल वही मिलता है जो वह नीचे और ऊपर +2 लाइनें देखता है। सर्वर ऐसा क्यों करता है यह सब चाहिए?)
    मैं केवल उस मामले पर विचार कर रहा हूं जब उपयोगकर्ताओं के एक समूह को सूची को अद्यतन करने की आवश्यकता होती है। फिर ग्राहक सदस्यता तकनीकसर्वर (क्लस्टर) पर एक रिकॉर्डिंग ईवेंट बेकार अनुरोधों और ट्रैफ़िक के बहिष्कार को सुनिश्चित करता है।

    कई सर्वर हो सकते हैं. जहां तक ​​प्रबंधित एप्लिकेशन का सवाल है, सर्वर के साथ कोई स्थायी कनेक्शन नहीं है। आपका अनुरोध क्लस्टर में किसी अन्य सर्वर पर एक प्रक्रिया द्वारा संसाधित किया जा सकता है।
    एक क्लस्टर (जिसमें हजारों उपयोगकर्ता हो सकते हैं) सभी उपयोगकर्ताओं की सभी सेटिंग्स को क्यों याद रखता है? कौन सी चीज़ पूरी तरह से स्मृति को नष्ट कर देगी?
    प्रत्येक कनेक्शन के लिए क्लस्टर इत्यादिसब कुछ याद है प्रपत्र खोलें, अन्यथा कनेक्शन विफलता की स्थिति में सत्र को "पुनर्प्राप्त" करना असंभव होगा। और क्लस्टर को यह सब याद रखने की आवश्यकता नहीं है। आप ईवेंट सदस्यताओं को एक विशेष डेटाबेस सेवा तालिका में आसानी से सहेज सकते हैं।

    1सी एक लेखांकन है, बिलिंग प्रणाली नहीं। उसे इसकी जरूरत नहीं है. इसलिए, 5 सेकंड की समस्या को अन्य तरीकों से हल किया जा सकता है (यदि इसकी बिल्कुल आवश्यकता हो)।

    या इस विचार को अधिक स्पष्ट रूप से व्यक्त करें कि क्या आवश्यक है और किस उद्देश्य का अनुसरण किया जा रहा है।

    क्या, में लेखांकन प्रणालीडेटा को अद्यतन रखना 105 नंबर है?! उदाहरण के लिए, एक बड़ी व्यापारिक कंपनी में जहांक्या आपको मौजूदा संतुलन और वस्तुओं की कीमतें देखने के लिए कुछ सौ प्रबंधकों की आवश्यकता नहीं है? यदि ऐसा नहीं होता है, तो फ़ोन पर प्रबंधक उस सामान का वादा करेंगे जिसे कोई अन्य प्रबंधक पहले ही बेच चुका है, नाम पुरानी कीमतें, आदि। और मूल्य सूची फॉर्म के आवधिक अद्यतन को सक्षम करने से, हमें बेकार सर्वर लोड और बेकार ट्रैफ़िक में उल्लेखनीय वृद्धि मिलती है।
  7. क्या प्रबंधक इतने मूर्ख हैं कि वे स्वयं फॉर्म अपडेट नहीं कर सकते????????????
  8. इस विधि के क्या फायदे हैं? केवल 1C सर्वर से मेल सर्वर पर लोड स्थानांतरित करने में? आख़िरकार, क्लाइंट को अभी भी समय-समय पर सर्वर का सर्वेक्षण करना होगा।
    पत्र और टेलीग्राम में क्या अंतर है? टेलीग्राम डाकियों द्वारा ले जाया जाता था और व्यक्तिगत रूप से सौंप दिया जाता था। लाइटनिंग टेलीग्राम आम तौर पर डाकघर में पहुंचने के तुरंत बाद वितरित किए जाते थे। और ग्राहक को एक पत्र के लिए आपको समय-समय पर देखने की जरूरत है मेलबॉक्स. उदाहरण के लिए, दिन के दौरान 2 पत्र आते हैं, और ग्राहक हर 10 मिनट में मेलबॉक्स देखता है। सभी "लुक" में से केवल 2 ही सफल हैं, और बाकी बेकार हैं। लेकिन टेलीग्राम के साथ सब कुछ सही है। ग्राहक अपना काम करता रहता है, और जब डाकिया तार लेकर आता है, तो वह रुक जाता है और बेकार की भागदौड़ में समय बर्बाद किए बिना उसे प्राप्त कर लेता है।
    मुझे 1C में ICQ विशेषज्ञ की आवश्यकता नहीं है, मैंने ICQ संचालन के सिद्धांत के बारे में लिखा है।

    लेकिन एक और तरीका भी है.

    1) हम अपना स्वयं का साधारण ग्राहक लिख रहे हैं। जो या तो प्रदान करता है:
    (ए) "IsNew_Blead" विशेषता के साथ तालिका में रिकॉर्ड की उपस्थिति के लिए डेटाबेस (उदाहरण के लिए तृतीय-पक्ष) का नियमित पढ़ना

    या इस विचार को अधिक स्पष्ट रूप से व्यक्त करें कि क्या आवश्यक है और किस उद्देश्य का अनुसरण किया जा रहा है।

    संचालन की यह विधि अब प्लेटफ़ॉर्म द्वारा प्रतीक्षा हैंडलर के रूप में कार्यान्वित की जाती है। लेकिन यह बहुत ही उप-इष्टतम है.
    और ठीक इसी तरह से WebSockets प्रोटोकॉल लागू किया जाता है। यह विधि सबसे इष्टतम है, लेकिन 1C में लागू नहीं की गई है।

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

    खैर, ऐसा ही कुछ.

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

    या इस विचार को अधिक स्पष्ट रूप से व्यक्त करें कि क्या आवश्यक है और किस उद्देश्य का अनुसरण किया जा रहा है।

    खैर, मामले की सच्चाई यह है कि बहुत ही बहु-उपयोगकर्ता कार्य के लिए डिज़ाइन किए गए एप्लिकेशन लिखने का प्लेटफ़ॉर्म विशेष रूप से बेहतर ढंग से काम नहीं करता है।
    और विकल्प (बी) से वीके-शुकु (निष्पादन योग्य यही है) के बारे में, इसे कौन लिख सकता है?

  9. बेशक वे कर सकते हैं! इसके अलावा, वे अनुमान लगाएंगे कि यदि फॉर्म सूची सेटिंग्स में आप "हर बार स्वचालित रूप से अपडेट करें" बॉक्स को चेक करते हैं और अवधि 5 सेकंड है, तो आपको "अपडेट" बटन दबाने की ज़रूरत नहीं है। फिर क्लस्टर (सर्वर) पर कितना लोड बढ़ जाएगा और 200 क्लाइंट्स से नेटवर्क पर बेवकूफ़ ट्रैफ़िक बढ़ जाएगा?!
    यह पूरी तरह से अलग मामला है जब "अपॉनरिकॉर्ड" हैंडलर को सर्वर पर संसाधित किया जाता है और उससे आवश्यक क्लाइंट को एक अधिसूचना भेजी जाती है, और क्लाइंट पहले से ही अनुरोध उत्पन्न कर रहे हैं और अपने फॉर्म अपडेट कर रहे हैं। इस मामले में, ट्रैफ़िक में वृद्धि होगी और सर्वर पर अनुरोध न केवल यादृच्छिक रूप से होंगे, बल्कि केवल तभी होंगे जब यह वास्तव में आवश्यक हो।
  10. क्या आप कल्पना कर सकते हैं कि सभी 200 प्रबंधक बारी-बारी से दस्तावेज़ों का संचालन, वितरण और रिकॉर्डिंग करेंगे??????
  11. क्या ये 200 प्रबंधक वास्तव में अपने "बग" से आपके नेटवर्क को बर्बाद कर देते हैं?

    और हां, एलेक्सबर्नसही ढंग से उल्लेख किया गया है, यदि आपको डर है कि पृष्ठभूमि मतदान वाले 200 प्रबंधक आपके ग्रिड और क्लस्टर को मूर्खतापूर्ण तरीके से लोड करेंगे, तो जब वे काम करना शुरू करेंगे तो क्या होगा? दस्तावेज़ तैयार करते समय, अनुरोध करना अधिक कठिन होता है।

  12. सभी ग्राहकों को एक ऐसी प्रक्रिया के लिए कॉल आवंटित करने का प्रयास करें जो एक अनुरोध उत्पन्न करती है, उदाहरण के लिए, सूचना के एक रजिस्टर के लिए जिसमें सूचनाएं लिखी जाएंगी या उपयोगकर्ता कार्यों के लिए। और ताकि इस प्रक्रिया को वेट हैंडलर द्वारा कम से कम हर मिनट में कॉल किया जाए। सर्वर और नेटवर्क कैसे कनेक्ट होंगे?

    या इस विचार को अधिक स्पष्ट रूप से व्यक्त करें कि क्या आवश्यक है और किस उद्देश्य का अनुसरण किया जा रहा है।

    मैं केवल उस मामले पर विचार कर रहा हूं जब उपयोगकर्ताओं के एक समूह को सूची को अद्यतन करने की आवश्यकता होती है। फिर सर्वर (क्लस्टर) पर एक रिकॉर्डिंग इवेंट के लिए क्लाइंट को सब्सक्राइब करने की तकनीक बेकार अनुरोधों और ट्रैफ़िक के बहिष्कार को सुनिश्चित करती है।

    या इस विचार को अधिक स्पष्ट रूप से व्यक्त करें कि क्या आवश्यक है और किस उद्देश्य का अनुसरण किया जा रहा है।

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

    क्लस्टर पहले से ही प्रत्येक कनेक्शन के लिए सभी खुले फॉर्म याद रखता है, अन्यथा कनेक्शन विफलता की स्थिति में सत्र को "बढ़ाना" असंभव होगा। और क्लस्टर को यह सब याद रखने की आवश्यकता नहीं है। आप ईवेंट सदस्यताओं को एक विशेष डेटाबेस सेवा तालिका में आसानी से सहेज सकते हैं।

    या इस विचार को अधिक स्पष्ट रूप से व्यक्त करें कि क्या आवश्यक है और किस उद्देश्य का अनुसरण किया जा रहा है।

    कृपया स्पष्ट करें कि सर्वर द्वारा डेटाबेस से अनुरोध (सदस्यता प्राप्त करने के लिए) क्लाइंट से अनुरोध से कैसे भिन्न है? यह वही बात है जो आपको शुरू से ही बताई गई थी।




    अतः निष्कर्ष - इसे पढ़ने के बाद शेष प्रासंगिक नहीं है।

  13. क्या आपने कभी एप्लिकेशन प्रदर्शन को अनुकूलित करने के बारे में कुछ सुना है? उदाहरण के लिए, वेबसाइट http://www.gilev.ru पर जाएं और देखें कि अनुकूलन से पहले और बाद में एक सामान्य कैसे काम करता है।
    मैं सिर्फ इस बारे में बात कर रहा हूं कि कैसे आवश्यक क्लाइंट को सूचित करने वाले सर्वर की तकनीक की तुलना में क्लाइंट को सर्वर में "पोक" करने की तकनीक बेहद इष्टतम नहीं है। और यदि एप्लिकेशन में उप-अनुकूलता है, तो सिस्टम पर लोड बढ़ने पर यह निश्चित रूप से सामने आएगा।

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

  14. क्या ये 200 प्रबंधक वास्तव में अपने "बग" से आपके नेटवर्क को बर्बाद कर देते हैं?
    यदि यह मजबूत है, तो यह आपके लिए कूड़ा है, जाल नहीं।
    वहाँ यातायात है - उह। अचानक लेसेपेड का आविष्कार क्यों किया गया?

    जब आप देखते हैं "हाँ, ग्रिड मुश्किल से रेंग रहा है" और आप आश्वस्त हैं कि यह हर 5 सेकंड में होने वाले इस ऑटो पोल के कारण है - तब आप अपने शलजम को खरोंचना शुरू कर देंगे।

    और हां, एलेक्सबर्नसही ढंग से उल्लेख किया गया है, यदि आपको डर है कि पृष्ठभूमि मतदान वाले 200 प्रबंधक आपके ग्रिड और क्लस्टर को मूर्खतापूर्ण तरीके से लोड करेंगे, तो जब वे काम करना शुरू करेंगे तो क्या होगा? दस्तावेज़ तैयार करते समय, अनुरोध करना अधिक कठिन होता है।

    या इस विचार को अधिक स्पष्ट रूप से व्यक्त करें कि क्या आवश्यक है और किस उद्देश्य का अनुसरण किया जा रहा है।

    क्या आपको याद है कि प्लेटफ़ॉर्म 8.2 अभी भी पतले क्लाइंट मोड में काम कर सकता है और धीमे कनेक्शन पर भी काम कर सकता है?! अब इसके बारे में सोचें, यदि आप धीमे कनेक्शन पर कुछ बेवकूफी भरे ट्रैफ़िक को हटा दें, तो क्या क्लाइंट तेज़ी से चलेगा?

  15. क्या आपको याद है कि प्लेटफ़ॉर्म 8.2 अभी भी पतले क्लाइंट मोड में काम कर सकता है और धीमे कनेक्शन पर भी काम कर सकता है?! अब इसके बारे में सोचें, यदि आप धीमे कनेक्शन पर कुछ बेवकूफी भरे ट्रैफ़िक को हटा दें, तो क्या क्लाइंट तेज़ी से चलेगा?

    या इस विचार को अधिक स्पष्ट रूप से व्यक्त करें कि क्या आवश्यक है और किस उद्देश्य का अनुसरण किया जा रहा है।

    और क्या? प्रोग्राम के मूर्खतापूर्ण उपयोग से भी ट्रैफ़िक उत्पन्न हो सकता है। आपने उपयोग पैटर्न नहीं बताया है (वैसे, मैंने पहले ही बचे हुए के बारे में कहा था - बड़े ऑनलाइन स्टोरों को देखें, वे कैसे संरचित हैं। उनके पास सर्वर से कोई अधिसूचना नहीं है)

    कॉन्फ़िगरेशन के लिए स्लावा के तरीकों को उसकी प्लेटफ़ॉर्म पेशकशों के साथ भ्रमित न करें। यह स्लावा ही है जो सर्वर-क्लाइंट विनिमय प्रक्रिया को न्यूनतम बनाता है।

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

    या इस विचार को अधिक स्पष्ट रूप से व्यक्त करें कि क्या आवश्यक है और किस उद्देश्य का अनुसरण किया जा रहा है।

    एक बार फिर: एक पैटर्न दें. पर सामान्य प्रश्नआपको एक सामान्य उत्तर मिल गया. जब कोई खास काम दिख रहा हो तो उस पर चर्चा करना ही समझदारी है.
    मैंने पहले ही क्लाइंट के सर्वर से खींचने के नुकसानों का संक्षेप में वर्णन किया है।

  16. मानक वाले देखें - यह इसी तरह किया जाता है। वैसे, हमारे कॉर्पोरेट डेटाबेस में भी यही स्थिति है।
    कुछ नहीं, हर कोई जीवित है और ठीक है। यहां सवाल यह है कि इस डेटा का निर्माण कैसे किया जाए। यदि आप पागल हो रहे हैं, तो मैं बिना अधिक दबाव डाले आपके लिए खाली बेस पर एक सर्वर स्थापित कर दूंगा।

    या इस विचार को अधिक स्पष्ट रूप से व्यक्त करें कि क्या आवश्यक है और किस उद्देश्य का अनुसरण किया जा रहा है।

    विशिष्ट लोगों को इस प्रकार लिखा जाता है क्योंकि:
    1) प्लेटफ़ॉर्म इस प्रकार लिखा गया है और आप वीके का उपयोग किए बिना इसकी क्षमताओं पर छलांग नहीं लगा सकते।
    2) मानक कोड में वे कभी-कभी ऐसे कोड लिखते हैं जो कभी भी 1सी में परीक्षा पास नहीं कर पाते।
    कोई बवासीर अपेक्षित नहीं है और सब कुछ पूरी तरह से विपरीत नहीं है। क्लाइंट कनेक्शन खोलता है, और फिर "क्लाइंट" और "सर्वर" की अवधारणा मिट जाती है। स्थानांतरण उसी व्यक्ति द्वारा शुरू किया जाता है जिसे इसे करने की आवश्यकता होती है। कृपया http://ru.wikipedia.org/wiki/WebSocket पढ़ें। क्या वास्तव में डमी लोग इसके साथ आये थे?

    मैं एक और बात समझाता हूं: क्या होना चाहिए जब उपयोगकर्ता के पास पूर्ण स्क्रीन में एक दस्तावेज़ खुला हो और सर्वर से एक अधिसूचना प्राप्त हो कि इस दस्तावेज़ को अद्यतन करने की आवश्यकता है?
    आप इस तथ्य में भाग लेंगे कि आपको ऐसी घटना को संसाधित करना होगा, इस बारे में सोचें कि उपयोगकर्ता ने क्या बदल दिया है और इसे सभी को एक में कैसे जोड़ा जाए। सीधे शब्दों में कहें तो आप हक्के-बक्के रह जाएंगे।
    और एक और बात: मामले पर शून्य में विचार करना बेकार है। हमें विशिष्टताओं की आवश्यकता है।

    या इस विचार को अधिक स्पष्ट रूप से व्यक्त करें कि क्या आवश्यक है और किस उद्देश्य का अनुसरण किया जा रहा है।

    क्या आप जानते हैं कि यदि किसी इवेंट को प्रोसेसिंग प्रक्रिया नहीं सौंपी गई है, तो यह इवेंट प्रोसेस नहीं होता है? यदि किसी ने दस्तावेज़ फॉर्म को बदल दिया है तो उसे अपडेट करना है या नहीं, यह तय करना डेवलपर पर निर्भर है। और आपको यह सोचने की ज़रूरत नहीं है कि उपयोगकर्ता ने क्या बदला है! अलग-अलग क्लाइंट पर एक ही दस्तावेज़ खोलने और उनमें से किसी एक पर विवरण बदलने का प्रयास करें। क्या हो रहा है? यह सही है, रिकॉर्डिंग स्वचालित रूप से अवरुद्ध है! और जब तक अवरोध हटाया नहीं जाता, कोई अन्य क्लाइंट डेटाबेस में कुछ भी नहीं लिख पाएगा। और रिकॉर्डिंग के बाद दूसरा क्लाइंट, भले ही उसने कुछ बदला हो, वह भी इसे रिकॉर्ड नहीं कर पाएगा, क्योंकि। डेटा संस्करण बदल गया है.
    खैर, यह आम तौर पर 1C: एंटरप्राइज़ 8.2 की 3-स्तरीय संरचना की "गहनतम" समझ है।
    अंतर यह है कि क्लाइंट डेटाबेस के साथ काम नहीं करता है, बल्कि 1C एप्लिकेशन सर्वर के साथ काम करता है, और एप्लिकेशन सर्वर डेटाबेस के साथ काम करता है। गंभीर प्रणालियों के लिए, 1C क्लाइंट-सर्वर और 1C-SQL सर्वर के बीच विनिमय की गति परिमाण के कई क्रमों से भिन्न होती है। यही कारण है कि सर्वर से क्लाइंट तक स्थानांतरित किए गए डेटा की मात्रा को कम करने के लिए एक एप्लिकेशन सर्वर का आविष्कार किया गया था। इसलिए, एप्लिकेशन सर्वर द्वारा अनुरोध निष्पादन और परिणाम के प्रसंस्करण की गति क्लाइंट द्वारा ऐसा करने की तुलना में कई गुना या यहां तक ​​कि परिमाण के आदेश से भी अधिक है।

    समझें कि वर्तमान संतुलन वह है जिसे बदलने से रोका गया है। जैसे ही आपने इसे पढ़ा और इसे ब्लॉक नहीं किया, यह अब प्रासंगिक नहीं है।
    इसलिए, इससे कोई फर्क नहीं पड़ता कि आप कितनी बार सूची को अपडेट करते हैं - जब तक कि आप एक विशिष्ट मात्रा को बदलने से नहीं रोकते (इसे रिजर्व में रखें, इसे बेच दें) - यह सब आसान है।
    और आप दस्तावेज़ पूरा होने के बाद ही वादा कर सकते हैं - ये लेखांकन की मूल बातें हैं।
    इस प्रकार, आपके पास कोई अद्यतन कार्य भी नहीं है

    इस बारे में सोचें कि 1000 उपयोगकर्ताओं के लिए आपके परिदृश्य में क्या होगा।
    आपका बैलेंस फॉर्म लगातार अपडेट किया जाएगा (मात्रा लगातार बदलती रहेगी - क्योंकि 1000 उपयोगकर्ता हैं!)
    अतः निष्कर्ष - इसे पढ़ने के बाद शेष प्रासंगिक नहीं है।

    या इस विचार को अधिक स्पष्ट रूप से व्यक्त करें कि क्या आवश्यक है और किस उद्देश्य का अनुसरण किया जा रहा है।

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

  17. ठीक है, चलो दूसरी तरफ से चलते हैं।
    कितने क्लाइंट और कितने सर्वर????
    आप जितने चाहें उतने क्लाइंट हो सकते हैं, लेकिन सर्वर एक रिपॉजिटरी है, और सिद्धांत रूप में एक होना चाहिए (निश्चित रूप से अपवाद हैं, लेकिन आप उनकी परवाह नहीं करते हैं)

    अगला। क्लाइंट पर सर्वर हैंडलर को क्या कॉल करें??? सर्वर के लिए ग्राहक कौन है - हाँ, कोई नहीं, और उसका नाम कुछ भी नहीं है, कोई मातृभूमि नहीं, कोई झंडा नहीं, आज वह है - कल वह नहीं है। या, वास्या पुपकिन को एक अधिसूचना भेजें, यह सच है कि वह धीमा है, और सब कुछ उसे तीसरी बार मिलता है, मैं उसे तीन सूचनाएं भेजूंगा, वह अचानक जाग जाएगा, और माशेंका, वह एक स्मार्ट लड़की है, सब कुछ पूरी तरह से समझती है , इसलिए मैं उसे आधी सूचना भेजूंगा, उसे खुद इस पर विचार करने दीजिए, वह पहले से ही एक वयस्क है।
    तो आप यहां क्या कह रहे हैं - यह खाली पानी है, 1सी में वे प्रशिक्षु भी नहीं हैं, वे जानते हैं कि उन्हें किस लिए पैसा मिलता है।)
    मुद्दे पर। क्या आप कभी फिल्म देखते समय ICQ पॉप-अप संदेश से परेशान हुए हैं??? हालाँकि इसे बंद किया जा सकता है, फिर मुझे कैसे पता चलेगा कि मुझे जिस संपर्क की ज़रूरत है वह नेटवर्क पर कब दिखाई देगा? ख़ैर, कहने को तो ये गीत हैं।

    या इस विचार को अधिक स्पष्ट रूप से व्यक्त करें कि क्या आवश्यक है और किस उद्देश्य का अनुसरण किया जा रहा है।

    मुझे एक सादृश्य बनाने दें: एक वेब सर्वर और क्लाइंट ब्राउज़र। वहां और कौन है? वेब सर्वर + एसक्यूएल (जो अक्सर बहुत सघन होता है) समान भंडारण नहीं हैं? भौतिक रूप से, WEB सर्वर और SQL सर्वर को भी एक क्लस्टर में जोड़ा जा सकता है। क्या, यह सब WebSocket प्रोटोकॉल को लागू नहीं करता है, जो क्लाइंट और सर्वर के बीच वास्तविक डुप्लेक्स संचार को लागू करता है (जहां न केवल क्लाइंट, बल्कि सर्वर भी स्थानांतरण शुरू करता है)। जहां तक ​​पॉप-अप विंडो के तनाव की बात है, अगर मैं संदेश प्राप्त नहीं करना चाहता, तो मैं बस ऑफ़लाइन हो जाता हूं या पॉप-अप विंडो को अक्षम कर देता हूं।

    अगला। क्लाइंट पर सर्वर हैंडलर को क्या कॉल करें??? सर्वर के लिए ग्राहक कौन है - हाँ, कोई नहीं, और उसका नाम कुछ भी नहीं है, कोई मातृभूमि नहीं, कोई झंडा नहीं, आज वह है - कल वह नहीं है। या, वास्या पुपकिन को एक अधिसूचना भेजें, यह सच है कि वह धीमा है, और सब कुछ उसे तीसरी बार मिलता है, मैं उसे तीन सूचनाएं भेजूंगा, वह अचानक जाग जाएगा, और माशेंका, वह एक स्मार्ट लड़की है, सब कुछ पूरी तरह से समझती है , इसलिए मैं उसे आधी सूचना भेजूंगा, उसे खुद इस पर विचार करने दीजिए, वह पहले से ही एक वयस्क है।
    तो आप यहां क्या कह रहे हैं - यह खाली पानी है, 1सी में वे प्रशिक्षु भी नहीं हैं, वे जानते हैं कि उन्हें किस लिए पैसा मिलता है।
    आप जो कुछ भी कहते हैं वह ग्राहक पर और न्यूनतम लागत पर किया जा सकता है।
    मुझे आगे चर्चा करने का कोई मतलब नहीं दिखता. मैं विषय को बंद करने का प्रस्ताव करता हूं।

    या इस विचार को अधिक स्पष्ट रूप से व्यक्त करें कि क्या आवश्यक है और किस उद्देश्य का अनुसरण किया जा रहा है।

    क्या आपको लगता है कि Google में ऐसे प्रशिक्षु हैं जिन्होंने WebSocket प्रोटोकॉल का आविष्कार किया?! यदि यह विचारधारा यूटोपियन, तर्कहीन आदि होती, तो WebSocket (RFC 6455 में वर्णित) को IETF से "प्रस्तावित मानक" का दर्जा प्राप्त नहीं होता। अगली स्थिति "ड्राफ्ट मानक" है, जिसमें इंटरनेट पर उपयोग किए जाने वाले अधिकांश मानक शामिल हैं।
    और जहां तक ​​क्लाइंट की बात है, क्लाइंट के बिना यह सिर्फ एक सर्वर है और कोई भी उसे कुछ भी नहीं कहता है; सॉफ्टवेयर और हार्डवेयर का पूरी तरह से बेकार संचय। एक सर्वर के लिए एक ग्राहक वही होता है जो एक विक्रेता के लिए एक खरीदार होता है। सर्वर क्लाइंट को आवश्यक डेटा प्रदान करता है, सर्वर क्लाइंट के लिए प्रबंधित फॉर्म तैयार करता है, सामान्य तौर पर, सर्वर क्लाइंट के लिए मौजूद होता है, न कि इसके विपरीत! संस्करण 8.2 में, सर्वर उपयोगकर्ता के सत्र को भी याद रखता है। पढ़ें: http://v8.1c.ru/overview/Term_000000805.htm#1 अनुभाग "संचार चैनल रुकावट का प्रतिरोध"।
    तो कौन किसके लिए अस्तित्व में है?

  18. शायद वे मुझे ठीक से नहीं समझते? मैं क्लाइंट और सर्वर के बीच विनिमय पद्धति को अनुरोध-प्रतिक्रिया से डुप्लेक्स में नहीं बदलने का प्रस्ताव करता हूं, मैं सर्वर के माध्यम से कुछ क्रियाएं करने वाले अन्य क्लाइंट के बारे में दूसरों द्वारा कुछ क्लाइंट की डुप्लेक्स अधिसूचना के लिए एक तंत्र जोड़ने का प्रस्ताव करता हूं। डेवलपर्स इस तंत्र का उपयोग अपने विवेक से कर सकते हैं। उदाहरण के लिए, डेवलपर अनुरोध के बजाय ऑब्जेक्ट मॉडल के माध्यम से निर्देशिका तत्वों को कैसे बायपास करना चाहता था - कृपया। और छोटी संदर्भ पुस्तकों पर, यह विधि कभी-कभी काम की गति को काफी बढ़ा देती है।
    अन्यथा, प्रोग्रामेटिक रूप से, आप केवल डेटाबेस के सभी कनेक्शनों की एक सूची प्राप्त कर सकते हैं और उपयोगकर्ता को डेटाबेस से डिस्कनेक्ट कर सकते हैं (यदि आपके पास ऐसा करने का अधिकार है)। लेकिन उपयोगकर्ता को अधिसूचना भेजना और किसी विशिष्ट प्रक्रिया ट्रिगर के लिए कॉल करना असंभव है।

यह लेख "1सी पर विकास में पहला कदम" लेखों की श्रृंखला को जारी रखता है।

इसमें हम उपयोगकर्ता को सूचित करने के तरीकों पर गौर करेंगे जो 1C:एंटरप्राइज़ प्लेटफ़ॉर्म 8 में मौजूद हैं, और इन तंत्रों के संचालन की कुछ विशेषताओं पर भी आपका ध्यान केंद्रित करेंगे, ये सुविधाएँ उपयोग के तरीके से संबंधित हैं; तौर-तरीके.

प्रयोज्यता

लेख कार्यक्षमता पर चर्चा करता है:

  • 1C:एंटरप्राइज़ प्लेटफ़ॉर्म 8.2.19.130 पर विकसित कॉन्फ़िगरेशन के लिए "संस्करण 8.2" संस्करण में इंटरफ़ेस
  • कॉन्फ़िगरेशन के लिए टैक्सी इंटरफ़ेस 1C:एंटरप्राइज़ प्लेटफ़ॉर्म 8.3.4.496 से 8.3.9+ पर विकसित किया गया
  • 1C:एंटरप्राइज़ प्लेटफ़ॉर्म 8.3.10-8.3.11 पर विकसित कॉन्फ़िगरेशन के लिए टैक्सी इंटरफ़ेस

1C में उपयोगकर्ता को संदेश कैसे प्रदर्शित करें

उपयोगकर्ता मोड में संदेश प्रदर्शित करने से कई समस्याएं हल हो जाती हैं:

  • वर्तमान प्रक्रिया की प्रगति का प्रतिबिंब (प्रक्रिया के निष्पादन के चरण को दिखाना; एल्गोरिदम के संचालन के दौरान प्राप्त गणना मूल्यों को दिखाना);
  • संभावित सुधार के लिए उपयोगकर्ता को त्रुटियाँ प्रदर्शित करना;
  • सिफ़ारिशें जारी करना;

संदेश प्रकार:

  • टर्मिनेटर, जो प्रोग्राम के निष्पादन को रोक देते हैं और इसे तब तक जारी नहीं रहने देते जब तक उपयोगकर्ता इस संदेश को पढ़ नहीं लेता और कुछ क्रियाएं नहीं कर लेता। उदाहरण के लिए, उपयोगकर्ता को स्क्रीन पर एक प्रश्न प्रस्तुत किया जाएगा जिसका उत्तर हां या नहीं में देना होगा। जब तक उपयोगकर्ता प्रतिक्रिया नहीं देता, प्रोग्राम आगे की कार्रवाई नहीं करता है;
  • परिचयात्मक संदेश जो केवल उपयोगकर्ता को प्रदर्शित किए जाते हैं और आगे काम करने की अनुमति देते हैं (अर्थात, अलर्ट मोड में उपयोग किए जाते हैं)।

समाप्ति संदेश त्रुटि संदेश होने चाहिए, और परिचयात्मक संदेश: सिफारिशें, प्रक्रिया के वर्तमान चरण के बारे में संदेश और परिकलित मानों का प्रदर्शन (डीबग प्रिंट)।

परिचयात्मक संदेशों का उद्देश्य उपयोगकर्ता को कुछ जानकारी प्रदान करना है।

यह आवश्यक है कि उपयोगकर्ता इससे परिचित हो जाए और संभवत: इस संदेश में वर्णित कुछ कार्रवाई करे।

यह बहुत महत्वपूर्ण है कि उपयोगकर्ता वास्तव में इन संदेशों को पढ़े, इसलिए उनमें केवल महत्वपूर्ण जानकारी ही होनी चाहिए।

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

प्रबंधित इंटरफ़ेस की अवधारणा में, संदेश जारी करने का दृष्टिकोण कुछ हद तक बदल गया है। अब यह उसी रूप से बंधा हुआ है जिसमें इसकी उत्पत्ति हुई थी। इसे अब बंद नहीं किया जा सकता जिससे पाठ पूरी तरह अदृश्य हो जाए।

आप किसी प्रपत्र से संदेश बॉक्स को अनपिन नहीं कर सकते.

फ़ंक्शन सिंटैक्स:

प्रतिवेदन (<Текст сообщения>, <Статус>)

वे। पहला पैरामीटर टेक्स्ट ही है.

दूसरा पैरामीटर (संदेश स्थिति) वैकल्पिक है. आप स्थिति के लिए मान निर्दिष्ट कर सकते हैं: सामान्य, महत्वपूर्ण, बहुत ज़रूरीवगैरह।

यह मान निर्धारित करता है कि संदेश के आगे कौन सा आइकन स्थित होगा। हालाँकि, यह केवल सामान्य इंटरफ़ेस में काम करता है।

प्रबंधित इंटरफ़ेस अवधारणा में, आइकन हमेशा फॉर्म में होता है विस्मयादिबोधक बिंदु, इसे पुनः परिभाषित नहीं किया जा सकता।

तथ्य यह है कि यदि निर्देशिका तत्व लिखते समय कोई संदेश उत्पन्न होता है, तो निम्न स्थिति उत्पन्न हो सकती है।

उपयोगकर्ता एक बटन पर क्लिक करता है सहेजें और बंद करें, इस स्थिति में संदेश संबंधित विंडो (फ़ॉर्म के दाईं ओर) में प्रदर्शित होता है।

लेकिन फॉर्म तुरंत बंद हो जाता है, और उपयोगकर्ता यह नहीं देख पाएगा कि उसके लिए कोई जानकारी प्रदर्शित की गई थी।

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

हालाँकि, फ़ंक्शन प्रतिवेदनइसका उपयोग कुछ त्रुटियों के बारे में जानकारी प्रदर्शित करने के लिए किया जा सकता है, उदाहरण के लिए, दस्तावेज़ पोस्टिंग के समय।

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

समारोह प्रतिवेदनप्लेटफ़ॉर्म 8.3 में पूर्णतः समर्थित। इसका उपयोग किया जा सकता है, और यह काम करेगा (फ़ाइल संस्करण और क्लाइंट-सर्वर संस्करण दोनों में)।

लेकिन यह भी ध्यान दिया जाना चाहिए कि function प्रतिवेदनवहाँ है इससे आगे का विकास- यह उपयोगकर्ता के लिए एक संदेश वर्ग है, जो एक संदेश प्रदर्शित करने के अलावा, इसे किसी भी फॉर्म तत्व के साथ प्रासंगिक रूप से बांधने की अनुमति देता है।

उदाहरण के लिए, एक त्रुटि संदेश को एक फॉर्म तत्व से जोड़ा जा सकता है, जो उपयोगकर्ता के लिए बहुत स्पष्ट है। हम इस मुद्दे पर थोड़ी देर बाद विचार करेंगे। समारोह प्रतिवेदनएक दिलचस्प विशेषता है.

इस प्रकार, प्लेटफ़ॉर्म 8.3 में प्रोग्राम कोड को क्लाइंट साइड और सर्वर साइड दोनों पर निष्पादित किया जा सकता है।

इस मामले में, क्लाइंट प्रोग्राम कोड उपयोगकर्ता के साथ बातचीत के लिए जिम्मेदार है, अर्थात। क्लाइंट की ओर से, फॉर्म खोले जाते हैं और रिपोर्ट प्रदर्शित की जाती हैं।

विभिन्न डायलॉग दस्तावेज़ भी केवल क्लाइंट पर ही प्रदर्शित होते हैं। उन्हें सर्वर पर निष्पादित नहीं किया जा सकता क्योंकि सर्वर में उपयोगकर्ताओं के साथ बातचीत करने की क्षमता नहीं है।

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

इसका मतलब यह है कि यदि हम इस पद्धति का उपयोग करके सर्वर प्रक्रिया में एक संदेश प्रदर्शित करते हैं, तो वे कुछ बफर में जमा हो जाएंगे और वे स्क्रीन पर तभी प्रदर्शित होंगे जब सर्वर प्रक्रिया समाप्त हो जाएगी और क्लाइंट के पास वापस आ जाएगी।

इस बिंदु पर, सिस्टम बफ़र से डेटा का अनुरोध करेगा और उसे स्क्रीन पर प्रदर्शित करेगा।

यही सुविधा कक्षा पर भी लागू होती है उपयोगकर्ता को संदेश. यह आंकड़ा विधि का उपयोग करने का एक उदाहरण दिखाता है प्रतिवेदनसर्वर साइड पर.

विधि का उपयोग करने के परिणामस्वरूप प्रतिवेदनसर्वर साइड पर, क्लाइंट साइड पर स्क्रीन पर संदेश प्रदर्शित होते थे।

उपयोगकर्ता को यह सूचित करने के लिए एक चेतावनी तंत्र की आवश्यकता होती है कि सिस्टम में "कुछ" हुआ है और "कुछ" पर उपयोगकर्ता के ध्यान की आवश्यकता है। अलर्ट दो परिदृश्यों द्वारा उत्पन्न होते हैं:

  1. किसी ऑब्जेक्ट को अंतःक्रियात्मक रूप से रिकॉर्ड करते या बदलते समय प्लेटफ़ॉर्म द्वारा ही
  2. कोड में किसी विधि को कॉल करते समय डेवलपर द्वारा .

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

इसके अलावा, अलर्ट को सूचना पैनल के संबंधित क्षेत्र ("संस्करण 8.2" इंटरफ़ेस विकल्प में एप्लिकेशन फॉर्म के नीचे बाईं ओर "इतिहास" बटन) तक पहुंचा जा सकता है।

अपने स्वयं के अलर्ट बनाने के लिए, आपको वैश्विक संदर्भ पद्धति का उपयोग करना होगा शोयूजरअलर्ट(). संस्करण 8.3.10 से पहले इसका सिंटैक्स नीचे प्रस्तुत किया गया है:

शोयूजर अलर्ट (<Текст>, <НавигационнаяССылка>, <Пояснение>, <Картинка>)

पहले पैरामीटर में वह टेक्स्ट है जो अधिसूचना में प्रदर्शित किया जाएगा।

फिर, दूसरे पैरामीटर के रूप में, आप सूचना आधार के किसी भी तत्व (वह तत्व जो हमारे संदेश के पाठ से मेल खाता है) के लिए एक निश्चित नेविगेशन लिंक पास कर सकते हैं। जब कोई उपयोगकर्ता किसी अलर्ट पर क्लिक करता है, तो लिंक का पालन किया जाएगा।

तीसरे पैरामीटर का उपयोग करके, आप संदेश के लिए स्पष्टीकरण दे सकते हैं, अर्थात। कुछ विस्तृत विवरण.

आप एक चित्र भी निर्दिष्ट कर सकते हैं जो अधिसूचना स्थिति प्रदर्शित करता है।

यह ध्यान दिया जाना चाहिए कि ये सभी पैरामीटर वैकल्पिक हैं। नीचे इस पद्धति का उपयोग करने का एक उदाहरण दिया गया है (विन्यासकर्ता में और "संस्करण 8.2" इंटरफ़ेस विकल्प में उपयोगकर्ता मोड में)।

"टैक्सी" इंटरफ़ेस के लिए प्लेटफ़ॉर्म 8.3.10.216 के संस्करण में, थिन और वेब क्लाइंट दोनों की उपयोगिता में सुधार के लिए अधिसूचना तंत्र में काफी सुधार किया गया था। इस कारण से, विधि को पारित पैरामीटर भी बदल गए हैं शोयूजरअलर्ट(). अब वाक्यविन्यास इस तरह दिखता है:

शोयूजरअलर्ट(<Текст>, <ДействиеПриНажатии>, <Пояснение>, <Картинка>, <СтатусОповещенияПользователя>, <КлючУникальности>)

यह देखा जा सकता है कि दूसरा पैरामीटर, जिसे पहले कहा गया था नेविगेशनल लिंक, नया नाम मिल गया ActionWhenClicked. यह इस तथ्य के कारण है कि अब नेविगेशन लिंक के साथ न केवल एक स्ट्रिंग भेजना संभव है, बल्कि अलर्ट का विवरण भी भेजना संभव है। इसे नीचे स्क्रीनशॉट में दिखाया गया है:

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

अगला पैरामीटर उपयोगकर्ता चेतावनी स्थितिपहली बार दिखाई दिया. यह अलर्ट की स्थिति (सूचना या महत्वपूर्ण) इंगित करता है।

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

कमांड निष्पादित करने के बाद, हमें एप्लिकेशन विंडो का लगभग यह दृश्य मिलता है:

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

यदि केंद्र में कोई अलर्ट है, तो उपयोगकर्ता का ध्यान आकर्षित करने के लिए उसके बगल में एक छोटा नारंगी बिंदु दिखाई देता है। उपयोगकर्ता अधिसूचना केंद्र खोल सकता है, पाठ पढ़ सकता है और यदि आवश्यक हो, तो कुछ कार्रवाई कर सकता है।

सेंटर से क्लियर बटन पर क्लिक करने पर अलर्ट क्लियर हो जाता है, लेकिन अगर अलर्ट से जुड़ा कोई एक्शन है तो जैसे ही यूजर मैसेज के टेक्स्ट पर क्लिक करेगा, वह भी गायब हो जाएगा.

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

जैसा कि आप देख सकते हैं, संबंधित विधि द्वारा प्रदान की गई संभावनाएँ और भी अधिक हो गई हैं! लेकिन ये सभी अधिसूचना तंत्र में परिवर्तन नहीं हैं।

जैसा कि आपने पहले ही देखा होगा, उनका स्वरूप बदल गया है। अलर्ट अब अधिक आधुनिक और एर्गोनोमिक दिखते हैं, लेकिन उन्हें स्क्रीन के चारों ओर नहीं ले जाया जा सकता है या उनका आकार नहीं बदला जा सकता है। कृपया ध्यान दें कि हमारे उदाहरण में, अधिसूचना पाठ पूरी तरह से विंडो में फिट नहीं होता है, और उपयोगकर्ता इसे केवल अधिसूचना केंद्र खोलकर ही पूरा पढ़ सकता है। इसलिए, आपको अधिसूचना पाठ में बड़ी मात्रा में पाठ नहीं लिखना चाहिए।

नई सुविधाओं में स्क्रीन पर एक साथ तीन अलर्ट प्रदर्शित करना भी शामिल है।

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

आइए इसकी कल्पना करें साधारण स्थिति: उपयोगकर्ता ने सुविधा के लिए कुछ सूची में एक फ़िल्टर सेट किया है। मान लीजिए कि उसने इसे नामकरण निर्देशिका में एक सूची के रूप में किया। फिर, कुछ समय बाद, मैंने "चेयर" नामक एक नया तत्व पेश करने का फैसला किया, जो पहले स्थापित फ़िल्टर के अनुरूप नहीं है। उसमें प्रवेश करता है, लिखता है और...? और वह इसे सूची में नहीं देखता है। औसत उपयोगकर्ता क्या करेगा? बेशक, वह इसमें दूसरी बार प्रवेश करेगा, लेकिन इसे दोबारा नहीं देख पाएगा। इसके बाद तीसरी, चौथी, पांचवीं बार भी हो सकता है। जब वह एक ही चीज़ में बार-बार प्रवेश करके थक जाता है, तो अंततः वह आपसे पूछेगा: सब कुछ कहाँ जाता है?

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

समाप्ति संदेश

समाप्ति संदेश वे संदेश हैं जो तब तक काम करने की अनुमति नहीं देंगे जब तक उपयोगकर्ता कुछ क्रियाएं नहीं करता है, अर्थात। जब तक यह संदेश को संसाधित नहीं करता।

हम प्लेटफ़ॉर्म 8.3 में समाप्ति संदेशों का उपयोग करने की संभावना के बारे में थोड़ी देर बाद बात करेंगे हाल ही मेंवे उनका उपयोग न करने का प्रयास करते हैं, इसलिए माना गया उदाहरण प्लेटफ़ॉर्म 8.2 के लिए अधिक प्रासंगिक है)।

समाप्ति संदेश जारी करने की दो विधियाँ हैं चेतावनीऔर सवाल. चेतावनीसे अलग सवालक्योंकि इसमें एक ही बटन है ठीक है.

एक प्रश्न उत्तर विकल्पों के विभिन्न सेट निर्दिष्ट कर सकता है ( ज़रूरी नहीं, हाँनहींरद्द करें, ठीक है, ठीक हैरद्द करें, दोहराएँरद्द करें, एबॉर्टरिपीटस्किप), जो पैरामीटर का उपयोग करके निर्दिष्ट हैं।

आइए लाइन का उपयोग करके कुछ चेतावनी प्रदर्शित करें (उदाहरण के लिए, प्रबंधित एप्लिकेशन मॉड्यूल में):

चेतावनी ("आधार अब खुला रहेगा");

प्रबंधित एप्लिकेशन मॉड्यूल खोलने के लिए, कॉन्फ़िगरेशन ट्री में ऑब्जेक्ट का चयन करें विन्यास, पुकारना संदर्भ मेनूऔर आइटम का चयन करें एक प्रबंधित एप्लिकेशन मॉड्यूल खोलें.

इस स्थिति में, जब एप्लिकेशन लॉन्च किया जाता है, तो एक विंडो प्रदर्शित होगी जो मोडल है। एक मोडल विंडो एप्लिकेशन में मौजूद सभी विंडो को ओवरलैप करती है। जब तक हम इस विंडो पर कार्रवाई नहीं करते, आगे कोई कार्रवाई संभव नहीं है।

फ़ंक्शन इसी तरह से काम करता है सवाल.

सिंटेक्स:
सवाल(<ТекстВопроса>,<Кнопки>,<Таймаут>,<КнопкаПоУмолчанию>,<Заголовок>,
<КнопкаТаймаута>);

केवल पहले दो पैरामीटर आवश्यक हैं. दूसरे पैरामीटर के लिए, डेटा प्रकार समग्र है ( संवाद विधाप्रश्नया सूचीमूल्य). तीसरा पैरामीटर ( <Таймаут> ) सेकंड में समय अंतराल को दर्शाता है जिसके दौरान सिस्टम उपयोगकर्ता की प्रतिक्रिया की प्रतीक्षा करेगा।

अंतराल समाप्त होने पर प्रश्न विंडो बंद कर दी जाएगी। समान पैरामीटर( <Таймаут> ) फ़ंक्शन के लिए भी उपलब्ध है चेतावनी.

फ़ंक्शन का उपयोग करने के एक उदाहरण के रूप में सवालआप प्रबंधित एप्लिकेशन मॉड्यूल में लिखे गए निम्नलिखित कोड का उपयोग कर सकते हैं:

कृपया ध्यान दें कि ये विधियाँ ( चेतावनीऔर सवाल) सर्वर पर उपलब्ध नहीं हैं. और यह तर्कसंगत है, क्योंकि इंटरफ़ेस विधियों को ऐसे सर्वर पर निष्पादित नहीं किया जा सकता जहां कोई उपयोगकर्ता नहीं है।

प्लेटफ़ॉर्म 8.3 में मोडल विंडो का उपयोग करने की विशेषताएं

प्लेटफ़ॉर्म 8.3 में, मॉडेलिटी के साथ और बिना मॉडेलिटी के ऑपरेटिंग मोड हैं। डिफ़ॉल्ट सेटिंग मोडेलिटी मोड का उपयोग न करें है।

इस मामले में, समाप्ति संदेशों का उपयोग असंभव है। यदि समाप्ति संदेशों (फ़ंक्शंस) का उपयोग करना आवश्यक है चेतावनीऔर सवाल) आपको कॉन्फ़िगरेशन प्रॉपर्टी का मान बदलना चाहिए पर उपयोग.

मोडल विंडो सबसे ऊपर प्रदर्शित होती है और ब्लॉक अन्य विंडो के साथ तब तक काम करता है जब तक कि मोडल विंडो के साथ कार्रवाई पूरी नहीं हो जाती। इसके अलावा, प्रोग्राम कोड का निष्पादन उस बिंदु पर रुक जाता है जहां इस विंडो को कॉल किया जाता है। मोडल विंडो बंद होने के बाद ही कोड निष्पादन जारी रहेगा।

सबसे पहले, मोडल विंडोज़ का उपयोग करने में समस्याएँ उत्पन्न होती हैं मोबाइल एप्लीकेशन. दूसरे, ब्राउज़र में, अलग-अलग पॉप-अप विंडो का उपयोग करके विंडो मोडेलिटी लागू की जाती है।

पॉप-अप विंडो अक्सर डिफ़ॉल्ट ब्राउज़र सेटिंग्स द्वारा अक्षम कर दी जाती हैं। उपयोगकर्ता को इन विंडोज़ के लिए अनुमति सेट करने के लिए बाध्य किया जाना चाहिए।

अधिकांश मामलों में टैबलेट कंप्यूटर और फ़ोन के ब्राउज़र पॉप-अप विंडो का बिल्कुल भी समर्थन नहीं करते हैं।

कार्यों को बदलने के लिए सवालऔर चेतावनीनई विधियाँ विकसित की गई हैं: प्रश्न दिखाओ, चेतावनी दिखाएँ.

ये विधियाँ आपको विंडो कॉल करने की अनुमति देती हैं, लेकिन प्रोग्राम कोड के निष्पादन को नहीं रोकती हैं। तकनीकी रूप से, यह मूल विंडो के अंदर एक छद्म विंडो बनाकर हासिल किया जाता है। छद्म-विंडो मूल विंडो को ओवरलैप नहीं करती है। ऐसी विंडो खोलने के बाद कोड निष्पादित होता रहता है।

उपयोगकर्ता द्वारा दर्ज किए गए मानों को प्राप्त करना और संसाधित करना एक अलग प्रक्रिया में किया जाता है, जिसे संवाद बॉक्स बंद होने पर कहा जाता है।

फ़ंक्शन सिंटैक्स चेतावनी दिखाएँ:

दिखाएँचेतावनी(<ОписаниеОповещенияОЗавершении>, <ТекстПредупреждения>, <Таймаут>, <Заголовок>)

पैरामीटर <ОписаниеОповещенияОЗавершении> (वैकल्पिक)

डेटा प्रकार: विवरणअलर्ट.

इसमें उस प्रक्रिया का विवरण शामिल है जिसे चेतावनी विंडो बंद होने के बाद बुलाया जाएगा।

फ़ंक्शन सिंटैक्स प्रश्न दिखाओ:

प्रश्न दिखाएँ(<ОписаниеОповещенияОЗавершении>, <ТекстВопроса>, <Кнопки>, <Таймаут>, <КнопкаПоУмолчанию>, <Заголовок>, <КнопкаТаймаута>)

पहले तीन पैरामीटर आवश्यक हैं.

नीचे फ़ंक्शन का उपयोग करने का एक उदाहरण दिया गया है.

क्लास MessageToUser

संदेश वर्ग की बुनियादी सुविधा उपयोगकर्ता को संदेशक्या यह एक प्रासंगिक संदेश है (तरीकों के विपरीत)। चेतावनीऔर सवाल).

संदेशों को एक विशिष्ट स्क्रीन तत्व से जोड़ा जा सकता है। यह ऑब्जेक्ट सर्वर पर भी उपलब्ध है.

कृपया ध्यान दें कि, सबसे पहले, यह ऑब्जेक्ट बनाया जाना चाहिए। उदाहरण के लिए: संदेश = नया MessageToUser;

इस प्रकार हम इस ऑब्जेक्ट का एक उदाहरण बनाते हैं।

दूसरे, आपको संदेश टेक्स्ट को एक अलग प्रॉपर्टी में निर्दिष्ट करना होगा।

तीसरा, संपत्ति में मैदानआप निर्दिष्ट कर सकते हैं कि यह संदेश किस प्रपत्र तत्व से संलग्न किया जाना चाहिए।

ध्यान! वांछित फॉर्म फ़ील्ड से जुड़ने के लिए, गुणों के आरंभीकरण पर ध्यान दें पाथटूडेटाऔर डेटाकुंजी. किसी दस्तावेज़ के लिए, ऑब्जेक्ट मॉड्यूल में कोड डालते समय, आप लिख सकते हैं:

संदेश.डेटापाथ = "ऑब्जेक्ट";
Message.DataKey = ThisObject.Link;

दस्तावेज़ मॉड्यूल खोलने के लिए, ऑब्जेक्ट (दस्तावेज़) संपादन विंडो में, टैब पर जाएँ अन्यबटन दबाएँ ऑब्जेक्ट मॉड्यूल.

प्रयोग के लिए, हम कोड को दस्तावेज़ के ऑब्जेक्ट मॉड्यूल में रखेंगे।

प्लेटफ़ॉर्म 8.3 के लिए उपयोगकर्ता मोड में प्राप्त परिणाम नीचे दिया गया है।

यह ध्यान दिया जाना चाहिए कि संदेश नए सिस्टम ऑब्जेक्ट का उपयोग करके आउटपुट होते हैं उपयोगकर्ता को संदेशसामान्य स्थिति में वे समाप्त नहीं हो रहे हैं। वे। सिस्टम उपयोगकर्ता को प्रदर्शित संदेशों का जवाब दिए बिना आगे की कार्रवाई जारी रखने की अनुमति देगा।

लेकिन, सबसे पहले, ये संदेश काफी ध्यान देने योग्य हैं। दूसरे, संदेश आमतौर पर उपयोगकर्ता को निर्देशिकाओं के तत्वों को रिकॉर्ड करने या दस्तावेज़ पोस्ट करने के समय प्रदर्शित किए जाते हैं, यानी, जब कुछ जांच की जाती है। और यदि त्रुटियां पाई गईं, तो उपयोगकर्ता को यही संदेश दिखाई देंगे.

तदनुसार, जब त्रुटियों का पता चलता है, तो लेनदेन रद्द कर दिया जाता है, अर्थात। निर्देशिका तत्व लिखना निषिद्ध है, या दस्तावेज़ पोस्ट करना निषिद्ध है।

इस प्रकार, समाप्ति संदेश का एक प्रकार का अनुकरण होता है। क्योंकि जब तक उपयोगकर्ता दर्ज किए गए संदेश पर प्रतिक्रिया नहीं देता तब तक कार्रवाई रद्द कर दी जाती है, इसलिए कार्रवाई को पूरा करना असंभव होगा, उदाहरण के लिए, दस्तावेज़ पोस्ट करना।

लेकिन, दूसरी ओर, किसी भी तरह से संदेश पर प्रतिक्रिया किए बिना, दस्तावेज़ को संचालित किए बिना बंद करना संभव है। इसलिए, उपयोगकर्ता को ये संदेश समाप्त नहीं हो रहे हैं.

प्रक्रिया स्थिति अधिसूचना

एक विशेष फ़ंक्शन है जिसके साथ आप किसी प्रक्रिया की अनुमानित प्रगति प्रदर्शित कर सकते हैं।

सिंटेक्स: राज्य(<ТекстСообщения>, <Прогресс>, <Пояснение>, <Картинка>)
पैरामीटर:<ТекстСообщения>और<Пояснение>- वैकल्पिक, प्रकार - रेखा.
टेक्स्ट एक विशेष स्टेटस बार पर प्रदर्शित होता है।
<Прогресс>पैरामीटर भी वैकल्पिक है, लेकिन दृश्यमान है।
प्रकार: संख्या. प्रगति सूचक मान (1 से 100 तक)।
<Картинка>एक वैकल्पिक पैरामीटर भी.
किसी भी ईवेंट को संसाधित करते समय, किसी फ़ंक्शन की आवधिक कॉल जैसे:

इस स्थिति में, लेबल बदल सकते हैं, और प्रगति पैरामीटर के मान बदल सकते हैं।

किसी फ़ंक्शन को एक प्रक्रिया (फ़ंक्शन) से या कई से कॉल किया जा सकता है। इस तरह आप प्रक्रिया की निष्पादन स्थिति को ट्रैक कर सकते हैं।

यदि आप अधिसूचना तंत्र पर करीब से नज़र डालना चाहते हैं, तो अभी रुकें और हमारा पढ़ें नया लेख 8.3.10 में लंबे समय से चल रहे संचालन की प्रगति प्रदर्शित करना। यह समझाता है, अब एक शुरुआत के स्तर पर नहीं, इस तंत्र के संचालन की सभी सूक्ष्मताएं और नुकसान।

हम उपयोगकर्ता को सूचित करने के तरीकों पर अपना परिचय समाप्त कर रहे हैं। हम आशा करते हैं कि आपको यह समझ आ गया होगा कि किन स्थितियों में इस या उस पद्धति का उपयोग किया जाना चाहिए।

मैं एक बार फिर आपका ध्यान इस तथ्य की ओर आकर्षित करना चाहूंगा कि यदि आपके कॉन्फ़िगरेशन (संस्करण 8.3.3+) में वेब क्लाइंट का उपयोग करके काम करना शामिल है, तो:

  • कॉन्फ़िगरेशन स्तर पर मॉडेलिटी मोड सेटिंग को "उपयोग न करें" पर सेट किया जाना चाहिए
  • कोड को एसिंक्रोनस उपयोगकर्ता इंटरैक्शन मॉडल के तरीकों का उपयोग करना चाहिए। ऐसे तरीकों की शुरुआत शब्दों से होती है दिखाओया शुरू.

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

यह आलेख नई कार्यक्षमता की घोषणा है.
नई कार्यक्षमता सीखने के लिए इस आलेख की सामग्री का उपयोग करने की अनुशंसा नहीं की जाती है।
पूर्ण विवरणसंबंधित संस्करण के लिए दस्तावेज़ में नई कार्यक्षमता प्रदान की जाएगी।
पूरी सूचीमें परिवर्तन नया संस्करण v8Update.htm फ़ाइल में प्रदान किया गया है।

संस्करण 8.3.11.2867 में लागू किया गया।

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

सबसे पहली बात। "सामान्य" आईटी सेवाओं के लिए यह समस्या मौजूद नहीं है। अनुभव वाले लोग व्यवहार में यह पता लगाते हैं कि अन्य कार्यों को टर्मिनल सर्वर पर डालना क्यों बुरा है और ऐसा नहीं करते हैं। लेकिन हम सभी भली-भांति समझते हैं कि छोटी कंपनियाँ होती हैं, और हमेशा कुछ ऐसे होते हैं जो अभी शुरुआत कर रहे होते हैं और इसलिए उनके पास यह अनुभव नहीं होता है। इसलिए, यह संभव है कि किसी और को भी यह स्पष्टीकरण साधारण लगे, लेकिन इस पर आवाज उठाने की जरूरत है।
आइए टर्मिनल को "दोनों" पक्षों पर अन्य सर्वर भूमिकाओं के साथ संयोजित करने पर विचार करें।

1. "संयोजन के लिए।"
मुख्य यथार्थी - करणभूमिकाओं के संयोजन का अर्थ है पैसे बचाना। और सटीक होने के लिए - ऑपरेशन की शुरुआत में बचत दिखाई दे रही है।
बेशक, कई समर्थक अन्य तर्क देते हैं। लेकिन एक नियम के रूप में, अंत में वे अभी भी सस्तेपन में "परिवर्तित" हो जाते हैं। वैसे, ऑपरेशन शुरू होने के बाद आगे क्या होगा, इस समय संयोजन के समर्थक अच्छी तरह से गणना नहीं कर रहे हैं - स्थिति सरल है - "हम किसी तरह से टूट जाएंगे।"

इससे पहले कि हम विरोधी पक्ष के तर्कों पर आगे बढ़ें, आइए सिद्धांत में थोड़ा गहराई से उतरें।

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

1. "विध्वंस के लिए।" यह पता चला है कि हमें न केवल भूमिकाओं के बीच भार को विनियमित करने के बारे में बात करने की ज़रूरत है। टर्मिनल उपयोगकर्ताओं के बीच लोड को विनियमित करने की आवश्यकता है। और यदि संख्या एक सर्वर के लिए उचित संख्या से अधिक है, तो उपयोगकर्ताओं को उनके बीच बिखेरते हुए कई टर्मिनल सर्वर बनाना आवश्यक है।
बिल्कुल एक सिद्धांत नहीं, बल्कि यह भी दिलचस्प तथ्य. हमारे अभ्यास से पता चला है (और हम प्रति वर्ष लगभग 100 ऑडिट करते हैं) कि 1C सर्वर के साथ संयुक्त होने पर टर्मिनल सर्वर का लोड चरम पर पहुंच जाता है, यह एक बहुत लोकप्रिय विकल्प है, और यह पता चला है कि टर्मिनल सर्वर की बिल्कुल भी निगरानी नहीं की जाती है या ऐसा किया जाता है। सशर्त रूप से, लेकिन सबसे महत्वपूर्ण बात यह है कि वे अन्य भूमिका सर्वर (इस मामले में 1C सर्वर) के काम को बहुत प्रभावित करते हैं। इसके अलावा, यह कोई सैद्धांतिक तर्क नहीं है - उन्होंने लोड को एक अलग सर्वर पर स्थानांतरित कर दिया और क्लाइंट ने सकारात्मक परिणाम की पुष्टि की।
2. "विध्वंस के लिए।" एक अन्य कारक लाइसेंसिंग है। उपयोगकर्ताओं की समान संख्या को ध्यान में रखते हुए (यह स्पष्ट है कि हम तीन लोगों के बारे में बात नहीं कर रहे हैं)। बड़ा अंतरमानक और उद्यम के बीच लागत के संदर्भ में, हार्डवेयर के एक शक्तिशाली टुकड़े की तुलना में कई सस्ते सर्वरों को पूल करना अधिक लाभदायक है। उदाहरण के लिए, यदि आप MS SQL सर्वर को लाइसेंस दे रहे हैं, तो आपको सर्वर के सभी कोर को लाइसेंस देने की आवश्यकता है, न कि उन कोर को जिन्हें आप उपयोग करने के लिए एफ़िनिटी मास्क निर्दिष्ट करते हैं। यह पता चला है कि आप उन उपयोगकर्ताओं के लिए अधिक भुगतान करेंगे जो टर्मिनल सत्र के साथ प्रोसेसर खाएंगे।

3. "विध्वंस के लिए।" असली तर्क सुरक्षा है. इसके अलावा, यह एक बहुआयामी चीज़ है। टर्मिनल सर्वर की सक्रिय रूप से एंटीवायरस से निगरानी की जानी चाहिए। यह ट्रोजन, रैंसमवेयर, क्रूर बल के हमलों आदि के लिए सबसे संभावित हमला बिंदु है। लेकिन स्थानीय स्तर पर 1सी सर्वर और डीबी की भूमिका वाले सर्वर में बिल्कुल भी लॉग इन न करना बेहतर है। बोर्ड कंसोल को दूसरे सर्वर से चलाना बेहतर है। एंटीवायरस के साथ सक्रिय रूप से 1C सर्वर की जाँच करें, उनके कनेक्शन - brrrr। आपको संभवतः इसका पछतावा होगा। और इससे भी अधिक, 1C सर्वर या डेटाबेस पर "फ़ाइल डंप" की व्यवस्था करना "पाप" है। हालाँकि, रूस में वे अभी तक चारा नहीं लेते हैं - वे सुरक्षा से निपटते नहीं हैं, इसलिए हम आगे बढ़ते हैं।

4. "विध्वंस के लिए।" आमतौर पर सर्वर खरीदते समय "संसाधनों के लिए प्रतिस्पर्धा की समस्याओं से कौन निपटेगा" के कार्य को गंभीरता से नहीं लिया जाता है। लेकिन व्यवहार में, आप अभी भी उन लोगों को समझ सकते हैं जो 1C सर्वर और डेटाबेस की भूमिका को "भौतिकी" पर रखते हैं, और उसके बगल में एक वर्चुअल मशीन डालते हैं और उसमें "टर्मिनल सर्वर" डालते हैं, इसलिए कम से कम टर्मिनल उपयोगकर्ताओं की प्राथमिकता कम होती है संसाधनों के संघर्ष में, और उन्हें कोटा देना आसान है। लेकिन यह स्पष्ट क्यों नहीं है कि कोटा निर्धारित करने के लिए, आपको यह समझने की आवश्यकता है कि किन मेट्रिक्स के आधार पर कौन से नियम लागू करने हैं। टर्मिनल उपयोगकर्ताओं के भार की गंभीरता से निगरानी कौन करता है? और जो कॉन्फ़िगर कर सकते हैं, उदाहरण के लिए, ज़ैबिक्स, अभी भी सही ढंग से एकत्रित मूल्यों की व्याख्या नहीं कर सकते हैं। दूसरे शब्दों में, आलस्य एक व्यवस्थापक का सामान्य लक्षण है, लेकिन आपको अपनी शक्तियों का सही आकलन करने की आवश्यकता है। भार को भौतिक रूप से अलग करना यह सोचने से कहीं अधिक यथार्थवादी है कि ऑपरेशन के दौरान आपको अचानक दूसरी हवा मिलेगी और गुप्त टिक मिलेंगे जो भार को सामान्य कर देंगे।
जहाजों के साथ सादृश्य लें। उनके पास "बल्कहेड्स" हैं ताकि जलरेखा के नीचे टूटने की स्थिति में, अंदर जाने वाला पानी जहाज की पूरी मात्रा में न फैले और बाढ़ न आए। यह सोचना नासमझी है कि जब यह टूटन होगी, तो आप यही विभाजन बनाना शुरू कर देंगे। इस गतिविधि के लिए आपके पास समय/धन/ज्ञान/इच्छा होने का कोई रास्ता नहीं है।

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

यदि आप सही काम करना चाहते हैं, तो अलग टर्मिनल पर पैसा खर्च करना बेहतर है।
ठीक है, यदि आप इस विषय में गहराई से उतरना चाहते हैं, तो हमारे प्रशिक्षण में आएं http://www..
यदि आप सामग्री से सहमत नहीं हैं, तो अपने तर्कों के साथ slava@site पर लिखें। हम उपरोक्त समीक्षा सामग्री में दोनों स्थितियों को शामिल करेंगे।

संसाधन उपभोग काउंटरों के तंत्र में सुधार किया गया है - उपयोग के आधार पर चयन करने की क्षमता लागू की गई है सुरक्षित मोडकार्य और सुरक्षा प्रोफ़ाइल (नए प्रकार के फ़िल्टर जोड़े गए)। संसाधन उपभोग प्रति चयन अभिव्यक्तियों के लिए, असमानता की तुलना करने की क्षमता लागू की गई है।संसाधन उपभोग काउंटर चयन अभिव्यक्तियों के लिए, एक फ़िल्टर प्रकार के लिए कई शर्तों को "और" संयोजित करने की क्षमता लागू की गई है।

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

इंटरफ़ेस 8.2 अब समर्थित नहीं है

निम्नलिखित मामलों में लेखांकन और संचय रजिस्टरों के लिए कुल योग की पूर्ण पुनर्गणना का समय कम कर दिया गया है:

  • ऑपरेशन के दौरान कुल योग की पुनर्गणना परीक्षण और फिक्सिंगविन्यासकर्ता से;
  • विधि का उपयोग करना पुनर्गणनाकुल()निम्नलिखित शर्तों के अधीन:
    • सूचना आधार तक विशेष पहुंच;
    • उस उपयोगकर्ता के लिए प्रशासनिक अधिकारों की उपस्थिति जिसकी ओर से परिणामों की पुनर्गणना की जाती है;
    • विधि को एक सत्र में निष्पादित किया जाता है जिसमें कोई सीमांकक का उपयोग नहीं किया जाता है।

Microsoft SQL सर्वर और IBM DB2 DBMS का उपयोग करते समय सूचना आधार का पुनर्गठन तेज हो गया है।

Microsoft SQL सर्वर से एक ही समय में कई कनेक्शन बंद होने की संभावना कम हो गई है, जिसका TempDB के साथ काम करने के प्रदर्शन पर सकारात्मक प्रभाव पड़ता है।

गणना रजिस्टर के लिए रजिस्ट्रार पर एक क्लस्टर इंडेक्स लागू किया गया है। जब गणना रजिस्टर को पुनर्गठित किया जाता है या परीक्षण और अद्यतन ऑपरेशन के दौरान पुन: अनुक्रमित किया जाता है, तो सूचकांक का पुनर्निर्माण किया जाएगा। यदि, वास्तविक वैधता अवधि तालिका से रिकॉर्ड हटाते समय, रजिस्टर आयामों द्वारा चयन सेट नहीं किया जाता है, तो एक कनेक्शन विलोपन अनुरोध के लिए मुख्य रजिस्टर तालिका नहीं बनाई गई है। गणना रजिस्टर की वास्तविक वैधता अवधि के रिकॉर्ड हटाते समय टेबल लॉक होने की संभावना कम हो गई।

पतले, मोटे और वेब क्लाइंट में, संशोधन ध्वज को हटाने के 1 मिनट बाद फॉर्म ऑब्जेक्ट को अनलॉक कर देता है (पहले इसे तब हटा दिया जाता था जब फॉर्म बंद हो जाता था) तकनीकी लॉग (इवेंट) में PostgreSQL DBMS के तहत काम करते समय। ) अद्यतन, हटाएं और सम्मिलित प्रश्नों के लिए क्वेरी योजनाएं रखी गई हैं। (पहले केवल SELECT था)

कॉन्फ़िगरेशनकर्ता और इवेंट में डेटाबेस कॉन्फ़िगरेशन को अपडेट करने के लिए अनुकूलित तंत्र की महत्वपूर्ण त्रुटियों का प्रदर्शन कार्यान्वित किया गया प्रौद्योगिकी पत्रिका.

प्रौद्योगिकी लॉग DBMS एक्सेस इवेंट (DB2, DBMSSQL, DBPOSTGRS, DBORACLE), EXCP और SDBL इवेंट के लिए Dbms, डेटाबेस, DBcopy गुणों को लागू करता है।

वर्ग: , | टैग: ,

PostgreSQL के साथ कार्य का अनुकूलन
संचय और लेखांकन रजिस्टरों के टर्नओवर की आभासी तालिकाओं के संचालन को दिन, महीने या वर्ष के अनुसार समूहीकरण का उपयोग करते समय, साथ ही क्वेरी भाषा फ़ंक्शन शुरुआती अवधि () का उपयोग करते समय अनुकूलित किया गया है। ऑप्टिमाइज़ेशन का उपयोग समर्थित DBMS के किसी भी संस्करण के लिए किया जाता है, Microsoft SQL सर्वर को छोड़कर, जहाँ ऑप्टिमाइज़ेशन संस्करण 2012 से प्रभावी है।

काउंटर से अधिक होने के तथ्य तकनीकी लॉग (घटना) में दर्ज किए गए हैं )

एक सत्र के दौरान सीपीयू उपयोग का मूल्यांकन करने की क्षमता लागू की गई:

  • वर्तमान सर्वर कॉल के लिए;
  • अंतिम 5 मिनट में;
  • सत्र की पूरी अवधि के लिए.

एक इवेंट के लिए CpuTime प्रॉपर्टी लागू की गई, जिसमें माइक्रोसेकंड में पूर्ण सर्वर कॉल की अवधि शामिल है।

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

नई क्वेरी डिज़ाइन. अद्वितीय (एक तालिका के भीतर) और क्रमिक रूप से बढ़ते मूल्यों के साथ एक फ़ील्ड बनाने की क्षमता लागू की गई है। क्वेरी भाषा सुविधा लागू की गई ऑटोनंबररिकॉर्ड(), जिसका उपयोग केवल अस्थायी तालिका बनाते समय किया जा सकता है, फ़ंक्शन का उपयोग समर्थित नहीं है ऑटोनंबररिकॉर्ड():

  • शीर्ष स्तर पर JOIN वाले प्रश्नों में;
  • उन प्रश्नों में जो अस्थायी तालिका नहीं बनाते हैं;
  • चयन सूची के बाहर;
  • भावों में.

वस्तु क्रियान्वित कॉन्स्टेंटकीवैल्यूज़.निरंतर प्रबंधक के लिए तरीके लागू किए गए हैं CreateKeyValue().

यदि क्वेरी सबक्वेरी के साथ ऑपरेटर बी का उपयोग करती है, तो सबक्वेरी के बजाय, ऑपरेटर बी में उपयोग की जाने वाली तालिका से कनेक्शन का उपयोग किया जाएगा। यह प्रतिस्थापन केवल तभी लागू किया जाता है यदि प्रतिस्थापन क्वेरी परिणाम को नहीं बदलता है। संस्करण 8.3.12 के साथ संगतता मोड में, व्यवहार नहीं बदला है।

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

पृष्ठभूमिकर्ता।
अब एक या अधिक पृष्ठभूमि कार्यों के एक निश्चित अवधि तक पूरा होने की प्रतीक्षा करना संभव है। कार्यान्वित विधिप्रतीक्षा पूर्ण निष्पादन()वस्तुओं के लिए नए कार्य के लिए और बैकग्राउंडटास्क मैनेजर. तरीका प्रतीक्षा पूर्ण()अप्रचलित माना जाता है और उपयोग के लिए अनुशंसित नहीं है।एप्लिकेशन समाधान का विश्लेषण करने और पृष्ठभूमि नौकरियों के साथ काम करने के लिए एल्गोरिदम को बदलने की अनुशंसा की जाती है।
अनुकूलित शुरुआत और पृष्ठभूमि कार्यों के पूरा होने की प्रतीक्षा करना

ग्राहक प्रारंभ.
क्लाइंट एप्लिकेशन प्रारंभ करते समय स्प्लैश स्क्रीन के डिस्प्ले को अक्षम करने की क्षमता लागू की गई। DisableSplash क्लाइंट एप्लिकेशन लॉन्च कमांड लाइन विकल्प लागू किया गया। विकल्प पतले क्लाइंट, मोटे क्लाइंट और वेब क्लाइंट के लिए उपलब्ध है।

वेब क्लाइंट में काम करते समय पृष्ठ शीर्षक (बुकमार्क) का प्रतिपादन अनुकूलित और त्वरित किया गया है।

प्रयुक्त पुस्तकालयों को अद्यतन करना

  • LibEtPan लाइब्रेरी को संस्करण 1.8 में अद्यतन किया गया है।
  • वेबसॉकेट लाइब्रेरी को संस्करण 0.7.0 में अद्यतन किया गया है।
  • SQL सर्वर के लिए Microsoft JDBC ड्राइवर को संस्करण 6.2 में अद्यतन किया गया है।
वर्ग: ,

कर्ल लाइब्रेरी को संस्करण 7.57.0 में अद्यतन किया गया है।
ओपनएसएसएल लाइब्रेरी को संस्करण 1.1.0एच में अद्यतन किया गया

पूर्ण-पाठ खोज का बेहतर अद्यतनीकरण: इन्फोबेस के क्लाइंट-सर्वर संस्करण में काम करते समय पूर्ण-पाठ खोज सूचकांक को अद्यतन करने वाली पृष्ठभूमि नौकरियों की संख्या को नियंत्रित करने की क्षमता लागू की गई है। पृष्ठभूमि पूर्ण-पाठ सूचकांक अद्यतन नौकरियों की नियुक्ति को कार्यक्षमता असाइनमेंट आवश्यकताओं के माध्यम से नियंत्रित किया जा सकता है।
पूर्ण-पाठ खोज प्रबंधक ऑब्जेक्ट के लिए, इंडेक्सिंग जॉब्स के सेटनंबर() और इंडेक्सिंग जॉब्स के गेटनंबर() तरीके लागू किए जाते हैं।

FTEXTUpd प्रौद्योगिकी लॉग ईवेंट के लिए, निम्नलिखित गुण लागू किए गए हैं: MinDataId, MemoryUsed, BackgroundJobCreated, JobCanceledByLoadLimit, totalJobsCount, FailedJobsCount।

क्लस्टर डायग्नोस्टिक्स में सुधार किया गया है: सत्र और कनेक्शन गुणों में अब ऐसे मान हैं जो सत्र या कनेक्शन की ओर से क्लस्टर सेवाओं पर कॉल करने में लगने वाले समय को दर्शाते हैं। ये मान सभी प्रशासन उपकरणों के लिए लागू किए गए हैं: क्लस्टर कंसोल, COM कनेक्शन, जावा भाषा से प्रशासन इंटरफ़ेस, प्रशासन सर्वर।
निम्नलिखित गुण IInfoBaseConnectionInfo और ISessionInfo ऑब्जेक्ट के लिए कार्यान्वित किए गए हैं:

periodCurrentService - क्लस्टर सेवा का वर्तमान परिचालन समय;
currentServiceName - निष्पादित की जा रही सेवा का नाम;
अवधिLast5MinService - पिछले 5 मिनट में क्लस्टर सेवाओं का संचालन समय;
periodAllService - सत्र या कनेक्शन की शुरुआत से क्लस्टर सेवाओं के संचालन की अवधि।
सत्रों की सूची, कनेक्शन की सूची और कनेक्शन गुण संवाद के लिए क्लस्टर कंसोल में समान गुण लागू किए जाते हैं।

सर्वर क्लस्टर कमांड लाइन उपयोगिता (आरएसी) के लिए, कनेक्शन सूची और सत्र सूची कमांड के पैरामीटर अवधि-वर्तमान-सेवा, वर्तमान-सेवा-नाम, अवधि-अंतिम-5 मिनट-सेवा और अवधि-सभी-सेवा लागू किए जाते हैं।

लिनक्स: लिनक्स ओएस पर चलने वाले क्लाइंट एप्लिकेशन को चलाने के लिए, वेबकिटजीटीके-3.0 लाइब्रेरी संस्करण 1.4.3 और पुराना इंस्टॉल होना चाहिए।

Microsoft SQL Server 2017 DBMS के लिए समर्थन लागू किया गया है

ओपनआईडी प्रमाणीकरण करने के लिए बाहरी प्रदाताओं का उपयोग करने की क्षमता लागू की गई है।

वर्ग: , | टैग:

नई कार्यक्षमता "इंटरैक्शन सिस्टम"

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

.

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

अब एक वेब ब्राउज़र से एक से अधिक वेब क्लाइंट सत्र लॉन्च करना संभव है।

PostgreSQL DBMS के साथ काम करते समय क्वेरी भाषा में एक स्ट्रिंग की शुरुआत से खोज की गति बढ़ गई है।

PostgreSQL DBMS के साथ काम करते समय, क्वेरी भाषा ऑपरेशन LIKE `TEXT%` को अधिक इष्टतम SQL क्वेरी ऑपरेशन में परिवर्तित किया गया है, संस्करण 8.3.10 के साथ संगतता मोड में, व्यवहार नहीं बदला है।

1C:एंटरप्राइज़ सर्वर साइड पर HTTPConnection और FTPConnection ऑब्जेक्ट का उपयोग करते समय बेहतर प्रदर्शन और स्केलेबिलिटी, जब विभिन्न सत्रों से एकाधिक कनेक्शन का उपयोग किया जाता है।

Microsoft SQL सर्वर DBMS का उपयोग करते समय अस्थायी तालिकाओं के साथ काम तेज हो गया है

निम्नलिखित संस्करण:

  • 2012, संस्करण 11.0.5548.0 और पुराना।
  • 2014, संस्करण 12.0.2430.0 और पुराना।
  • 2016.

1C:एंटरप्राइज़ सर्वर की गति तब बढ़ गई है जब बड़ी संख्या (हज़ारों) लाइनों वाले दस्तावेज़ों को एक साथ संसाधित किया जाता है।

PostgreSQL DBMS चलाने वाली बड़ी अस्थायी तालिकाओं के साथ कार्य को अनुकूलित किया गया है।

PostgreSQL और IBM DB2 DBMS में कुछ ऑपरेशन करते समय अस्थायी तालिकाओं से रिकॉर्ड हटाने के संचालन को अनुकूलित किया गया है।

Linux में स्पष्ट प्रदर्शन

लिनक्स ओएस के तहत चलते समय, वर्कफ़्लो पैरामीटर मेमोरी ऑक्यूपाइड की गणना वीएमआरएसएस (निवासी सेट आकार) मान के आधार पर की जाती है। मेमोरी अधिग्रहीत पैरामीटर का मान निरपेक्ष रूप से छोटा हो गया है और अधिक सटीक रूप से वास्तविकता से मेल खाता है, कार्यशील सर्वर के गुणों में कार्य प्रक्रियाओं को फिर से शुरू करने के लिए मापदंडों का पुनर्मूल्यांकन करने की सिफारिश की गई है।

डेटा वर्जनिंग के लिए प्लेटफ़ॉर्म विकल्प जोड़ा गया (ऑडिटिंग के लिए) https://wonderland.v8.1c.ru/blog/istoriya-dannykh/

वर्ग: , | टैग: ,

तकनीकी लॉग निम्न से संबंधित घटनाओं को दर्शाता है:

  • लाइसेंस प्राप्त करना और जारी करना (सॉफ़्टवेयर और HASP कुंजी दोनों);
  • मूल संस्करणों के लिए लाइसेंस प्राप्त करना;
  • वास्तविक उपकरणों के अनुपालन और लाइसेंस में दर्ज उपकरणों की सूची की नियमित निगरानी।

कार्यान्वित प्रक्रिया लॉग इवेंट .

प्रौद्योगिकी लॉग इवेंट एचएएसपी कुंजी से प्राप्त लाइसेंस की प्राप्ति और रिलीज को ट्रैक करने की क्षमता प्रदान किए बिना, एचएएसपी कुंजी (एचएएसपी के साथ काम करने के लिए इंटरफ़ेस पर कॉल) के साथ काम करने के केवल तकनीकी पहलुओं का विश्लेषण करने की क्षमता प्रदान करता है।

1सी:एंटरप्राइज़ सर्वर के माइक्रोसॉफ्ट एसक्यूएल सर्वर डीबीएमएस से पहले कनेक्शन के दौरान होने वाली घटनाओं की लॉगिंग एक तकनीकी लॉग में लागू की गई है। लॉगिंग एक इवेंट का उपयोग करके की जाती है .

यह परिवर्तन दस्तावेज़ीकरण में वर्णित है.

पृष्ठभूमि और नियमित कार्यों के निष्पादन इतिहास को संग्रहीत करने का दृष्टिकोण बदल दिया गया है। क्लाइंट-सर्वर संस्करण में, इतिहास को सूचना डेटाबेस के संदर्भ में संग्रहीत किया जाता है। प्रत्येक सूचना आधार के लिए, एक इतिहास संग्रहीत किया जाता है:

  • 1,000 तक पृष्ठभूमि नौकरियाँ, अंतर्निर्मित भाषा से निर्मित;
  • 1,000 तक नियमित कार्य;
  • 1,000 तक सिस्टम पृष्ठभूमि नौकरियां (सिस्टम द्वारा स्वयं उत्पन्न)।

प्रत्येक कार्य (पृष्ठभूमि, सिस्टम पृष्ठभूमि और शेड्यूल) के लिए कम से कम तीन सबसे हालिया रन के बारे में जानकारी संग्रहीत करने का प्रयास किया जाएगा। यदि किसी विशेष प्रकार के कार्य के लिए 1,000 रिकॉर्ड की सीमा पार हो जाती है तो यह संख्या (तीन रन) कम हो जाएगी।

वर्ग: , | टैग: , वर्ग: , | टैग: वर्ग: , | टैग: , वर्ग: ,

चयन क्षेत्र के विवरण में और क्वेरी परिणामों को फ़िल्टर करने के लिए अभिव्यक्तियों में तार्किक अभिव्यक्तियों का उपयोग करने की क्षमता (WHERE क्लॉज) लागू की गई है।

एटीटीएन प्रक्रिया लॉग इवेंट लागू किया गया है। मॉनिटरिंग कुछ क्लस्टर मापदंडों का विश्लेषण करती है और आपको समस्याग्रस्त प्रक्रियाओं को बलपूर्वक समाप्त करने की अनुमति देती है। मॉनिटरिंग क्लस्टर सेंट्रल सर्वर एजेंट द्वारा की जाती है। निगरानी के परिणाम तकनीकी लॉग में दर्ज किए जाते हैं।

तकनीकी लॉग में, SCALL और CALL इवेंट में, नए फ़ील्ड IName और MName लागू किए जाते हैं, जिनमें शामिल हैं अतिरिक्त जानकारीआंतरिक सिस्टम कॉल के बारे में. सहायता सेवा को भेजे गए अनुरोधों का विश्लेषण करते समय जानकारी का उपयोग 1C विशेषज्ञों द्वारा किया जा सकता है।

तकनीकी लॉग में पूर्ण-पाठ खोज सूचकांक अद्यतन संचालन का कार्यान्वयन। तकनीकी लॉग इवेंट FTEXTCheck और FTEXTUpd लागू किए गए हैं। Ftextupd प्रौद्योगिकी लॉग तत्व लागू किया गया है।

पर बड़ी मात्रा मेंउपयोगकर्ताओं को यह ऑपरेशन के पुराने तरीके से भी बदतर लग सकता है। पुराने रिकॉर्डिंग मोड पर लौटने के लिए - इसके लिए (1सी सर्वर बंद होने पर):

डेटाबेस फ़ोल्डर में खोजें (...\srvinfo\reg_ \) लॉग फ़ोल्डर (1Cv8Log),

1Cv8Log फ़ोल्डर में एक खाली फ़ाइल 1Cv8.lgf बनाएं।

प्रत्येक आधार के लिए इन चरणों को दोहराएँ।

लोड को कम करने के लिए, तकनीकी दस्तावेज की लॉगिंग के विवरण को कम करना उपयोगी है (उदाहरण के लिए, केवल त्रुटियाँ छोड़ें)
लॉग बुक को स्टोर करने के लिए इस्तेमाल किया जा सकता है

बड़े पैमाने के लिए नए प्रारूप की विफलता को 1C द्वारा इस तथ्य के रूप में मान्यता दी गई है कि संस्करण 8.3.12 के बाद से इंटरैक्टिव रूप से लॉग प्रारूप का चयन करना संभव है (यानी, अनुभवी लोग पुराने प्रारूप को चुनते हैं)।

शीर्षक: