1s 8.3 प्रसंस्करण प्रपत्र प्रबंधित एप्लिकेशन खोलें। बाहरी प्रोसेसिंग को इन्फोबेस से अलग डिस्क पर संग्रहीत किया जाता है

इस लेख में, हम प्रबंधित एप्लिकेशन मोड में 1C 8.3 में बाहरी प्रसंस्करण बनाने के लिए चरण-दर-चरण निर्देशों पर विचार करेंगे; तदनुसार, हम प्रबंधित प्रपत्रों का उपयोग करेंगे। और सबसे महत्वपूर्ण बात, हम सीखेंगे कि इसे मानक सबसिस्टम संस्करण 2.0 और नए की लाइब्रेरी पर निर्मित 1C कॉन्फ़िगरेशन के "बाहरी प्रसंस्करण" के तंत्र से कैसे जोड़ा जाए।

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

ऐसा करने के लिए, हम तुरंत प्रोग्राम में आवश्यक सेटिंग्स करेंगे (हम 1C 8.3 कॉन्फ़िगरेशन पर विचार कर रहे हैं: प्रबंधित प्रपत्रों पर "एंटरप्राइज़ अकाउंटिंग 3.0")।

इस बॉक्स को चेक करने से हमें बाहरी प्रोसेसिंग का उपयोग करने का अवसर मिलता है।

एक उदाहरण का उपयोग करके 1C 8.3 में एक नया बाहरी प्रसंस्करण बनाना

अब कॉन्फिगरेटर पर चलते हैं। "फ़ाइल" मेनू में, "नया..." चुनें। बनाई जाने वाली फ़ाइल के प्रकार को चुनने के लिए एक विंडो खुलेगी। "बाहरी प्रसंस्करण" चुनें:

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

आइए एक नया नियंत्रित प्रोसेसिंग फॉर्म जोड़ें। हम बताते हैं कि यह प्रसंस्करण का एक रूप है और यह मुख्य है:

फॉर्म पर हमारे पास दो विवरण होंगे:

  • नामकरण समूह - "नामकरण" निर्देशिका से लिंक;
  • वैट दर का चयन करें - वैट दर के हस्तांतरण के लिए लिंक।

हम ऊपरी दाएँ विंडो में "गुण" कॉलम में विवरण बनाते हैं। उन्हें माउस से ऊपरी बाएँ विंडो में खींचें। नया विवरण तुरंत नीचे दिए गए फॉर्म पर दिखाई देना चाहिए।

विवरण का क्रम "ऊपर" - "नीचे" तीरों का उपयोग करके बदला जा सकता है:

1सी पर 267 वीडियो पाठ निःशुल्क प्राप्त करें:

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

प्रपत्र मॉड्यूल में उसी नाम की एक प्रक्रिया बनाई जाएगी. इसमें हम सर्वर पर प्रक्रिया को कॉल करेंगे:

&ऑनक्लाइंट

प्रक्रिया सेट वैट दर (कमांड)

SetVATRateOnServer();

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

सर्वर पर प्रक्रिया में, हम वैट दर निर्धारित करने से संबंधित एक छोटा अनुरोध और क्रियाएं लिखेंगे:

&सर्वर पर

प्रक्रिया SetVATRateOnServer()

अनुरोध = नया अनुरोध;
अनुरोध.पाठ=
"चुनना
| नामकरण.लिंक
|से
| निर्देशिका.नामपद्धति नामकरण के रूप में
|कहां
| नामकरण.पदानुक्रम में लिंक (और नामकरण समूह)
| और नामकरण नहीं.मार्कडिलीशन
| और नामकरण नहीं। यह एक समूह है";

Request.SetParameter('आइटम समूह', आइटम समूह);
ResRequest = Request.Execute();
चुनेंRecordDet = ResRequest.Select();

जबकि SetRecordDet.Next() लूप

कोशिश करना
SprNomObject.Write();
अपवाद
रिपोर्ट("ऑब्जेक्ट लिखने में त्रुटि""" + SprNomObject + """!
|» + विवरणत्रुटि());
अंतप्रयास;

अंतचक्र;

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

हम "फॉर्म" टैब पर लौटते हैं, फॉर्म में एक बटन जोड़ते हैं और इसे कमांड के साथ जोड़ते हैं:

इस प्रकार, हमारी प्रोसेसिंग उपयोग के लिए तैयार है। इसे कॉल करने के लिए, "1C एंटरप्राइज़" मोड में, आपको "फ़ाइल" - "ओपन" मेनू पर जाना होगा और बनाई गई फ़ाइल का चयन करना होगा।

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

"अतिरिक्त रिपोर्ट और प्रसंस्करण" अनुभाग इसी के लिए है।

लेकिन वहां अपनी प्रोसेसिंग जोड़ने के लिए हमें पहले उसका विवरण देना होगा और प्रोग्राम को उसके गुण बताने होंगे।

फ़ंक्शन का विवरण "बाहरी प्रसंस्करण के बारे में जानकारी"

मैं इस फ़ंक्शन की सामग्री का एक उदाहरण दूंगा। यह निर्यात योग्य होना चाहिए और तदनुसार, प्रसंस्करण मॉड्यूल में स्थित होना चाहिए:

फ़ंक्शन सूचनाऑनएक्सटर्नलप्रोसेसिंग() निर्यात

DataForReg = नई संरचना();
DataForReg.Insert('नाम', 'वैट दर सेटिंग');
DataForReg.Insert('SafeMode', True);
DataForReg.Insert("संस्करण", "ver.: 1.001");
DataForReg.Insert('सूचना', 'नामकरण निर्देशिका में वैट दर निर्धारित करने के लिए प्रसंस्करण');
DataForReg.Insert ("देखें", "अतिरिक्त प्रसंस्करण");

कमांडटेबल = न्यूवैल्यूटेबल;
TabZnCommands.Columns.Add('पहचानकर्ता');
TabZnCommands.Columns.Add("उपयोग");
TabZnCommands.Columns.Add("देखें");

NewRow = TabZnCommands.Add();
NewString.Identifier = "OpenProcessing";
NewRow.Use = "OpenForm";
NewRow.View = "ओपन प्रोसेसिंग";
DataForReg.Insert("कमांड", TabZnCommands);

डेटाफॉररेग लौटाएँ;

अंतकार्य

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

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

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

1C 8.3 में बाह्य प्रसंस्करण को जोड़ना

बाहरी प्रसंस्करण के साथ काम करने के लिए (और एक बाहरी मुद्रण प्रपत्र भी एक बाहरी प्रसंस्करण है), एक वस्तु है बाहरी प्रसंस्करण।

आइए दो संभावित मामलों पर विचार करें:

बाहरी प्रोसेसिंग को इन्फोबेस से अलग डिस्क पर संग्रहीत किया जाता है

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

एक बाह्य प्रसंस्करण प्रपत्र खोलना

1सी में बाहरी प्रोसेसिंग फॉर्म को प्रोग्रामेटिक रूप से खोलने के लिए, फ़ंक्शन का उपयोग करें गेटफॉर्म()वस्तु बाहरी प्रसंस्करण।फ़ंक्शन के कई पैरामीटर हैं. मुख्य प्रोसेसिंग फॉर्म को एक सरल तरीके से खोलने पर विचार करें:


प्रपत्र = बाहरी प्रक्रियाएँ। GetForm(फ़ाइल पता);
रूप। खुला();

एक लघु बाह्य प्रसंस्करण प्रपत्र खोलने के लिए, आपको उसका नाम निर्दिष्ट करना होगा।

// FileAddress वैरिएबल में बाहरी प्रोसेसिंग फ़ाइल का पूरा पथ होता है
प्रपत्र = बाहरी प्रक्रियाएँ। GetForm(फ़ाइल पता, "लघु प्रपत्र") ;
रूप। खुला();

बाह्य प्रसंस्करण को एक वस्तु के रूप में खोलना

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

// FileAddress वैरिएबल में बाहरी प्रोसेसिंग फ़ाइल का पूरा पथ होता है
प्रोसेसिंगऑब्जेक्ट = बाहरी प्रोसेसिंग। बनाएं(फ़ाइल पता);

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

// FileAddress वैरिएबल में बाहरी प्रोसेसिंग फ़ाइल का पूरा पथ होता है

बाहरी प्रसंस्करण या मुद्रण प्रपत्र इन्फोबेस में सहेजा गया

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

बाहरी प्रसंस्करण खोलने के लिए आपको चाहिए:

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

//RefLink वैरिएबल में externalProcessings निर्देशिका तत्व का एक लिंक होता है
DvData = RefLink. बाह्य प्रसंस्करण भंडारण. पाना() ;
फ़ाइल पता = GetTemporaryFileName() ;
DvData. लिखें(फ़ाइल पता);
प्रोसेसिंगऑब्जेक्ट = बाहरी प्रोसेसिंग। बनाएँ (फ़ाइल पता, गलत);