गॅस्ट्रोइंटेस्टाइनल रोगांबद्दल

करण्यासाठी 1s 8.2 मध्ये निवडीसह निवड फॉर्म उघडा(नियमित फॉर्म), आम्हाला काही क्रिया करणे आवश्यक आहे. आम्ही ते प्रथम मिळवू. त्यानंतर, आम्ही निवड सेट करू आणि प्रोग्रामेटिकरित्या उघडू, येथे एक कोड उदाहरण आहे:

अनेक मूल्यांसह 1C 8.2 इनपुट फील्डमधील फॉर्मवर निवड

वरील उदाहरणात आपण पाहिले निवड फॉर्मवर निवड कशी सेट करावीविशिष्ट मूल्यानुसार. आता अशी परिस्थिती पाहू ज्यामध्ये तुम्हाला अनेक मूल्ये बदलण्याची आवश्यकता आहे, हे उदाहरणार्थ, ॲरे असू शकते किंवा क्वेरी परिणामातून अनलोड केले जाऊ शकते. ही 1c इनपुट फील्डमधील निवड आहेअनेक अर्थांसह.

प्रथम, आम्हाला निवड फॉर्म मिळेल, पॅरामीटर्समध्ये "एलिमेंट" (मालक) पास करा, निवड मोड ध्वज सेट करा. मग आम्ही मूल्यांची सूची आणि ॲरे तयार करतो, आम्ही लक्षात ठेवतो की सूचीमध्ये तुलना प्रकार सेट करताना निवड म्हणून, एखादी वस्तू केवळ प्रकारासह उपस्थित असू शकते. सूचीमूल्ये. आम्ही ॲरेमध्ये घटक जोडतो, त्यानंतर हा ॲरे मूल्यांच्या सूचीमध्ये लोड करतो, जो आम्ही नंतर निवडीमध्ये सेट करतो. तसेच, ही निवड वापरण्यासाठी ध्वज सक्षम करण्यास विसरू नका आणि तुलना प्रकार सेट करा.

1C 8.3 मध्ये फॉर्मवर इनपुट फील्डमध्ये निवड सेट करणे, निवड कार्यक्रमाची सुरुवात

आता विचार करूया 1C 8.3 मध्ये व्यवस्थापित फॉर्मवर इनपुट फील्डमध्ये निवड. आम्हाला स्वारस्य असलेला घटक फॉर्मवर शोधू या, ज्यामध्ये आम्ही निवड सेट करू, आमच्या बाबतीत हे "संस्था" फील्ड आहे. आम्हाला "स्टार्ट ऑफ सिलेक्शन" इव्हेंट सापडतो, भिंगावर क्लिक करा आणि प्रक्रियेत स्वतःला शोधू. आम्ही निवड डेटा पॅरामीटर पाहतो; हे पॅरामीटर व्हॅल्यूलिस्ट प्रकाराचे आहे. आवश्यक घटकांपर्यंत निवड मर्यादित करण्यासाठी, आम्हाला मूल्यांची सूची भरण्याची आवश्यकता आहे. आम्ही केवळ सर्व्हरवर घटक निवडू शकतो, म्हणून आम्ही &ऑनसर्व्हर संकलन निर्देशासह एक प्रक्रिया तयार करतो. या प्रक्रियेमध्ये, निवड डेटा भरा.

/
विकसक /
कोडिंग अधिवेशने

मेटाडेटा ऑब्जेक्ट्ससाठी निवड पर्याय आणि निवड पर्याय संघटना सेट करणे

1. नियमानुसार, व्यावसायिक तर्क निर्बंध जसे की निवड प्रतिबंध सर्व प्रकारांसाठी समान असणे आवश्यक आहे ज्यामध्ये विशिष्ट ऑब्जेक्ट संपादित केला जातो. म्हणून, मेटाडेटा ऑब्जेक्ट्सच्या गुणधर्मांमध्ये निवड पॅरामीटर्स आणि निवड पॅरामीटर्समधील कनेक्शन सेट करण्याची शिफारस केली जाते - निर्देशिका, दस्तऐवज इत्यादी तपशीलांमध्ये.

2. तथापि, अशी प्रकरणे असू शकतात जेव्हा निवड प्रतिबंध विशिष्ट ऑपरेटिंग परिस्थितीवर अवलंबून असू शकतात. अशा प्रकरणांमध्ये, निवड मापदंड विशिष्ट स्वरूपात, स्थानिक पातळीवर निर्दिष्ट केले जाऊ शकतात.

उदाहरणार्थ, कॉन्फिगरेशनमध्ये समाविष्ट आहे

  • निर्देशिका कर्मचारी, ज्यात तपशील आहेत संघटनाआणि कर्मचारी प्रकार(मूल्यांसह गणना बेसिक/अर्धवेळ);
  • दस्तऐवज रिसेप्शन ऑर्डर, ज्यामध्ये प्रॉप्स असतात संघटनाआणि कर्मचारी; त्याच वेळी प्रॉप्ससाठी कर्मचारीदस्तऐवज रिसेप्शन ऑर्डरनिवड पॅरामीटर कनेक्शन निर्दिष्ट केले आहे निवड.संस्थाप्रॉप्स सह संघटना.

फंक्शनल पर्यायाच्या मूल्यावर अवलंबून फक्त मुख्य कर्मचारी निवडण्याची क्षमता लागू करणे आवश्यक आहे फक्त कर्मचारी मूलभूत गोष्टी निवडा. यासाठी हे आवश्यक आहे

  • दस्तऐवजाच्या स्वरूपात रिसेप्शन ऑर्डरअतिरिक्त फॉर्म विशेषता लागू करा कर्मचाऱ्यांचे प्रकार,
  • नंतर फॉर्म फील्डसाठी कर्मचारीनिवड पॅरामीटर लिंक स्थापित केली जाऊ शकते निवड.कर्मचाऱ्याचा प्रकारफॉर्म तपशीलांसह कर्मचाऱ्यांचे प्रकार,
  • या प्रकरणात फॉर्म तपशील कर्मचाऱ्यांचे प्रकारकार्यात्मक पर्यायाच्या विश्लेषणावर आधारित भरले आहे.

(त्याच वेळी, प्रॉप्ससाठी सेट करा कर्मचारीदस्तऐवज रिसेप्शन ऑर्डरनिवड पॅरामीटरसाठी लिंक निवड.कर्मचाऱ्याचा प्रकारकोणतीही शक्यता नाही, कारण प्रॉप्स कर्मचारी प्रकारदस्तऐवजात रिसेप्शन ऑर्डरअस्तित्वात नाही.)

नंतर पॅरामीटरसाठी कनेक्शन सेट करा निवड.संस्थाप्रोप गुणधर्मांमध्ये कर्मचारीदस्तऐवज रिसेप्शन ऑर्डरआणि पॅरामीटरसाठी कनेक्शन निवड.कर्मचाऱ्याचा प्रकारदस्तऐवज फॉर्म फील्डमध्ये रिसेप्शन ऑर्डरमोडमध्ये वस्तुस्थितीकडे नेईल 1C: उद्यमदोन्ही निवड पॅरामीटर दुवे कार्य करतील. अशाप्रकारे, नियुक्ती ऑर्डर फॉर्ममध्ये कर्मचारी निवडताना, कर्मचाऱ्यांच्या यादीतील निवड दस्तऐवजात भरलेल्या संस्थेद्वारे आणि कर्मचा-यांच्या प्रकारानुसार निर्धारित केली जाईल, जी कार्यात्मक पर्यायाच्या आधारे निर्धारित केली जाईल.

शुभ दुपार.

आज आपण नवीन व्यवस्थापित इंटरफेसमध्ये निवड फॉर्म प्रोग्रामॅटिकरित्या कसे उघडायचे याबद्दल बोलू.

पूर्वी, "नियमित अनुप्रयोग" मध्ये आम्ही असे लिहिले:

form = Directory.nomenclature.GetSelectionForm();

परिणामनिवड = form.openModalNO();

या ऑपरेटर्समध्ये आम्ही फॉर्मचे गुणधर्म बदलू शकतो, उदाहरणार्थ, निवड सेट करा. आम्ही नावाने विशिष्ट फॉर्म निर्दिष्ट करू शकतो. ते बिंदूद्वारे त्यांच्या नावाने फॉर्ममधील घटकांच्या गुणधर्मांमध्ये प्रवेश करून त्याचे स्वरूप बदलू शकतात (फॉर्म. बटण1. दृश्यमानता = असत्य;)

आता आमच्याकडे व्यवस्थापित इंटरफेस आहे आणि येथे सर्वकाही वेगळे आहे. कोड सर्व्हर आणि क्लायंट भागांमध्ये विभागण्यात समस्या आहे. आम्ही केवळ सर्व्हरवर ऑब्जेक्ट्स आणि त्यांच्या मेटाडेटामध्ये प्रवेश करू शकतो आणि आम्हाला क्लायंटवर फॉर्म उघडणे आवश्यक आहे.

चला तर मग सुरुवात करूया.

1. सर्वात सोपा केस म्हणजे जेव्हा आम्हाला निवड व्यवस्थापित करण्याची आवश्यकता नसते (निवड सेट अप करा, उघडलेल्या निवड फॉर्ममध्ये पॅरामीटर्स पास करा).

फॉर्म फक्त क्लायंटवरच उघडता येत असल्याने, हा क्लायंट-साइड कोडचा भाग असेल. आपण फंक्शन वापरू EnterValue(<Значение>, <Подсказка>, <Тип>) . खरं तर, तिच्या वर्णनावरून सर्व काही स्पष्ट आहे. वापरकर्त्याने निवड केली आहे की नाही हे ध्वज परत करते प्रकार

येथे वापराचे एक उदाहरण आहे:

व्हेरिएबल SelectTMC;

ArrayTypes = नवीन ॲरे;

Description ofTypesTMC = NewDescriptionofTypes(Array);

जर EnterValue(इन्व्हेंटरी निवडा, "आयटम निवडा", इन्व्हेंटरी प्रकारांचे वर्णन) तर

// निवडलेल्या मूल्यावर प्रक्रिया करत आहे

endIf;

मी जोडतो की आम्ही आमच्या कंटेनर व्हेरिएबलला निवडण्यापूर्वी कोणतेही मूल्य नियुक्त केले तर ते डीफॉल्ट मूल्य असेल. या प्रकरणात, आपल्याला प्रकारांची श्रेणी तयार करण्याची आवश्यकता नाही; प्रकार कंटेनरमध्ये असलेल्या मूल्यातून घेतला जाईल.

2. काहीवेळा, मूल्य निवडण्यापूर्वी, आपल्याला काही निवडी आणि निवड पॅरामीटर्स सेट करणे आवश्यक आहे. उदाहरणार्थ, आम्हाला प्रतिपक्ष करार निवडण्याची आवश्यकता आहे. पहिली पद्धत आमच्यासाठी सर्व कागदपत्रे उघडेल, परंतु आम्हाला मालकाद्वारे निवडण्याची आवश्यकता आहे.

फॉर्म उघडण्यासाठी दोन पद्धती आहेत: ओपनफॉर्मआणि OpenFormModal. पहिल्या पद्धतीमध्ये, आम्ही फॉर्म उघडू आणि कोडचा तुकडा ज्यामधून आम्ही फॉर्म उघडला आहे तो निवडीचा परिणाम प्राप्त केल्याशिवाय कार्यान्वित करणे सुरू राहील. निवड परिणाम, कॉल पद्धतीवर अवलंबून, एकतर इनपुट फील्डमध्ये ठेवला जाईल किंवा पूर्वनिर्धारित प्रक्रिया "निवड प्रक्रिया" मध्ये प्राप्त होईल.

आमच्या बाबतीत, आम्ही निवडलेले मूल्य एका विशिष्ट व्हेरिएबलमध्ये मिळवणे आवश्यक आहे आणि इतर प्रक्रियांवर नियंत्रण हस्तांतरित न करता, निवडलेले मूल्य विचारात घेऊन प्रक्रिया करणे आवश्यक आहे. त्यामुळे ते आम्हाला अनुकूल होईल OpenFormModal.

मी लगेच आरक्षण करेन की वेब इंटरफेससाठी हा एक वाईट मार्ग आहे, कारण... मॉडेल विंडो नवीन ब्राउझर विंडोमध्ये उघडतात जी सहसा ब्लॉक केली जाते. परंतु जर तुम्ही वापरकर्त्याला काय आहे ते आधीच समजावून सांगितले तर मला वाटते की तो या समस्येचा सामना करेल))

तर, प्रक्रियेचे वर्णन पाहू या, त्यात 4 पॅरामीटर्स आहेत. प्रथम, आम्ही "निर्देशिका. कंत्राटदारांचे करार. निवड फॉर्म" फॉर्मच्या पूर्ण मार्गासह एक ओळ सूचित करतो. दुसऱ्यामध्ये, आम्ही निवड पॅरामीटर्स सूचित करतो, त्यांच्याबद्दल खाली अधिक. तिसऱ्या मध्ये - मालक, हा एक फॉर्म किंवा निवड फील्ड आहे जो निवडीचा परिणाम प्राप्त करेल, आम्ही ते भरत नाही. चौथा पॅरामीटर देखील आमच्या बाबतीत वापरला जात नाही.

तर, सोप्या निवडीसाठी, खालील ओळ करेल:

&ऑनक्लायंट

प्रक्रिया आदेश1(आदेश)

res = OpenFormModal("निर्देशिका. कॉन्ट्रॅक्टर्सचे कॉन्ट्रॅक्ट्स. सिलेक्शन फॉर्म");

प्रक्रिया समाप्त

परंतु ही पद्धत क्रमांक 1 चे संपूर्ण ॲनालॉग आहे आणि आम्ही मालकाद्वारे निवडल्याशिवाय सर्व करार निवडण्यासाठी एक फॉर्म पाहू. त्या. निवड फॉर्मचे नाव निर्दिष्ट करायचे असल्यासच हे केले जाऊ शकते.

निवड सेट करण्यासाठी, दुसरा पॅरामीटर आम्हाला मदत करेल.

दुसरा पॅरामीटर "स्ट्रक्चर" प्रकाराचा आहे. रचना घटक म्हणून, तुम्ही निवड फॉर्मच्या "पॅरामीटर्स" टॅबवर जोडलेले फॉर्म पॅरामीटर्स निर्दिष्ट करू शकता. त्यांच्या प्रक्रियेचे वर्णन प्रक्रियेत केले पाहिजे ऑनसर्व्हर तयार केल्यावरनिवड फॉर्म मॉड्यूलमध्ये. हे आपल्यासाठी चांगले नाही, कारण... मला कॉन्फिगरेशन सुधारण्याची आवश्यकता आहे. तुम्ही पॅरामीटर स्ट्रक्चरमधील "निवड" की सह निवड रचना देखील पास करू शकता. नंतर निवड संरचनेतील सर्व फील्ड घटकांची सूची निवडण्यासाठी वापरली जातील आणि वापरकर्त्यास पाहण्यासाठी किंवा बदलण्यासाठी उपलब्ध नसतील.

माझ्या उदाहरणात, मी प्रोसेसिंगमध्ये निवड फील्ड काढले आहे जे प्रोसेसिंग फॉर्म गुणधर्माचा संदर्भ देते "प्रतिपक्ष"डेटा प्रकार सह " DirectoryLink.Counterparties". आणि कोडचा खालील भाग लिहिला:

&ऑनक्लायंट

प्रक्रिया आदेश1(आदेश)

निवड = नवीन रचना ("मालक", प्रतिपक्ष);

सिलेक्शन पॅरामीटर्स = नवीन संरचना ("निवड", निवड);

res = OpenFormModal("निर्देशिका. कंत्राटदारांचे करार. निवड फॉर्म", निवड मापदंड);

प्रक्रिया समाप्त

बहुतेक समस्यांचे निराकरण करण्यासाठी हे सहसा पुरेसे असते आणि कोणत्याही कॉन्फिगरेशन हस्तक्षेपाची आवश्यकता नसते. तथापि, “When CreatedOnServer” प्रक्रियेतील निवड फॉर्ममध्ये, तुमची निवड गमावली जाऊ शकते. म्हणून, ही पद्धत वापरण्यापूर्वी, तुम्ही उघडलेल्या निवड फॉर्ममध्ये या प्रक्रियेचे पुनरावलोकन करा. तिथले कुटिल डेव्हलपर सहजपणे त्यांची निवड "बाय डिफॉल्ट" सेट करू शकतात, निवड सुरुवातीच्या पॅरामीटर्समध्ये पास झाली आहे हे तपासायला विसरतात.

आजसाठी एवढेच आहे, तुमचे लक्ष दिल्याबद्दल धन्यवाद.



तुम्हाला एरर दिसल्यास, मजकूराचा तुकडा निवडा आणि Ctrl+Enter दाबा
सामायिक करा: