التكوين المتخصص "1C: تحويل البيانات 2.0"
أصبح إصدار الإصدار الثامن من 1C: منصة Enterprise خطوة مهمة في تطوير أنظمة الأتمتة. عند تصميم النظام الأساسي 1C: Enterprise 8 ، تم أخذ الخبرة الواسعة في استخدام الحلول القائمة على النظام الأساسي 1C: Enterprise 7.7 في الاعتبار: تمت إعادة تصميم اللغة المضمنة في النظام الأساسي والتكوينات النموذجية بشكل جدي ، وهيكل تخزين البيانات والوصول إليها ، تم إنشاء حلول صناعية جديدة تدرك مزايا النظام الأساسي الجديد. أصبح استخدام تركيبات اللغة السابقة في النظام الأساسي الجديد غير مناسب.
لتسهيل حل هذه المشكلة (نقل البيانات من الإصدار 7.7 إلى الإصدار 8) ، أصدرت 1C تكوينًا متخصصًا "تحويل البيانات 2.0". تم إنشاؤه لمساعدة المتخصصين في حل مختلف مشاكل نقل البيانات. أصدرت 1C قواعد جاهزة لنقل البيانات من التكوينات من نفس النوع ، على سبيل المثال ، من 1C: Accounting 7.7 إلى 1C: Accounting 8 ، لكن مستخدمي التكوينات القياسية غير القياسية أو المعدلة عند التبديل إلى 1C: Enterprise 8 platform سيتعين عليك إنشاء بيانات قواعد النقل بنفسك.
مع كل الأساليب الخاصة المتنوعة لحل مشكلات نقل البيانات ، تظل مجموعة المشكلات التي يتعين حلها دون تغيير عمليًا:
تزامن المعلومات المرجعية (إنشاء جديد ، تحديث العناصر الموجودةالدلائل ، حذف ، حفظ أو تغيير التسلسل الهرمي ، تفريع البيانات ، نقل تاريخ تغيير قيم التفاصيل الدورية) ؛
تزامن المستندات والعمليات (إنشاء أو تعديل المستندات أو تحويل نوع واحد من المستندات إلى نوع آخر أو الدمج أو الاستنساخ) ؛
خلق شروط أولية كافية للاحتفاظ بالسجلات المحاسبية النشاط الاقتصادي(نقل بقايا البضائع ، إلخ).
هياكل تخزين البيانات في 1C: تختلف المؤسسة من إصدارات و / أو تكوينات مختلفة ، لذلك لا يقتصر نقل البيانات على نسخ الملفات أو الجداول فحسب ، بل هو تحويلها. لكي يكون التحويل واضحًا وصحيحًا ، من الضروري إنشاء وتكوين قواعد لنقل البيانات. يمكن إنشاء وتكوين قواعد لنقل البيانات بين قواعد المعلومات المختلفة إذا كانت بنية تخزين البيانات في قواعد البيانات المصدر والوجهة معروفة. يجب توحيد وصف بنية بيانات تعريف التكوين. يتم استخدام تكوين "تحويل البيانات 2.0" لإنشاء قواعد نقل البيانات وتكوينها بناءً على أوصاف بنية البيانات الوصفية لتهيئة المصدر والوجهة.
تتكون عملية نقل البيانات بين قواعد المعلومات من الخطوات التالية:
- 1. إنشاء ملفات وصف البيانات الوصفية.
- 2. إنشاء التكوينات في "تحويل البيانات".
- 3. خلق التحويل نفسه.
- 4. إنشاء متسق لقواعد تحويل البيانات.
- 5. إنشاء متسق لقواعد تحميل البيانات.
- 6. الإجراء الفعلي لتفريغ وتحميل البيانات من تكوين إلى آخر.
لان يعد استخدام هذا التكوين المتخصص أحد أكثر الإعدادات فعالية في هذه اللحظةطرق حل المشكلات من هذا النوع ، بالإضافة إلى مصدر خبرة شخصية مفيدة جدًا للأغراض التعليمية ، ثم تطوير آلية لتبادل البيانات بين IS "الخادم: حساب الإيجار" و "1C: محاسبة المؤسسة "for LLC" LLC "، طريقة تعتمد على استخدام تكوين" Data Conversion 2.0 ".
تحويل البيانات 2.0 و 2.1 هو تكوين تقني 1C يتم تنفيذه على إصدارات النظام الأساسي من 8.1 إلى 8.3.
المهمة الرئيسية للأداة هي كتابة قواعد التبادل بين حلول التطبيق 1C 8 و 7. الإصدار الحالي من تحويل البيانات اليوم هو 3.0.
يعد تحويل البيانات تكوينًا مفيدًا للغاية ، حيث لا يمكنك فقط حل مشكلة نقل المعلومات من قاعدة معلومات إلى أخرى ، ولكن أيضًا ، على سبيل المثال ، تحويل المعلومات داخل قاعدة بيانات واحدة.
التكوين مناسب جدًا للاستخدام عندما.
سيكون تحويل البيانات مفيدًا لأي مبرمج: امتلاك المهارات اللازمة لإنشاء قواعد التبادل يعد إضافة جادة للمهارات المهنية.
لمعرفة كيفية التعامل مع التكوين ، فإن حل المشكلات العملية هو الأنسب. حاول وضع مهام لنفسك ، على سبيل المثال: نقل أي معلومات من قاعدة بيانات إلى أخرى ، وتحويل مستند التنفيذ إلى مستند استلام ، "محرك" الأرصدة الحاليةعلى محاسبةفي وثيقة "إدخال الأرصدة" وغيرها من المهام.
سيكون من المفيد جدًا فهم القواعد "النموذجية" للتبادل 1C 8.3 ، حيث يمكنك غالبًا العثور على أمثلة مثيرة للاهتمام لتنفيذ المهام.
لفهم الأساسيات ، ستحتاج إلى مواد ، ضعها في الاعتبار أدناه.
تعليمات الفيديو للتحويل
للحصول على أساسيات إعداد تبادل البيانات في 1C باستخدام تكوين "تحويل بيانات 1C" ، انظر الفيديو للحصول على مثال:
المواد والكتب المدرسية لدراسة تحويل البيانات 1C 2.0
لا يوجد الكثير من المواد والوثائق على الشبكة ، لقد حاولت أن أجمع أهم المواد وأكثرها إثارة للاهتمام:
0. بادئ ذي بدء ، أنصح بدورة الفيديو المجانية لإيليا ليونتييف ، فهي متوفرة في حلقة الوصل.
1. أنصح أولاً وقبل كل شيء باستخدام المساعدة المضمنة في التكوين. إنه حقًا مكتوب جيدًا ومنفذ تقنيًا جيدًا:
2. ثاني أهم مصدر للمعلومات هو موقع http://www.mykod.info/ (تم إغلاق الموقع) المتخصص فقط في تحويل البيانات. هناك يمكنك تنزيل عدد كبير من مواد التحويل.
3. بشكل منفصل ، أود أن أسلط الضوء على كتاب دليل التدريب - (المؤلف - أولغا كوزنتسوفا).
ترحيل البيانات بين التكوينات المختلفة ليس مهمة تافهة. كما هو الحال دائمًا ، هناك العديد من الحلول ، ولكن ليست جميعها مثالية. دعنا نحاول فهم الفروق الدقيقة في نقل البيانات واختيار استراتيجية عالمية لحل مثل هذه المشكلات.
مشكلة ترحيل البيانات (يتعلق الأمر فقط بمنتجات شركة 1C) من حل إلى آخر لم تظهر بالأمس. تدرك شركة 1C جيدًا الصعوبات التي يواجهها المطورون عند إنشاء عمليات الترحيل ، لذا فهي تبذل قصارى جهدها للمساعدة في الأدوات.
أثناء تطوير النظام الأساسي ، قدمت الشركة عددًا من الأدوات العالمية ، بالإضافة إلى التقنيات التي تبسط نقل البيانات. لقد تم تضمينها في جميع الحلول القياسية وتم حل مشكلة عمليات الترحيل بين التكوينات المتطابقة بشكل عام. تم تأكيد الانتصار مرة أخرى من خلال التكامل الوثيق للحلول القياسية.
مع عمليات الترحيل بين الحلول غير القياسية ، يكون الوضع أكثر تعقيدًا إلى حد ما. تسمح مجموعة واسعة من التقنيات للمطورين باختيار أفضل طريقة لحل مشكلة من وجهة نظرهم بشكل مستقل.
دعونا نفكر في بعضها:
- التبادل عبر ملفات نصية ؛
- استخدام خطط الصرف.
- إلخ.
كل واحد منهم له إيجابياته وسلبياته. للتلخيص ، سيكون العيب الرئيسي هو الإسهاب. التنفيذ المستقل لخوارزميات الترحيل محفوف بتكاليف كبيرة للوقت ، بالإضافة إلى عملية تصحيح أخطاء طويلة. لا أريد حتى أن أتحدث عن المزيد من الدعم لمثل هذه القرارات.
دفع التعقيد والتكلفة العالية للصيانة شركة 1C إلى إنشاء حل عالمي. تقنية تسمح لك بتبسيط تطوير ودعم عمليات الترحيل قدر الإمكان. نتيجة لذلك ، تم تنفيذ الفكرة في شكل تكوين منفصل - "تحويل البيانات".
تحويل البيانات - حل قياسي ، تكوين ذاتي. أي مستخدم لديه ITS: يمكن لاشتراك الأستاذ تنزيل هذه الحزمة مجانًا تمامًا من موقع دعم المستخدم أو قرص ITS. يتم إجراء التثبيت بطريقة قياسية - مثل جميع الحلول القياسية الأخرى من 1C.
الآن قليلا عن إيجابيات الحل. لنبدأ بالأهم - التنوع. لم يتم تصميم الحل ليناسب تكوينات / إصدارات معينة للنظام الأساسي. إنه يعمل بشكل جيد مع كل من التكوينات القياسية والتكوينات المكتوبة ذاتيًا. يحصل المطورون على تقنية عالمية ونهج موحد لإنشاء هجرات جديدة. يتيح لك تعدد استخدامات الحل إعداد عمليات الترحيل حتى للأنظمة الأساسية بخلاف 1C: Enterprise.
الإضافة الجريئة الثانية هي المساعدات البصرية. يتم إنشاء عمليات الترحيل البسيطة بدون برمجة. نعم ، نعم ، بدون سطر واحد من التعليمات البرمجية! لهذا وحده ، من الجدير قضاء الوقت في تعلم التكنولوجيا مرة واحدة ، ثم استخدام مهارات لا تقدر بثمن بشكل متكرر.
الميزة الثالثة التي أود أن أشير إليها هي عدم وجود قيود على توزيع البيانات. يختار المطور بنفسه طريقة توصيل البيانات إلى تكوين جهاز الاستقبال. يتوفر خياران خارج الصندوق: التحميل إلى ملف xml والاتصال المباشر بقاعدة المعلومات (COM / OLE).
تعلم العمارة
نحن نعلم بالفعل أن تحويل البيانات يمكن أن يحقق المعجزات ، ولكن ليس من الواضح حتى الآن ما هي المزايا التقنية. أول شيء يجب معرفته هو أن أي ترحيل (تحويل) للبيانات يعتمد على قواعد التبادل. قواعد التبادل - ملف xml عادي مع وصف للهيكل الذي سيتم تحميل البيانات فيه من IB. تحلل معالجة الخدمة التي تقوم بتحميل / تنزيل البيانات قواعد التبادل وتقوم بالتحميل بناءً عليها. أثناء التنزيل ، تحدث العملية العكسية.
التكوين "KD" هو نوع من المُنشئ المرئي الذي ينشئ بواسطته المطور قواعد التبادل. لا يعرف كيفية تحميل البيانات. تكون معالجة الخدمة الخارجية الإضافية المضمنة في مجموعة توزيع القرص المضغوط مسؤولة عن ذلك. يوجد العديد منهم (XX في اسم الملف هو رقم إصدار النظام الأساسي):
- MDXXExp.epf- تسمح لك المعالجة بتحميل وصف لهيكل قاعدة المعلومات إلى ملف xml. يتم تحميل وصف الهيكل في القرص المضغوط لمزيد من التحليل وإنشاء قواعد التبادل.
- V8ExchanXX.epf- تحميل / تنزيل البيانات من قاعدة المعلومات وفقًا لقواعد التبادل. في معظم التكوينات النموذجية ، تكون المعالجة متاحة خارج الصندوق (راجع عنصر قائمة "الخدمة"). المعالجة عالمية ولا ترتبط بأي تكوينات / قواعد محددة.
حسنًا ، بناءً على كل ما سبق ، دعنا نحدد مراحل تطوير تحويل جديد:
- تعريف المهمة. من الضروري أن نفهم بوضوح ما هي البيانات التي يجب نقلها (من أي كائنات التكوين) ، والأهم من ذلك ، مكان النقل.
- إعداد وصف لهياكل التكوين (المصدر / المتلقي) للتحميل اللاحق في القرص المضغوط. يتم حل المهمة عن طريق معالجة الخدمة MDXXExp.epf.
- تحميل الأوصاف المعدة للتحميل في IS.
- إنشاء قواعد التبادل باستخدام الوسائل المرئية للقرص المضغوط.
- التحميل / التنزيل وفقًا لقواعد تحويل البيانات التي تم إنشاؤها باستخدام معالجة V8ExchanXX.epf.
- تصحيح قواعد الصرف (إذا لزم الأمر).
أبسط تحويل
للعرض التوضيحي ، نحتاج إلى تكوينين منتشرين. قررت التوقف عند الخيار: الإصدار العاشر "إدارة التجارة" وحل صغير مكتوب ذاتيًا. ستكون المهمة هي نقل البيانات من تكوين UT النموذجي. للإيجاز ، سوف نطلق على الحل المكتوب ذاتيًا "المتلقي" وإدارة التجارة "المصدر". لنبدأ في حل المشكلة عن طريق نقل عناصر دليل "التسمية".
بادئ ذي بدء ، دعنا نلقي نظرة على مخطط تحويل البيانات ونعيد قراءة قائمة الإجراءات التي يجب القيام بها. ثم نطلق تكوين "المصدر" ونفتح معالجة الخدمة MD82Exp.epf فيه.
لا تتألق واجهة المعالجة مع كثرة الإعدادات. يحتاج المستخدم فقط إلى تحديد أنواع كائنات البيانات الوصفية التي لن تندرج في وصف الهيكل. في معظم الحالات ، لا تحتاج هذه الإعدادات إلى التغيير ، لأن لا توجد نقطة معينة في تفريغ الحركات في سجلات التراكم (كمثال).
من الأصح تشكيل الحركة أثناء الاحتفاظ بالمستندات في جهاز الاستقبال. سيتم إجراء جميع الحركات بواسطة المستند نفسه بعد النقل. الحجة الثانية للدفاع عن الإعدادات الافتراضية هي تقليل حجم الملف الذي تم تحميله.
تشكل بعض المستندات (خاصة في التكوينات النموذجية) حركات في سجلات متعددة. سيؤدي تفريغ كل هذا الاقتصاد إلى جعل ملف XML الناتج كبيرًا جدًا. هذا يمكن أن يجعل النقل اللاحق والتحميل في قاعدة الاستقبال أمرًا صعبًا. كلما زاد حجم ملف البيانات ، زادت ذاكرة الوصول العشوائي المطلوبة لمعالجته. أثناء ممارستي ، صادفت ملفات تحميل كبيرة بشكل غير لائق. مثل هذه الملفات رفضت تمامًا تحليلها بالوسائل القياسية.
لذلك ، نترك جميع الإعدادات الافتراضية ونقوم بتحميل وصف التكوين إلى ملف. نكرر نفس الإجراء للقاعدة الثانية.
افتح القرص المضغوط وحدد من القائمة الرئيسية "الدلائل" -> "التكوينات". يخزن الدليل أوصافًا لهياكل جميع التكوينات التي يمكن استخدامها لإنشاء تحويلات. نقوم بتحميل وصف التكوين مرة واحدة ، وبعد ذلك يمكننا استخدامه بشكل متكرر لإنشاء تحويلات مختلفة.
في نافذة الدليل ، اضغط على الزر " يضيف"وفي النافذة التي تظهر ، حدد ملفًا يتضمن وصفًا للتهيئة. حدد المربع "تحميل إلى التكوين الجديد" وانقر على الزر "تنفيذ التحميل". نقوم بتنفيذ إجراءات مماثلة مع وصف هيكل التكوين الثاني.
الآن كل شيء جاهز لإنشاء قواعد التبادل. في قائمة القرص المضغوط الرئيسية ، حدد "مراجع" -> "تحويلات". إضافة عنصر جديد. في نافذة إنشاء تحويل جديد ، تحتاج إلى تحديد: تكوين المصدر (حدد UT) وتكوين جهاز الاستقبال (حدد "جهاز الاستقبال"). بعد ذلك ، افتح علامة التبويب "خيارات متقدمة" واملأ الحقول التالية:
- اسم ملف قواعد الصرف - سيتم حفظ قواعد التبادل التي تم إنشاؤها تحت هذا الاسم. يمكن تغيير اسم الملف في أي وقت ، ولكن من الأفضل تعيينه الآن. سيوفر هذا الوقت في المستقبل. سميت قواعد العرض التوضيحي: "rules-ut-to-priemnik.xml".
- الاسم - اسم التحويل. يمكن أن يكون الاسم أي شيء على الإطلاق ، فقد اقتصرت على "Demo. UT إلى جهاز الاستقبال ".
هذا كل شيء ، انقر فوق "موافق". على الفور ، تظهر نافذة أمامنا تطلب منا إنشاء جميع القواعد تلقائيًا. الموافقة على هذا العرض المغري ستمنح المعلم الأمر لتحليل وصف التكوينات المحددة تلقائيًا وإنشاء قواعد التبادل بشكل مستقل.
دعنا نضع علامة "و" على الفور. لن يكون السيد قادرًا على توليد أي شيء جاد. ومع ذلك ، لا ينبغي استبعاد هذا الاحتمال. إذا كنت بحاجة إلى إنشاء تبادل بين التكوينات المتطابقة ، فستكون خدمات المعالج مفيدة للغاية. على سبيل المثال لدينا ، يفضل الوضع اليدوي.
دعنا نلقي نظرة فاحصة على نافذة "إعدادات قواعد الصرف". قد تبدو الواجهة محيرة بعض الشيء - عدد كبير من علامات التبويب مليء بعناصر التحكم. في الواقع ، كل شيء ليس بهذه الصعوبة ، تبدأ في التعود على هذا الجنون بعد بضع ساعات من العمل مع التطبيق.
في هذه المرحلة ، نحن مهتمون بعلامتي تبويب: "قواعد تحويل الكائن" و "قواعد تحميل البيانات". في الأول ، يتعين علينا إعداد قواعد المطابقة ، أي قارن كائنات من تكوينين. في الحالة الثانية ، حدد الكائنات الممكنة التي ستكون متاحة للمستخدم لتفريغها.
في النصف الثاني من علامة التبويب "قواعد تحويل الكائن" ، توجد لوحة إضافية بها علامتا تبويب: "تحويل الخاصية" و " تحويل القيمة". سيحدد العنصر الأول خصائص (متطلبات) الكائن المحدد ، والثاني ضروري للعمل مع القيم المحددة مسبقًا (على سبيل المثال ، عناصر القاموس المحددة مسبقًا أو عناصر التعداد).
رائع ، لنقم الآن بإنشاء قواعد تحويل للأدلة. يمكنك تنفيذ هذا الإجراء بطريقتين: استخدام معالج مزامنة الكائن (انقر فوق "") أو إضافة تطابقات لكل كائن يدويًا.
لتوفير مساحة ، سنستخدم الخيار الأول. في نافذة المعالج ، ألغِ تحديد المربع " المستندات"(نحن مهتمون فقط بالأدلة) وتوسيع المجموعة" الكتب المرجعية". نتصفح القائمة بعناية وننظر إلى أسماء الدلائل التي يمكن مقارنتها.
في حالتي ، هناك ثلاثة أدلة من هذا القبيل: التسمية ، المنظمات والمستودعات. يوجد أيضًا دليل عملاء ينفذ نفس الحمل الدلالي مثل " النظراء"من التكوين" يوتا". صحيح أن السيد لم يستطع مقارنتهم بسبب أسمائهم الممتازة.
يمكننا إصلاح هذا العيب بأنفسنا. تجد في النافذة تعيينات الكائن»كتيب« عملاء"، وفي العمود" المصدر "حدد الكتاب المرجعي" النظراء ". ثم حدد المربع في عمود "النوع" وانقر على الزر "موافق".
سيطالبك معالج مزامنة الكائنات بإنشاء قواعد تلقائيًا لتحويل خصائص جميع الكائنات المحددة. ستتم مطابقة الخصائص بالاسم ، وسيكون هذا كافيًا لعرضنا هذا ، نحن نتفق. السؤال التالي سيكون اقتراحًا لإنشاء قواعد التحميل. دعونا نتفق على ذلك.
أساس قواعد الصرف جاهز. اخترنا الكائنات للمزامنة ، وتم إنشاء قواعد تحويل الخصائص وقواعد التحميل تلقائيًا. لنحفظ قواعد التبادل في ملف ، ثم نفتح "المصدر" IB (في حالتي ، إنه UT) ونبدأ معالجة الخدمة فيه V8Exchan82.epf.
بادئ ذي بدء ، في نافذة المعالجة ، حدد قواعد التبادل التي أنشأناها. نجيب على سؤال تحميل القواعد بالإيجاب. ستعمل المعالجة على تحليل قواعد التبادل وإنشاء شجرة تحمل نفس الاسم للأشياء المتاحة للتفريغ. بالنسبة لهذه الشجرة ، يمكننا تعيين جميع أنواع المرشحات أو عقد التبادل ، من خلال تغيير ما نحتاج إليه لتحديد البيانات. نريد تحميل جميع البيانات تمامًا ، لذلك ليست هناك حاجة لتثبيت المرشحات.
بعد اكتمال عملية تحميل البيانات إلى ملف ، انتقل إلى IB " المتلقي". نحن أيضا نفتح المعالجة فيه V8Exchan82.epf، هذه المرة فقط ننتقل إلى علامة التبويب "تحميل البيانات". حدد ملف البيانات وانقر فوق الزر "تحميل". كل شيء ، تم نقل البيانات بنجاح.
مهام من العالم الحقيقي
قد يكون العرض التوضيحي الأول مضللاً. كل شيء يبدو بسيطًا ومنطقيًا. في الواقع، وهذا ليس صحيحا. في العمل الحقيقي ، تنشأ المهام التي يصعب حلها أو يستحيل حلها تمامًا باستخدام الوسائل المرئية وحدها (بدون البرمجة).
لكي لا أصاب بخيبة أمل في التكنولوجيا ، قمت بإعداد بعض المهام الحقيقية. ستصادفهم بالتأكيد في العمل. لا تبدو تافهة للغاية وتجعلك تنظر إلى تحويل البيانات من زاوية جديدة. ضع في اعتبارك الأمثلة المقدمة بعناية ، ولا تتردد في استخدامها كمقتطفات عند حل المشكلات الحقيقية.
رقم المهمة 1. املأ التفاصيل المفقودة
لنفترض أننا بحاجة إلى نقل الدليل " النظراء". لدى المتلقي كتاب مرجعي مشابه "عملاء" لهذا الغرض. إنه مناسب تمامًا لتخزين البيانات ، لكن به دعائم " منظمة"، مما يسمح لك بفصل الأطراف المقابلة عن طريق الانتماء إلى المنظمة. بشكل افتراضي ، يجب أن تنتمي جميع الأطراف المقابلة إلى المؤسسة الحالية (يمكن الحصول عليها من الثابت الذي يحمل نفس الاسم).
هناك عدة حلول لهذه المشكلة. سننظر في خيار ملء الدعائم " منظمة"الحق في القاعدة" المتلقي"، بمعنى آخر. في وقت تحميل البيانات. يتم تخزين المؤسسة الحالية بشكل ثابت ، لذلك لا يوجد عائق أمام الحصول على هذه القيمة. لنفتح قاعدة تحويل الكائن (المشار إليها فيما يلي باسم FRP) " عملاء"(انقر نقرًا مزدوجًا على الكائن) وفي معالج إعداد القواعد ، انتقل إلى قسم" معالجات الأحداث ". في قائمة المعالجات نجد " بعد التحميل”.
دعنا نصف رمز الحصول على المؤسسة الحالية مع التخصيص اللاحق للسمة. في الوقت الحالي يتم تشغيل معالج "بعد التحميل" ، سيتم تكوين الكائن بالكامل ، ولكن لم تتم كتابته بعد في قاعدة البيانات. لا أحد يمنعنا من تغييره حسب تقديرنا:
إذا لم يكن Object.Group ثم Object.Organization = Constants.CurrentOrganization.Get () ؛ إنهاء إذا؛
قبل ملء الدعائم " منظمة»من الضروري التحقق من قيمة السمة« هذه المجموعة". للدليل " عملاء»تم تعيين العلم الهرمي ، لذا من الضروري التحقق من وجود مجموعة. وبالمثل ، يتم ملء أي تفاصيل. تأكد من قراءة التعليمات الخاصة بخيارات المعالج الأخرى " بعد التحميل". على سبيل المثال ، من بينها هناك معلمة " رفض". إذا تم تعيين القيمة "True" ، فلن تتم كتابة الكائن في قاعدة البيانات. وبالتالي ، يصبح من الممكن تقييد الكائنات للكتابة في وقت التحميل.
رقم المهمة 2. التفاصيل في سجل المعلومات
في الكتيب " النظراء"تكوين UT ، هناك تفاصيل" مشتر" و " مزود". كلا الدعائم من النوع " قيمة منطقية"وتستخدم لتحديد نوع الطرف المقابل. في IB " المتلقي"، في الكتاب المرجعي" عملاء"لا توجد تفاصيل مماثلة ، ولكن يوجد سجل للمعلومات" أنواع العملاء". تؤدي وظيفة مماثلة ويمكنها تخزين علامات متعددة لعميل واحد. مهمتنا هي نقل قيم التفاصيل إلى سجلات منفصلة لسجل المعلومات.
لسوء الحظ ، لا يمكن للوسائل المرئية وحدها التعامل هنا أيضًا. لنبدأ صغيرًا ، وننشئ PCO جديدًا لسجل المعلومات " أنواع العملاء". لا تسرد أي شيء كمصدر. رفض الإنشاء التلقائي لقواعد التحميل.
الخطوة التالية هي إنشاء قواعد التحميل. انتقل إلى علامة التبويب المناسبة وانقر فوق " يضيف". في النافذة لإضافة قواعد التحميل ، املأ:
- طريقة أخذ العينات. التغيير إلى "الخوارزمية التعسفية" ؛
- قاعدة التحويل. حدد سجل المعلومات "أنواع العملاء" ؛
- كود (اسم) القاعدة. نكتبه كـ "تحميل أنواع العميل" ؛
أنت الآن بحاجة إلى كتابة الكود لتحديد البيانات للتحميل. هذا هو المكان الذي توجد فيه المعلمة " أخذ عينات البيانات". في ذلك ، يمكننا وضع مجموعة مع مجموعة بيانات معدة. معامل " أخذ عينات البيانات" تستطيع القبول معاني مختلفة- نتيجة الاستعلام والاختيار ومجموعات القيم وما إلى ذلك. نقوم بتهيئته كجدول قيم بعمودين: نوع العميل والعميل.
يوجد أدناه رمز معالج الحدث " قبل المعالجة". يقوم بتهيئة المعلمة " أخذ عينات البيانات"متبوعًا بملء البيانات من الدليل" النظراء". هنا يجدر الانتباه لملء العمود " نوع العميل". في "UT" ، لدينا ميزات من النوع "Boolean" وفي المستلم تعداد.
في هذه المرحلة ، لا يمكننا إحضارهم إلى النوع المطلوب (ليس في UT) ، لذلك سنتركه الآن في شكل سلاسل. لست مضطرًا للقيام بذلك ، لكنني أريد على الفور أن أوضح كيفية الإرسال إلى نوع مفقود في المصدر.
DataFetch = NewValueTable () ، اختيار البيانات. Columns.Add ("العميل") ؛ تحديد البيانات. Columns.Add ("ClientType") ، تحديد Data From the Directory = Directories.Contractors.Select () ؛ أثناء إحضار حلقة DataFromCatalog.Next () If FetchingDataFromCatalog.SGroup ثم متابعة ؛ إنهاء إذا؛ If DataFetchFromCatalog.Buyer ثم NewString = DataFetch.Add () ؛ NewString.Client = SamplingDataFromCatalog.Reference ، NewString.ClientType = "المشتري" ؛ إنهاء إذا؛ If DataFetchFromCatalog.Provider ثم NewString = DataFetch.Add () ؛ NewString.Client = SamplingDataFromCatalog.Reference ، NewString.ClientType = "المورد" ؛ إنهاء إذا؛ نهاية الدورة
احفظ قاعدة تحميل البيانات وارجع إلى " قواعد تحويل الكائن". دعنا نضيف لسجل المعلومات " أنواع العملاء"قواعد تحويل الملكية: نوع العميل والعميل. نترك المصدر فارغًا ، وفي معالج الحدث "قبل التفريغ" نكتب:
// لقيمة خاصية "العميل" = Source.Client؛ // بالنسبة لخاصية "نوع العميل" If Source.Customer = "Buyer" ثم Expression = "Enumerations.CustomerTypes.Buyer" ElseIf Source.Customer = "المورد" ثم Expression = "Enumerations.CustomerTypes.Supplier" ؛ إنهاء إذا؛
في القائمة ، يتم ملء التفاصيل بناءً على اختيار البيانات الذي تم إجراؤه. نمرر العميل ببساطة كرابط ، ونكتب نوع العميل في المعلمة " تعبير". سيتم تفسير بيانات هذه المعلمة في جهاز الاستقبال ، وعند تنفيذها ، سيتم ملء السمة بالقيمة الصحيحة من التعداد.
هذا كل شيء ، قواعد التبادل جاهزة. المثال المدروس اتضح أنه عالمي تمامًا. غالبًا ما يتم استخدام نهج مماثل عند نقل البيانات من التكوينات التي تم إنشاؤها على النظام الأساسي 7.7. وخير مثال على ذلك هو نقل التفاصيل الدورية.
رقم المهمة 3. الحيل الجدولية
غالبًا ما تكون هناك مهام تتطلب ترحيل صفوف من جزء جدولي واحد إلى عدة صفوف. على سبيل المثال ، في التكوين الأولي ، يتم تسجيل الخدمات والسلع في قسم جدولي واحد ، بينما يتم فصل تخزين هذه الكيانات في جهاز الاستقبال. مرة أخرى ، لا يمكن حل المشكلة بالوسائل البصرية. من المناسب هنا اتخاذ حل المشكلة الثانية كأساس.
نحن نصنع قاعدة لتحميل البيانات ، ونحدد خوارزمية عشوائية ، ونكتب استعلامًا في معالج "قبل التحميل" للحصول على البيانات من القسم المجدول.
لتوفير مساحة ، لن أعطي الكود (يمكنك دائمًا الرجوع إلى الكود المصدري) للطلب - لا يوجد شيء غير عادي فيه. نقوم بفرز العينة الناتجة ووضع النتائج التي تم فرزها في المعامل المألوف بالفعل " أخذ عينات البيانات". مرة أخرى ، من الملائم استخدام جدول القيم كمجموعة:
DataFetch = NewValueTable () ، // هنا سيكون هناك قسم جدولي آخر لاختيار البيانات. // هنا سيكون هناك أيضًا قسم جدولي Data Selection.Columns.Add ("الخدمات") ؛ اختيار البيانات from.Columns.Add (“Link”) ؛
رقم المهمة 4. نقل البيانات إلى عملية
إذا كانت إحدى المؤسسات تستخدم العديد من أنظمة المحاسبة ، فستكون هناك حاجة عاجلاً أم آجلاً لترحيل البيانات مع التشكيل اللاحق للترحيلات.
في التكوين " BP"هناك وثيقة عالمية" عمليةوهي مثالية لتشكيل المزيد من الأسلاك. هذه مشكلة واحدة فقط - المستند مصنوع بمكر ، وليس من السهل نقل البيانات إليه.
يمكن العثور على مثال لهذا التحويل في التعليمات البرمجية المصدر للمقالة. تبين أن كمية الشفرة كبيرة جدًا ، لذلك لا فائدة من نشرها للمقال. دعني أقول إن التحميل مرة أخرى يستخدم خوارزمية عشوائية في قواعد تحميل البيانات.
رقم المهمة 5. مزامنة البيانات عبر سمات متعددة
لقد قمنا بالفعل بتغطية بعض الأمثلة ، ولكن حتى الآن لم نتحدث عن مزامنة الكائن أثناء الترحيل. دعنا نتخيل أننا بحاجة إلى نقل الأطراف المقابلة وربما يكون بعضهم في قاعدة بيانات المستلمين. كيفية نقل البيانات ومنع التكرارات؟ في هذا الصدد ، يوفر القرص المضغوط عدة طرق لمزامنة الكائنات المنقولة.
الأول هو عن طريق معرف فريد. تحتوي العديد من الكائنات على معرف فريد يضمن التفرد داخل الجدول. على سبيل المثال ، في الكتيب " النظراءلا يمكن أن يحتوي "على عنصرين لهما نفس المعرف. يقوم القرص المضغوط بإجراء عملية حسابية لذلك ، وبالنسبة لجميع أجهزة PSP التي تم إنشاؤها ، يتم تمكين البحث حسب المعرف على الفور افتراضيًا. أثناء إنشاء PSP ، يجب أن تكون قد لاحظت رمز العدسة المكبرة بجوار اسم الكائن.
تعد المزامنة بواسطة معرّف فريد طريقة موثوقة ، لكنها بعيدة عن أن تكون مناسبة دائمًا. عند دمج الدلائل " النظراء"(من عدة أنظمة مختلفة) فهو قليل المساعدة.
في مثل هذه الحالات ، يكون من الأصح مزامنة الكائنات وفقًا لعدة معايير. من الأصح البحث عن الأطراف المقابلة عن طريق TIN أو KPP أو الاسم أو تقسيم البحث إلى عدة مراحل.
لا يقيد تحويل البيانات المطور في تحديد معايير البحث. لنفكر في مثال مجرد. لنفترض أننا بحاجة إلى مزامنة الدلائل " النظراء"من قواعد معلومات مختلفة. دعنا نجهز PCP وفي إعدادات قواعد تحويل كائن ، حدد المربع " استمر في البحث في حقول البحث إذا لم يتم العثور على كائن جهاز الاستقبال بواسطة المعرف". من خلال هذا الإجراء ، حددنا على الفور معيارين للبحث - بواسطة معرف فريد وحقول عشوائية.
لدينا الحق في اختيار الحقول بأنفسنا. بعد ملاحظة TIN و KPP والاسم ، سنشير على الفور إلى العديد من معايير البحث. مريح؟ حسنًا ، لكن مرة أخرى ، هذا لا يكفي. وماذا لو أردنا تغيير معايير البحث؟ على سبيل المثال ، نبحث أولاً عن مجموعة من TIN + KPP ، وإذا لم نعثر على أي شيء ، فسنبدأ في تجربة حظنا بالاسم.
من الممكن تمامًا تنفيذ مثل هذه الخوارزمية. في معالج الحدث حقول البحث"يمكننا تحديد ما يصل إلى 10 معايير بحث ولكل منها تحديد تكوينها الخاص لحقول البحث:
إذا كان SearchOptionNumber = 1 ثم SearchPropertyNameString = "TIN ، KPP" ؛ ElseIfSearchVariantNumber = 2 ThenSearchPropertyNameString = “الاسم”؛ إنهاء إذا؛
هناك دائما حلول متعددة.
أي مهمة لها عدة حلول ، ونقل البيانات بين التكوينات المختلفة ليس استثناءً. لكل مطور الحق في اختيار مسار الحل الخاص به ، ولكن إذا كان عليك باستمرار تطوير عمليات ترحيل معقدة للبيانات ، فأنا أوصي بشدة بالانتباه إلى التكوين "". دعك في البداية تضطر إلى استثمار الموارد (الوقت) في التدريب ، لكنها ستؤتي ثمارها أكثر من أول مشروع أكثر أو أقل جدية.
في رأيي ، تتخطى شركة 1C بشكل غير مستحق موضوع استخدام تحويل البيانات. طوال فترة وجود التكنولوجيا ، تم نشر كتاب واحد فقط عنها: "1C: المؤسسة 8. تحويل البيانات: التبادل بين حلول التطبيقات". الكتاب قديم جدًا (2008) ، لكن لا يزال من المرغوب فيه التعرف عليه.
لا تزال معرفة النظام الأساسي مطلوبة
»هي أداة عالمية ، ولكن إذا كنت تخطط لاستخدامها لإنشاء عمليات ترحيل البيانات من التكوينات المطورة لمنصة 1C: Enterprise 7.7 ، فسيتعين عليك حينها قضاء بعض الوقت في التعرف على اللغة المضمنة. بناء الجملة وأيديولوجية اللغة مختلفة تمامًا ، لذلك عليك قضاء بعض الوقت في التعلم. يبقى باقي المبدأ كما هو.
تعد آلية معالج الأحداث إحدى التقنيات الرئيسية لتحويل البيانات باستخدام "تحويل البيانات 2.0". يسمح الاستخدام الكفء والماهر لهذه الآلية للمطور بحل أي مهمة تحويل بيانات تقريبًا بسرعة. بمساعدة تقنية المعالج ، يتم تنفيذ اختيار البيانات وتحويل البيانات بسهولة أنواع مختلفة، تحديدات البيانات المعقدة ، إعدادات التحويل والعديد من المهام الأخرى.
ضع في اعتبارك المبادئ الأساسية لهذه التكنولوجيا. في النقاط الرئيسية للخوارزميات لتفريغ وتحميل البيانات في معالجة التبادل العالمي ، من الممكن تنفيذ كود البرنامج المأخوذ من قواعد تبادل البيانات ، وليس "صلبًا" في معالجة تفريغ البيانات أو تحميلها. يوفر تكوين "تحويل البيانات 2.0" فرصًا لدمج رمز البرنامج هذا في قواعد تبادل البيانات.
في المجموع ، هناك أكثر من عشرين مكانًا مختلفًا في خوارزميات تبادل البيانات حيث يمكن تنفيذ تعليمات برمجية لجهة خارجية. وفقًا لذلك ، يوفر التكوين إنشاء أنواع مختلفة من معالجات الأحداث.
يتم "إرفاق" رمز معالجات الأحداث بكائنات قواعد التبادل - عناصر الأدلة: التحويلات وقواعد تحويل الكائنات وقواعد تحويل الممتلكات وقواعد تحميل البيانات وقواعد تنظيف البيانات. بطبيعة الحال ، يجب أن يفي رمز معالج الحدث بعدد من المتطلبات. على وجه الخصوص ، للتحكم في عملية التحويل في كود المعالج ، من الضروري استخدام متغيرات خاصة - معلمات. يمكن العثور على وصف كامل لجميع أنواع معالجات الأحداث والمتغيرات المتاحة في المعلومات حول المعالجات في النماذج المقابلة.
الانتباه!!!
تسمح تقنيات تحويل البيانات 2.0 بتبادل البيانات مع قواعد المعلومات المطبقة على الأنظمة الأساسية 1C: Enterprise 7.7 و 1C: Enterprise 8.0. نظرًا لخصائص تشغيل منصة 1C: Enterprise 7.7 ، فإن إعداد قواعد تبادل البيانات باستخدام معالجات الأحداث لقواعد المعلومات المنفذة على هذا النظام الأساسي له عدد من الميزات.
بالنسبة للنظام الأساسي 1C: Enterprise 7.7 ، لا يمكن تنفيذ تعليمات برمجية عشوائية (مماثلة لوظيفة التشغيل لـ V8). إذا كان من الضروري استخدام معالجات الأحداث لمنصة V7.7 ، فمن الضروري استبدال نص المعالجة لتحميل البيانات أو تنزيلها بنصوص معالجة ناتجة عن تكوين "تحويل البيانات 2.0".
إذا كنت بحاجة إلى نقل البيانات من V7.7 إلى V8 ثم:
عند التفريغ ، بالإضافة إلى ملف القواعد نفسه ، يقوم النظام بإنشاء نص الوحدة النمطية لمعالجة V77Exp.ert بالوظائف التي تنفذ معالجات الأحداث. بعد ذلك ، في أداة التهيئة ، يجب علينا استبدال الوحدة القياسية V77Exp.ert بالوحدة الجديدة التي تم إنشاؤها بواسطة "تحويل البيانات 2.0".
عند تطوير حلول تبادل البيانات على منصة 1C: Enterprise 7.7 ، عليك أن تتذكر هذا "التافه" المهم. لن تعمل القواعد الخاصة بك بشكل صحيح إلا إذا كنت تستخدم معالجة معدلة ، تم إنشاء نص الوحدة النمطية منها عند تفريغ قواعد تبادل البيانات. هذه القاعدة لها استثناء واحد - إذا كنت لا تستخدم معالجات الأحداث ، فيمكنك استخدام المعالجة القياسية.
بإخلاص، فلاديمير ميلكين(مدرس ومطور).