तेज़। अधीनस्थ निर्देशिकाएँ. जल्दी से एक अधीनस्थ निर्देशिका 1सी कैसे बनाएं

क्लाइव वी.वी.

http://prof1c.kklab.ru

अधीनस्थ निर्देशिकाएँ

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

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

निर्देशिका1 और निर्देशिका2. निर्देशिका 2 में, "मालिक" टैब पर जाएं और स्वामी का चयन करें - "निर्देशिका 1", चित्र में दिखाए अनुसार देखें।

अब, "निर्देशिका2" में तत्व बनाते समय, सिस्टम आपसे निर्देशिका1 के स्वामी को दर्ज करने के लिए कहेगा। एक विकल्प है - अधीनता का उपयोग करना - जब अधीनता को तत्वों, समूहों, या समूहों और तत्वों पर सेट किया जाता है।

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

आइए डेटा प्रकार "Directory1.Link" के साथ एक फॉर्म विशेषता बनाएं, जिसका नाम "SelectionDirectory1" है, और इस विशेषता को फॉर्म पर खींचें, शीर्षक "Directory1" सेट करें।


अब, "इस चमत्कार" को काम करने के लिए, आपको कोड लिखना होगा जो निर्देशिका तत्व 1 का चयन करते समय चयन करेगा।

8.2, 8.3 प्रबंधित प्रपत्र

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

प्रक्रिया में, निम्नलिखित पाठ दर्ज करें:

&ग्राहक प्रक्रिया चयन निर्देशिका1ऑनचेंज(तत्व) सूची पर। चयन. तत्व. स्पष्ट() ; // चयन तत्व = सूची। चयन. तत्व. जोड़ें(प्रकार(" चयन एलिमेंटडेटा लेआउट" ) ); चयन तत्व। लेफ्टवैल्यू = नया डेटाकंपोजिशन फ़ील्ड (" मालिक "); चयन तत्व। तुलना दृश्य = डेटाकंपोजिशन तुलना दृश्य। बराबर; चयन तत्व। उपयोग = सत्य; चयन तत्व। राइटवैल्यू = चयन निर्देशिका1; चयन तत्व। डिस्प्लेमोड = डिस्प्लेमोडएलिमेंट aDataCompositionSettings.Unavailable;EndProcedure

8.2 नियमित प्रपत्र


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

प्रक्रिया संदर्भ1ऑनचेंज(तत्व)यह प्रपत्र। चयन. मालिक। मान = निर्देशिका1. जोड़ना; यह प्रपत्र. चयन. मालिक। प्रयोग = सत्य ; यह प्रपत्र. प्रपत्र तत्व. निर्देशिका सूची. चयन सेटिंग्स. मालिक। उपलब्धता = ग़लत; //(?) अंतिम प्रक्रिया

अंतिम पंक्ति(?) - जब उपयोगकर्ता चयन पैरामीटर खोलता है तो हम चयन को बदलने पर रोक लगाते हैं - केवल नियंत्रण तत्व के माध्यम से!

वीडियो (ध्वनि के बिना - ध्वनि के बिना सब कुछ स्पष्ट है)

1C निर्देशिकाएँ क्या हैं और वे 1C में क्या भूमिका निभाती हैं - इस बारे में और हमारे नए लेख में और भी बहुत कुछ।

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

1C निर्देशिकाएँ किस लिए अभिप्रेत हैं?

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

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

1C निर्देशिकाएँ कहाँ स्थित हैं?

आमतौर पर, 1सी एंटरप्राइज में काम करने के लिए इंटरफ़ेस एक प्रोग्रामर द्वारा विकसित किया जाता है, जिसका अर्थ है कि विभिन्न निर्देशिकाएं पूरी तरह से अलग मेनू में स्थित हो सकती हैं।

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


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

विन्यासकर्ता मोड में, विन्यास शाखा के माध्यम से सभी निर्देशिकाओं तक पहुंच उपलब्ध है। वहां से आप किसी भी निर्देशिका के साथ काम कर सकते हैं, उसके टेम्पलेट को अनुकूलित कर सकते हैं, उसे बदल सकते हैं, इत्यादि। आरंभ करने के लिए, माउस से उस पर डबल-क्लिक करें।

वे किस प्रकार की 1C निर्देशिकाएँ दिखती हैं?

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


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

अक्सर 1सी एंटरप्राइज़ में निर्देशिकाओं के लिए दो आवश्यक फ़ील्ड होते हैं:

    निर्देशिका का नाम.

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


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

1सी 8.3 में नामकरण का अर्थ सामग्री, अर्ध-तैयार उत्पाद, उपकरण, सेवाएँ, वापसी योग्य पैकेजिंग, वर्कवियर आदि है। यह सारा डेटा नामकरण निर्देशिका में संग्रहीत है। आप इसे "निर्देशिकाएँ" अनुभाग, उपधारा "वस्तुएँ और सेवाएँ", आइटम "नामकरण" से प्राप्त कर सकते हैं।

आपको निर्देशिका स्थितियों की एक सूची दिखाई देगी जिसमें बहु-स्तरीय पदानुक्रमित संरचना है।

इस लेख में हम एक उदाहरण का उपयोग करके 1सी 8.3 में प्रारंभिक रूप से आइटम भरने के लिए सभी निर्देशों पर चरण-दर-चरण नज़र डालेंगे।

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

आइए एक नया समूह बनाएं. "नामकरण" निर्देशिका के सूची प्रपत्र में, "समूह बनाएं" बटन पर क्लिक करें।

बनाए जाने वाले समूह का नाम निर्दिष्ट करें. आप इसका प्रकार भी भर सकते हैं, लेकिन यह आवश्यक नहीं है।

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

एक नई वस्तु बनाना

आइए स्वयं नामकरण जोड़ने की ओर आगे बढ़ें। ऐसा करने के लिए, निर्देशिका सूची प्रपत्र में, "बनाएं" बटन पर क्लिक करें। आपके सामने नए आइटम का कार्ड खुल जाएगा.

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

यदि आवश्यक हो तो शेष विवरण भरें:

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

आप जिस आइटम का निर्माण कर रहे हैं उसके लिए कार्ड भरने के बाद, आपको इसे लिखना होगा।

1C 8.3 में आइटम के प्रकार क्या हैं और उन्हें कैसे कॉन्फ़िगर करें

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

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

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

1सी 8.3 में आइटम लेखांकन खाते

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

1C लेखांकन 3.0 के मानक विन्यास में, यह रजिस्टर पहले से ही भरा हुआ है। लेकिन यदि आवश्यक हो, तो इसे मैन्युअल रूप से समायोजित किया जा सकता है।

लेखांकन खातों को कॉन्फ़िगर किया जा सकता है:

  • एक विशिष्ट नामकरण आइटम के अनुसार;
  • नामकरण समूह द्वारा;
  • नामकरण के प्रकार से;
  • गोदाम द्वारा;
  • गोदाम के प्रकार से;
  • संगठन द्वारा;
  • पूरे नामकरण में, मान के रूप में एक खाली लिंक निर्दिष्ट करना।

यदि किसी विशिष्ट मद और उसके लिए अलग-अलग लेखांकन खाते कॉन्फ़िगर किए गए थे, तो खाता मद से लिया जाएगा। ऐसे मामलों में, समेकित खातों की प्राथमिकता कम होती है।

वस्तु की कीमतें निर्धारित करना

एक वस्तु की कई कीमतें हो सकती हैं। वे प्रकार में भिन्न होते हैं, जैसे थोक मूल्य, खुदरा मूल्य, आदि।

"नामकरण" निर्देशिका तत्व कार्ड पर जाएं और "मूल्य" हाइपरलिंक का अनुसरण करें।

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

नामकरण के बारे में वीडियो भी देखें:

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

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

1सी:एंटरप्राइज़ सिस्टम आपको लगभग असीमित संख्या में आवश्यक निर्देशिकाएं बनाए रखने की अनुमति देता है। प्रत्येक निर्देशिका सजातीय वस्तुओं की एक सूची है: कर्मचारी, संगठन, सामान, आदि। ऐसी प्रत्येक वस्तु को कहा जाता है निर्देशिका तत्व.

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

निर्देशिका विशेषताएँ

अनिवार्य विवरण के रूप में, प्रत्येक निर्देशिका में है कोडऔर नाम. निर्देशिका तत्व कोड या तो संख्यात्मक या पाठ्य हो सकता है। 1सी:एंटरप्राइज़ सिस्टम निर्देशिका तत्वों के कोड के साथ काम करने के लिए पर्याप्त अवसर प्रदान करता है: कोड का स्वचालित असाइनमेंट, कोड विशिष्टता का स्वचालित नियंत्रण, और अन्य।

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

डेटा के प्रकार

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

पदानुक्रमित निर्देशिकाएँ

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

अधीनस्थ निर्देशिकाएँ

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

निर्देशिका कर्मचारी

निर्देशिका कर लाभ

  • इवानोव इवानोव इवानोव
  • पेत्रोव पेत्र पेत्रोविच
  • श्वेतलोव मिखाइल पेट्रोविच
  • स्वेत्कोव एंटोन वासिलिविच

( मालिक पेत्रोव पेत्र पेत्रोविच)

  • दिग्गजों के लिए लाभ
  • बच्चों के लिए लाभ
  • इवानोव इवानोव इवानोव
  • पेत्रोव पेत्र पेत्रोविच
  • श्वेतलोव मिखाइल पेट्रोविच
  • स्वेत्कोव एंटोन वासिलिविच

( मालिक श्वेतलोव मिखाइल पेत्रोविच)

  • अफगानियों के लिए लाभ

तालिका भाग (केवल संस्करण 8.0)

संस्करण 8.0 में, एक निर्देशिका तत्व के लिए कई सारणीबद्ध भाग होना संभव हो गया। किसी दिए गए तत्व से संबंधित जानकारी को प्रतिबिंबित करने के लिए इस सुविधा का उपयोग करने की अनुशंसा की जाती है, लेकिन जिसकी अपनी ऑब्जेक्ट इकाई नहीं है (जिसके लिए एक अधीनस्थ निर्देशिका बनाने की अनुशंसा की जाती है)। उदाहरण के लिए, संदर्भ के लिए उत्पादों के लिए, माप की इकाइयाँ सारणीबद्ध अनुभाग बनाया जा सकता है; कर्मचारी निर्देशिका के लिए, शिक्षा और पारिवारिक संरचना सारणीबद्ध अनुभाग बनाया जा सकता है। सारणीबद्ध भागों के साथ काम करना अधीनस्थ निर्देशिकाओं के साथ काम करने के समान है, सिवाय इसके कि सारणीबद्ध भागों को प्रकार नहीं बनाया जा सकता है, जिसका अर्थ है कि शिक्षा प्रकार की विशेषता बनाना अब संभव नहीं होगा।

अन्य वस्तुओं के साथ निर्देशिकाओं की तुलना

एक वस्तु

समानताएँ

मतभेद

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

प्रोग्रामिंग की मूल बातें

एक नया तत्व बनाना और रिकॉर्ड करना

एक निर्देशिका आइटम ढूँढना


//उदाहरण के लिए, बर्खास्तगी आदेश में
संदर्भ। तत्व खोजें(कर्मचारी);

संदर्भ। फाइंडबायकोड(123);
संदर्भ। नाम खोजें("इवानोव इवान इवानोविच");
संदर्भ। विवरण खोजें("वेतन", 5000);

//यदि तत्व पाया जाता है, तो यह वर्तमान बन जाता है और इसे इस तरह पढ़ा जा सकता है:

यदि Spr.FindByName("इवानोव इवान इवानोविच") = 1 तब
........FoundCotr = RefCotr. वर्तमान आइटम();
अगर अंत;


//संस्करण 8.0 में, यदि तत्व पाया जाता है, तो इसे वापस कर दिया जाता है, अन्यथा इसे अपरिभाषित लौटा दिया जाता है

फाउंडकॉट्र = RefCotr. फाइंडबायकोड(123);
फाउंडकॉट्र = RefCotr. नाम खोजें("इवानोव इवान इवानोविच");
फाउंडकॉट्र रेफकॉट्र। विवरण खोजें("वेतन", 5000);

फाउंडसोट्र = SprSotr.FindByName("इवानोव इवान इवानोविच");
यदि फाउंडसोट्र = अपरिभाषित है तो
.....//तत्व नहीं मिला
अगर अंत;

किसी निर्देशिका तत्व को हटाना

संदर्भ। मिटाना(1); //तत्काल विलोपन

संदर्भ। मिटाना(0); //हटाने के लिए चिह्नित करें
संदर्भ। हटाएँ अनचेक करें();


मार्क = रेफरी. ध्वज विलोपन(); //नोट: यह एक विधि है


संदर्भ। मिटाना(); //तत्काल विलोपन

संदर्भ। सेटडिलीटमार्क (सही); // हटाने के लिए चिह्नित करें
संदर्भ। सेटडिलीशनमार्क (गलत); //उड़ान भरना हटाने के लिए चिह्नित करें

//आप जांच सकते हैं कि कोई तत्व हटाने के लिए चिह्नित है या नहीं
// एक संपत्ति है मार्कडिलीट, यह बूलियन प्रकार की है - सही या गलत

मार्क = रेफरी. ध्वज विलोपन; //नोट: यह एक संपत्ति है
यदि मार्क = सत्य है तो
.....//तत्व हटाने के लिए चिह्नित किया गया
अगर अंत;

निर्देशिका तत्वों की गणना


संदर्भ। वस्तुएं चुनें();
जबकि SprSotr. तत्व प्राप्त करें()=1 चक्र
...
...सूचित करें ("कर्मचारी" + मूल नाम);
अंतचक्र;


चयन = निर्देशिकाएँ.कर्मचारी। चुनना();
अभी के लिए बस एक चयन। अगला()=1 चक्र
... //अगले तत्व के साथ क्रियाएं
अंतचक्र;


माता-पिता
एक समूह के भीतर तत्वों पर पुनरावृति करें। 1सी शब्दों में एक समूह एक "अभिभावक" है।


Ref.FindByName("कार्यरत");
कार्य करना = Ref.CurrentItem();
संदर्भ। माता-पिता का उपयोग करें(कार्यरत);
// आगे, उदाहरण के लिए, कर्मचारियों के लिए एक चक्र (ऊपर देखें)
...



ग्रुपवर्किंग = SprSotr.FindByName("वर्किंग");
चयन = संदर्भ. चुनना(ग्रुपवर्किंग);
अभी के लिए बस एक चयन। अगला()=1 चक्र
... //अगले तत्व के साथ क्रियाएं
...सूचित करें ("कर्मचारी" + चयन.नाम);
अंतचक्र;

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

आवधिक विवरण
आवधिक विवरण पढ़ना और लिखना।
संपूर्ण निर्देशिका के लिए आवधिक विवरण का नमूना लेने की तिथि निर्धारित करना।


//इस तरह हम पता लगाते हैं कि कर्मचारी के पास क्या था
// किसी विशिष्ट तिथि के लिए श्रेणी

श्रेणी = SprSotr.श्रेणी। पाना(कुछ दिनांक);

//इस प्रकार हम कर्मचारी के लिए श्रेणी निर्धारित करेंगे
// एक विशिष्ट तिथि के लिए
RefSort.श्रेणी। स्थापित करना(कुछ दिनांक, नई श्रेणी);

//आप आवधिक के लिए नमूनाकरण तिथि निर्धारित कर सकते हैं
//संपूर्ण निर्देशिका के लिए विवरण
संदर्भ। उपयोग दिनांक(कुछ दिनांक);

//तो आप अब इंस्टॉल और गेट नीचे का उपयोग नहीं कर सकते
//आवधिक विवरण तक पहुंच बन जाती है
//नियमित विवरण के समान
श्रेणी = SprSotr.श्रेणी;
वेतन = 6000;

संस्करण 8.0 में कोई आवधिक विवरण नहीं है। इसके स्थान पर समय-समय पर विस्तारित सूचना रजिस्टरों का उपयोग करना आवश्यक है।

संदर्भ पुस्तकों के स्क्रीन प्रपत्र

निर्देशिका सूची प्रपत्र

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

सौ बार सुनने की तुलना में एक बार देखना बेहतर है, इसलिए नीचे कर्मचारी निर्देशिका के लिए सूची प्रपत्र का एक उदाहरण दिया गया है:




सूची फॉर्म मॉड्यूल में ऐसी प्रक्रियाएं और फ़ंक्शन शामिल हैं जो इस फॉर्म के संदर्भ में (निर्देशिका ऑब्जेक्ट के संदर्भ में) संचालित होते हैं।

पूर्वनिर्धारित प्रक्रियाएँ कुछ के घटित होने पर 1C प्रणाली द्वारा कॉल किया जाता है आयोजन. कुछ घटनाएँ घटित होने पर 1सी प्रणाली द्वारा पूर्वनिर्धारित प्रक्रियाओं को बुलाया जाता है, इसलिए वे इवेंट हैंडलर हैं। संस्करण 8.0 में, प्रक्रिया का नाम कुछ भी हो सकता है, जरूरी नहीं कि वह ईवेंट नाम के समान हो। इसके अलावा, संस्करण 8.0 में सभी वस्तुओं के लिए घटनाओं की सूची में काफी विस्तार किया गया है।

आयोजन

विवरण

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

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

उदाहरण, निर्देशिका स्थिति

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


छंटाई

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


प्रक्रिया ऑनओपन()
...... छंटाई("कोड",0); //कोड के अनुसार क्रमबद्ध, उपयोगकर्ता बदल नहीं सकता
प्रक्रिया का अंत

प्रक्रिया ऑनओपन()
......DirectoryList.Order.Set('नाम Asc, कार्ड Asc');
......//पाठकों से प्रश्न: उपयोगकर्ता को सॉर्ट क्रम बदलने से कैसे रोकें?
प्रक्रिया का अंत

चयन

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

स्थैतिक फ़िल्टर (केवल संस्करण 7.7)

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

प्रक्रिया शोवर्किंग बढ़ई()

एलिमेंटलिस्ट = createObject("ValueList");

Ref.SelectItems();

....यदि (विज्ञापन अभिभावक = ग्रुपवर्किंग) और (विज्ञापन पद = नौकरी बढ़ई) तो
...........तत्वों की सूची.AddValue(Ref.CurrentElement());
.....अगर अंत;
अंतचक्र;

सूची तत्वों का उपयोग करें(सूची आइटम);

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

तत्त्व रूप और समूह रूप

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


निर्देशिका तत्व प्रपत्र में पूर्वनिर्धारित प्रक्रियाएँ (घटनाएँ) भी हैं:

आयोजन

विवरण

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

जब कोई निर्देशिका तत्व लिखा जाता है तो कॉल किया जाता है। यह प्रक्रिया आपको त्रुटियों के लिए अपने इनपुट डेटा की जांच करने की अनुमति देती है।

उदाहरण, निर्देशिका कर्मचारी

रिकॉर्डिंग प्रक्रिया
....यदि श्रेणी.चयनित()=0 तो
.........चेतावनी('कर्मचारी श्रेणी निर्दिष्ट नहीं है!');
.........रिटर्नस्टेटस(0);
.....अगर अंत;
प्रक्रिया का अंत

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

यह ध्यान दिया जाना चाहिए कि संस्करण 8.0 में सभी वस्तुओं के लिए घटनाओं की सूची में काफी विस्तार किया गया है।

किसी तत्व को बनाना और रिकॉर्ड करना

निर्देशिका तत्व का प्रोग्रामेटिक निर्माण

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



संदर्भ। नया();


संदर्भ। लिखो();
// तत्व को रिकॉर्ड करने के बाद ही आवधिक विवरण सेट करना संभव है
Ref.श्रेणी.सेट (Ref.ReceptionDate, ktgPartners);
Ref.Position.Set (Ref.ReceptionDate, बढ़ई के लिए);

लेकिन आप इसे और अधिक सुंदर बना सकते हैं:

RefCotr = CreateObject('Directory.Employees');
SprSotr.UseParent(grpWorking);
Ref.UseDate(ReceptionDate); //ध्यान!
Ref.नया();
SprSotr.Name = "इवानोव इवान इवानोविच";
Ref.ReceptionDate = "01/01/2002";
//आवधिक विवरणों तक पहुंच नियमित विवरणों के समान ही हो जाती है
SprSotr.श्रेणी = ktgPartners;
स्प्र.पोजीशन = डीएलजेकारपेंटर;
SprCotr.लिखें();

नई = निर्देशिकाएँ.कर्मचारी.CreateItem();
नया.अभिभावक = समूहकार्य;
नया.नाम = "इवानोव इवान इवानोविच";
नया.रिसेप्शनडेट = "01/01/2002";
नया.लिखें();

//संस्करण 8.0 में कोई आवधिक विवरण नहीं है

समूहों का प्रोग्रामेटिक निर्माण

RefCotr = CreateObject('Directory.Employees');

संदर्भ। एक नया समूह();

संदर्भ। लिखो();

Ref.NewGroup();

SprCotr.लिखें();

नई = निर्देशिकाएँ.कर्मचारी .एक समूह बनाने के लिए();

नया लिखो();

नई = निर्देशिकाएँ["कर्मचारी"] .एक समूह बनाने के लिए();
नया.नाम = "कार्यरत";
नया लिखो();

ध्यान!

लेनदेन

कई निर्देशिका तत्व बनाते समय, आप कार्य को गति देने के लिए लेनदेन में एक चक्र संलग्न कर सकते हैं। इस मामले में, सभी तत्वों का वास्तविक निर्माण केवल CommitTransaction() कमांड के साथ होगा। लेन-देन चलने के दौरान निर्देशिका अवरुद्ध है।

RefCotr = CreateObject('Directory.Employees');
लेन-देन प्रारंभ करें();

नामांकन के लिए = 1 से 100 चक्र
.....संदर्भ.नया();
.....SprSotr.Name = "नया" + स्ट्रिंग(Nom);
....RepCort.Write();
अंतचक्र;

प्रतिबद्ध लेनदेन();


SprSotr = निर्देशिकाएँ.कर्मचारी;
लेन-देन प्रारंभ करें();

नामांकन के लिए = 1 से 100 चक्र
.....नया = SprSotr.CreateElement();
.....नया.नाम = "नया" + स्ट्रिंग(नाम);
.....नया.लिखें();
अंतचक्र;

प्रतिबद्ध लेनदेन();

तत्वों पर पुनरावृत्ति

सरल खोज

RefCotr = CreateObject('Directory.Employees');
मोड = 0; //पदानुक्रम को ध्यान में रखे बिना चयन करें, 1 - ध्यान में रखते हुए (डिफ़ॉल्ट रूप से)
संदर्भ। वस्तुएं चुनें(तरीका);
जबकि SprSotr. तत्व प्राप्त करें()=1 चक्र
.....<действия с очередным элементом/группой>
अंतचक्र;

निस्पंदन (चयन)

RefCotr = CreateObject('Directory.Employees');
पदानुक्रम मोड = 1; //1 - पदानुक्रम को ध्यान में रखते हुए चयन करें, 0 - बिना ध्यान दिए
ग्रुपमोड = 0; //0 - चयन में समूह शामिल न करें, 1 - शामिल करें
विशेषतानाम = "वर्ष"; //विन्यासकर्ता में, विशेषता में चयन चेकबॉक्स चेक किया हुआ होना चाहिए
मूल्य = 1980;
संदर्भ। विवरण के अनुसार तत्व चुनें(विशेषता नाम, मान, पदानुक्रम मोड, समूह मोड);
जबकि SprCont.GetElement()=1 लूप
.....<действия с очередным элементом>
अंतचक्र;

एक लूप में फ़िल्टर करना

RefCotr = CreateObject('Directory.Employees');
SprSotr.UseParent(grpWorking);
Ref.UseDate(WorkingDate());
संदर्भ। वस्तुएं चुनें();
जबकि SprSotr. तत्व प्राप्त करें()=1 चक्र

यदि प्रशासनिक पद<>dlzhबढ़ई फिर
....जारी रखना; // हम इस कर्मचारी को छोड़ देते हैं, चक्र की शुरुआत में जाते हैं
अगर अंत;

<действия с очередным элементом>

अंतचक्र;

क्रमबद्धता क्रम

नमूना लेने से पहले, आप निम्न विधियों का उपयोग करके सॉर्ट क्रम निर्धारित कर सकते हैं:

कोडऑर्डर()
नामआदेश()
विशेषता क्रम (ReqName) // विशेषता में कॉन्फ़िगरेशनकर्ता में सॉर्टिंग चेकबॉक्स चेक किया जाना चाहिए
उल्टे क्रम()

उदाहरण के लिए, नीचे अवरोही क्रम में संख्या के आधार पर क्रमबद्ध कर्मचारियों का चयन खुलता है:

RefCotr = CreateObject('Directory.Employees');
Ref.CodesOrder();
Ref.रिवर्सऑर्डर();
Ref.SelectItems();

निर्देशिका से अनुरोध करें

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

किसी तत्व की खोज करें

किसी तत्व की खोज करें

RefCotr = CreateObject('Directory.Employees');
यदि SprSotr. तत्व खोजें(SelectSotr)=1 फिर
....//तत्व चालू हो जाता है
....SprSotr.Parent = grpWorking;
....RepCort.Write();
अगर अंत;

कोड द्वारा खोजें

यदि SprSotr. फाइंडबायकोड(1)=1 फिर
....ElementOrGroup = Ref.CurrentElement();
अगर अंत;

नाम से खोजें

यदि SprSotr. नाम खोजें("कार्य")=1 फिर
....grpWorking = Ref.CurrentItem();
अगर अंत;

मोड = 1; // 1 - स्थापित अधीनता (मूल) (डिफ़ॉल्ट) के भीतर खोजें; 0 - संपूर्ण निर्देशिका में खोजें
खोजफ़्लैग = 0; //1 - सटीक मिलान ढूंढें; 0 - पहले अक्षर से नाम ढूंढें (डिफ़ॉल्ट)
SprSotr.UseParent(grpWorking);
यदि Ref.FindByName("Iv",Mode,SearchFlag)=1 तो
....FirstWorkingIv = Ref.CurrentItem();
अगर अंत;

विवरण के आधार पर खोजें

ReqName = "वर्ष"; // विशेषता में कॉन्फिगरेटर में सॉर्टिंग चेकबॉक्स चेक किया जाना चाहिए
सर्चग्लोबफ्लैग = 1; // 1 - संपूर्ण निर्देशिका में खोजें, 0 - अधीनता के भीतर खोजें
यदि SprSotr. विवरण खोजें(ReqName,1980,SearchGlobeFlag)=1 फिर
.....FoundElement = Ref.CurrentElement();
अगर अंत;

लूप में एक तत्व ढूँढना

RefCotr = CreateObject('Directory.Employees');
SprSotr.UseParent(grpWorking);
Ref.UseDate(WorkingDate());
संदर्भ। वस्तुएं चुनें();
जबकि SprSotr. तत्व प्राप्त करें()=1 चक्र

यदि व्यवस्थापक.स्थिति = dlzhCarpenter तो
....निरस्त करें; //एक काम करने वाला बढ़ई मिल गया! पाश से बाहर निकलो
अगर अंत;

अंतचक्र;
<действия с найденным элементом>

निर्देशिका से अनुरोध करें

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

आइटम हटाना

सीधा निष्कासन

RefCotr = CreateObject('Directory.Employees');
SprEmployee.FindElement(SelectEmployee);
Ref.डिलीट(); //तत्काल विलोपन

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

आप फाइंडलिंक्स (ऑब्जेक्ट) विधि का उपयोग करके हटाए जाने वाले ऑब्जेक्ट के लिंक वाले ऑब्जेक्ट की एक सूची प्रोग्रामेटिक रूप से प्राप्त कर सकते हैं।

हटाने के लिए चिह्नित करें

डेटाबेस की संदर्भात्मक अखंडता को नियंत्रित करने के लिए, हटाए गए तत्वों को केवल हटाने के लिए चिह्नित किया जाता है। फिर, विशेष मोड में एक विशेष मेनू कमांड ऑपरेशंस => "चिह्नित ऑब्जेक्ट्स को हटाना" का उपयोग करके, 1 सी सिस्टम संदर्भात्मक अखंडता की जांच करेगा और डेटाबेस से तत्वों को भौतिक रूप से हटा देगा यदि अन्य ऑब्जेक्ट्स में उनका कोई संदर्भ नहीं है।

SprSotr = CreateObject('Directory.Employees');
Ref.FindElement(SelectEmployee);
Ref.डिलीट(0); //हटाने के लिए चिह्नित करें

//आप जांच सकते हैं कि कोई तत्व हटाने के लिए चिह्नित है या नहीं
//फ़ंक्शन रिटर्न 1 - यदि चिह्नित है, 0 - यदि नहीं
मार्क = रेफरी. ध्वज विलोपन();

//आप विलोपन चिह्न को अनचेक कर सकते हैं
Ref.FindElement(SelectEmployee);
संदर्भ। हटाएँ अनचेक करें();

लेनदेन

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

RefCotr = CreateObject('Directory.Employees');
लेन-देन प्रारंभ करें();

Ref.SelectItems();
जबकि SprCont.GetElement()=1 लूप
......संदर्भ.हटाएं(0); //हटाने के लिए चिह्नित करें
अंतचक्र;

प्रतिबद्ध लेनदेन();

पदानुक्रमित निर्देशिकाएँ

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

बहु-स्तरीय निर्देशिकाओं का उपयोग आपको आवश्यक स्तर के विवरण के साथ निर्देशिका में जानकारी के प्रवेश को व्यवस्थित करने की अनुमति देता है। बहु-स्तरीय निर्देशिका में तत्वों और तत्वों के समूहों को एक समूह से दूसरे समूह में स्थानांतरित किया जा सकता है।

ध्यान! श्रेणीबद्धसंदर्भ पुस्तक भी है बहु स्तरीयनिर्देशिका, या निर्देशिका के साथ समूह.
1C में एक निर्देशिका समूह को अक्सर "कहा जाता है" माता-पिता".

एक समूह का प्रोग्रामेटिक निर्माण

RefCotr = CreateObject('Directory.Employees');

संदर्भ। एक नया समूह();
SprSotr.Name = "कार्यरत";
संदर्भ। लिखो();

Ref.NewGroup();
Ref.Name = "ख़ारिज";
SprCotr.लिखें();

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

वर्तमान समूह सेट करना


संदर्भ। माता-पिता का उपयोग करें(जीआरपीवर्किंग); //अब हम वर्किंग ग्रुप के अंदर हैं
Ref.SelectItems(); // कार्य समूह के तत्वों का चयन खोलें

RefCotr = CreateObject('Directory.Employees');
संदर्भ। माता-पिता का उपयोग करें(जीआरपीवर्किंग);
Ref.नया(); // कार्य समूह में एक नया तत्व बनाना

यदि निर्देशिका बहु-स्तरीय है, तो निम्नलिखित विधियों और विशेषताओं का उपयोग करना उपयोगी होगा जो आपको वर्तमान निर्देशिका तत्व के बारे में जानकारी प्राप्त करने की अनुमति देते हैं:

विधि/विशेषता

विवरण

स्तर()

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

उदाहरण, एक पेड़ के रूप में एक पदानुक्रमित निर्देशिका का आउटपुट:

RefCotr = CreateObject('Directory.Employees');
Ref.SelectItems();

//तत्व नेस्टिंग गहराई के अनुसार इंडेंटेशन प्रदर्शित करें
Nom=1 के लिए const.Level() साइकिल द्वारा
.....रिपोर्ट करना(".....");
अंतचक्र;

अंतचक्र;

इस समूह() यदि वर्तमान निर्देशिका तत्व एक समूह है तो यह विधि 1 लौटाती है, या यदि यह एक समूह नहीं है तो 0 लौटाती है।

उदाहरण, कर्मचारियों का आउटपुट (समूह आउटपुट नहीं हैं):

RefCotr = CreateObject('Directory.Employees');
Ref.SelectItems();
जबकि Ref.GetItems()=1 लूप

यदि Ref.ThisGroup()=1 तो
......जारी रखना; //समूह छोड़ें, लूप की शुरुआत में जाएं
अगर अंत;
रिपोर्ट(संदर्भनाम);

अंतचक्र;

समूह से संबंधित(...) विधि यह जाँचती है कि क्या वर्तमान निर्देशिका तत्व निर्दिष्ट समूह से संबंधित है (चाहे वह किसी भी अंतर्निहित स्तर पर स्थित हो)।
रिटर्न: 1 - यदि तत्व निर्दिष्ट समूह से संबंधित है, 0 - यदि नहीं।

उदाहरण, अल्कोहल समूह से संबंधित उत्पादों को प्रदर्शित करना, भले ही वे शैंपेन, बीयर, वोदका, वाइन आदि उपसमूहों में शामिल हों या नहीं:




....सूचित करें(SprProducts.Name);
अगर अंत;

अंतचक्र;

गुण माता-पिता

इस विशेषता में वर्तमान निर्देशिका तत्व का जनक शामिल है, अर्थात। वह समूह जिसमें वर्तमान तत्व स्थित है। पठनीय एवं लिखने योग्य।

उदाहरण, सभी उत्पादों को अल्कोहल समूह से बिक्री समूह में स्थानांतरित करना:

डायरेक्ट्रीप्रोडक्ट्स = CreateObject('Directory.Products');
SprProducts.SelectItems();
जबकि SprProducts.GetItems()=1 लूप

यदि उत्पाद.समूह(समूहअल्कोहल)=1 से संबंधित है तो
.....स्प्रोट्र.पेरेंट = जीआरपीसेल;
....RepCort.Write();
अगर अंत;

अंतचक्र;

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

डायरेक्ट्रीप्रोडक्ट्स = CreateObject('Directory.Products');
SprProducts.FindItem(grpAlcohol);
स्प्रप्रोडक्ट्स.पेरेंट = जीआरपीसेल;
SprProducts.Write();

फुलकोड()

एक स्ट्रिंग लौटाता है जिसमें चयनित निर्देशिका तत्व का पूरा कोड होता है जिसमें सभी उच्च स्तर "/" वर्ण से अलग होते हैं।

उदाहरण के लिए, "2/7/123"

पूरा नाम()

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

उदाहरण के लिए, "शराब/शैंपेन/सोवियत"

डायलॉग प्रॉप्स में एक समूह का चयन करने की क्षमता

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

प्रपत्र.कर्मचारी का चयन करें. समूह चयन(0); // किसी समूह का चयन करने की क्षमता अक्षम करें

अधीनस्थ निर्देशिकाएँ

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

अधीनस्थ निर्देशिकाओं का असाइनमेंट

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

किसी निर्देशिका को सिस्टम में पहले से मौजूद किसी भी निर्देशिका के अधीन करने के लिए, "अधीनस्थ" फ़ील्ड में, इस निर्देशिका का नाम चुनें। 1सी:एंटरप्राइज़ सिस्टम में ऐसी निर्देशिका को स्वामी कहा जाता है।

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

बाह्य रूप से, 1सी:एंटरप्राइज़ सिस्टम में एक अधीनस्थ निर्देशिका के साथ काम करना इस तरह दिखेगा।

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

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

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

वर्तमान स्वामी को सेट करना


SprAgreements.UseOwner(SelectContractor);
SprAgreements.SelectItems(); //चयनित प्रतिपक्ष के समझौतों का चयन खोलें
<...>

वर्तमान तत्व के बारे में जानकारी

यदि निर्देशिका अधीनस्थ है, तो निम्नलिखित विधियों और विशेषताओं का उपयोग करना उपयोगी होगा जो आपको वर्तमान निर्देशिका तत्व के बारे में जानकारी प्राप्त करने की अनुमति देते हैं:

गुण

विवरण

विशेषता स्वामी

इस विशेषता में अधीनस्थ निर्देशिका के वर्तमान तत्व का स्वामी शामिल है, अर्थात। होस्ट निर्देशिका का तत्व जिससे यह तत्व संबंधित है। विशेषता पठनीय और लिखने योग्य है.

उदाहरण, सभी अनुबंधों को एक प्रतिपक्ष से दूसरे में स्थानांतरित करना (अनुबंध निर्देशिका प्रतिपक्ष निर्देशिका के अधीन है):

डायरेक्टरीएग्रीमेंट्स = CreateObject("डायरेक्टरी.एग्रीमेंट्स");
SprAgreements.UseOwner(प्रतिपक्ष1);
SprAgreements.SelectItems();
जबकि SprAgreements.GetElements()=1 लूप

SprAgreements.Owner = प्रतिपक्ष2;
SprAgreements.Write();

अंतचक्र;


आवधिक विवरण

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

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

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

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

आवधिक विवरण विधियाँ
//इस तरह हम पता लगाते हैं कि किसी निश्चित तिथि पर कर्मचारी की कौन सी श्रेणी थी
श्रेणी = SprSort.Category.Get(SomeDate);

//इस तरह हम एक विशिष्ट तिथि के लिए कर्मचारी की श्रेणी निर्धारित करेंगे
Ref.Category.Set(SomeDate, NewCategory);

ध्यान! यदि आपने पहले यूज़डेट पद्धति का उपयोग नहीं किया है तो इन विधियों का उपयोग किया जा सकता है

आवधिक विवरण के नमूने के लिए तिथि निर्धारित करना

// आप संपूर्ण निर्देशिका के लिए आवधिक विवरण के नमूने के लिए तिथि निर्धारित कर सकते हैं
संदर्भ। उपयोग दिनांक(कुछ दिनांक);

// तो यह पहले से ही कम है यह वर्जित हैसेट और गेट विधियों का उपयोग करें
//आवधिक विवरण तक पहुंच नियमित विवरण के समान हो जाती है
श्रेणी = SprSotr.श्रेणी;
वेतन = 6000;

वस्तु "आवधिक"

आवधिक विवरण के इतिहास के साथ काम करने के लिए, "आवधिक" ऑब्जेक्ट का उपयोग करना बहुत सुविधाजनक है।

उदाहरण, चालू वर्ष के लिए कर्मचारी का कैरियर इतिहास प्रदर्शित करें:

हिस्ट्रीकैरियर = CreateObject('आवधिक');
CareerHistory.UseObject("स्थिति", चयनकर्मचारी);
करियर इतिहास.SelectValues(वर्ष की शुरुआत(कार्य तिथि()), वर्ष का अंत(कार्य तिथि()));
जबकि हिस्ट्रीकैरियर.गेटवैल्यू()=1 लूप
....रिपोर्ट(स्ट्रिंग(करियरहिस्ट्री.डेटवैल्यू) + " " + स्ट्रिंग(करियरहिस्ट्री.वैल्यू));
अंतचक्र;

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

दस्तावेज़ ले जाना

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

निर्देशिका विवरण सेट करें(कर्मचारी, "पद", नई स्थिति, स्थानांतरण दिनांक);

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

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

प्रक्रिया प्रसंस्करणआचरण()

चयन पंक्तियाँ();
जबकि GetString()=1 लूप

बाइंडस्ट्रिंग(पंक्ति नंबर);
निर्देशिका विवरण सेट करें (कर्मचारी, "पद", नई स्थिति, स्थानांतरण तिथि);

अंतचक्र;

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

निर्देशिका से चयन

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

चयन का संगठन

सिंटैक्स: ओपनसेलेक्ट(<Объект>,<ИмяФормы>,<КонтекстФормы>,<ФлагМножВыбора>,<ТекЗнач>)

ओपन चयन ("निर्देशिका। नामकरण", "फॉर्मफॉरसेलेक्शन", सामग्री, 1);


...नई पंक्ति();
...उत्पाद = वस्तु;
प्रक्रिया का अंत

आप प्रपत्र संदर्भ का उपयोग कर सकते हैं और तुरंत वांछित समूह में जा सकते हैं, उदाहरण के लिए:

ओपन चयन ("निर्देशिका। नामकरण", "फॉर्मफॉरसेलेक्शन", सामग्री, 1);
Cont.UseParent(grpAlcohol);

प्रक्रिया प्रसंस्करणफिट(तत्व, प्रपत्रसामग्री)
...नई पंक्ति();
...उत्पाद = वस्तु;
प्रक्रिया का अंत

चयन से मान सेट करना और प्राप्त करना

सामग्री प्रपत्र चयन. SetValueInSelection(<ИмяРеквизита>,<Значение>)

<ИмяРеквизита>- मूल्य चयन प्रपत्र की विशेषता के नाम के साथ पंक्ति;
<Значение>- विशेषता का मूल्य.

सामग्री प्रपत्र चयन. GetValueFromSelection(<Выражение>)

<Выражение>- एक स्ट्रिंग अभिव्यक्ति जिसका मान चयन प्रपत्र के संदर्भ में गणना की जाती है और परिणाम के रूप में लौटाया जाता है।

अन्य उपयोगी विधियाँ

तरीका

विवरण

देखना() निर्देशिका प्रकार का वर्तमान नाम सेट करें या पढ़ें। निर्देशिका प्रकार का वर्तमान नाम लौटाता है, जैसा कि विन्यासकर्ता में निर्दिष्ट है, उदाहरण के लिए, "कर्मचारी"। "निर्देशिका" प्रकार के विवरण के लिए निर्देशिका का प्रकार सेट करना संभव है, अर्थात। अनिश्चित प्रकार की निर्देशिका.
व्यूव्यू() कॉन्फ़िगरेशनकर्ता में निर्दिष्ट अनुसार निर्देशिका दृश्य का एक कस्टम दृश्य प्राप्त करें।
निर्देशिका दृश्य (समानार्थी) का एक कस्टम प्रतिनिधित्व युक्त एक स्ट्रिंग मान लौटाता है।
सेटएट्रिब्यूट(विशेषतानाम, मान) विशेषता का मान उसके नाम से निर्धारित करें।
<ИмяРеквизита>- एक स्ट्रिंग अभिव्यक्ति जिसमें विशेषता का नाम शामिल है, जैसा कि विन्यासकर्ता में निर्दिष्ट है।<Значение>- एक अभिव्यक्ति जिसमें सेट की जाने वाली विशेषता का मान शामिल है।
GetAttribute(विशेषतानाम) किसी विशेषता का मान उसके नाम से प्राप्त करें। विशेषता का मान लौटाता है.
चयनित()

रिटर्न 1 - यदि निर्देशिका तत्व चयनित है, 0 - यदि चयनित नहीं है। यह सुनिश्चित करने के लिए कि सभी आवश्यक डेटा प्रदान किया गया है, त्रुटियों की जाँच करने के लिए अक्सर इसका उपयोग किया जाता है।

चुनना(...) निर्देशिका तत्व का चयन करने के लिए एक संवाद को कॉल करना।
रिटर्न: 1 - यदि तत्व चुना गया है; 0 - यदि चयनित नहीं है. चयनित तत्व वर्तमान बन जाता है।

निर्देशिका संरचना पढ़ना

सन्दर्भ पुस्तकों के अनुसार साइकिल चलायें

DirectriesInConfiguration की संख्या = Metadata.Directory();
कॉन्फ़िगरेशन चक्र में निर्देशिकाओं की संख्या के लिए Nom=1

cfgSpr = मेटाडेटा.निर्देशिका(Nom);
पहचानकर्ता = cfgSpr.Identifier();
FullIdentifier = cfgSpr.FullIdentifier();
पर्यायवाची = cfgSpr.Synonym();

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

नीचे हम एक उदाहरण के रूप में "नामकरण" निर्देशिका का उपयोग करके विन्यासकर्ता से एक निर्देशिका की स्थापना और डिजाइन पर गौर करेंगे।

मूल टैब

"बेसिक" टैब नाम, पर्यायवाची, वस्तु प्रतिनिधित्व और उद्देश्य का विवरण निर्दिष्ट करता है।

"निर्देशिका पदानुक्रम" टैब

यहां निर्देशिका का पदानुक्रम स्थापित किया गया है।

1C 8.3 में पदानुक्रम दो प्रकार का है - " समूह और तत्व" और " तत्वों". इसमें अंतर यह है कि पहले मामले में, केवल एक फ़ोल्डर (समूह) ही पैरेंट (फ़ोल्डर) हो सकता है, और दूसरे मामले में, एक तत्व भी पैरेंट हो सकता है।

"समूहों को शीर्ष पर रखें" - ध्वज समूहों को सूची के रूप में प्रदर्शित करने के लिए जिम्मेदार है।

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

स्वामी टैब

एक निर्देशिका को दूसरी निर्देशिका के अधीन किया जा सकता है। 1सी 8.3 को कॉन्फ़िगर करने के दृष्टिकोण से, इसका मतलब है कि अधीनस्थ तत्व के लिए "स्वामी" विशेषता अनिवार्य हो जाती है। मानक विन्यास "नामकरण - माप की इकाइयाँ", "प्रतिपक्ष - ठेकेदारों के अनुबंध" में निर्देशिकाओं के बीच इस तरह के संबंध का एक उदाहरण।

निर्देशिका स्वामी निम्नलिखित मेटाडेटा ऑब्जेक्ट भी हो सकते हैं: , .

डेटा टैब

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

एक प्रोग्रामर के दृष्टिकोण से सबसे महत्वपूर्ण टैब। इसमें निर्देशिका विवरण शामिल हैं।

निर्देशिका में मानक विवरणों का एक सेट है जो 1C 8.2 प्रोग्रामर द्वारा संपादित नहीं किया गया है; उनकी सूची "मानक विवरण" बटन पर क्लिक करके देखी जा सकती है:

मैं प्रत्येक पर अधिक विस्तार से ध्यान केन्द्रित करूंगा:

  • इस समूह- बूलियन प्रकार वाली एक विशेषता, जो दर्शाती है कि यह एक समूह है या एक तत्व। केवल पदानुक्रमित निर्देशिका में उपलब्ध है. टिप्पणी, इस विशेषता का मान 1C: एंटरप्राइज़ मोड में नहीं बदला जा सकता है.
  • कोड- प्रॉप्स, प्रकार संख्या या स्ट्रिंग (आमतौर पर एक स्ट्रिंग)। सिस्टम द्वारा स्वचालित रूप से निर्दिष्ट एक नंबर। आमतौर पर (पिछला कोड + 1) के रूप में गणना की जाती है। मैं स्ट्रिंग प्रकार का उपयोग करने की अनुशंसा करता हूं, क्योंकि संख्यात्मक मानों को क्रमबद्ध करना अपेक्षा के अनुरूप काम नहीं करता है। किसी सूची और इनपुट फ़ील्ड में निर्देशिका प्रस्तुति के रूप में उपयोग किया जा सकता है। आमतौर पर स्ट्रिंग दर्ज करते समय किसी तत्व की खोज करने के लिए उपयोग किया जाता है। यदि आपको कोड फ़ील्ड को हटाने की आवश्यकता है, तो पंक्ति की लंबाई में शून्य दर्ज करें।
  • नाम- अनिवार्य विवरण, स्ट्रिंग प्रकार। अधिकतम पंक्ति लंबाई 150 अक्षर है. किसी सूची और इनपुट फ़ील्ड में निर्देशिका प्रस्तुति के रूप में उपयोग किया जा सकता है। आमतौर पर स्ट्रिंग दर्ज करते समय किसी तत्व की खोज करने के लिए उपयोग किया जाता है। यदि आपको नाम फ़ील्ड हटाना है, तो पंक्ति की लंबाई में शून्य दर्ज करें।
  • माता-पिता- डायरेक्टरीलिंक प्रकार की एक विशेषता।<ИмяТекущегоСправочника>. केवल पदानुक्रमित निर्देशिका में उपलब्ध है. पदानुक्रम में श्रेष्ठ अभिभावक को इंगित करता है। यदि तत्व या समूह निर्देशिका के मूल में है, तो मान निर्देशिका निर्दिष्ट है।<ИмяТекущегоСправочника>.खालीलिंक.
  • मालिक- वर्तमान निर्देशिका तत्व (समूह) के स्वामी तत्व से लिंक करें। उपलब्ध केवल अधीनस्थ 1सी निर्देशिका में.
  • ध्वज विलोपन- बूलियन प्रकार के प्रॉप्स। सिस्टम में "विलोपन चिह्न" प्रदर्शित करने के लिए जिम्मेदार। हटाने के लिए चिह्नित तत्व को अनुपयोगी माना जाता है, लेकिन पुराने दस्तावेज़ की गतिविधियां उस पर बनी रह सकती हैं।
  • जोड़ना- स्ट्रिंग प्रकार का क्षेत्र। यह विशेषता एक अद्वितीय ऑब्जेक्ट पहचानकर्ता - GUID संग्रहीत करती है। हम सिस्टम में "लिंक" नामक विज़ुअल डिस्प्ले में जो देखते हैं वह सिर्फ एक वस्तु का प्रतिनिधित्व है। बदला नहीं जा सकता।
  • पूर्वनिर्धारित- बूलियन प्रकार, प्रदर्शित करता है कि तत्व पूर्वनिर्धारित है या नहीं, इस पर बाद में और अधिक जानकारी दी जाएगी। बदला नहीं जा सकता।

"डेटा" टैब सिस्टम में निर्देशिका के प्रतिनिधित्व को भी इंगित करता है; संस्करण 8.2.16 से पहले, प्रतिनिधित्व केवल कोड या नाम हो सकता था। प्लेटफ़ॉर्म के हाल के संस्करणों (8.3 से शुरू) में, दृश्य को "व्यू रिसीविंगप्रोसेसिंग" हैंडलर का उपयोग करके प्रबंधक मॉड्यूल में स्वतंत्र रूप से वर्णित किया जा सकता है।

क्रमांकन टैब

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

कोड श्रृंखला - यह निर्धारित करती है कि निर्देशिका को क्रमांकित कैसे किया जाए; आप स्वामी द्वारा निर्देशिका की क्रमांकन दर्ज कर सकते हैं। उदाहरण के लिए, प्रतिपक्ष "हॉर्न्स एंड हूव्स" के पास अनुबंधों की अपनी संख्या होगी - "1, 2, 3", आदि।

प्रपत्र टैब

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

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

अन्य टैब

टैब पर आप निर्देशिका के मुख्य मॉड्यूल - ऑब्जेक्ट मॉड्यूल और मैनेजर मॉड्यूल तक त्वरित पहुंच प्राप्त कर सकते हैं।

आप पृष्ठ पर पूर्वनिर्धारित निर्देशिका तत्वों की एक सूची भी परिभाषित कर सकते हैं। ये वे आइटम हैं जिन्हें एंटरप्राइज़ मोड में हटाया नहीं जा सकता। पूर्वनिर्धारित तत्वों को सीधे विन्यासकर्ता में नाम से पहुँचा जा सकता है, उदाहरण के लिए: Directries.Nomenclature.Service।

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



यादृच्छिक लेख

ऊपर