قائمة طعام
مجاني
التسجيل
الصفحة الرئيسية  /  تعليم/ العنصر المحدد مسبقًا مفقود في البيانات 1c 8.3. تعيين العناصر المحددة مسبقًا

العنصر المحدد مسبقًا مفقود من البيانات 1c 8.3. تعيين العناصر المحددة مسبقًا

يوم جيد.

سنتحدث اليوم عن ابتكار في النظام الأساسي 8.3 فيما يتعلق بالعناصر المحددة مسبقًا.

مقدمة

دعني أذكرك أنه في وقت سابق ، من الناحية العملية ، كنت أرغب في كثير من الأحيان في إلقاء نظرة على عنصر الدليل لمعرفة اسمه المحدد مسبقًا. على سبيل المثال ، لقد أنشأت مقاولين محددين مسبقًا وسميتهما IPSidorov و OOOMeteor. وقد وضعوا نوعًا من المنطق عليهم.

عندما تم تصحيح كل شيء وعمله ، اتضح أن المهمة قد تم تعيينها في الاتجاه المعاكس وأن منطق المالك الوحيد مطلوب لشركة ذات مسؤولية محدودة ، ومنطق الشركة ذات المسؤولية المحدودة لرجل الأعمال الفردي. نقول "لا مشكلة" ، وفي وضع المؤسسة نعيد تسمية العناصر. من الصعب الدخول إلى الكود. مر عام وتم تكليفك بمهمة جديدة: إعداد المزيد من المنطق لـ IP Sidorov. تذهب إلى أداة التهيئة ، وتكتب المنطق ، وتبدأ في التحقق ولا شيء يعمل ، لأن في مكون IPSidorov وفي المؤسسة - OOO Meteor. الدماغ مكسور وأريد تدمير هذا الخليع. الأبسط والأكثر بديهية هو إخراج اسم عنصر محدد مسبقًا في شكل قائمة. هنا كمين ، يمكنك الحصول على اسم محدد مسبقًا في 8.2 بالطريقة فقط. والطريقة لها مضايقات خاصة بها فلا يمكن الحصول عليها في الطلب. أولئك. الإزعاج الأول هو الحصول على اسم محدد مسبقًا بالرجوع إلى الدليل.

الإزعاج الثاني هو عندما يكون لدينا بالفعل عنصر دليل ونحتاج إلى جعله محددًا مسبقًا. نقوم بإنشاء عنصر محدد مسبقًا والحصول على عنصرين في الدليل. واحد محدد مسبقًا ، والآخر يعمل ، والذي تتم الإشارة إليه بواسطة جميع مستنداتنا. من المؤكد أن استبدال الروابط يساعد ، ولكن إذا كانت قاعدة البيانات كبيرة ، فسيكون ذلك صعبًا.

الآن في العمل

الأول هو أن الكتاب المرجعي لديه الآن خاصية "تحديث البيانات المحددة مسبقًا".

ماذا يقدم لنا هذا المجال؟ إذا تم تعيينه على "عدم التحديث تلقائيًا" ، فعند إضافة عنصر محدد مسبقًا ، لن نراه في المرجع على الفور. أولئك. البيانات الوصفية لا علاقة لها بالبيانات. وإذا لم يتم إنشاؤه في الدليل ، فإن الإشارة إليه باسمه من خلال مدير الدليل سيؤدي إلى حدوث خطأ نحوي.

مثير جدا ولكن لماذا؟ كيف نقوم بإنشاء عنصر في المرجع؟ وكما يحلو لك ، يمكنك إنشاء ، أو يمكنك ربطه بواحد موجود. الآن البحث لديه السمة "PredefinedDataName". نقوم بإنشاء عنصر كتالوج برمجيًا كالمعتاد من خلال "References.Contractors.CreateElement ()" ونملأ السمة "PredefinedDataName" الخاصة به والتي تساوي اسم العنصر المحدد مسبقًا. أو ، إذا كان العنصر موجودًا بالفعل ، نحصل على الكائن الخاص به ونملأ "PredefinedDataName" فيه مرة أخرى. كل شىء.

وأخيرا ، القليل من الشراب

هذه الدعائم الجديدة ليست فقط للقراءة / الكتابة ، ولكنها متوفرة أيضًا في الطلبات. وبالتالي ، يمكنك فرض شروط عليها في الاستعلامات ، وتحديد ما إذا كانت محددة مسبقًا أم لا.

شكرا للانتباه.

إن فكرة العمل برمجيًا مع العناصر المحددة مسبقًا ، في رأيي ، صحيحة جدًا. هناك فقط بعض الفروق الدقيقة التي يجب مراعاتها عند العمل.

أولاً ، عليك أن تفهم بنفسك بوضوح أن هناك عناصر محددة مسبقًا في التكوين وأن هناك عناصر محددة مسبقًا في قاعدة المعلومات (IB). تعد عناصر IB المعرفة مسبقًا من الناحية الفنية أكثر عناصر القواميس شيوعًا ، حيث تحدد السمة "PredefinedDataName" عنصر التكوين المحدد مسبقًا الذي تتوافق معه. لا يختلفون عن العناصر العادية. وفقًا لذلك ، يمكن جعل أي عنصر IB عادي محدد مسبقًا ، أي عنصر عادي محدد مسبقًا. للقيام بذلك ، يكفي إدخال القيمة المطلوبة في الدعائم. "PredefinedDataName".

بشكل دوري ، يتبين أن هذه الخاصية ليست هي القيمة التي قدمها المطور. نتيجة لذلك ، تحدث أخطاء في عمل 1C. من الحرج ، حيث يكون العمل مستحيلًا من حيث المبدأ ، إلى غير النقدي ، حيث يتم انتهاك منطق الخوارزميات.

يمكن تمييزه بشروط ثلاثة أنواع من الأخطاء:
1. "عنصر محدد مسبقًا مفقود من البيانات" ؛

3. إشارة غير صالحةعنصر محدد مسبقا

1. "عنصر محدد مسبقًا مفقود من البيانات" - oعدم وجود عنصر محدد مسبقًا موصوف في التكوين في بيانات IB.

هذا هو أسهل أنواع الأخطاء لتصحيحها وإصلاحها. تكمن بساطته في أن النظام الأساسي تقارير كافية بشكل صحيح حول هذا الموقف "عنصر محدد مسبقًا مفقود من البيانات" ومن الواضح تمامًا كيفية إصلاحه.

عند الوصول إلى العنصر المفقود في الكود "الدلائل. أنواع ContactInformation.EmailContactPerson" ، يتم عرض الرسالة

عند الوصول إلى عنصر في الطلب "VALUE (Directory.Types of ContactInformation.EmailContactPerson)" ، يتم عرض الرسالة التالية:

يحدث هذا الخطأ إذا تم وصف عنصر في التكوين ، ولكن العنصر غير مرتبط به في قاعدة البيانات.

بادئ ذي بدء ، دعنا نوضح أن هذا الموقف ليس دائمًا خطأ. من الممكن تمامًا استخدام البيانات المحددة مسبقًا في نوع من منطق البرنامج ، والذي قد لا يتم استخدامه لمعظم المستخدمين. في هذه الحالة ، من أجل عدم ازدحام الكتاب المرجعي لجميع مستخدمي التكوين ، فمن المنطقي تحديد العناصر المحددة مسبقًا في التكوين ، ولكن ليس إنشائها في جميع أنظمة أمان المعلومات ، ولكن فقط لأنظمة أمان المعلومات تلك في الذي يستخدم منطق التكوين المطلوب. في هذه الحالة ، يمكن للمبرمج تحديد خاصية "عدم تحديث البيانات المحددة مسبقًا" للكتاب المرجعي وإنشاء عناصر برمجيًا عند الوصول إلى وظائف الوحدة. أو لتمكين المستخدم من ربط العناصر المحددة مسبقًا للوحدة بالعناصر المعتادة لديه بشكل مستقل.

أيضا لا تستخدم الخلق التلقائيعناصر محددة مسبقًا عند التشغيل في وضع RIB. نظرًا لأنه يجب نقل العناصر الجديدة من القاعدة المركزية ، وليس إنشاؤها في عقد ذات معرفات فريدة مختلفة.

أولئك. في بعض الأحيان يكون من الخطأ الإشارة إلى عنصر لا مثيل له ، بدلاً من مجرد وجود مثل هذا العنصر.

تحتاج إلى تحليل سبب عدم إنشاء العنصر. ربما يجب إنشاؤه عند تنفيذ بعض أوضاع البرنامج. على سبيل المثال ، بعد إجراء التبادل في RIB. أو ربما تم حذفه عن طريق الخطأ.

إذا كان المنطق ينص على ملء العناصر المحددة مسبقًا ليس تلقائيًا ، ولكن في وضع منفصل ، فقبل استخدام الاستدعاء بالاسم " الدلائل ، أنواع معلومات الاتصال"لمنع حدوث استثناء ، يُنصح بالتحقق من أن العنصر موجود بالفعل في قاعدة البيانات. إذا كان العنصر غائبًا ، فقم بإبلاغ المستخدم به وشرح الوضع الذي يحتاج إلى تنفيذه لملء العنصر. لمثل هذا الفحص ، يمكنك تشغيل استعلام على البيانات.

طلب = طلب جديد ؛ Query.Text = "SELECT | أنواع معلومات الاتصال. Link | FROM | Directory. أنواع معلومات الاتصال كأنواع معلومات الاتصال | أين | أنواع معلومات الاتصال. اسم البيانات المحددة مسبقًا =" " البريد الإلكتروني"" "؛ ElementNoNo.VD = Request.Run (). Empty () ؛

إذا كان هذا لا يزال يمثل خطأ في بيانات قاعدة البيانات ، فمن الضروري الارتباط بعنصر معرف مسبقًا لعنصر IB. أولئك. من الضروري أن تشرح للنظام أي عنصر من عناصر أمن المعلومات يجب معالجته كود البرنامجتشغيل الاسم المعطى... من الناحية الفنية ، فإن الربط هو مجرد تحديد اسم عنصر محدد مسبقًا في خاصية "PredefinedDataName"عنصر IB. لتثبيته ، ما عليك سوى تشغيل الكود:

2. "العنصر المحدد مسبقًا ليس فريدًا" - hالعناصر المحددة مسبقًا:

يتمثل هذا الموقف في حقيقة أن العديد من عناصر البكالوريا الدولية مرتبطة بعنصر واحد محدد مسبقًا. في هذه الحالة ، عند الإشارة إلى اسم محدد مسبقًا ، سيتم اختيار العنصر عشوائيًا. هذا الوضع خاطئ دائما. تكمن الصعوبة في أن المنصة لا تتواصل بشأنها بأي شكل من الأشكال. إنها فقط أن الخوارزميات تبدأ في العمل بشكل غير صحيح.

سيقوم إطار العمل فقط بالإبلاغ عن الخطأ "العنصر المحدد مسبقًا ليس فريدًا" عند محاولة تحرير عنصر مكرر.

حتى لا يحتاج أحد إلى تعديل العنصر ، لن يعرف أحد عن الخطأ.

يمكن إنشاء مثل هذه التكرارات ، على سبيل المثال ، إذا تم استخدام RIB للكتاب المرجعي وتم تحديد وضع "التحديث تلقائيًا" في خصائص البيانات المحددة مسبقًا. في هذه الحالة ، عند إجراء التبادل ، سيتم إنشاء مثيل واحد من البيانات المحددة مسبقًا عند تحديث التكوين. سيتم نقل نسخة ثانية من العناصر المحددة مسبقًا بنفس الاسم من قاعدة البيانات المركزية أثناء التبادل.

أيضًا ، ستظهر هذه التكرارات عند استخدام معالجة التبادل بين التكوينات في حالة تطابق عناصر أمن المعلومات المختلفة مع عناصر محددة مسبقًا في قواعد بيانات مختلفة. في هذه الحالة ، توجد نسخة واحدة من البيانات المحددة مسبقًا في قاعدة البيانات ، وستأتي النسخة الثانية عند تحميل البيانات بمعرف UID مختلف. إذا كنت تقوم بعمليات نقل بيانات ، فأنت بحاجة إلى تحديد عناصر قاعدة البيانات التي تعتبر أساسية واستخدامها في قاعدة البيانات الثانوية. في القاعدة الثانوية ، من الضروري استبدال استخدام العناصر القديمة بعناصر من القاعدة الرئيسية.

يمكن اكتشاف مثل هذه الأخطاء في قاعدة البيانات من خلال استعلام عن النموذج:

حدد أنواع معلومات الاتصال. اسم البيانات المحددة مسبقًا ، والكمية (أنواع مختلفة من معلومات الاتصال.لينك) كرقم معرف مسبقًا من الدليل أنواع معلومات الاتصال كأنواع معلومات الاتصال.

سيعيد هذا الاستعلام قائمة بالعناصر المحددة مسبقًا مع أكثر من عنصر IB مرتبط بها.

في حالة وجود مثل هذه العناصر ، فمن الضروري إزالة الاتصال مع العنصر المحدد مسبقًا لأحدها. أولئك. من الضروري تحديد عنصر أمان المعلومات بشكل لا لبس فيه للنظام الذي يجب أن يشير إليه رمز البرنامج عند استخدام هذا الاسم.للقيام بذلك ، تحتاج فقط إلى تنفيذ التعليمات البرمجية.

3. إشارة غير صالحة لعنصر محدد مسبقًا.

يكمن الخطأ في حقيقة أن العنصر المحدد مسبقًا يتوافق مع العنصر الخطأ الذي يوفره منطق البرنامج. هذه الأخطاء هي الأصعب في التشخيص. بخلاف النوعين الأولين ، لا يمكنك التحقق تلقائيًا من التكوين بحثًا عن هذه الأخطاء. لا يمكن تحديدها إلا من خلال تحليل منطق العمل. إذا كنت في شك ، يمكنك التحقق من استخدام العنصر الصحيح.

للقيام بذلك ، ما عليك سوى تنفيذ أحد الأوامر.

// تعريف عنصر الوسيط المعرّف المرتبط بالتقرير المحدد مسبقًا المطلوب (الدلائل. أنواع ContactInformation.EmailContactPerson) // تحديد العنصر المحدد مسبقًا الذي يرتبط به التقرير المحدد (ReferenceOnItem.Name of Predefined Data)

إذا تم العثور على مثل هذه الأخطاء ، فمن الضروري إزالة الارتباط غير الصحيح بالعنصر القديم وإضافة ارتباط بالعنصر الجديد. يشبه كود التشغيل كود التصحيح لأول نوعين من الأخطاء.

حسنًا ، باختصار عن الأخطاء متى العمل البرنامجيأو في وضع التهيئة:

"العنصر المحدد مسبقًا لا ينتمي إلى<Имя справочника>" - يحدث خطأ عند محاولة كتابة عنصر محدد مسبقًا باسم لا يتطابق مع الاسم الموجود في أداة التكوين المشتركة.

"لا يمكن أن تحتوي الكائنات غير المحددة مسبقًا على إدخالات فرعية محددة مسبقًا" - يحدث خطأ عند محاولة جعل عنصر مخطط حسابات محدد مسبقًا غير محدد. للتخلص من الأخطاء ، من الضروري إلغاء تحديد علامة "المعرفة مسبقًا" لكل سطر من العقد من الباطن للعنصر.

"لا يمكن أن تحتوي الكائنات غير المحددة مسبقًا على سجلات محددة مسبقًا لأنواع الحسابات البادئة"- يحدث خطأ عند محاولة جعل عنصر محدد مسبقًا في مخطط لأنواع الحسابات غير محدد. لإزالة الأخطاء ، من الضروري مسح علامة "المعرفة مسبقًا" لكل سطر من النوع البادئة لحساب العنصر.

"العناصر المحددة مسبقًا ليست فريدة"- حدث خطأ في أداة التهيئة عند التحديث قاعدة المعلوماتلإصدار التكوين بدون وضع التوافق 8.3.4. من الضروري التحقق من التكرارات وإزالتها قبل التحديث.

"اسم العنصر المحدد مسبقًا ليس فريدًا" - يحدث الخطأ في حالة وجود عدة عناصر محددة مسبقًا بنفس الاسم في التكوين عند التحديث إلى النظام الأساسي8.3.6.2332 والإصدارات الأحدث. من الضروري إزالة التكرارات في التكوين.

للعمل مع البيانات المحددة مسبقًا ، أوصي بالمعالجة. إنها تعرف كيفية تنفيذ أي إجراءات ببيانات محددة مسبقًا ، ويمكنها أيضًا التحقق من التكوين ككل بحثًا عن وجود أخطاء من النوعين الأولين (العناصر المكررة والمفقودة) في جميع كائنات أمن المعلومات (الكتب المرجعية ، مخططات الحسابات ، PVC ، PVR).

معالجة بسيطة للعمل بقيم محددة مسبقًا.

يسمح لك بمطابقة عناصر IB مع العناصر المحددة مسبقًا في التكوين.

يسمح لك بالتحقق من التكوين العام لوجود عناصر مكررة (عدة عناصر IB مرتبطة بعنصر محدد مسبقًا - خطأ) وعناصر مفقودة (عناصر محددة مسبقًا غير مرتبطة بعناصر IB - خطأ). مثل يمكن أن تظهر العناصر أثناء التبادلات أو الفشل وتؤدي إلى أخطاء في التكوين.

يمكنك فقط عرض القيم الحالية ، يمكنك إجراء أي تغييرات ضرورية.

إجراء التشغيل:

1. نبدأ في المعالجة.

2. نختار النوع (كتاب مرجعي ، مخطط حسابات ، PVC ، PVR).

3. نختار دليل النوع المحدد نفسه.

4. تظهر جميع العناصر المحددة مسبقًا المتوفرة في IB والموضحة في التكوين في قسم المعالجة المجدول.

إذا كانت هناك عدة عناصر في قاعدة البيانات مرتبطة بخاصية واحدة محددة مسبقًا ، أو إذا لم يتم تخصيص عناصر IB معينة لبعض العناصر الموضحة في التكوين ، فسيخبرك النظام بذلك عند تحديد كتاب مرجعي. تظهر العناصر المكررة والمفقودة أعلى القائمة ويتم تمييزها باللون البرتقالي.

5. نضع قيمًا جديدة للعناصر المحددة مسبقًا المطلوبة.

في هذه الحالة ، يتم تمييز الخطوط باللون الأحمر ، حيث يختفي عنصر محدد مسبقًا من التكوين. خطوط زرقاء يتغير لها عنصر محدد مسبقًا ، خطوط خضراء يظهر لها عنصر محدد مسبقًا.
مع وجود عدد كبير من التكرارات ، من الملائم تحديد جميع الأسطر غير الضرورية باستخدام الماوس والإشارة إلى كل رابط التراجع المحدد باستخدام الزر "Unmatch" (منذ الإصدار 1.3.1)

6. نقوم بإعادة التعيين بالضغط على زر "إعادة تعيين العناصر".

التحقق من التكرارات(خطأ "العنصر المحدد مسبقًا ليس فريدًا"):

عندما تضغط على زر "التحقق من التكرارات" ، ستتحقق المعالجة من جميع الدلائل ومخططات الحسابات و PVC و PVR وتعرض قائمة بالجداول التي تحتوي على عناصر مكررة تشير إلى عدد العناصر المكررة.

بعد ذلك ، من الضروري التحقق بشكل منفصل من الكائنات التي تم العثور على أخطاء بها.

فحص غاب(خطأ "عنصر محدد مسبقًا مفقود من البيانات"):

عند النقر فوق الزر "التحقق من الضياع" ، ستتحقق المعالجة من جميع الكتب المرجعية ومخططات الحسابات و PVC و PVR وتعرض قائمة بالعناصر المحددة مسبقًا غير المرتبطة ببيانات الوسيط المعرّف.

يتطلب النظام الأساسي 8.3.3 أو أعلى لاستخدامه.

متعدد الاستخدامات ، يمكن استخدامه مع أي تكوين.

كشف اللغة الأفريكانية الألبانية العربية الأرمينية الأذربيجانية الباسكية البنغالية البيلاروسية البلغارية البلغارية الكاتالونية الصينية (Simp) الصينية (التقليدية) الكرواتية التشيكية الدنماركية الهولندية الإنجليزية الإسبرانتو الإستونية الفلبينية الفنلندية الفرنسية الجاليسية الجورجية الألمانية اليونانية الغوجاراتية الكريولية الهايتية العبرية الهندية الهنغارية الأيسلندية الأندونيسية الأيرلندية الإيطالية اليابانية الكانادا الكورية اللاوية اللاتينية اللاتفية الليتوانية المقدونية الملايو المالطية النرويجية الفارسية البولندية البرتغالية الرومانية الروسية الصربية السلوفاكية السلوفينية الأسبانية السواحيلية السويدية التاميل التيلجو التايلاندية التركية الأوكرانية الأوردو الفيتنامية الويلزية اليديشية الأفريكانية الألبانية العربية الأرمينية الأذربيجانية الباسكية البنغالية البيلاروسية البلغارية البلغارية الكاتالونية الصينية (Simp) الصينية (التقليدية) الكرواتية التشيكية الدانمركية الهولندية الإنجليزية الإسبرانتو الإستونية الفليبينية الفنلندية الفرنسية الجاليسية الجورجية الألمانية اليونانية الغوجاراتية الكريولية الهايتية العبرية الهندية الهنغارية الأيسلندية الإندونيسية الأيرلندية الإيطالية اليابانية الكانادا الكورية اللاوية اللاتينية اللاتفية اللتوانية المقدونية الملايو مالطية النرويجية الفارسية البولندية البرتغالية الرومانية الروسية الصربية السلوفاكية السلوفينية الإسبانية السواحيلية السويدية التاميل التيلجو التايلاندية التركية الأوكرانية الأوردو الفيتنامية الويلزية اليديشية