لم يتم العثور على قاعدة تحويل الكائن. كيفية العثور على خطأ عند نقل البيانات. المعرفة بالمنصات لا تزال ضرورية

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

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

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

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

دعونا نلقي نظرة على بعض منهم:

  • التبادل عبر الملفات النصية؛
  • استخدام خطط التبادل.
  • إلخ.

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

دفع التعقيد والتكلفة العالية للدعم شركة 1C إلى إنشاء حل عالمي. التقنيات التي تجعل من الممكن تبسيط تطوير ودعم الهجرات قدر الإمكان. ونتيجة لذلك، تم تنفيذ الفكرة في شكل تكوين منفصل – “تحويل البيانات”.

تحويل البيانات - الحل القياسي والتكوين المستقل. يمكن لأي مستخدم لديه اشتراك "ITS:Prof" تنزيل هذه الحزمة مجانًا تمامًا من موقع دعم المستخدم أو قرص ITS. يتم التثبيت بطريقة قياسية - مثل جميع الحلول القياسية الأخرى من 1C.

الآن قليلا عن مزايا الحل. لنبدأ بالشيء الأكثر أهمية - التنوع. لم يتم تصميم الحل ليناسب تكوينات/إصدارات النظام الأساسي المحددة. إنه يعمل بشكل جيد على قدم المساواة مع كل من التكوينات القياسية والمخصصة. يمتلك المطورون تقنية عالمية ونهجًا موحدًا لإنشاء عمليات ترحيل جديدة. يتيح لك تعدد استخدامات الحل إعداد عمليات الترحيل حتى لمنصات أخرى غير 1C:Enterprise.

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

الميزة الثالثة التي أود الإشارة إليها هي عدم وجود قيود على توزيع البيانات. يختار المطور بنفسه طريقة توصيل البيانات إلى تكوين جهاز الاستقبال. هناك خياران متاحان خارج الصندوق: التحميل إلى ملف xml والاتصال المباشر بقاعدة المعلومات (COM/OLE).

دراسة الهندسة المعمارية

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

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

  • MDXXExp.epf- تتيح لك المعالجة تحميل وصف لبنية قاعدة المعلومات إلى ملف XML. يتم تحميل وصف الهيكل في القرص المضغوط لمزيد من التحليل وإنشاء قواعد الصرف.
  • V8ExchanXX.epf- تحميل/تنزيل البيانات من قاعدة المعلومات وفقاً لقواعد التبادل. في معظم التكوينات النموذجية، تكون المعالجة موجودة خارج الصندوق (راجع عنصر القائمة "الخدمة"). المعالجة عالمية وغير مرتبطة بأي تكوينات/قواعد محددة.

حسنًا، الآن، بناءً على كل ما سبق، دعونا نحدد مراحل تطوير تحويل جديد:

  1. تعريف المهمة. من الضروري أن نفهم بوضوح البيانات التي يجب نقلها (ومن أي كائنات التكوين)، والأهم من ذلك، مكان نقلها.
  2. إعداد أوصاف هياكل التكوين (المصدر/المغسلة) للتحميل اللاحق على القرص المضغوط. تم حل المشكلة عن طريق معالجة الخدمة MDXXExp.epf.
  3. تحميل الأوصاف المعدة للهياكل في أمن المعلومات.
  4. إنشاء قواعد التبادل باستخدام أداة القرص المضغوط المرئي.
  5. إجراء التحميل/التنزيل وفقًا لقواعد تحويل البيانات التي تم إنشاؤها باستخدام معالجة V8ExchanXX.epf.
  6. تصحيح قواعد الصرف (إذا لزم الأمر).

أبسط التحويل

للعرض التوضيحي، سنحتاج إلى تكوينين منتشرين. قررت أن أختار الخيار: الإصدار العاشر من "إدارة التجارة" وحل صغير مكتوب في المنزل. ستكون المهمة هي نقل البيانات من التكوين القياسي "UT". للإيجاز، دعنا نسمي الحل المكتوب ذاتيًا "Sink"، وإدارة التجارة "المصدر". لنبدأ في حل المشكلة بنقل العناصر من دليل "Nomenclature".

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

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

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

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

لذلك، نترك جميع الإعدادات الافتراضية ونقوم بتحميل وصف التكوين إلى ملف. نكرر إجراء مماثل للقاعدة الثانية.

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

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

أنت الآن جاهز لإنشاء قواعد الصرف. في قائمة القرص المضغوط الرئيسية، حدد "الدلائل" -> "التحويلات". إضافة عنصر جديد. في نافذة إنشاء تحويل جديد، يتعين عليك تحديد: تكوين المصدر (حدد UT) وتكوين الوجهة (حدد "المستقبل"). بعد ذلك، افتح علامة التبويب "خيارات متقدمة" واملأ الحقول التالية:

  • اسم ملف قواعد التبادل - سيتم حفظ قواعد التبادل التي تم إنشاؤها تحت هذا الاسم. يمكنك تغيير اسم الملف في أي وقت، ولكن من الأفضل تعيينه الآن. وهذا سيوفر الوقت في المستقبل. قمت بتسمية قواعد المثال التجريبي: "rules-ut-to-priemnik.xml".
  • الاسم - اسم التحويل. يمكن أن يكون الاسم أي شيء على الإطلاق، وقد اقتصرت على "Demo". UT إلى المتلقي."

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

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

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

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

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

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

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

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

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

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

الأساس لقواعد الصرف جاهز. لقد اخترنا الكائنات للمزامنة، وتم إنشاء قواعد تحويل الخصائص وقواعد التحميل تلقائيًا. لنحفظ قواعد التبادل في ملف، ثم نفتح "المصدر" للمكتبة الدولية (في حالتي هو UT) ونبدأ معالجة الخدمة فيه V8Exchan82.epf.

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

بعد الانتهاء من عملية رفع البيانات إلى ملف، انتقل إلى الـIB “ المتلقي" نفتح أيضًا المعالجة فيه V8Exchan82.epfهذه المرة فقط نذهب إلى علامة التبويب "تحميل البيانات". حدد ملف البيانات وانقر على زر "تنزيل". هذا كل شيء، تم نقل البيانات بنجاح.

مشاكل العالم الحقيقي

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

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

المهمة رقم 1. املأ التفاصيل المفقودة

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

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

دعنا نصف رمز الحصول على المؤسسة الحالية ثم تخصيصها للتفاصيل. في وقت تشغيل معالج "بعد التحميل"، سيتم تشكيل الكائن بالكامل، ولكن لم تتم كتابته بعد في قاعدة البيانات. لا أحد يمنعنا من تغييره حسب تقديرنا:

إذا لم يكن Object.ThisGroup ثم Object.Organization = Constants.CurrentOrganization.Get(); إنهاء إذا؛

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

المهمة رقم 2. التفاصيل في سجل المعلومات

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

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

الخطوة التالية هي إنشاء قواعد التحميل. انتقل إلى علامة التبويب المناسبة وانقر على " يضيف" في نافذة إضافة قواعد التحميل، املأ:

  • طريقة أخذ العينات. التغيير إلى "الخوارزمية التعسفية"؛
  • قاعدة التحويل. حدد سجل المعلومات "أنواع العملاء"؛
  • رمز (اسم) القاعدة. اكتبه باسم "تحميل أنواع العملاء"؛

أنت الآن بحاجة إلى كتابة التعليمات البرمجية لتحديد البيانات للتحميل. المعلمة " أخذ عينات من البيانات" يمكننا وضع مجموعة بها مجموعة بيانات معدة. معامل " أخذ عينات من البيانات"يمكن أن يأخذ قيمًا مختلفة - نتيجة الاستعلام، والاختيار، ومجموعات القيم، وما إلى ذلك. نقوم بتهيئته كجدول قيم بعمودين: نوع العميل والعميل.

يوجد أدناه رمز معالج الحدث " قبل المعالجة" يقوم بتهيئة المعلمة " أخذ عينات من البيانات"متبوعة بملء البيانات من الدليل" الأطراف المقابلة" وهنا يجب الانتباه إلى ملء العمود “ نوع العميل" في "UT" سماتنا من النوع "Boolean"، والمستلم عبارة عن تعداد.

في هذه المرحلة، لا يمكننا تحويلها إلى النوع المطلوب (وهو غير موجود في UT)، لذلك سنتركها الآن على شكل سلاسل. ليس عليك القيام بذلك، ولكنني أريد على الفور أن أوضح كيفية الإرسال إلى نوع مفقود في المصدر.

DataFetch = New ValueTable(); DataSelection.Columns.Add("Client"); DataSelection.Columns.Add("ClientType"); SelectingDataFromDirectory = Directory.Accounts.Select(); أثناء تكرار حلقة SelectingDataFromDirectory.Next()‎ في حالة استمرار SelectingDataFromDirectory.ThisGroup؛ إنهاء إذا؛ إذا كان تحديد البيانات من Directory.Buyer ثم NewRow = Data Selection.Add(); NewRow.Client = DataFetchFromDirectory.Link; NewRow.ClientType = "العميل"; إنهاء إذا؛ إذا كان DataFetchFromDirectory.Supplier ثم NewRow = DataFetch.Add(); NewRow.Client = DataFetchFromDirectory.Link; NewString.ClientType = "المورد"; إنهاء إذا؛ EndCycle;

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

//بالنسبة لخاصية "العميل" Value = Source.Client; // بالنسبة للخاصية "ClientType" إذا كان Source.Client = "Buyer" ثم Expression = "Enumerations.ClientTypes.Buyer" ElseIf Source.Client = "Supplier" ثم Expression = "Enumerations.ClientTypes.Supplier"; إنهاء إذا؛

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

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

المهمة رقم 3. الحيل مع أجزاء الجدول

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

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

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

DataFetch = New ValueTable(); // سيكون هناك جزء آخر من الجدول هنا Data Selection.Columns.Add("Products"); // هنا سيكون هناك أيضًا جزء جدولي Data Selection.Columns.Add("Services"); SelectionData.Columns.Add("رابط");

المهمة رقم 4. نقل البيانات إلى العملية

إذا كانت المؤسسة تستخدم العديد من أنظمة المحاسبة، فستكون هناك حاجة عاجلاً أم آجلاً لترحيل البيانات مع الجيل اللاحق من المعاملات.

في التكوين " بي بي"هناك وثيقة عالمية" عملية"وهو مثالي لتشكيل المزيد من الأسلاك. هناك مشكلة واحدة فقط - تم إنشاء المستند بطريقة ماكرة، ولا يمكن نقل البيانات إليه بسهولة.

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

المهمة رقم 5. مزامنة البيانات عبر تفاصيل متعددة

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

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

تعد المزامنة باستخدام معرف فريد طريقة موثوقة، ولكنها ليست مناسبة دائمًا. عند دمج الدلائل " الأطراف المقابلة"(من عدة أنظمة مختلفة) لن يساعد كثيرًا.

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

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

لدينا الحق في اختيار الحقول بأنفسنا. من خلال التحقق من TIN وKPP والاسم، سنشير على الفور إلى العديد من معايير البحث. مريح؟ تماما، ولكن مرة أخرى هذا لا يكفي. ماذا لو أردنا تغيير معايير البحث؟ على سبيل المثال، نقوم أولاً بالبحث عن مجموعة TIN+KPP، وإذا لم نجد أي شيء، فإننا نبدأ بتجربة حظنا بالاسم.

مثل هذه الخوارزمية قادرة تمامًا على التنفيذ. في معالج الحدث " حقول البحث"يمكننا تحديد ما يصل إلى 10 معايير بحث ولكل منها تحديد تكوين حقول البحث الخاصة به:

إذا كان SearchOptionNumber = 1، فإن SearchPropertyNameString = "TIN، KPP"؛ وإلا إذا كان SearchOptionNumber = 2 ثمSearchPropertyNameString = "الاسم"؛ إنهاء إذا؛

هناك دائما العديد من الحلول

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

في رأيي، تتجاهل شركة 1C بشكل غير عادل موضوع استخدام تحويل البيانات. طوال فترة وجود التكنولوجيا، تم نشر كتاب واحد فقط عنها: "1C: Enterprise 8. تحويل البيانات: التبادل بين حلول التطبيقات". الكتاب قديم جدًا (2008)، لكن لا يزال من المستحسن التعرف عليه.

المعرفة بالمنصات لا تزال ضرورية

"هي أداة عالمية، ولكن إذا كنت تخطط لاستخدامها لإنشاء عمليات ترحيل البيانات من التكوينات التي تم تطويرها للنظام الأساسي 1C:Enterprise 7.7، فسيتعين عليك قضاء بعض الوقت في التعرف على اللغة المضمنة. إن بناء الجملة وأيديولوجية اللغة مختلفان تمامًا، لذلك سيتعين عليك قضاء بعض الوقت في التعلم. وإلا فإن المبدأ يبقى كما هو.

الغرض من قاعدة التبادل هذه هو تحويل أرصدة التسويات المتبادلة من BP 2 إلى UT11.

إنشاء قاعدة تبادل خطوة بخطوة باستخدام تكوين "تحويل البيانات" (يجب تحميل بيانات التعريف):

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

2) دعنا ننتقل إلى كتابة الكود نفسه لأن لا يوجد سجل محاسبة ذاتية في UT، لذلك يجب علينا تحويله. أولاً، نحتاج إلى استعلام، وفقًا لمعاييرنا، سيعيد أرصدة التسويات المتبادلة. في معالج الأحداث "قبل المعالجة" نكتب الطلب التالي:

نص الاستعلام = "SELECT
| أرصدة الدعم الذاتي.الحساب،
| الدعم الذاتيRemains.Subconto1 AS Subconto1،
| ISNULL(SUM(Self-AccountingRemaining.AmountRemainingDt),0) AS AmountRemainingDt,
| ISNULL(SUM(Self-accountingRemains.AmountRemainingCt),0) AS AmountRemainingCt,
| الحد الأقصى (أرصدة محاسبة التكاليف.الحساب الفرعي2.التاريخ) AS تاريخ مستند التسوية،
| الحد الأقصى (أرصدة المحاسبة الذاتية.الحساب الفرعي2.الرقم) كرقم مستند المحاسبة
|من
| سجل المحاسبة الأرصدة ذاتية الدعم (&OnDate، الحساب = &الحساب،) كأرصدة ذاتية الدعم
|أين
<>&المجموعة و
| أرصدة الدعم الذاتي الحساب الفرعي 1. الأصل<>&مجموعة 1
|المجموعة حسب
| أرصدة الدعم الذاتي.الحساب،
| أرصدة الدعم الذاتي الحساب الفرعي 1،
| الدعم الذاتي Remains.Subconto2
|الطلب حسب
| Subconto1
|طلب تلقائي";

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

نحدد قيم المتغيرات التي سيتم استخدامها في المستقبل.

OnDate = date("20130101");
TD = CurrentDate();
group = Directorys.Counterparties.FindByName("Buyers");
group1 = البحث بالاسم("المرتجعات من الأفراد");

نقوم بإنشاء جدول سنقوم بتمريره لاحقًا إلى قاعدة تحويل القيمة.

TZ = New ValueTable();
TK.Columns.Add("الطرف المقابل");
TK.Columns.Add("المبلغ");
TK.Columns.Add("AmountREGLE");
TK.Columns.Add("CalculationDocument");
TK.Columns.Add("تاريخ وثيقة التسوية");
TK.Columns.Add("رقم مستند التسوية");
TK.Columns.Add("الشريك");
TK.Columns.Add("عملة التسوية المتبادلة");
TK.Columns.Add("تاريخ الدفع");

نقوم بتعيين المعلمات، واستدعاء الطلب، وملء الجدول واستدعاء قاعدة التحويل.

request = طلب جديد(RequestText);
request.SetParameter("group", group); request.SetParameter("group1",group1);
request.SetParameter("OnDate",OnDate);
request.SetParameter("الحساب"، مخططات الحسابات. المحاسبة الذاتية. الحسابات مع الموردين والمقاولين الآخرين)؛//76.05
جلب = request.Run().Select();
TZ.clear();
أثناء حلقة Select.Next()
إذا كان Sample.SumRemainingCT = 0 أو Sample.SumRemainingCT = "" إذن
يكمل؛
إنهاء إذا؛
إذا كان Sample.AmountRemainderCT< 0тогда
تقرير (""+Sample.Subconto1+" قيمة سلبية "+Sample.SumRemainingCT);
إنهاء إذا؛
LineTZ = TZ.Add();
Line TK.Counterparty = Selection.Subconto1;
LineTZ.sum = Selection.SumRemainingCT;//Selection.SumRemainingCT;
LineTZ.sumRegl = Sampling.SumRemainingCT;//Sampling.SumRemainingCT;
السطر TK.تاريخ مستند الحساب = تاريخ مستند التحديد.الحساب؛
السطر TK.رقم مستند الحساب = رقم مستند التحديد.الحساب؛
LineTZ.PaymentDate = TD;
EndCycle;
OutData = بنية جديدة؛
OutgoingData.Insert("التاريخ"، CurrentDate());
OutgoingData.Insert("CalculationsWithPartners", TK);
OutgoingData.Insert("نوع العملية"، "أرصدة الديون للموردين");
OutgoingData.Insert("تعليق"، "تم إنشاؤه على رصيد الحساب 76.05");
تقرير("76.05 رصيدًا يبدأ");
UploadByRule(, OutgoingData, "إدخال الأرصدة للتسوية المتبادلة_7605Credit");

نقوم بنفس العملية بالمثل للحسابات الضرورية المتبقية (يوجد وصفها، وكذلك القاعدة الجاهزة، في المرفق).

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

في معالج الأحداث "قبل التحميل" سنكتب الكود التالي:

GenerateNewNumberOrCodeIfNotSpecified = true;

في معالج الأحداث "بعد التحميل" سنكتب:

تنفيذ (algorithms.AfterLoadInputRemainings)؛

سيتم تنفيذ خوارزمية بالمحتوى التالي:

العملة = Constants.RegulatedAccountingCurrency.Get();
object.Owner = SessionParameters.CurrentUser;
object.organization=parameters.organization;
لكل صفحة من حلقة object.calculationspartners
Page.SettlementDocument = Directory.Conterparty Conventions.empty link();
PageCurrencySettlements = العملة؛
إذا كانت ValueFilled(page.counterparty.partner) إذن
p.partner = p.counterparty.partner;
خلاف ذلك
Partners = Directory.Partners.FindByName(page.counterparty.Name);
إذا كان المكتب<>غير محدد ومكاتب<>Directory.Partners.emptylink() ثم
p.partner = مكتب؛

object2.Partner = مكتب؛
object2.Write();
خلاف ذلك
تنفيذ (algorithms.AddPartner)؛
إنهاء إذا؛

إنهاء إذا؛

نهاية الدورة؛

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

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

تم إنشاء خوارزمية للشركاء يتم تنفيذها على الجانب المتلقي.

من أجل تنفيذ الخوارزمية على جانب جهاز الاستقبال، تحتاج إلى التحقق من علامة "مستخدم عند التحميل" في الزاوية اليمنى العليا من نافذة الخوارزمية (عند تحريرها).

يوجد أدناه رمز خوارزمية "إضافة شريك":

nPartner = Directorys.Partners.CreateItem();
nPartner.Name = page.counterparty.name;
nPartner.Comment = "تم الإنشاء عند التحميل من BP";
nPartner.NameFull = page.counterparty.NameFull;
nPartner.Supplier = ?(find(page.counterparty.AdditionalInformation,"Supplier")>0,true,false);
nPartner.Client = ?(find(page.counterparty.AdditionalInformation,"Client")>0,true,false);
OtherRelations = ?(find(page.counterparty.AdditionalInformation,"Other")>0,true,false);
npartner.Write();
p.partner = npartner.link;
المقابل = Directory.Counterparties.FindByName(page.counterparty.Name);
object2 = المقابل.GetObject();
object2.Partner = npartner.link;
object2.Write();

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

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

لا يصف النص جميع الفروق الدقيقة في العملية.

كتاب مدرسي عن تحويل البيانات 1C (الإصدار 2) قواعد تحويل الكائنات

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

بالإضافة إلى ذلك، هناك عدد من الخصائص التي سنحاول الكشف عن معناها.

ابحث عن الكائن الوجهة بواسطة المعرف الداخلي للكائن المصدر- علامة تعريف البحث عن الكائنات في جهاز الاستقبال لإصدار منصة V8. إذا تم تحديد هذه العلامة، فسيتم إجراء البحث عن كائن للتعديل في قاعدة بيانات جهاز الاستقبال باستخدام المعرف الداخلي (الفريد) للكائن. هذا المعرف غير مرئي للمستخدم، ويحافظ البرنامج على تفرد المعرفات في قاعدة المعلومات، بحيث لا يوجد كائنان في قاعدة المعلومات لهما نفس المعرفات.

استمر في البحث في حقول البحث إذا لم يتم العثور على كائن المتلقي بواسطة المعرف- تحدد العلامة مواصلة البحث عن كائن في قاعدة معلومات المتلقي إذا لم يؤدي البحث بواسطة المعرف الفريد إلى نتيجة إيجابية.

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

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

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

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

لا تتذكر الأشياء التي تم تفريغها- تحدد العلامة ما إذا كان النظام يحتاج إلى تخزين آخر كائنات تم تفريغها مؤقتًا عند التفريغ. يتيح لك التخزين المؤقت تسريع عملية تحميل البيانات وتحميلها.

استخدم البحث السريع عن الكائنات عند التحميل والتحميل- تحدد العلامة ما إذا كان سيتم استخدام البحث السريع عن الكائنات المراد تحميلها. من المنطقي استخدامه لعدد صغير من إدخالات الدليل (لا يزيد عدد الإدخالات عن 1000 عنصر). يتم تحقيق التأثير إذا تم تعيين العلامة على العديد من الكائنات لا تقم بإلغاء تحميل كائنات الخاصية حسب المرجع.مع هذا المخطط لتحميل البيانات وتحميلها، تزيد السرعة عدة مرات.

إنشاء رقم أو رمز تلقائيًا إذا لم يتم تحديده- تحدد العلامة ما إذا كان النظام يحتاج إلى إنشاء رمز جديد أو رقم كائن تلقائيًا إذا لم يتم ملؤه قبل التسجيل.

التبادل عبر الإنترنت

قم بإلغاء تحميل كائن (بالكامل)، فقط إذا كان هناك رابط إليه- يحدد الإعداد الظروف التي يجب أن يتم فيها تفريغ الكائن. إذا تم تحديد خانة الاختيار، فسيتم إلغاء تحميل الكائن وفقًا للقواعد التالية:

  1. وفقًا لقواعد التفريغ، إذا تم تفريغ كائن بالفعل، فقم بتفريغه كما هو
  2. وفقا لقواعد التفريغ، إذا لم يتم تفريغ الكائن، فإننا لا نقوم بالتفريغ
  3. عند التحميل باستخدام رابط لكائن ما، فإننا نقوم بتحميل الشيء بأكمله

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

لا تستبدل كائنًا تم إنشاؤه في قاعدة معلومات جهاز الاستقبال عند التحميل- يحدد الإعداد ما إذا كان من الضروري نقل (إرجاع) كائن تم إنشاؤه في قاعدة المعلومات التي يتم تنظيم التبادل بها. بمعنى، إذا تم إنشاء مستند في قاعدة المعلومات 1 وإدخاله إلى قاعدة المعلومات 2 من خلال التبادل، فهل يجب نقله إلى قاعدة المعلومات 1 عند تغييره في قاعدة البيانات 2؟ يتيح لك الإعداد تحديد أولوية الكائن عند التبادل في مكانه إنشائها. أي أن التغييرات في قاعدة المعلومات حيث تم إنشاء الكائن يتم توزيعها في كل مكان، ولا تؤثر التغييرات في قواعد البيانات الأخرى على هذا الكائن في قاعدة البيانات 1.

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

خيارات إعدادات حقل البحث- جدول بالخيارات الممكنة لإعداد حقول البحث للمستخدم. يحدد مصمم القواعد المجموعات المحتملة لحقول البحث التي يمكن للمستخدم تحديدها عند إعداد البورصة. يجب معالجة جميع الإعدادات المحددة بواسطة مطور القاعدة في رمز معالج "حقول البحث". يحدد المتغير SearchSettings الموجود في المعالج خيار المطابقة الذي حدده المستخدم (SettingNameForAlgorithm من صف الجدول المقابل). إذا لم يحدد المستخدم أي خيار مطابقة، أو لم يُعرض عليه أي خيار، فستكون إعدادات البحث عبارة عن سلسلة فارغة.

في علامة التبويب "خيارات متقدمة"، يمكنك تعديل اسم القاعدة وإدراجها في مجموعة معينة بالإضافة إلى وصف القاعدة.

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

سيكون التركيز الرئيسي لهذه المقالة على تحويل الجزء الجدولي من المستند، مما يعني ذلك
سوف نعمل مع قواعد تحويل مجموعة الممتلكات - PKGS.

التحضير لإعداد PKGS - قواعد تحويل مجموعة من الخصائص

سنقوم بنقل مستند "استلام البضائع والخدمات"، الذي يحتوي على اختلافات في سمة معدل ضريبة القيمة المضافة في القسم الجدولي "البضائع".
في قاعدة بيانات المصدر والمتلقي. في قاعدة البيانات المصدر، تحتوي هذه السمة على النوع "DirectoryLink.VAT Rates"،
وفي قاعدة بيانات المتلقي - اكتب "TransferLink.VAT Rates".

بالمناسبة، للراحة، يمكنك تحديد

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

الوضع معقد لأننا سنعمل مع الجزء الجدولي، لذلك نحتاج إلى التكوين
قواعد تحويل مجموعة الممتلكات - PKGS. سنحتاج إلى الوصول إلى الصف الحالي من القسم الجدولي.

إنشاء قواعد التحويل لمجموعة من خصائص 1C

لقد قمنا بالفعل بتطوير قواعد التحويل لوثيقة "استلام البضائع والخدمات".

ولكن بالنسبة للجزء الجدولي "المنتجات" لا يوجد قواعد تحويل الممتلكات“معدلات ضريبة القيمة المضافة”.
تحتاج إلى إضافة قاعدة تحويل خاصية جديدة من خلال النقر على زر "مزامنة الخصائص...".

سيظهر مربع الحوار "إعداد قواعد تحويل الملكية (استلام البضائع والخدمات)".

تحتاج إلى تكرار ما تم فعله في الصورة والنقر على زر "موافق".

على الرغم من أننا خلقنا قاعدة التحويل لمجموعة خاصية، ولكنها ليست جاهزة بعد.
تذكر أن تفاصيل القسم الجدولي "معدلات ضريبة القيمة المضافة" تختلف في أنواع القيم.
في قاعدة البيانات المصدر، تحتوي هذه السمة على النوع "DirectoryLink.VAT Rates"،
وفي قاعدة بيانات المتلقي - اكتب "TransferLink.VAT Rates". نحن نفتقد القاعدة هنا
التحويل من دليل إلى تعداد.

معالجات الأحداث لقواعد تحويل مجموعة الخصائص

لتكوين تحويل الخاصية بشكل صحيح، تحتاج إلى إنشاء قاعدة تحويل كائن جديدة.

في مربع الحوار الذي يظهر، نشير إلى أن دليل "أسعار ضريبة القيمة المضافة" قد تم تحويله إلى تحويل بنفس الاسم.

لن تكون هناك قواعد تحويل خاصية لهذه القاعدة.
ولذلك، عند حفظ هذه القاعدة، حدد "لا" في مربع الحوار الذي يظهر.

في الحوار مع السؤال "هل تريد إنشاء قواعد تحميل البيانات؟" سنختار أيضًا "لا".

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

إذا كان المصدر. معدل = 0 ثم
LinkNode = "Bid0" ;
مصدر آخر. الرهان = 12 ثم
NodeLinks = "Bet12" ;
مصدر آخر. الاسم = "باستثناء ضريبة القيمة المضافة" ثم
NodeLinks = "بدون ضريبة القيمة المضافة" ;
إنهاء إذا ؛

بعد كتابة المعالج، انقر فوق الزر "موافق".

في معلومات عن المعالجين:

المصدر - مخصص - كائن المصدر الذي تم تحميله (رابط أو بيانات مخصصة).
عقدة الارتباط - عقدة ارتباط XML التي تمت تهيئتها. ممكن استخدامه
على سبيل المثال، لتهيئة خصائص الكائنات الأخرى.

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

انقر فوق الزر "موافق".

الآن نحتاج فقط إلى إعداد الحسابات المحاسبية وفقا للقيم التي تم تحديدها للصنف.
دعنا ننتقل إلى علامة التبويب "قواعد تحويل الكائنات"، ونبحث عن كائن "استلام البضائع والخدمات" و
سيؤدي النقر المزدوج عليه إلى فتح مربع حوار قواعد تحويل الكائنات (OCR).
لننتقل إلى علامة التبويب "معالجات الأحداث" الخاصة بالحدث "بعد التحميل" ونكتب ما يلي:

لكل LineTCH من كائن. دورة المنتجات
LineTC. AccountAccountBU = LineTC. التسميات. AccountAccountBU;
دورة النهاية؛

لنقم الآن بتحميل هذه القواعد من المصدر باستخدام Universal Data Interchange الخارجي في معالجة تنسيق XML - "V8Exchan82.epf".
لنقم بتحميل البيانات إلى ملف xml. ثم افتح نفس المعالجة في قاعدة بيانات جهاز الاستقبال وحدد ملف تحميل xml وقم بتحميل البيانات.

بالمناسبة، يمكن فتح معالجة "تبادل البيانات العالمي بتنسيق XML" من خلال عنصر القائمة
"الخدمة" | "تبادل البيانات الأخرى" | "تبادل البيانات العالمي بتنسيق XML." لقد كتب القليل عن هذا في مذكرة حول.