नवीनतम लेख
घर / स्थापना / 1c चयन प्रपत्र के लिए पैरामीटर पास करें। प्रबंधित और नियमित रूपों में पैरामीटर पास करना। एक चुनिंदा फॉर्म कैसे खोलें और फिर चयनित मूल्य कैसे प्राप्त करें

1c चयन प्रपत्र के लिए पैरामीटर पास करें। प्रबंधित और नियमित रूपों में पैरामीटर पास करना। एक चुनिंदा फॉर्म कैसे खोलें और फिर चयनित मूल्य कैसे प्राप्त करें

प्रिंट (Ctrl+P)

फॉर्म विकल्प

1. सामान्य जानकारी

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

// कॉल साइट पर।
// फॉर्म पैरामीटर बनाएं.
पैरामीटर्स = नई संरचना ();
विकल्प। चिपकाएँ("महत्त्व", पूर्वनिर्धारित मूल्य("गणना। महत्व। महत्वपूर्ण"));
// पैरामीटर के साथ फॉर्म खोलें।
ओपनफॉर्म ("जनरलफॉर्म। व्यूफॉर्म", पैरामीटर्स);

// फॉर्म मॉड्यूल में।
सर्वर पर
प्रक्रिया ऑनक्रेटऑनसेवर (विफलता, मानक प्रसंस्करण)
यदि एक पैरामीटर्स।महत्व = Enums.महत्व.महत्वपूर्णओह फिर

अगर अंत;
अंतिम प्रक्रिया

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

2. मानक प्रपत्र विकल्प

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

3. फॉर्म पैरामीटर के साथ काम करने का एक उदाहरण

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

&एट क्लाइंट
प्रक्रिया SelectedItemSelectionStart(आइटम, StandardProcessing)
मानक प्रसंस्करण= झूठा;
विकल्प विकल्प= नई संरचना;
चयन पैरामीटर। सम्मिलित करें("सिलेक्शनमोड", ट्रू);
चयन पैरामीटर। सम्मिलित करें("ग्रुप्सएंडआइटम्स का चयन करें", GroupsAndItems.Items का उपयोग करना);
चयन पैरामीटर। सम्मिलित करें("अनुमति देंरूट चयन", गलत);
चयन पैरामीटर। सम्मिलित करें("करंटलाइन", ऑब्जेक्ट। चयनित आइटम);
चयन पैरामीटर। सम्मिलित करें("क्लोज आफ्टर सिलेक्शन", गलत);
ओपनफॉर्म ("कैटलॉग। उत्पाद। चॉइसफॉर्म", विकल्प विकल्प, आइटम। चयनित उत्पाद);
अंतिम प्रक्रिया
हमें OpenForm() पद्धति के तीसरे पैरामीटर पर अलग से ध्यान देना चाहिए। यह पैरामीटर निर्धारित करता है कि चयन प्रपत्र का स्वामी कौन होगा और किए गए चयन के बारे में किसे सूचित किया जाएगा। पर ये मामलाहमने फॉर्म तत्व को चयन फॉर्म के मालिक के रूप में ही निर्दिष्ट किया है, लेकिन हम इस पैरामीटर के साथ फॉर्म को भी निर्दिष्ट कर सकते हैं। इस मामले में, हैंडलर को लागू करना आवश्यक होगा हैंडलिंग चॉइसफॉर्म मॉड्यूल और उसमें तय करें कि चयनित डेटा को किस फॉर्म विशेषता में रखा जाए।
टिप्पणी. यदि हम ईवेंट हैंडलर StartChoice को लागू नहीं करते हैं, तो सिस्टम स्वयं अपने कार्यों को करेगा। उदाहरण में उपयोग किए जाने वाले सभी आगे के हैंडलर के लिए यह सच है।
अब हमें पारित मापदंडों को चुनिंदा रूप में संसाधित करने की आवश्यकता है। चलो इसे हैंडलर में करते हैं ऑनक्रिएटऑनसर्वर() सेलेक्ट फॉर्म मॉड्यूल का।

सर्वर पर
प्रक्रिया ऑनक्रेटऑनसेवर(विफलता, मानक प्रसंस्करण)
मानक प्रसंस्करण= झूठा;
Elements.List.SelectGroupsAndItems = Parameters.SelectGroupsAndItems;
Elements.List.AllowSelectRoot = Parameters.AllowSelectRoot;
Items.List.CurrentRow = Parameters.CurrentRow;
CloseOnSelection = Parameters.CloseAfterSelection;
अंतिम प्रक्रिया
हमारे द्वारा निर्धारित प्रपत्र मापदंडों के प्रदर्शन की जांच करने के लिए, हम विन्यासकर्ता का उपयोग करके चयन प्रपत्र तालिका की सूची संपत्ति सेट करेंगे। समूह और आइटम चुनेंसमूह मान के लिए (पैरामीटर लागू किए बिना, शब्दकोश तत्वों का चयन उपलब्ध नहीं होगा)।
टिप्पणी. यदि सूची तालिका, जो उत्पादों की सूची प्रदर्शित करती है, में SelectionMode गुण True पर सेट नहीं है, तो उत्पादों का चयन उपलब्ध नहीं होगा।
अब हमें चयन प्रपत्र में वांछित वस्तु के चयन को संभालने की आवश्यकता है। ऐसा करने के लिए, आपको प्रपत्र तालिका के SelectValues ​​ईवेंट के लिए ईवेंट हैंडलर को परिभाषित करने की आवश्यकता है।

&एट क्लाइंट
प्रक्रिया सूची चयन मूल्य (आइटम, मानक प्रसंस्करण, मूल्य)
मानक प्रसंस्करण= झूठा;
चयन को सूचित करें (मान));
अंतिम प्रक्रिया
यह हमारे लिए इनपुट क्षेत्र में ही किसी तत्व के चयन की प्रक्रिया को लागू करना बाकी है। ऐसा करने के लिए, आपको ईवेंट को संभालने की आवश्यकता है हैंडलिंग चॉइसहमारे इनपुट क्षेत्र चयनित उत्पाद।

&एट क्लाइंट
प्रक्रिया SelectedItemProcessingChoice(आइटम, SelectedValue, StandardProcessing)
मानक प्रसंस्करण= झूठा;
Object.SelectedItem = SelectedValue;
अंतिम प्रक्रिया
हमने फॉर्म पर इनपुट क्षेत्र में एक मूल्य का चयन करने के लिए स्वतंत्र रूप से एक सिस्टम तंत्र लागू किया है।
ध्यान!यह उदाहरण पूरा नहीं है। इसका एकमात्र उद्देश्य प्रपत्र मापदंडों के साथ काम करने के यांत्रिकी को प्रदर्शित करना है।
यदि पैरामीटर बनाते समय (हैंडलर चयनितआइटमचयनप्रारंभ()) लाइन को बदलें:

चयन पैरामीटर। सम्मिलित करें("क्लोज आफ्टर सिलेक्शन", ट्रू );
लाइन के लिए:
चयन पैरामीटर। सम्मिलित करें("क्लोज आफ्टर सिलेक्शन", गलत);
तो चयन होने के बाद चयन फॉर्म बंद होना बंद हो जाएगा। इसका उपयोग, उदाहरण के लिए, चयन फॉर्म को लागू करने के लिए किया जा सकता है (चयन फॉर्म को बंद किए बिना कई उत्पादों का चयन करना)।

प्रपत्रों के बीच स्वचालित अंतःक्रिया का समर्थन करने के लिए, सिस्टम कई मानक विकल्प प्रदान करता है जिनका उपयोग प्रपत्रों को खोले जाने पर नियंत्रित करने के लिए किया जाता है। इन मापदंडों की मदद से, सिस्टम फॉर्म फ़ील्ड में चयन फॉर्म से चयन, ऑब्जेक्ट फॉर्म का उद्घाटन, मानक कमांड के संचालन आदि को लागू करता है, अर्थात, वे सिस्टम में एम्बेडेड विभिन्न इंटरफ़ेस ऑपरेशन परिदृश्य प्रदान करते हैं। लेकिन डेवलपर इन मापदंडों का उपयोग 1C:Enterprise भाषा में OpenForm() विधि को कॉल करते समय पास करके भी कर सकता है।

हम सिस्टम द्वारा प्रदान किए गए मापदंडों और उनके उद्देश्य को सूचीबद्ध करते हैं:

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

प्रपत्र मापदंडों के साथ काम करने का उदाहरण

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

जब तक आप उदाहरण के साथ काम करना शुरू करते हैं, तब तक आपके पास एक कॉन्फ़िगरेशन होना चाहिए जिसमें निम्नलिखित गुण हों:

  • मुख्य लॉन्च मोड प्रबंधित एप्लिकेशन है;
  • समूहों और तत्वों के पदानुक्रम के साथ एक माल निर्देशिका है;
  • एक निर्देशिका एनालॉग है जिसमें DirectoryReference.Goods प्रकार की विशेषता SelectedItem है;
  • दोनों संदर्भ पुस्तकों में आइटम प्रपत्र प्रबंधित हैं।

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

आइए एक अतिरिक्त ध्वज जोड़ें जो किसी तत्व के चयन के बाद चयन प्रपत्र के समापन को नियंत्रित करेगा। आइए इस ध्वज को CloseAfterSelection (बूलियन प्रकार) कहते हैं। चलिए इसे Goods Directory Selection Form के फॉर्म पैरामीटर के रूप में जोड़ते हैं।

एलिमेंट सिलेक्शन फॉर्म को खोलने के लिए, एनालॉग्स कैटलॉग एलिमेंट फॉर्म में SelectedItem फॉर्म एलिमेंट के लिए SelectStart इवेंट के लिए इवेंट हैंडलर बनाना आवश्यक है:

&एट क्लाइंट

प्रक्रिया चयनित आइटम चयन प्रारंभ (आइटम, मानक प्रसंस्करण)

मानक प्रसंस्करण = गलत;

चॉइस पैरामीटर = नई संरचना; चयन पैरामीटर। सम्मिलित करें ("चयनमोड", सत्य); SelectionParameters.Insert("SelectGroupsAndItems", UseGroupsAndItems.Elements); SelectionParameters.Insert("AllowRootSelection", False); चॉइस पैरामीटर। सम्मिलित करें ("वर्तमान पंक्ति", ऑब्जेक्ट। चयनित इटैम); चयन पैरामीटर। सम्मिलित करें ("क्लोज आफ्टर चयन", गलत); ओपनफॉर्म ("कैटलॉग। प्रोडक्ट्स। चॉइसफॉर्म", चॉइस पैरामीटर्स, एलिमेंट्स। सेलेक्टेड प्रोडक्ट);

अंतिम प्रक्रिया

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

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

गेटफॉर्म ()। खुला हुआ()

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

फॉर्म = गेटफॉर्म ( "दस्तावेज़। माल और सेवाओं की प्राप्ति। दस्तावेज़ प्रपत्र") ;
// यहां हम फॉर्म के साथ क्रियाएं करते हैं
फार्म। खुला हुआ() ;

यह ध्यान में रखा जाना चाहिए कि फॉर्म प्राप्त होने पर, एक और घटना प्रक्रिया की जाएगी ऑनक्रेटऑनसर्वर।

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

1. किसी प्रबंधित एप्लिकेशन में किसी ऑब्जेक्ट के फॉर्म को कैसे खोलें, यदि इसका कोई लिंक है।

इस मामले में, सब कुछ बेहद सरल है।

संदर्भ = संदर्भ। नामपद्धति। FindByCode ("000000001");
ओपनवैल्यू (संदर्भ संदर्भ);

2. चयन प्रपत्र कैसे खोलें और फिर चयनित मान प्राप्त करें।

इसके लिए एक समारोह है एंटरवैल्यू ()।फ़ंक्शन में 3 पैरामीटर हैं:

  • वेरिएबल जिसमें चयनित मान लिखा जाएगा;
  • संकेत जो चयन बॉक्स में प्रदर्शित किया जाएगा;
  • चयनित मूल्यों के प्रकारों का विवरण। कई प्रकार हो सकते हैं, फिर एक विशिष्ट मान चुनने से पहले, आपको एक प्रकार का चयन करने के लिए प्रेरित किया जाएगा।

फ़ंक्शन निष्पादन के परिणामस्वरूप, निर्दिष्ट प्रकार की वस्तु के लिए डिफ़ॉल्ट चयन प्रपत्र खुल जाएगा।

परिवर्तनीय मूल्य;
ऐरे = नई सरणी;
सरणी। जोड़ें(प्रकार( "DirectoryLink.Nomenclature") ) ;
सरणी। जोड़ें(प्रकार( "निर्देशिका लिंक। प्रतिपक्ष") ) ;

टाइप डिस्क्रिप्शन = नया टाइप डिस्क्रिप्शन (ऐरे);

रेस = एंटरवैल्यू (मान, "संकेत", टाइपडिस्क्रिप्शन);

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

इस फ़ंक्शन में काफी कुछ पैरामीटर हैं। आइए उनमें से कुछ पर विचार करें:

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

आइए देखें कि फ़ंक्शन का उपयोग कैसे किया जाता है ओपनफॉर्म ()विभिन्न स्थितियों में।

3. किसी मौजूदा ऑब्जेक्ट का फॉर्म कैसे खोलें

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

&एट क्लाइंट
प्रक्रिया कमांड1 (कमांड)
पैरामीटर = नई संरचना;
पैरामीटर। सम्मिलित करें ("कुंजी", FindC ());
ओपनफॉर्म (, पैरामीटर);
अंतिम प्रक्रिया

सर्वर पर
फाइंडसी () फ़ंक्शन;
हैंडबुक लौटाएं। प्रतिपक्ष। FindByAttribute ("टिन", "745107734623")
अंतिम कार्य

4. नई वस्तु का रूप कैसे खोलें

यह सिर्फ एक समारोह है ओपनफॉर्म ()बिना किसी पैरामीटर के।

&एट क्लाइंट
प्रक्रिया कमांड1 (कमांड)
ओपनफॉर्म( "संदर्भ पुस्तक। प्रतिपक्ष। वस्तु प्रपत्र") ;
अंतिम प्रक्रिया

5. नया ऑब्जेक्ट फॉर्म कैसे खोलें और किसी चीज़ के आधार पर उसे भरें

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

&एट क्लाइंट
प्रक्रिया कमांड1 (कमांड)
पैरामीटर = नई संरचना;
पैरामीटर। सम्मिलित करें ("कारण", LinkToAccountToBuyer);
ओपनफॉर्म( "दस्तावेज़। माल और सेवाओं की प्राप्ति। वस्तु प्रपत्र", पैरामीटर);
अंतिम प्रक्रिया

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

6. किसी फॉर्म को कैसे खोलें और उस पर सिलेक्शन कैसे सेट करें?

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

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

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

&एट क्लाइंट
प्रक्रिया कमांड1 (कमांड)
पैरामीटर = नई संरचना;

चयन = नई संरचना;
चयन। सम्मिलित करें ("स्वामी", LinkToNomenclature);

पैरामीटर। सम्मिलित करें ("चयन", चयन);

ओपनफॉर्म( "Directory.GTE Numbers.List Form", पैरामीटर);
अंतिम प्रक्रिया

7. इंफॉर्मेशन रजिस्टर एंट्री फॉर्म कैसे खोलें

ऐसा करने के लिए, आपको सूचना रजिस्टर की एक रिकॉर्ड कुंजी की आवश्यकता है।

रिकॉर्ड कुंजीसभी मापों और अवधि के मान हैं (यदि रजिस्टर आवधिक है)। यानी रिकॉर्ड की कुंजी वे पैरामीटर हैं जिनके द्वारा रिकॉर्ड को विशिष्ट रूप से पहचाना जा सकता है।

उद्घाटन एल्गोरिथ्म इस प्रकार है:

  1. हम संरचना में आवश्यक मूल्यों के साथ रिकॉर्ड कुंजी डेटा दर्ज करते हैं।
  2. हम परिणामी संरचना को एक सरणी में रखते हैं।
  3. सरणी से हम रिकॉर्ड कुंजी बनाते हैं।
  4. खोले गए फॉर्म में पैरामीटर पास करना चाभीमूल्य के रूप में आइटम 3 से रिकॉर्ड कुंजी के साथ।

&एट क्लाइंट
प्रक्रिया कमांड1 (कमांड)
पैरामीटर = नई संरचना;

KeyParameters = नई संरचना;
मुख्य पैरामीटर। सम्मिलित करें ("नामकरण", LinkToNomenclature);
मुख्य पैरामीटर। सम्मिलित करें ("मूल्य प्रकार", LinkToPriceType);
मुख्य पैरामीटर। सम्मिलित करें ("अवधि", दिनांक);

ऐरेकी = नया ऐरे;
ऐरेकी। जोड़ें (कुंजी पैरामीटर);

रिकॉर्डकी = नया ( "सूचना RegisterRecordKey.NomenclaturePrices", ऐरेकी);

पैरामीटर। सम्मिलित करें ("कुंजी", रिकॉर्डकी);

ओपनफॉर्म( "सूचना रजिस्टर। नामकरण मूल्य। रिकॉर्ड फॉर्म", पैरामीटर);
अंतिम प्रक्रिया

यह आलेख वर्णन करता है कि किसी प्रबंधित प्रपत्र 8.2 को खोलते समय एक पैरामीटर के रूप में एक मान को पैरामीटर के रूप में कैसे पास किया जाए, इसकी तुलना में कि एक समान कार्रवाई को नियमित प्रपत्रों में कैसे कार्यान्वित किया जा सकता है।

सामान्य रूपों में पैरामीटर कैसे पारित किए जाते हैं

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

दोनों ही मामलों में, फॉर्म कॉल कुछ इस तरह दिखी:

फॉर्म = ऑब्जेक्ट। गेटफॉर्म ("चॉइसफॉर्म", फॉर्मओनर, यूनिकके);
फॉर्म.पैरामीटर = पैरामीटरवैल्यू;
फॉर्म। ओपन ();

प्रबंधित रूपों में पैरामीटर कैसे पारित किए जाते हैं

प्रबंधित प्रपत्रों में अब प्रपत्र प्राप्त होने पर तुरंत पैरामीटर पास करने की क्षमता होती है. पैरामीटर एक संरचना के रूप में पारित कर रहे हैं:

पैरामीटर्स = नई संरचना ("करंटवैल्यू", लास्टआइटम);
चॉइसफॉर्म = गेटफॉर्म ("कैटलॉग। नामकरण। चॉइसफॉर्म", पैरामीटर);
FoundItem = ChoiceForm.OpenModal ();

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

डेवलपर के पास अपने स्वयं के मापदंडों को परिभाषित करने का अवसर भी होता है (प्रबंधित प्रपत्र निर्माता में, "पैरामीटर" टैब)। मापदंडों का जीवनकाल OnCreateOnServer हैंडलर द्वारा सीमित है, जो तार्किक है क्योंकि पैरामीटर केवल प्रपत्र बनाते समय आवश्यक होते हैं, लेकिन यदि यह पैरामीटर प्रपत्र की विशिष्टता को निर्धारित करता है ("कुंजी पैरामीटर" ध्वज पैरामीटर गुणों में सेट है), तो यह अन्य हैंडलर में उपलब्ध होगा।

एक विशिष्ट हेरफेर पैरामीटर पास करने के लिए, आपको कुछ और करने की आवश्यकता है:

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

पैरामीटर्स = नई संरचना ("न्यू पैरामीटर", लास्ट एलीमेंट);
चॉइसफॉर्म = गेटफॉर्म ("कैटलॉग। नामकरण। चॉइसफॉर्म", पैरामीटर);

एक प्रबंधित प्रपत्र मॉड्यूल में

सर्वर पर
क्रिएशनऑनसर्वर पर प्रक्रिया (विफलता, मानक प्रसंस्करण)
यदि Parameters.Property("NewParameter") तब
// पैरामीटर प्रोसेसिंग कोड यहाँ
अगर अंत;
अंतिम प्रक्रिया

निष्कर्ष

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

[लिंक देखने के लिए आपको पंजीकरण करना होगा]