खुला
बंद करना

डेटाबेस में एक बाहरी प्रिंटिंग फॉर्म जोड़ना। डेटाबेस में एक बाहरी प्रिंटिंग फॉर्म जोड़ना 1s 8.2 में प्रिंटिंग फॉर्म सेट करना

यह लेख आपको विस्तार से बताएगा कि 1सी 8 की कम जानकारी वाला एक नौसिखिया कैसे एक मुद्रित प्रपत्र बना सकता है। उदाहरण के लिए, आइए सबसे सामान्य 1C 8 कॉन्फ़िगरेशन में से एक लें - लेखांकन 2.0. एक मुद्रित प्रपत्र बनाना लेखन के 1C चरण:

  • एक बाहरी मुद्रण प्रपत्र फ़ाइल बनाना;
  • एक मुद्रित प्रपत्र लेआउट का निर्माण;
  • स्क्रीन पर मुद्रित प्रपत्र डेटा प्रदर्शित करने के लिए प्रोग्राम कोड लिखना;
  • मुद्रित प्रपत्र के स्वत: पंजीकरण के लिए पैरामीटर बनाना;
  • बाहरी मुद्रण प्रपत्र को आधार से जोड़ना 1सी इंटरप्राइजेज.

एक मुद्रित प्रपत्र 1सी का निर्माण। समस्या का निरूपण

कॉन्फ़िगरेशन में हमारी आवश्यकता है लेखांकन 2.0किसी दस्तावेज़ के लिए एक मुद्रित प्रपत्र बनाएँ वस्तुओं और सेवाओं की प्राप्ति. मुद्रित प्रपत्र के शीर्षलेख में, निम्नलिखित डेटा प्रदर्शित करें:

  • संगठन;
  • प्रतिपक्ष;
  • प्रतिपक्ष समझौता;
  • प्राप्ति की तिथि।

तालिका अनुभाग में डेटा को तालिका के रूप में प्रदर्शित करें चीज़ेंदस्तावेज़। तालिका में निम्नलिखित कॉलम शामिल होने चाहिए:

  • नामपद्धति;
  • मात्रा;
  • कीमत;
  • जोड़;
  • और वर्तमान तिथि के लिए वस्तु की कीमत भी (दस्तावेज़ से कीमत के प्रकार के अनुसार)।

बाह्य प्रसंस्करण फ़ाइल

आइए समस्या के समाधान की ओर आगे बढ़ें। सबसे पहले, 1C 8 को मोड में खोलें कौन्फ़िगरेटर. यह इस मोड में है कि सभी विकास 1C 8 प्लेटफ़ॉर्म पर किए जाते हैं। अब हमें एक बाहरी प्रोसेसिंग फ़ाइल बनाने की आवश्यकता है। ऐसा करने के लिए, मेनू पर क्लिक करें फ़ाइल -> नया…या किसी नई फ़ाइल के आइकन द्वारा.

खुलने वाली विंडो में, आइटम का चयन करें बाह्य प्रसंस्करण.

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

बाहरी प्रसंस्करण विशेषताएँ जोड़ें LinkToObject और चयन करेंउसके लिए टाइप करें दस्तावेज़लिंक। वस्तुओं और सेवाओं की प्राप्ति. ऐसा करने के लिए, 1C बाह्य प्रसंस्करण मेटाडेटा ट्री में, आइटम का चयन करें आवश्यक वस्तुएँऔर बटन दबाएँ जोड़ना(हरा प्लस वाला बटन)। विशेषता गुण विंडो स्क्रीन के दाईं ओर फ़ील्ड में खुलेगी नामचलो लिखते है - ReferenceToObject. मेंमैदान प्रकारतीन बिंदुओं वाला बटन दबाएं.

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

आइए बाहरी प्रोसेसिंग फ़ाइल को हार्ड ड्राइव पर सहेजें, ऐसा करने के लिए मेनू का उपयोग करें फ़ाइल -> सहेजें, चित्रलेख बचाना(नीली फ्लॉपी डिस्क), या एक कीबोर्ड शॉर्टकट Ctrl+S. आइए सहेजी गई फ़ाइल को "प्रिंटफॉर्म" नाम दें।

एक मुद्रित प्रपत्र लेआउट बनाना

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

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

खुलने वाले नए लेआउट में, हम मुद्रित प्रपत्र प्रदर्शित करने के लिए आवश्यक कई क्षेत्र बनाएंगे। हमें आवश्यक सभी लेआउट क्षेत्र क्षैतिज होंगे, इसलिए एक नया क्षेत्र बनाने के लिए, आवश्यक संख्या में लेआउट लाइनों का चयन करें और मेनू पर जाएं तालिका -> नाम -> नाम निर्दिष्ट करेंया कीबोर्ड शॉर्टकट का उपयोग करें Ctrl + Shift + N,फिर बॉक्स में क्षेत्र का नाम दर्ज करें। लेआउट क्षेत्र बनाते समय, उन पंक्तियों की संख्या में गलती करने से न डरें जिन्हें आप हमेशा जोड़ या हटा सकते हैं; 1C लेआउट लाइन को हटाने के लिए, वांछित लाइन का चयन करें और संदर्भ मेनू में आइटम का चयन करें मिटाना. लेआउट में एक नई लाइन जोड़ने के लिए, लेआउट की किसी भी लाइन का चयन करें और संदर्भ मेनू में आइटम का चयन करें बढ़ाना.

एक लेआउट हेडर जोड़ना

सबसे पहले, आइए एक क्षेत्र बनाएं एक टोपी, यह प्रिंट फॉर्म हेडर के लिए डेटा प्रदर्शित करेगा। इस क्षेत्र के लिए हमें सात लेआउट लाइनों की आवश्यकता होगी। आइए उनका चयन करें और, जैसा कि मैंने ऊपर लिखा है, कुंजी संयोजन दबाएँ Ctrl + Shift + N, खेत मेँ नाम"हैट" लिखें और बटन दबाएँ ठीक है.

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

आमतौर पर तेरह या चौदह लेआउट सेल पर्याप्त होते हैं, उन्हें क्षेत्र की पहली पंक्ति में चुनें एक टोपीऔर एक सेल में संयोजित करें ( संदर्भ मेनू -> मर्ज करें). इसके बाद, परिणामी बड़े सेल पर डबल-क्लिक करें और पैरामीटर का नाम लिखें, हमारे मामले में "TitleText"। दर्ज किए गए टेक्स्ट को पूर्ण पैरामीटर बनाने के लिए, सेल पर राइट-क्लिक करें और संदर्भ मेनू में आइटम का चयन करें गुण. बुकमार्क पर लेआउटचलो मैदान ढूंढो भरनेऔर मान चुनें पैरामीटर. 1C लेआउट में पैरामीटर कोष्ठक द्वारा दर्शाए गए हैं "<>».

मुद्रित प्रपत्र का शीर्षक अन्य पाठ के बीच में दिखना चाहिए, इसलिए सेल को फिर से चुनें और पाठ संरेखण सेट करने के लिए लेआउट फ़ॉर्मेटिंग पैनल पर आइकन का उपयोग करें केंद्रितऔर फ़ॉन्ट आकार 14.

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

यह आंकड़ा दिखाता है कि लेआउट पैरामीटर नियमित पाठ से कैसे भिन्न हैं।

एक लेआउट टेबल हेडर जोड़ना

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

किसी लेआउट में तालिका जोड़ना

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

किसी लेआउट में फ़ुटर जोड़ना

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

अंतिम परिणाम एक ऐसा लेआउट होना चाहिए जो इस तरह दिखे:

एक मुद्रित प्रपत्र 1सी का निर्माण। प्रोग्रामिंग

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

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

फ़ंक्शन प्रिंट() निर्यात एंडफ़ंक्शन

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

बेसिक वेरिएबल्स को आरंभ करना

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

TabDoc = नया TabularDocument;

एक चर के लिए लेआउटहमें अपने द्वारा बनाया गया मुद्रित प्रपत्र लेआउट मिलेगा। ऐसा करने के लिए हम अंतर्निहित फ़ंक्शन का उपयोग करते हैं गेटलेआउट(<ИмяМакета>).

लेआउट = गेटलेआउट("लेआउट");

हम लेआउट के सभी क्षेत्रों को वेरिएबल में बदल देंगे। ऐसा करने के लिए हम लेआउट विधि का उपयोग करते हैं GetArea(<ИмяОбласти>) .

हेडरएरिया = लेआउट.गेटएरिया('हेडर'); एरियाडेटा = लेआउट.गेटएरिया('डेटा'); एरियाफुटर = लेआउट.गेटएरिया('फुटर');

मुद्रित फॉर्म के हेडर को स्प्रेडशीट दस्तावेज़ में आउटपुट करना

सभी आवश्यक वेरिएबल प्रारंभ किए गए हैं. आइए स्प्रेडशीट दस्तावेज़ में लेआउट क्षेत्रों को भरना और प्रदर्शित करना शुरू करें। सबसे पहले, प्रिंट करने योग्य फॉर्म का शीर्षक भरें; इसके लिए हमें पैरामीटर को पास करना होगा शीर्षक पाठ, जिसे हमने लेआउट में बनाया है, वह टेक्स्ट जिसकी हमें आवश्यकता है। पैरामीटर मानों को भरने के लिए लेआउट क्षेत्र में एक विशेष संग्रह होता है, जिसे कहा जाता है - विकल्प.जिससे “।” आप कोई भी पैरामीटर प्राप्त कर सकते हैं. हेडर टेक्स्ट में हम टेक्स्ट को स्थानांतरित करेंगे: "मुद्रित प्रपत्र", साथ ही दस्तावेज़ संख्या।

हेडर एरिया.पैरामीटर.टाइटलटेक्स्ट = "प्रिंट फॉर्म"+LinkToObject.नंबर;

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

हेडरएरिया.पैरामीटर्स.संगठन = LinkToObject.संगठन; हेडरएरिया.पैरामीटर.खाता = LinkToObject.खाता; हेडरएरिया.पैरामीटर्स.रिसीप्टडेट = ऑब्जेक्टलिंक.डेट; शीर्षलेख क्षेत्र.पैरामीटर.प्रतिपक्ष समझौता = LinkToObject.प्रतिपक्ष समझौता;

हेडर के सभी पैरामीटर भरे हुए हैं, हम इसे हमारे द्वारा बनाए गए स्प्रेडशीट दस्तावेज़ में प्रदर्शित करेंगे, इसके लिए हम विधि का उपयोग करते हैं आउटपुट(<Область>) .

TabDoc.Output(HeaderArea);

मुद्रित बाधा के लिए अनुरोध लिखना

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

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

आइए एक वेरिएबल बनाएं जिसमें अनुरोध शामिल होगा।

अनुरोध = नया अनुरोध;

हम रिक्वेस्ट कंस्ट्रक्टर का उपयोग करके रिक्वेस्ट टेक्स्ट तैयार करेंगे। आरंभ करने के लिए, आइए लिखें:

अनुरोध.पाठ = "";

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

हमारी क्वेरी के लिए हमें दो तालिकाओं की आवश्यकता होगी: तालिका भाग चीज़ेंदस्तावेज़ वस्तुओं और सेवाओं की प्राप्तिऔर रजिस्टर की वर्तमान तिथि पर नवीनतम जानकारी का एक स्नैपशॉट वस्तु की कीमतें.

डिज़ाइनर विंडो के बाईं ओर हमें कॉलम मिलता है डेटाबेस. इसमें सभी मेटाडेटा ऑब्जेक्ट का एक पेड़ शामिल है, आइए वे खोजें जिनकी हमें आवश्यकता है। ऐसा करने के लिए, आइए धागा खोलें प्रलेखनऔर दस्तावेज़ ढूंढें वस्तुओं और सेवाओं की प्राप्ति, आइए इसे खोलें और सारणीबद्ध भाग ढूंढें चीज़ें, इसे क्वेरी डिज़ाइनर के कॉलम में खींचें टेबल. आप तीन तरीकों से खींच सकते हैं: खींचकर, तालिका पर डबल-क्लिक करके, या इसे चुनकर ">" बटन पर क्लिक करके। चलिए धागा खोलते हैं सूचना रजिस्टरऔर वहां टेबल ढूंढें कीमतेंनामकरण.शॉर्टकटनवीनतम, इसे कॉलम में भी खींचें टेबल. ये दो तालिकाएँ हमारी क्वेरी के लिए पर्याप्त हैं।

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

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

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

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

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

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

मूल्य प्रकार = &मूल्य प्रकार

वर्चुअल टेबल पैरामीटर भरे गए हैं, बटन पर क्लिक करें ठीक है.

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

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


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

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

Request.Text = "SELECT | GoodsServicesProducts की रसीद। नामकरण, | GoodsServicesProducts की रसीद। राशि, | GoodsServicesProducts की रसीद। कीमत, | GoodsServicesProducts की रसीद। मात्रा, | PricesNomenclature नवीनतम का टुकड़ा। कीमत के अनुसार कीमतआज | FROM | दस्तावेज़। की रसीद GoodsServices.Goods AS Receipt ProductServicesProducts |. बायां कनेक्शन रजिस्टर जानकारी.PricesNomenclature.SliceLast (| &CurrentDate, PriceType = &PriceType) AS PricesNomenclatureSliceLast | On GoodsServicesProducts.Nomenclature |

अनुरोध निष्पादित करना

आइए अनुरोध के लिए आवश्यक पैरामीटर पास करें; इसके लिए हम अनुरोध विधि का उपयोग करेंगे सेट पैरामीटर(<ИмяПараметра>,<Значение>). वर्तमान दिनांक प्राप्त करने के लिए, अंतर्निहित फ़ंक्शन का उपयोग करें वर्तमान तिथि(), यह कंप्यूटर की तारीख और समय लौटाता है।

आइए हमें आवश्यक डेटा का एक नमूना प्राप्त करने के लिए एक क्वेरी चलाएं। ऐसा करने के लिए, पहले अनुरोध विधि का उपयोग करें दौड़ना(), और फिर विधि चुनना().

चुनें = Query.Run().Select();

मुद्रित प्रपत्र तालिका को भरना

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

जबकि सेलेक्ट.नेक्स्ट() लूप एंडलूप;

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

कुल योग = 0; कुल मात्रा = 0;

लूप के अंदर हम क्षेत्र भर देंगे डेटावर्तमान चयन तत्व से डेटा को चर में कुल राशिऔर कुल मात्रायोग और मात्रा मान जोड़ें, और अंत में, पहले से परिचित विधि का उपयोग करके स्प्रेडशीट दस्तावेज़ में क्षेत्र प्रदर्शित करें आउटपुट(). चूंकि हमारे अनुरोध के फ़ील्ड के नाम पूरी तरह से क्षेत्र पैरामीटर के नाम से मेल खाते हैं डेटा, फिर भरने के लिए हम अंतर्निहित प्रक्रिया fillPropertyValues( का उपयोग करेंगे<Приемник>, <Источник>), जो संपत्ति मूल्यों की प्रतिलिपि बनाता है<Источника>संपत्तियों के लिए<Приемника>.

जबकि चयन.अगला() लूप फ़िलप्रॉपर्टीवैल्यूज़(एरियाडेटा.पैरामीटर्स,चयन); टोटलसम = टोटलसम + सैंपल.सम; कुलमात्रा = कुलमात्रा + नमूना.मात्रा; TabDoc.Output(AreaData); अंतचक्र;

किसी मुद्रित प्रपत्र के पाद लेख को स्प्रेडशीट दस्तावेज़ में आउटपुट करना

यह लेआउट के अंतिम क्षेत्र को भरना और प्रदर्शित करना बाकी है - तहखाना. हमने भरने के लिए डेटा पहले ही तैयार कर लिया है, भरना और निकासी उसी योजना के अनुसार की जाती है।

एरियाफुटर.पैरामीटर.कुलमात्रा = कुलमात्रा; एरियाफुटर.पैरामीटर.टोटलसम = टोटलसम; TabDoc.Output(AreaFooter);

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

टैबडॉक लौटें;

इस बिंदु पर, प्रोग्रामिंग चरण पूरा हो गया है और 1सी प्रिंटिंग फॉर्म का निर्माण लगभग पूरा हो गया है। समारोह का पूरा पाठ मुहर()मैं इसे यहां नहीं दूंगा, आप इसे प्रिंट करने योग्य फॉर्म फ़ाइल में देख सकते हैं, जिसे आप लेख के नीचे डाउनलोड कर सकते हैं।

एक मुद्रित प्रपत्र 1सी का निर्माण। स्वतः पंजीकरण विकल्प

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

यह इस प्रकार किया जाता है:

  • बाह्य प्रसंस्करण में हम एक नया लेआउट बनाते हैं। हम इसे "सेटिंग्स_ऑटो-पंजीकरण" कहते हैं (यह महत्वपूर्ण है कि कोई गलती न हो!)।
  • लेआउट के पहले सेल में हम लिखते हैं दस्तावेज़ीकरण.(या निर्देशिकाएँ।) और उस दस्तावेज़ का नाम जिससे आपको मुद्रित प्रपत्र कनेक्ट करना है।

बाहरी मुद्रण प्रपत्र को आधार से जोड़ना

  • 1सी 8 मोड में प्रारंभ करें कंपनी;
  • मेनू पर जाएँ सेवा -> अतिरिक्त रिपोर्ट और प्रसंस्करण -> अतिरिक्त बाहरी मुद्रित प्रपत्र;
  • बटन को क्लिक करे जोड़ना;
  • खुलने वाली विंडो में, आइकन पर क्लिक करें बाहरी प्रोसेसिंग फ़ाइल बदलें;
  • यदि आपने ऑटो-पंजीकरण पैरामीटर बनाए हैं, तो हम उनका उपयोग करने के लिए सहमत हैं;
  • यदि आपने ऑटो-पंजीकरण पैरामीटर नहीं बनाए हैं, तो सारणीबद्ध भाग में मुद्रण प्लेट सहायक उपकरणआवश्यक दस्तावेज़ या संदर्भ पुस्तक जोड़ें;
  • बटन दबाएँ ठीक है।

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

जीवन आगे बढ़ता है, कानून बदलता है, डेवलपर कॉन्फ़िगरेशन अपडेट जारी करता है और हमारे पास फिर से एक विकल्प होता है: अपडेट को स्वयं इंस्टॉल करें या फिर प्रोग्रामर को "नई रिलीज इंस्टॉल करने" के लिए कॉल करें...

आइए कॉन्फ़िगरेशन को बदले बिना मुद्रण प्रपत्र बदलने की तंत्र से परिचित हों।


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


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


आइए हम दो अतिरिक्त शर्तें पेश करें:

  • नये मुद्रित प्रपत्र को पुराने प्रपत्र का स्थान लेना चाहिए "चालान"
  • कॉन्फ़िगरेशन को बदला नहीं जा सकता, क्योंकि हम भविष्य में कॉन्फ़िगरेशन के ऑटो-अपडेट का उपयोग करना चाहते हैं

अच्छा, क्या काम है? बहुत जटिल लगता है? खैर, यह जितना अधिक जटिल है, उतना ही दिलचस्प है, और उतना ही अधिक आप इसे हल करना चाहेंगे। फिर काम पर लग जाओ.


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


महत्वपूर्ण! प्रसंस्करण नाम में वैरिएबल नामों की तरह रिक्त स्थान नहीं होना चाहिए।


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


अब लेआउट खोलने के लिए डबल-क्लिक करें।

"लेआउट" क्या है

आइए लेआउट के उद्देश्य के बारे में कुछ शब्द कहें।

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


एक सेल में तीन प्रकार के मानों में से एक हो सकता है:

  1. मूलपाठ- इस प्रकार का मान उसी रूप में मुद्रित किया जाएगा;
  2. पैरामीटर- इस प्रकार के सेल में एक वेरिएबल का नाम होता है जिसका मान मुद्रित किया जाएगा।
  3. नमूना- इस प्रकार की कोशिकाएँ पहले और दूसरे विकल्पों का संयोजन होती हैं। सेल में टेक्स्ट और वेरिएबल हो सकते हैं। किसी प्रोग्राम के लिए टेक्स्ट को वेरिएबल से अलग करने के लिए, वेरिएबल को वर्गाकार कोष्ठक में संलग्न किया जाना चाहिए: "आज [दिनांक] है".

महत्वपूर्ण!तालिका संपादक त्रिकोणीय कोष्ठक में दूसरे और तीसरे प्रकार की कोशिकाओं के मान प्रदर्शित करता है। चित्र 2 में टेक्स्ट वाला एक सेल है "खरीदार"- टेक्स्ट जैसा दिखता है, और सेल के दाईं ओर "खरीदार की प्रस्तुति"- पैरामीटर.

मैं ये सब क्यों बता रहा हूँ? अब आप जानते हैं कि किन कोशिकाओं में आप सामग्री को आसानी से बदल सकते हैं, और जिनमें कुछ भी बदलना अवांछनीय है, क्योंकि आपको मुद्रण एल्गोरिदम में बदलाव करने की आवश्यकता होगी।

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

मुद्रण योग्य लेआउट में क्या शामिल है

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

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

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

लेआउट का संपादन

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

  1. आइए मर्ज किए गए सेल की सामग्री को ध्यानपूर्वक कॉपी करें "शीर्षकपाठ"(ऐसा करने के लिए, आपको सेल का चयन करना होगा और कमांड का उपयोग करना होगा "संपादित करें > कॉपी करें" या कीबोर्ड शॉर्टकट CTRL+C)
  2. इस सेल का चयन करने के बाद, मुख्य मेनू में आइटम का चयन करें "टेबल - मर्ज", जिससे विपरीत प्रभाव पड़ेगा - मर्ज की गई कोशिका कई मूल कोशिकाओं में विभाजित हो जाएगी
  3. आइए अब कम संख्या में सेल चुनें - कॉलम के सेल 2 के बजाय, हम कॉलम 6 से मर्ज करना शुरू करेंगे, इसे कॉलम 32 पर समाप्त करेंगे - और फिर से बटन पर क्लिक करें "विलय"
  4. टीम "संपादित करें > चिपकाएँ" (CTRL+V)पिछले मर्ज किए गए सेल की सामग्री को नए मर्ज किए गए सेल में डालें
  5. हम कॉलम 2 - 5 में मुक्त कोशिकाओं को साफ़ करते हैं (उन्हें चुनें और डिलीट कुंजी दबाएँ)

अब आप खाली जगह में लोगो के साथ एक तस्वीर डाल सकते हैं। ऐसा करने के लिए, मेनू में आइटम का चयन करें "तालिका > चित्र > चित्र...". डिस्क पर हमारे लोगो वाली फ़ाइल ढूंढें और "पर क्लिक करें" ठीक है" अब छवि को खाली स्थान पर ले जाएँ। परिणाम चित्र 3 जैसा दिखना चाहिए।


आइए अब सेल्स में मानों को बोल्ड में हाइलाइट करें "प्रदाता"और "खरीदार"(चित्र 4)। ऐसा करने के लिए, सेल गुणों में पैरामीटर ढूंढें "फ़ॉन्ट"और स्टाइल को बोल्ड पर सेट करें।



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



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

मुद्रण कैसे सुनिश्चित करें

तो, लेआउट तैयार है. अब इसे प्रिंट करने के लिए एल्गोरिदम पर काम करने का समय आ गया है।

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

  1. आपको प्रसंस्करण में प्रॉप्स बनाने की आवश्यकता है "ऑब्जेक्ट लिंक"प्रकार के साथ "एनीलिंक"
  2. आपको प्रोसेसिंग मॉड्यूल में एक प्रक्रिया बनाने की आवश्यकता है "प्रिंट() निर्यात"पैरामीटर के बिना और कीवर्ड निर्दिष्ट करना सुनिश्चित करें " निर्यात"

पहला बिंदु इसलिए आवश्यक है ताकि मुद्रण एल्गोरिदम को पता हो कि मुद्रण के लिए डेटा कहाँ से प्राप्त करना है, और दूसरा मुद्रण एल्गोरिथ्म स्वयं है। आइए इन शर्तों को पूरा करें.

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



ऐसा करने के लिए, दस्तावेज़ों के बीच कॉन्फ़िगरेशन ट्री में खोजें "वस्तुओं और सेवाओं की बिक्री", उस पर राइट-क्लिक करें और चुनें "ऑब्जेक्ट मॉड्यूल खोलें"(चित्र 8 देखें)।



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

चित्र 9 में देखें, हमने शीर्षक और उसके नीचे की पंक्ति को हाइलाइट किया है। इसके बाद इसे क्लिपबोर्ड पर कॉपी करें। मुख्य मेन्यू "संपादित करें > कॉपी करें" (या CTRL+C).



हमने क्लिपबोर्ड पर पाठ को याद कर लिया है, अब फिर से अपनी प्रोसेसिंग पर चलते हैं "ब्रांडेड चालान". बटन पर क्लिक करें "क्रियाएँ > ऑब्जेक्ट मॉड्यूल खोलें"(चित्र 10)।



कॉपी किया गया टेक्स्ट चिपकाएँ: "संपादित करें > चिपकाएँ" (या CTRL+V).

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

  1. फ़ंक्शन का नाम बदलकर "प्रिंट करें" करें
  2. प्रतिस्थापित करें "यह वस्तु"पर "ऑब्जेक्ट लिंक"
  3. प्रतिस्थापित करें "यह वस्तु"पर "ऑब्जेक्ट लिंक"
  4. प्रतिस्थापित करें "संगठन बैंक खाता"पर "ऑब्जेक्ट.संगठन बैंक खाते से लिंक करें"
  5. प्रतिस्थापित करें "उत्पाद। सारांश"पर "LinkToObject.Products.Total"

इन क्रियाओं के लिए आप मुख्य मेनू आइटम का उपयोग कर सकते हैं "संपादित करें > बदलें".

इसके बाद आपको सिंटैक्स की जांच करनी होगी। इसके लिए एक जादुई संयोजन है: CTRL+F7. परिणामस्वरूप, निम्न संदेश दिखना चाहिए: "कोई वाक्यविन्यास त्रुटियाँ नहीं मिलीं!"

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

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

बाहरी प्रोसेसिंग को कॉन्फ़िगरेशन से कनेक्ट करना

अब हम प्रोसेसिंग को अपने इनवॉइस से जोड़ सकते हैं। ऐसा करने के लिए, मोड में लॉन्च करें। मेनू पर जाएँ "सेवा", जहां तंत्र से संबंधित तीन बिंदु हैं "बाहरी प्रसंस्करण, मुद्रण प्रपत्र, सारणीबद्ध भागों को भरने के लिए प्रसंस्करण". हमारे मामले में, हमें केवल वस्तु की आवश्यकता है "बाहरी मुद्रण प्रपत्र"(चित्र 11 देखें)।



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



महत्वपूर्ण!प्रोसेसिंग खुद भी अन्य डेटा के साथ डेटाबेस में स्टोर हो जाएगी यानी प्रोसेसिंग को डेटाबेस के अंदर सेव करने के बाद हमें किसी बाहरी फाइल की जरूरत नहीं पड़ेगी।

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

आइए पहले टैब पर करीब से नज़र डालें।

टैब में चार कॉलम हैं. वस्तु प्रतिनिधित्व- दस्तावेज़ का वह प्रकार जिसके लिए हम अपने मुद्रण प्रपत्र का उपयोग करना चाहेंगे,

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



लेकिन हमारे कार्य में किसी चयन की आवश्यकता नहीं है।

मुद्रण योग्य प्रपत्र फ़ाइल- उस फ़ाइल को इंगित करता है जिससे लेआउट और मुद्रण प्रक्रिया लेनी है। इस सेल में आपको उस फ़ाइल का चयन करना होगा जिसे हमने डेस्कटॉप पर सहेजा है।

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

हमारे मामले में, हमें इसकी आवश्यकता है "ब्रांडेड चालान"सामान्य चालान के स्थान पर मुद्रित किया गया था। ऐसा करने के लिए, इस फ़ील्ड में चयन करें "बिक्री चालान".

अब इस एलिमेंट को सेव करते हैं। और कोई भी चालान खोलें.

यह चित्र 14 में दिखाए अनुसार दिखना चाहिए।



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

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

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

आप परिणामी उदाहरण यहां से डाउनलोड कर सकते हैं।

विन्यासकर्ता में 1सी इंटरप्राइजेज 8बाहरी प्रसंस्करण बनाएं ( फ़ाइल->नया->बाहरी प्रसंस्करण), नाम सेट करें, बाहरी मुद्रित प्रपत्र के लिए आवश्यक विवरण बनाएं वस्तु संदर्भप्रकार के साथ दस्तावेज़ लिंक वस्तुओं और सेवाओं की बिक्री.

एक मुद्रित प्रपत्र लेआउट बनाना

एक नया जोड़ें लेआउट, लेआउट प्रकार छोड़ें स्प्रेडशीट दस्तावेज़. हम लेआउट पर तीन क्षेत्र बनाते हैं: हेडर, डेटाऔर तहखाना. यह आवश्यक संख्या में पंक्तियों का चयन करके और मेनू पर क्लिक करके किया जा सकता है तालिका->नाम->नाम निर्दिष्ट करें (Ctrl+Shift+N).

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

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

प्रोग्रामिंग

चलिए प्रिंटिंग फॉर्म ऑब्जेक्ट मॉड्यूल पर चलते हैं क्रियाएँ->ऑब्जेक्ट मॉड्यूल खोलें.

आइए वहां एक निर्यात फ़ंक्शन बनाएं जो मुद्रित प्रपत्रों के लिए अनिवार्य है। मुहर().

फ़ंक्शन प्रिंट () निर्यातअंतकार्य

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

TabDoc = नया TabularDocument; लेआउट = गेटलेआउट("लेआउट"); हेडरएरिया = लेआउट.गेटएरिया('हेडर'); एरियाडेटा = लेआउट.गेटएरिया('डेटा'); एरियाफुटर = लेआउट.गेटएरिया('फुटर' );

आइए पैरामीटर भरें टोपीऔर इसे ले आओ स्प्रेडशीट दस्तावेज़.

हेडरएरिया.पैरामीटर्स.हेडरटेक्स्ट = +LinkToObject.नंबर; हेडरएरिया.पैरामीटर्स.संगठन = LinkToObject.संगठन; TabDoc.Output(HeaderArea);

तालिका पंक्तियाँ प्राप्त करने के लिए चीज़ेंहम अनुरोध का उपयोग करते हैं।

अनुरोध = नया अनुरोध; Request.SetParameter("लिंक", ऑब्जेक्टलिंक); Query.Text = "चुनें | वस्तुओं और सेवाओं की बिक्री, वस्तुओं का नामकरण। | माल और सेवा माल की बिक्री, | वस्तुओं की बिक्री और सेवाओं की कीमत, | वस्तुओं और सेवाओं की बिक्री मात्रा|से | दस्तावेज़। वस्तुओं और सेवाओं की बिक्री। वस्तुओं और सेवाओं की बिक्री कैसे करें|कहां | वस्तुओं और सेवाओं की बिक्री सामान लिंक = &लिंक";

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

चुनें = Query.Run().Select();

लूप में आगे हम क्षेत्र पैरामीटर भरते हैं डेटादस्तावेज़ चयन की प्रत्येक पंक्ति के लिए और उन्हें प्रदर्शित करें स्प्रेडशीट दस्तावेज़. हम लूप में कुल मानों की भी गणना करते हैं मात्राऔर मात्रा. हम प्रत्येक पैरामीटर को अलग से नहीं भरेंगे, बल्कि प्रक्रिया का उपयोग करेंगे प्रॉपर्टीवैल्यू भरें((<Приемник>, <Источник>) से वैश्विक संदर्भ, यह संपत्ति मूल्यों की प्रतिलिपि बनाता है <Источника> संपत्तियों के लिए <Приемника> . मिलान संपत्ति के नाम से किया जाता है। आप इसके बारे में और अधिक पढ़ सकते हैं सिंटैक्स सहायक 1सी एंटरप्राइज़ 8.

कुल योग = 0 ; कुल मात्रा = 0 ; जबकि चयन.अगला() लूप फ़िलप्रॉपर्टीवैल्यूज़(एरियाडेटा.पैरामीटर्स,चयन); टोटलसम = टोटलसम + सैंपल.सम; कुलमात्रा = कुलमात्रा + नमूना.मात्रा; TabDoc.Output(AreaData); अंतचक्र ;

क्षेत्र भरें और प्रदर्शित करें तहखाना.

एरियाफुटर.पैरामीटर.कुलमात्रा = कुलमात्रा; एरियाफुटर.पैरामीटर.टोटलसम = टोटलसम; TabDoc.Output(AreaFooter);

फ़ंक्शन से पूर्ण स्प्रेडशीट दस्तावेज़ लौटाना मुहर().

TabDoc लौटें;

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

5. मुद्रित प्रपत्र को दस्तावेज़ से जोड़ना

में मानक विन्यास 1C 8बाहरी मुद्रित प्रपत्रों को पंजीकृत करने के लिए एक निर्देशिका है बाहरी प्रसंस्करण. कनेक्ट करने के लिए, एंटरप्राइज़ मोड में मेनू पर जाएं सेवा->अतिरिक्त रिपोर्ट और प्रसंस्करण->अतिरिक्त बाहरी मुद्रित प्रपत्र.

एक नया निर्देशिका तत्व जोड़ें, डिस्क से मुद्रित प्रपत्र लोड करें और दस्तावेज़ प्रकार का चयन करें।

अब दस्तावेज़ में वस्तुओं और सेवाओं की बिक्रीएक नया मुद्रण योग्य दिखाई देगा.

मुद्रित प्रपत्र का स्वत: पंजीकरण

यह सुनिश्चित करने के लिए कि प्रिंटिंग फॉर्म कनेक्ट करते समय आपको मैन्युअल रूप से दस्तावेज़ प्रकार का चयन करने की आवश्यकता नहीं है, आप कॉन्फ़िगर कर सकते हैं ऑटो पंजीकरण. ऐसा करने के लिए, एक नया लेआउट जोड़ें और उसे कॉल करें सेटिंग्स_ऑटो-पंजीकरण(यही एकमात्र तरीका है) और इसके पहले सेल में हम लिखते हैं दस्तावेज़ीकरण.<Наименование документа> (या निर्देशिकाएँ।<Наименование справочника> ).

अब, एक प्रिंटिंग फॉर्म कनेक्ट करते समय, हमें इसका उपयोग करने के लिए कहा जाएगा ऑटो-पंजीकरण पैरामीटर.

जैसा कि ज्ञात है - कागज के एक टुकड़े के बिना आप...कोई भी गंभीर व्यवसाय इसके बिना नहीं चल सकता। और जब हम कहते हैं कि 1C में कुछ प्रकार के इलेक्ट्रॉनिक दस्तावेज़ हैं, तो तुरंत यह प्रश्न उठता है कि उन्हें कागज़ के रूप में कैसे मुद्रित किया जाए।

इलेक्ट्रॉनिक दस्तावेज़ 1C को प्रिंट करने की प्रक्रिया को प्रिंटिंग फॉर्म 1C कहा जाता है।

प्रत्येक दस्तावेज़ में कई 1C मुद्रित प्रपत्र हो सकते हैं। उदाहरण के लिए, दस्तावेज़ वस्तुओं और सेवाओं की बिक्री (यानी बिक्री) 1 सी मुद्रित रूपों में मुद्रित होती है: टीओआरजी -12, चालान, कंसाइनमेंट नोट, प्रदान की गई सेवाओं का प्रमाण पत्र, और इसी तरह।

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

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

एक बाहरी 1C प्रिंटिंग फॉर्म एक प्रिंटिंग टेम्प्लेट है जिसे कॉन्फ़िगरेशन से किसी तरह अलग संग्रहीत किया जाता है।

हालाँकि, यह सब सिद्धांत है। अपना स्वयं का मुद्रित प्रपत्र कैसे बनाएं? या इससे भी बेहतर, किसी मौजूदा में बदलाव कैसे करें?

1सी दस्तावेज़ कैसे मुद्रित किया जाता है

किसी भी 1C दस्तावेज़ (जिसे मुद्रित किया जा सकता है) को प्रिंट करने के लिए, आपको दस्तावेज़ में प्रिंट बटन पर क्लिक करना होगा। 1सी सूची से इस दस्तावेज़ के लिए 1सी मुद्रित प्रपत्र का चयन करने की पेशकश करेगा।

प्रिंट बटन के बाईं ओर आमतौर पर अंतिम चयनित 1सी प्रिंटिंग फॉर्म तक त्वरित पहुंच बटन होता है।

प्रिंट परिणाम इस तरह दिखता है. इसे प्रिंटर पर प्रिंट करने के लिए, आपको कर्सर को 1C प्रिंटिंग फॉर्म में रखना होगा, बटन पैनल पर या फ़ाइल/प्रिंट मेनू में Ctrl+P या प्रिंटर बटन दबाना होगा।

प्रिंट सेटिंग्स (मार्जिन, शीट ओरिएंटेशन, आदि) फ़ाइल/पेज सेटअप मेनू में स्थित हैं। आप सीधे प्रिंटर पर प्रिंट करने के लिए उपयोगकर्ता सेटिंग्स को भी कॉन्फ़िगर कर सकते हैं।

यह मुद्रण योग्य कहां से आता है?

1सी मुद्रित प्रपत्र कहाँ है?

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

हालाँकि, यह पर्याप्त नहीं होगा - मुद्रण करते समय हमें कई और विकल्प चुनने की पेशकश की गई थी। तथ्य यह है कि कई 1C मुद्रित प्रपत्र लेआउट किसी अन्य स्थान पर छिपे हुए हैं।

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

वैसे, यह नोटिस करना मुश्किल नहीं है कि आपको TORG12 या Invoice के कई लेआउट दिखाई देंगे। क्यों? समझाना आसान है. कानून और आवश्यकताएँ समय-समय पर बदलती रहती हैं। लेकिन हम केवल उसी लेआउट को नहीं बदल सकते - और यदि हमें दस्तावेज़ को किसी ऐसी तारीख से प्रिंट करना है जो परिवर्तन की तारीख से पहले है। इसलिए, कई लेआउट बनाए जाते हैं और, दस्तावेज़ की तारीख के आधार पर, सही लेआउट का उपयोग किया जाता है।

लेकिन वह सब नहीं है! बाहरी लेआउट भी हैं. वे कहाँ संग्रहित हैं?

आइए 1सी एंटरप्राइज़ मोड पर वापस लौटें। प्रशासनिक अधिकार संचालन/निर्देशिका वाले उपयोगकर्ता मेनू के माध्यम से, बाहरी प्रसंस्करण निर्देशिका का चयन करें।

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

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

मुद्रित प्रपत्र 1सी का लेआउट

1सी प्रिंटिंग फॉर्म का लेआउट इस तरह दिखता है।

जैसा कि आप देख सकते हैं, यह ब्लॉकों में विभाजित है। ब्लॉक क्षैतिज (बाईं ओर नाम) या लंबवत (शीर्ष पर नाम) हो सकते हैं।

लेआउट स्वयं, जैसा वह है, मुद्रित नहीं है। अलग-अलग ब्लॉक मुद्रित होते हैं. प्रिंट प्रोसेसिंग प्रक्रिया में प्रोग्रामर ब्लॉक के क्रम और प्रत्येक ब्लॉक की पुनरावृत्ति की संख्या निर्दिष्ट करता है। परिणाम एक मुद्रित प्रपत्र है.

किसी क्षेत्र को निर्दिष्ट करने के लिए, कई पंक्तियों (या कई स्तंभों) का चयन करें और मेनू से तालिका/नाम/एक नाम निर्दिष्ट करें का चयन करें। रिमूव करने के लिए रिमूव नेम कमांड भी है.

नाम की आवश्यकता है ताकि प्रोग्राम कोड से क्षेत्र तक पहुंचा जा सके। नाम न केवल पंक्तियों या स्तंभों को, बल्कि कई कोशिकाओं को भी सौंपा जा सकता है। ऐसा करने के लिए, कक्षों का चयन करें और उसी मेनू का चयन करें।

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

तो, आज हमने सीखा कि एक लेआउट का उपयोग करके 1सी मुद्रित फॉर्म बनाया जाता है। लेआउट में ब्लॉक होते हैं - जिन्हें चतुराई से क्षेत्र कहा जाता है।

मुद्रण प्लेटों के लिए विशिष्ट (आमतौर पर प्रयुक्त) ब्लॉक:

  • हेडर - दस्तावेज़ का शीर्षक प्रदर्शित होता है
  • पंक्ति - तालिका की एक पंक्ति प्रदर्शित होती है, इस ब्लॉक को जितनी बार पंक्तियों को मुद्रित करने की आवश्यकता होती है उतनी बार दोहराया जाता है
  • पाद लेख - दस्तावेज़ का अंत प्रदर्शित होता है।

अब हमें इससे निपटने की जरूरत है