يفتح
يغلق

إضافة نموذج طباعة خارجي إلى قاعدة البيانات. إضافة نموذج طباعة خارجي إلى قاعدة البيانات إعداد نماذج الطباعة في 1s 8.2

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

  • إنشاء ملف نموذج طباعة خارجي؛
  • إنشاء تخطيط النموذج المطبوع؛
  • كتابة كود البرنامج لعرض بيانات النموذج المطبوعة على الشاشة؛
  • إنشاء معلمات للتسجيل التلقائي للنموذج المطبوع؛
  • توصيل نموذج طباعة خارجي بالقاعدة 1C الشركات.

إنشاء نموذج مطبوع 1C. صياغة المشكلة

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

  • منظمة؛
  • الطرف المقابل؛
  • اتفاقية الطرف المقابل؛
  • تاريخ استلام.

عرض البيانات في القسم الجدولي كجدول بضائعوثيقة. يجب أن يتضمن الجدول الأعمدة التالية:

  • التسميات.
  • كمية؛
  • سعر؛
  • مجموع؛
  • وأيضا سعر الصنف للتاريخ الحالي (حسب نوع السعر من المستند).

ملف المعالجة الخارجية

دعنا ننتقل إلى حل المشكلة. أولا، دعونا نفتح 1C 8 في الوضع مكون. في هذا الوضع يتم تنفيذ جميع التطورات على منصة 1C 8، ونحن الآن بحاجة إلى إنشاء ملف معالجة خارجي. للقيام بذلك، انقر على القائمة ملف -> جديد...أو عن طريق أيقونة الملف الجديد.

في النافذة التي تفتح، حدد العنصر المعالجة الخارجية.

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

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

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

لنحفظ ملف المعالجة الخارجي على القرص الصلب، وللقيام بذلك، استخدم القائمة ملف -> حفظالرسم التخطيطي يحفظ(قرص مرن أزرق)، أو اختصار لوحة المفاتيح السيطرة + س. دعنا نسمي الملف المحفوظ "PrintForm".

إنشاء تخطيط النموذج المطبوع

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

لنقم بإضافة تخطيط جديد في شجرة بيانات تعريف المعالجة الخارجية؛ ولن نغير أي شيء في نافذة مصمم التخطيط وانقر فوق الزر مستعد.

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

إضافة رأس تخطيط

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

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

عادة ما تكون ثلاثة عشر أو أربعة عشر خلية تخطيط كافية، حددها في الصف الأول من المنطقة قبعةودمجها في خلية واحدة ( قائمة السياق -> دمج). بعد ذلك، انقر نقرًا مزدوجًا فوق الخلية الكبيرة الناتجة واكتب اسم المعلمة، في حالتنا "TitleText". لكي يصبح النص الذي تم إدخاله معلمة كاملة، انقر بزر الماوس الأيمن على الخلية وحدد العنصر في قائمة السياق ملكيات. على الإشارة المرجعية تَخطِيطدعونا نجد الحقل حشوةوحدد القيمة معامل. تتم الإشارة إلى المعلمات في تخطيط 1C بين قوسين "<>».

يجب أن يبرز عنوان النموذج المطبوع بين النصوص الأخرى، لذا حدد الخلية مرة أخرى واستخدم الأيقونات الموجودة على لوحة تنسيق التخطيط لتعيين محاذاة النص توسيطوحجم الخط 14.

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

يوضح الشكل كيف تختلف معلمات التخطيط عن النص العادي.

إضافة رأس جدول التخطيط

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

إضافة جدول إلى التخطيط

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

إضافة تذييل إلى التخطيط

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

يجب أن تكون النتيجة النهائية تخطيطًا يبدو كالتالي:

إنشاء نموذج مطبوع 1C. برمجة

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

تحتاج إلى إنشاء وظيفة تصدير في وحدة كائن نموذج الطباعة الخارجية ختم().

وظيفة الطباعة () تصدير EndFunction

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

تهيئة المتغيرات الأساسية

لنقم بإنشاء متغير TabDoc، والذي سيحتوي على مستند جدول بيانات - هذا هو بالضبط النموذج المطبوع الذي سنعرض فيه المساحات المملوءة من التخطيط.

TabDoc = TabularDocument الجديد؛

إلى متغير تَخطِيطسوف نحصل على تخطيط النموذج المطبوع الذي أنشأناه. للقيام بذلك نستخدم الوظيفة المضمنة الحصول على تخطيط(<ИмяМакета>).

Layout = GetLayout("Layout");

سنقوم بتحويل جميع مناطق التخطيط إلى متغيرات. للقيام بذلك نستخدم طريقة التخطيط منطقة GetArea(<ИмяОбласти>) .

HeaderArea = Layout.GetArea("Header"); AreaData = Layout.GetArea("Data"); AreaFooter = Layout.GetArea("Footer");

إخراج رأس النموذج المطبوع إلى مستند جدول بيانات

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

منطقة الرأس.Parameters.TitleText = "نموذج الطباعة"+LinkToObject.Number;

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

HeaderArea.Parameters.Organization = LinkToObject.Organization; HeaderArea.Parameters.Account = LinkToObject.Account; HeaderArea.Parameters.ReceiptDate = LinkToObject.Date; منطقة الرأس.اتفاقية المعلمات.Counterparty = اتفاقية LinkToObject.Counterparty;

تمت تعبئة جميع معلمات الرأس، وسنعرضها في مستند جدول البيانات الذي أنشأناه، ولهذا نستخدم الطريقة انتاج(<Область>) .

TabDoc.Output(HeaderArea);

كتابة طلب عائق مطبوع

لنبدأ بملء المنطقة ورسمها بيانات. يتضمن إنشاء نموذج مطبوع 1C أيضًا كتابة استعلام؛ فنحن بحاجة إليه للحصول على بيانات جدولية بضائعوالأسعار التسمياتللتاريخ الحالي سوف نستخدم طلب. تشبه لغة الاستعلام 1C 8 لغة SQL، أو بالأحرى تنسخ إمكانيات مشغل SELECT الخاص بها، ولكن الاستعلام بأكمله مكتوب باللغة الروسية. لذلك، إذا كنت على الأقل على دراية غامضة بـ SQL، فسوف تفهم بسهولة لغة الاستعلام 1C 8.

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

لنقم بإنشاء متغير يحتوي على الطلب.

طلب = طلب جديد؛

سنقوم بتأليف نص الطلب باستخدام مُنشئ الطلب. لنبدأ بالكتابة:

Request.Text = "";

ضع مؤشر الفأرة بين علامتي الاقتباس ثم اضغط على زر الفأرة الأيمن. في قائمة السياق التي تفتح، حدد العنصر طلب منشئ,سيساعدنا ذلك كثيرًا في إنشاء نموذج طباعة 1C. بعد ذلك، ستفتح نافذة مصمم الاستعلام، وهي تحتوي على العديد من علامات التبويب، ولكن لاستعلامنا سنحتاج إلى أربعة فقط: “الجداول والحقول”، “العلاقات”، “الشروط”، “الانضمام/الأسماء المستعارة”.

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

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

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

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

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

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

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

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

نوع السعر = & نوع السعر

تم ملء معلمات الجدول الافتراضي، انقر فوق الزر نعم.

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

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


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

اكتمل الآن العمل في مصمم الاستعلام، انقر فوق "موافق". بعد إغلاق نافذة المصمم، سترى أن السطر الذي يحتوي على نص الطلب مملوء ويبدو كما يلي:

Request.Text = "SELECT | استلام البضائعServicesProducts.Nomenclature، | استلام البضائعServicesProducts.Amount، | استلام البضائعServicesProducts.Price، | استلام البضائعServicesProducts.Quantity، | شريحة الأسعار الأحدث. السعر AS PriceToday | من | مستند. استلام السلعالخدمات.البضائع كمنتجات الاستلامالخدماتالمنتجات |. الاتصال الأيسر سجل المعلومات.الأسعارالتسمية.SliceLast (| &التاريخ الحالي، نوع السعر = &السعرالنوع) AS الأسعارالتسميةالشريحةالأخيرة عند استلام البضائعالخدماتالمنتجات.التسمية |

تنفيذ الطلب

دعونا نمرر المعلمات اللازمة للطلب؛ ولهذا سوف نستخدم طريقة الطلب تعيين المعلمة (<ИмяПараметра>,<Значение>). للحصول على التاريخ الحالي، استخدم الوظيفة المضمنة التاريخ الحالي ()، فهو يقوم بإرجاع تاريخ ووقت الكمبيوتر.

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

حدد = Query.Run().Select();

تعبئة جدول النموذج المطبوع

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

بينما حلقة Select.Next() EndLoop؛

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

مجموع المجموع = 0؛ الكمية الإجمالية = 0;

داخل الحلقة سوف نملأ المنطقة بياناتالبيانات من عنصر التحديد الحالي إلى متغيرات المبلغ الإجماليو الكمية الإجماليةأضف قيمتي المجموع والكمية، وأخيرًا اعرض المنطقة في مستند جدول بيانات باستخدام الطريقة المألوفة لدينا بالفعل انتاج(). نظرًا لأن أسماء حقول طلبنا تتطابق تمامًا مع أسماء معلمات المنطقة بيانات، ثم لملء سوف نستخدم الإجراء المدمج فيلبروبيرتيفالويس (<Приемник>, <Источник>)، الذي ينسخ قيم الممتلكات<Источника>إلى الخصائص<Приемника>.

while Selection.Next() Loop fillPropertyValues(AreaData.Parameters,Selection); TotalSum = TotalSum + Sample.Sum؛ TotalQuantity = TotalQuantity + Sample.Quantity؛ TabDoc.Output(AreaData); EndCycle;

إخراج تذييل النموذج المطبوع في مستند جدول بيانات

يبقى ملء وعرض المنطقة الأخيرة من التخطيط - قبو. لقد قمنا بالفعل بإعداد بيانات التعبئة والتعبئة والسحب وفقًا لنفس المخطط.

AreaFooter.Parameters.TotalQuantity = TotalQuantity; AreaFooter.Parameters.TotalSum = TotalSum; TabDoc.Output(AreaFooter);

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

إرجاع TabDoc؛

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

إنشاء نموذج مطبوع 1C. خيارات التسجيل التلقائي

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

ويتم ذلك على النحو التالي:

  • في المعالجة الخارجية نقوم بإنشاء تخطيط جديد. نحن نسميها "Settings_Auto-Registration" (من المهم عدم ارتكاب أي خطأ!).
  • في الخلية الأولى من التخطيط نكتب توثيق.(أو الدلائل.) واسم المستند الذي تريد توصيل النموذج المطبوع به.

توصيل نموذج طباعة خارجي بالقاعدة

  • ابدأ 1C 8 في الوضع شركة؛
  • اذهب إلى القائمة الخدمة -> التقارير والمعالجة الإضافية -> النماذج المطبوعة الخارجية الإضافية;
  • انقر فوق الزر يضيف;
  • في النافذة التي تفتح، انقر فوق الرمز استبدال ملف المعالجة الخارجي;
  • إذا قمت بإنشاء معلمات التسجيل التلقائي، فإننا نوافق على استخدامها؛
  • إذا لم تقم بإنشاء معلمات التسجيل التلقائي، ثم في القسم الجدولي ملحق لوحة الطباعةإضافة الوثيقة أو الكتاب المرجعي المطلوب؛
  • اضغط الزر نعم.

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

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

دعونا نتعرف على آلية تغيير نماذج الطباعة دون تغيير التكوين.


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


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


دعونا نقدم شرطين إضافيين:

  • يجب أن يحل النموذج المطبوع الجديد محل النموذج القديم "فاتورة"
  • لا يمكن تغيير التكوين، لأننا نريد استخدام التحديث التلقائي للتكوين في المستقبل

حسنا، ما هي المهمة؟ يبدو معقدا للغاية؟ حسنًا، كلما كان الأمر أكثر تعقيدًا، كلما كان أكثر إثارة للاهتمام، وكلما زادت رغبتك في حله. ثم دعونا نبدأ العمل.


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


مهم! يجب ألا يحتوي اسم المعالجة على مسافات، تمامًا مثل أسماء المتغيرات.


الآن دعونا نفعل قليلا "سرقة علمية". دعونا نسخ التخطيط "فاتورة"من الوثيقة "مبيعات السلع والخدمات". للقيام بذلك سنجده في الفرع "توثيق"شجرة التكوين. قم بتوسيع هذا الموضوع من خلال النقر على الأيقونة «+» والعثور على التخطيط الذي نحتاجه "فاتورة"(إنه في الموضوع "التخطيطات"). لنسخ هذا الكائن، تحتاج إلى تحديد هذا التخطيط في الشجرة وتشغيل الأمر "تحرير > نسخ"(يحدث نفس الإجراء مع المجموعة CTRL+C). لننتقل الآن إلى المعالجة التي أنشأناها، وحدد تسمية في الشجرة "التخطيطات"وفي القائمة الرئيسية حدد العنصر - "تحرير > لصق" (CTRL+V). يجب أن تبدو النتيجة مثل الشكل 1.


الآن انقر نقرًا مزدوجًا لفتح التخطيط.

ما هو "التخطيط"

دعنا نقول بضع كلمات حول الغرض من التخطيط.

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


يمكن أن تحتوي الخلية على واحد من ثلاثة أنواع من القيم:

  1. نص- سيتم طباعة قيمة من هذا النوع بنفس الشكل؛
  2. معامل– تحتوي الخلية من هذا النوع على اسم المتغير الذي سيتم طباعة قيمته.
  3. عينة– الخلايا من هذا النوع هي مزيج من الخيار الأول والثاني. يمكن أن تحتوي الخلية على نص ومتغيرات. لكي يتمكن البرنامج من تمييز النص من المتغير، يجب وضع المتغيرات بين قوسين مربعين: "اليوم هو [التاريخ]".

مهم!يعرض محرر الجدول قيم الخلايا من النوعين الثاني والثالث بين قوسين مثلثيين. يوجد في الصورة خلية تحتوي على نص "مشتر"- يشبه النص، وعلى يمين الخلية "عرض المشتري"- معامل.

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

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

ما هو مدرج في التخطيط القابل للطباعة

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

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

حسنًا، يوجد أدناه في التخطيط أقسام يتم من خلالها عرض نتائج المستند والتوقيع.

تحرير التخطيط

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

  1. دعونا ننسخ محتويات الخلية المدمجة بعناية "نص العنوان"(للقيام بذلك، تحتاج إلى تحديد الخلية واستخدام الأمر "تحرير > نسخ" أو اختصار لوحة المفاتيح CTRL+C)
  2. بعد تحديد هذه الخلية، حدد العنصر في القائمة الرئيسية "الجدول - دمج"مما سيؤدي إلى تأثير معاكس - سيتم تقسيم الخلية المدمجة إلى العديد من الخلايا الأصلية
  3. الآن دعونا نحدد عددًا أقل من الخلايا - بدلاً من الخلية 2 من العمود، سنبدأ في الدمج من العمود 6، وننتهي عند العمود 32 - وانقر على الزر مرة أخرى "دمج"
  4. فريق "تحرير > لصق" (CTRL+V)أدخل محتويات الخلية المدمجة السابقة في الخلية المدمجة الجديدة
  5. نقوم ببساطة بمسح الخلايا المحررة في الأعمدة 2 - 5 (حددها واضغط على مفتاح الحذف)

يمكنك الآن إدراج صورة بها شعار في المساحة الحرة. للقيام بذلك، حدد العنصر في القائمة ”جدول > صور > صورة...“. ابحث عن الملف الذي يحمل شعارنا على القرص وانقر على " نعم" الآن دعنا ننقل الصورة إلى المساحة الحرة. يجب أن تبدو النتيجة كما في الشكل 3.


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



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



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

كيفية التأكد من الطباعة

لذلك، التخطيط جاهز. لقد حان الوقت للعمل على خوارزمية طباعتها.

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

  1. تحتاج إلى إنشاء الدعائم في المعالجة "رابط الكائن"مع النوع "أني لينك"
  2. تحتاج إلى إنشاء إجراء في وحدة المعالجة "طباعة () تصدير"بدون معلمات وتأكد من تحديد الكلمة الأساسية " يصدّر"

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

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



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



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

انظر الشكل 9، لقد أبرزنا العنوان والسطر الذي تحته. بعد ذلك، قم بنسخه إلى الحافظة. القائمة الرئيسية "تحرير > نسخ" (أو CTRL+C).



لقد حفظنا النص الموجود في الحافظة، والآن دعنا ننتقل إلى المعالجة مرة أخرى "فاتورة ذات علامة تجارية". انقر على الزر "الإجراءات> فتح وحدة الكائن"(الشكل 10).



الصق النص المنسوخ: "تحرير > لصق" (أو CTRL+V).

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

  1. إعادة تسمية الوظيفة إلى "طباعة"
  2. يستبدل "هذا الكائن"على "رابط الكائن"
  3. يستبدل "هذا الكائن"على "رابط الكائن"
  4. يستبدل "الحساب البنكي للمنظمة"على "رابط إلى الحساب البنكي Object.Organization"
  5. يستبدل "المنتجات. ملخص"على "LinkToObject.Products.Total"

لهذه الإجراءات، يمكنك استخدام عنصر القائمة الرئيسية "تحرير > استبدال".

بعد ذلك، يجب عليك التحقق من بناء الجملة. هناك تركيبة سحرية لهذا: CTRL + F7. ونتيجة لذلك، يجب أن تظهر الرسالة التالية: "لم يتم العثور على أخطاء في بناء الجملة!"

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

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

ربط المعالجة الخارجية بالتكوين

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



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



مهم!سيتم تخزين المعالجة نفسها في قاعدة البيانات مع البيانات الأخرى، أي بعد حفظ المعالجة داخل قاعدة البيانات، لن نحتاج إلى ملف خارجي.

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

دعونا نلقي نظرة فاحصة على علامة التبويب الأولى.

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

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



ولكن في مهمتنا ليست هناك حاجة إلى التحديدات.

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

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

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

الآن دعونا نحفظ هذا العنصر. وفتح أي فاتورة.

يجب أن يبدو كما هو موضح في الشكل 14.



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

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

دعونا نفكر في كتابة أبسط نموذج مطبوع فيه 1ث 8.1 - 8.2باستخدام مثال التكوين محاسبة المؤسسات 2.0. لنفترض أنك بحاجة إلى كتابة نموذج مطبوع خارجي للمستند: عرض البيانات الأساسية للمستند، وكذلك من الجزء الجدولي بضائع: التسمية والسعر والكمية والمقدار.

يمكنك تنزيل المثال الناتج من .

في التكوين 1C الشركات 8إنشاء معالجة خارجية ( ملف->جديد->معالجة خارجية)، قم بتعيين الاسم، وإنشاء التفاصيل المطلوبة للنموذج المطبوع الخارجي مرجع الكائنمع النوع DocumentLink مبيعات السلع والخدمات.

إنشاء تخطيط النموذج المطبوع

أضف واحدة جديدة تَخطِيط، اترك نوع التخطيط وثيقة جدول البيانات. نقوم بإنشاء ثلاث مناطق في التخطيط: الرأس، البياناتو قبو. يمكن القيام بذلك عن طريق تحديد العدد المطلوب من الأسطر والنقر على القائمة الجدول->الأسماء->تخصيص الاسم (Ctrl+Shift+N).

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

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

برمجة

دعنا ننتقل إلى وحدة كائن نموذج الطباعة الإجراءات->فتح وحدة الكائن.

لنقم بإنشاء وظيفة تصدير إلزامية للنماذج المطبوعة. ختم().

طباعة الوظيفة () يصدّروظيفة النهاية

في الدالة سنقوم بإنشاء متغير لـ وثيقة جدول البيانات، حيث سيتم إخراج النموذج المطبوع، نحصل عليه تَخطِيطو مناطق التخطيط.

TabDoc = TabularDocument الجديد؛ Layout = GetLayout("Layout" ); HeaderArea = Layout.GetArea("Header" ); AreaData = Layout.GetArea("البيانات" ); AreaFooter = Layout.GetArea("Footer" );

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

HeaderArea.Parameters.HeaderText = +LinkToObject.Number; HeaderArea.Parameters.Organization = LinkToObject.Organization; TabDoc.Output(HeaderArea);

للحصول على صفوف الجدول بضائعنستخدم الطلب.

طلب = طلب جديد؛ Request.SetParameter("Link"، ObjectLink); استعلام.نص = "حدد | مبيعات السلع والسلع الخدمات. | مبيعات السلع والسلع الخدمات. | مبيعات السلع وأسعار الخدمات. | كمية مبيعات السلع والخدمات|من | وثيقة مبيعات السلع والخدمات كيفية بيع السلع والخدمات|أين | رابط مبيعات السلع وبضائع الخدمات = &الرابط";

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

حدد = Query.Run().Select();

التالي في الحلقة نقوم بملء معلمات المنطقة بياناتلكل سطر من عينة المستند وعرضها فيه وثيقة جدول البيانات. نقوم أيضًا بحساب القيم الإجمالية في الحلقة كمياتو كميات. لن نقوم بملء كل معلمة على حدة، ولكننا نستخدم الإجراء املأ قيم الخاصية ((<Приемник>, <Источник>) من السياق العالمي، فهو ينسخ قيم الممتلكات <Источника> إلى الخصائص <Приемника> . تتم المطابقة عن طريق أسماء الخصائص. يمكنك قراءة المزيد عن هذا في مساعد بناء الجملة 1C إنتربرايز 8.

المجموع = 0 ; الكمية الإجمالية = 0 ; while Selection.Next() Loop fillPropertyValues(AreaData.Parameters,Selection); TotalSum = TotalSum + Sample.Sum؛ TotalQuantity = TotalQuantity + Sample.Quantity؛ TabDoc.Output(AreaData); دورة النهاية؛

ملء وعرض المنطقة قبو.

AreaFooter.Parameters.TotalQuantity = TotalQuantity; AreaFooter.Parameters.TotalSum = TotalSum; TabDoc.Output(AreaFooter);

إرجاع مستند جدول البيانات المكتمل من الوظيفة ختم().

إرجاع TabDoc؛

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

5. ربط النموذج المطبوع بالمستند

في التكوينات القياسية 1C 8يوجد دليل لتسجيل النماذج المطبوعة الخارجية المعالجة الخارجية. للاتصال، انتقل إلى القائمة في وضع المؤسسة الخدمة->التقارير والمعالجة الإضافية->نماذج مطبوعة خارجية إضافية.

أضف عنصر دليل جديد، وقم بتحميل النموذج المطبوع من القرص وحدد نوع المستند.

الآن في الوثيقة مبيعات السلع والخدماتستظهر نسخة جديدة قابلة للطباعة.

التسجيل التلقائي للنموذج المطبوع

للتأكد من أنه عند توصيل نموذج الطباعة، لا تحتاج إلى تحديد نوع المستند يدويًا، يمكنك تكوينه التسجيل التلقائي. للقيام بذلك، قم بإضافة تخطيط جديد واستدعاءه الإعدادات_التسجيل التلقائي(هذه هي الطريقة الوحيدة) وفي خليتها الأولى نكتب توثيق.<Наименование документа> (أو الدلائل.<Наименование справочника> ).

الآن، عند توصيل نموذج الطباعة، سيُطلب منا استخدامه معلمات التسجيل التلقائي.

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

تسمى عملية طباعة مستند إلكتروني 1C نموذج الطباعة 1C.

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

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

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

نموذج الطباعة 1C الخارجي هو قالب طباعة يتم تخزينه بشكل منفصل عن التكوين نفسه.

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

كيف تتم طباعة وثيقة 1C

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

يوجد عادةً على يسار زر الطباعة زر وصول سريع إلى آخر نموذج طباعة 1C تم تحديده.

تبدو نتيجة الطباعة هكذا. لطباعتها على الطابعة، تحتاج إلى وضع المؤشر في نموذج الطباعة 1C، أو الضغط على Ctrl+P أو زر الطابعة الموجود على لوحة الأزرار أو في قائمة "ملف/طباعة".

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

من أين يأتي نموذج الطباعة هذا؟

أين يقع النموذج المطبوع 1C؟

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

ومع ذلك، لن يكون ذلك كافيا - عرض علينا اختيار العديد من الخيارات عند الطباعة. الحقيقة هي أن العديد من تخطيطات النماذج المطبوعة 1C مخفية في مكان آخر.

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

بالمناسبة، ليس من الصعب ملاحظة أنك سترى العديد من تخطيطات TORG12 أو الفاتورة. لماذا؟ من السهل أن أشرح. تتغير القوانين والمتطلبات بشكل دوري. لكن لا يمكننا تغيير نفس التخطيط فحسب - وإذا كان علينا طباعة المستند من تاريخ يسبق تاريخ التغيير. ولذلك، يتم عمل العديد من التخطيطات، ويتم استخدام التخطيط الصحيح، اعتمادًا على تاريخ المستند.

ولكن هذا ليس كل شيء! هناك أيضًا تخطيطات خارجية. أين يتم تخزينها؟

دعنا نعود إلى وضع 1C Enterprise. من خلال قائمة المستخدم ذات الحقوق الإدارية، العمليات/الدلائل، حدد دليل المعالجة الخارجية.

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

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

تخطيط النموذج المطبوع 1C

يبدو تخطيط نموذج الطباعة 1C هكذا.

كما ترون، وهي مقسمة إلى كتل. يمكن أن تكون الكتل أفقية (الاسم على اليسار) أو رأسية (الاسم في الأعلى).

التخطيط نفسه، كما هو، لا تتم طباعته. تتم طباعة الكتل الفردية. يحدد المبرمج في إجراء معالجة الطباعة ترتيب الكتل وعدد التكرارات لكل كتلة. والنتيجة هي نموذج مطبوع.

لتعيين منطقة، حدد عدة صفوف (أو عدة أعمدة) وحدد جدول/أسماء/تعيين اسم من القائمة. لإزالته، يوجد أيضًا أمر إزالة الاسم.

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

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

لذلك، تعلمنا اليوم أن النموذج المطبوع 1C يتم تشكيله باستخدام التخطيط. يتكون التخطيط من كتل - تسمى المناطق بذكاء.

الكتل النموذجية (شائعة الاستخدام) لألواح الطباعة:

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

الآن نحن بحاجة للتعامل مع