يحدث أن تحتاج إلى استخدام المعالجة الخارجية أو التقرير للعمل، لكن هذا ليس ممكنًا دائمًا على الفور. في بعض الأحيان، عند محاولة فتح معالجة خارجية أو تقرير باستخدام عنصر القائمة "ملف" ثم "فتح"، تظهر رسالة خطأ تشير إلى انتهاك حقوق الوصول.
لكن أولاً، دعونا نلقي نظرة على كيفية فتح التقارير الخارجية ومعالجتها بشكل عام في الإصدار 3.0 من "1C: Accounting 8.3". وهي عادة ما تكون عبارة عن أرشيف تم تنزيله من الإنترنت أو الحصول عليه بطريقة أخرى. بمجرد حفظه، على سطح المكتب على سبيل المثال، يمكننا رؤية محتوياته بالنقر المزدوج عليها.
لمزيد من الراحة، يمكنك إنشاء مجلد خاص للعلاجات وتخزينها كلها فيه.
إذا لم تتمكن من فتح المعالجة أو التقرير، فيمكنك استخدام أحد الخيارين.
يمكنك تسجيل المعالجة في دليل يسمى "التقارير والمعالجة الإضافية". لذلك، نقوم بتسجيل المعالجة في قاعدة البيانات.
مهم!
إذا ظهر خطأ في هذه المرحلة بالنص: "من المستحيل توصيل معالجة إضافية من الملف..."، فسيتعين عليك استخدام الطريقة الثانية الموضحة أدناه.
تم تسجيل المعالجة بنجاح. لفتحه، ستحتاج إلى الذهاب إلى قسم العمليات، وتحديد عنصر المعالجة الإضافي، واختيار العنصر الذي تحتاجه، ثم النقر على "تشغيل".
إذا كانت المعالجة لا تدعم التسجيل الموضح في الخيار الأول، فيمكنك القيام بذلك بشكل مختلف، وهي: تمكين القدرة على فتح المعالجة في قاعدة البيانات مرة أخرى باستخدام قائمة "ملف" باستخدام زر الفأرة الأيمن "فتح".
عند العمل مع 1C في النظام الأساسي 8.2، قد تظهر النافذة التالية: " المعالجة الخارجيةلا يمكن قراءتها بواسطة الإصدار الحالي من البرنامج." دعنا نحاول معرفة سبب ظهور هذه النافذة وكيفية إصلاح الخطأ.
يقوم برنامج 1C بتحديث النظام الأساسي من وقت لآخر. يحدث هذا مع إصدار الإصدارات الجديدة. سبب الخطأ بسيط: قام البرنامج بتحديث النظام الأساسي والآن بعض الملفات المعالجة الخارجية، والتي كان من السهل فتحها في الإصدار 8.1، وترفض قراءتها على النظام الأساسي 8.2.
لحل الخطأ، يجب عليك:
ثم المعالجة الخارجيةيتم تحويله إلى تنسيق يمكن فهمه بواسطة النظام الأساسي المحدث، وستكون قادرًا على فتح ملفات المعالجة الخارجية. للتحقق من نجاح التحويل، بعد إغلاق المكوِّن، ابدأ المعالجة في وضع 1C:Enterprise.
في 99٪ من الحالات، تساعد خوارزمية الإجراءات هذه في حل المشكلة. لو المعالجة الخارجيةلا يبدأ بعد التحويل، فمن المستحسن دعوة متخصص 1C.
إذا كان عند فتح معالجة خارجية أو تقرير عبر القائمة ملف->فتح
يظهر خطأ "انتهاك الوصول":
لا يوجد سوى خيارين لاستخدام المعالجة.
الخيار الأول هو تسجيل المعالجة في دليل "التقارير والمعالجة الإضافية" (حول هذا).
ولكن ماذا لو كانت المعالجة لا تدعم هذا التسجيل؟ والمعالجة مفيدة جدًا وأريد حقًا فتحها.
في هذه الحالة، يمكنك الانتقال إلى الخيار الثاني وإعادة تمكين القدرة على فتح المعالجة في قاعدة البيانات من خلال القائمة ملف->فتح.
تعليمات لهذا أدناه.
انتقل إلى مكون قاعدة البيانات:
قم بتنفيذ أمر القائمة "الإدارة" -> "المستخدمون":
انقر نقرًا مزدوجًا لفتح المستخدم الخاص بك:
انتقل إلى علامة التبويب "أخرى"، وحدد مربع الاختيار "الفتح التفاعلي للتقارير الخارجية والمعالجة" وانقر على "موافق":
الآن أغلق المكوّن وقاعدة البيانات (إذا كانت مفتوحة).
انتقل إلى قاعدة البيانات مرة أخرى وحاول فتح التقرير من خلال القائمة "ملف" -> "فتح".
الآن كل شيء سوف ينجح
هناك فروق دقيقة ...
الطريقة التي وصفتها في هذه التعليمات تعمل بنسبة 100%، ولكن عند استخدامها، قد يختفي الحق في "فتح المعالجة الخارجية بشكل تفاعلي" مرة أخرى بعد فترة.
لتجنب ذلك، حدد المربع نفسه في 1C: وضع المؤسسة في ملف تعريف مجموعة الوصول الحالي للمستخدم الخاص بك.
عند استخدام هذه الطريقة، قد تنشأ فروق فروق دقيقة مختلفة (على سبيل المثال، إذا كنت تستخدم ملف تعريف مدمج لا يمكن تحريره)، لذلك لن أقدم تعليمات مفصلة لهذه الحالة.
بإخلاص، فلاديمير ميلكين(المعلم والمطور).
الصفحة الرئيسية للمطورين المبتدئين تعلم البرمجةفي الإصدار 8.2، لا يعمل التطبيق مباشرة مع الملفات المحلية الموجودة على الكمبيوتر. يجب أن تكون الملفات على الخادم.
لذلك، لفتح المعالجة الخارجية، يجب عليك تنفيذ التسلسل التالي من الإجراءات:
لنقل ملف إلى الخادم، يجب وضعه في وحدة تخزين مؤقتة. للقيام بذلك، أولاً على العميل، في معالج أمر فتح المعالجة الخارجية، باستخدام الوظيفة وضع الملف ()نقوم بوضع ملف من نظام الملفات المحلي في وحدة تخزين مؤقتة.
تحدد المعلمة الرابعة لهذه الوظيفة علامة الوضع التفاعلي لاختيار ملف معالجة خارجي. إذا كانت هذه المعلمة حقيقي، ثم يظهر مربع حوار تحديد الملف، حيث يمكنك تحديد ملف لوضعه في وحدة التخزين. في مثالنا، هذه المعلمة هي كذب، والمسار إلى الملف الذي سيتم وضع البيانات منه في التخزين المؤقت، محدد بشكل صريح في المعلمة الثانية للوظيفة.
عند استدعاء وظيفة وضع الملف ()المعلمة الأولى لها عنوان التخزين، نحدد سلسلة فارغة. بعد تنفيذ الوظيفة، سيتم وضع المسار إلى ملف المعالجة الخارجي في التخزين المؤقت في هذا المتغير. نستخدم هذا المسار لتوصيل المعالجة الخارجية.
يتم إجراء اتصال المعالجة الخارجية على الخادم باستخدام هذه الطريقة قابس()مدير المعالجة الخارجية. كمعلمة، يتم تمرير المسار إلى ملف المعالجة الخارجي في التخزين المؤقت - عنوان التخزين. تقوم هذه الطريقة بإرجاع اسم المعالجة الخارجية المتصلة، - اسم المعالجة- الذي نستخدمه لفتح النموذج لهذه المعالجة.
لفتح نموذج معالجة خارجي، استخدم الوظيفة نموذج مفتوح ()، والذي يتم تمرير اسم النموذج إليه بالسطر التالي: "المعالجة الخارجية."+اسم المعالجة +".النموذج". في التجسيد أعلاه، يتم فتح نموذج المعالجة الرئيسي. يمكنك أيضًا فتح نموذج معالجة غير رئيسي - تمت مناقشة ذلك في السؤال كيفية الحصول على نموذج معالجة غير رئيسي؟ .
عند العمل مع المعالجة الخارجية، عليك أن تأخذ في الاعتبار أنه يتم تشغيلها افتراضيًا في الوضع الآمن لتنفيذ تعليمات برمجية. وهذا يعني أن بعض ميزات اللغة المضمنة لن تكون متاحة لهم. إذا كنت متأكدًا من أن المعالجة الخارجية لا تحتوي على تعليمات برمجية ضارة، فيمكن تنشيطها في الوضع العادي لتنفيذ تعليمات برمجية للبرنامج. لهذا، يتم استخدام المعلمة الثالثة للطريقة قابس()مدير المعالجة الخارجية.
يمكن العثور على مزيد من المعلومات حول وضع التنفيذ الآمن لرمز البرنامج في الوثائق.
للعمل مع المعالجة الخارجية (ونموذج الطباعة الخارجي هو أيضًا معالجة خارجية)، يوجد كائن المعالجة الخارجية.
دعونا نفكر في حالتين محتملتين:
لفتح المعالجة الخارجية برمجياً في 1C، تحتاج إلى معرفة عنوان ملفه. بمعرفة ذلك، يمكنك إما فتح نموذج معالجة أو الحصول على كائن معالجة لتنفيذ المزيد من الإجراءات معه (على سبيل المثال، لاستدعاء وظائف التصدير من وحدة نمطية للكائن).
لفتح نموذج معالجة خارجي برمجياً في 1C، استخدم الوظيفة GetForm()هدف المعالجة الخارجية.تحتوي الوظيفة على عدة معلمات. فكر في فتح بسيط لنموذج المعالجة الرئيسي:
النموذج = العمليات الخارجية. GetForm(FileAddress);
استمارة. يفتح()؛
لفتح نموذج معالجة خارجي بسيط، يجب عليك تحديد اسمه.
// يحتوي متغير FileAddress على المسار الكامل لملف المعالجة الخارجي
النموذج = العمليات الخارجية. GetForm(عنوان الملف، "نموذج ثانوي")
;
استمارة. يفتح()؛
من أجل تلقي المعالجة الخارجية ككائن، يتم استخدام وظيفة يخلق()هدف المعالجة الخارجية.
// يحتوي متغير FileAddress على المسار الكامل لملف المعالجة الخارجي
ProcessingObject = المعالجة الخارجية. إنشاء (عنوان الملف) ؛
افتراضيًا، يتم فتح كافة عمليات المعالجة في الوضع الآمن. لتعطيله، استخدم الخيارات التالية:
// يحتوي متغير FileAddress على المسار الكامل لملف المعالجة الخارجي
في العديد من التكوينات، من الممكن حفظ النماذج المطبوعة الخارجية ومعالجتها مباشرة في قاعدة المعلومات. ويستخدم الكتاب المرجعي لهذا الغرض. المعالجة الخارجية.يتم تخزين المعالجة الخارجية نفسها كبيانات ثنائية أو في السمات التخزين والمعالجة الخارجيةأو في القسم الجدولي انتسابفي الدعائم التخزين والمعالجة الخارجية.
لفتح المعالجة الخارجية تحتاج إلى:
// يحتوي متغير RefLink على رابط لعنصر دليل ExternalProcessings
DvData = RefLink. تخزين المعالجة الخارجية. يحصل() ؛
FileAddress = GetTemporaryFileName();
DvData. اكتب (عنوان الملف) ؛
ProcessingObject = المعالجة الخارجية. إنشاء (عنوان الملف، خطأ) ؛