أجهزة الكمبيوتر شبابيك إنترنت

1s skd إخراج المستندات في هذه الفترة. نقوم بإنشاء تقرير بتردد معين في المستودع

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

لنقم بإنشاء تقرير جديد:

  1. في أداة التهيئة ، حدد عنصر القائمة "ملف" - "جديد" - "تقرير خارجي".
  2. انقر فوق الزر "فتح مخطط تكوين البيانات". في مربع الحوار الذي يفتح ، انقر فوق الزر "إنهاء".
  3. لنقم الآن بإنشاء ، والذي يشير إلى الجدول الافتراضي "سجلات التراكم".
  4. دعنا نضغط انقر على اليمينانقر على العقدة "Datasets" وحدد السطر "Add dataset - Query".
  5. انقر الآن على زر "Query Builder". دعنا نختار سجل التراكم "بقايا البضائع في المستودعات ودورانها" (تكوين USP).
  6. لنفتح مربع حوار "خيارات الجدول الافتراضي" ونشير إلى أنه سيتم استخدام التردد "تلقائي" ، أي أنه سيكون من الممكن تحديد عدة فترات.

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

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

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

وبالتالي ، يجب ترقيم الحقول التي تظهر في طلبنا. لاحظ أن لدينا حقلي فترة - "Registrar" و "PeriodMonth". الحقل الصغير هو "المسجل" يتم تعيينه واحدًا ، والحقل الأكبر هو "PeriodMonth" يتم تعيينه إلى اثنين. سنلقي نظرة فاحصة على المقالة التالية.

لنقم بإعداد تقريرنا:

  1. دعنا ننتقل إلى علامة التبويب "الموارد" ونحدد موارد تقريرنا.
  2. انقر فوق الزر ">>" لتحديد كافة الحقول الخاصة بالموارد.
  3. الآن دعنا ننتقل إلى علامة التبويب "الإعدادات" وننشئ إعدادًا في شكل قائمة.
  4. انقر على زر "مُنشئ إعدادات تكوين البيانات" (زر على شكل عصا سحرية).
  5. نوع التقرير: "قائمة". دعنا نضغط على زر "التالي".
  6. قم بإعداد حقول الإخراج بالنقر فوق الزر ">>". دعونا نرتبها على النحو التالي: "PeriodMonth" ، "Nomenclature" ، "Quality" ، "Registrar".
  7. انقر فوق الزر "التالي" وقم بتكوين التجميع. سيتم تكوين التجميع بالترتيب التالي: "PeriodMonth" ، "Nomenclature" ، "Quality". سيتم عرض مجموعة "المسجل" كسجلات مفصلة.
  8. لنضغط على زر "موافق".

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

ويرتبط هذا الخطأ بخصوصية استلام الأرصدة من قبل المسجل. من أجل عرض هذه الأرصدة بشكل صحيح ، تحتاج إلى إضافة حقل آخر إلى حقول الإخراج للطلب - حقل "مدة الدورة الثانية". لإضافة حقل "PeriodSecond" ، افتح التقرير في Configurator ، انقر فوق الزر "Open data تكوين نظام". انقر الآن على زر "Query Builder" وأضف "PeriodSecond". في هذه الحالة ، سيظل حقل "المسجل" هو الحقل الأول من الفترة ، وسيكون الحقل "PeriodSecond" هو الحقل الثاني ، و "PeriodMonth" سيكون الحقل الثالث.

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

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

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

فيما يلي أحد الدروس حول علامة تبويب تكوين البيانات في الاستعلام:



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

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

هناك طريقة للالتفاف على هذا.

  1. لنقم بإنشاء معلمة جديدة ، نسميها "فترة"
  2. اضبط هذه المعلمة على النوع "فترة قياسية"
  3. في حقل "التعبير" للمعلمات "StartPeriod" و "EndPeriod" المستخدمة في الاستعلام ، قم بتعيين التعبيرات " & فترة. تاريخ البدء "و" & Period.EndDate "على التوالي.

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

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

وقم بإضافتها إلى الجداول الموجودة في علامة التبويب تكوين البيانات.

لكي يتم عرض المعلمات في إعدادات التقرير السريع ، قم بتمكين العلامة المقابلة لمعلمات التقرير.

الآن يبدو اختيار الفترة في نموذج التقرير هكذا.

بعض ميزات تحديد الفترة في ACS.

تتطلب معظم التقارير التي تم تطويرها باستخدام نظام تكوين البيانات (DCS) من المستخدم إدخال الفترة التي سيتم فيها إنشاء التقرير.

كقاعدة عامة ، في ACS ، يتم تنظيم مدخلات الفترة من خلال المعلمات ، باستخدام البناء التالي ، انظر. تعتبر طريقة دخول الفترة هذه "كلاسيكية" ، وقد تم وصفها في مقال عن أنظمة النقل الذكية والأدبيات الأخرى المخصصة للتطوير في 1C ، فلنأخذها كأساس. ضع في اعتبارك ، على سبيل المثال ، استعلامًا بسيطًا يسترد جميع مستندات مبيعات السلع / الخدمات لفترة معينة (انظر الشكل.

عند استخدام هذا التقرير ، يحدد المستخدم الفترة من خلال المعلمات ، انظر. يبدو أن كل شيء صحيح ... ولكن هناك مشكلة صغيرة:

الشيء هو أن الغالبية العظمى من المستخدمين "يفهمون" الفترة بشكل مختلف عن 1C "يفهمونها" ، أمثلة:

من وجهة نظر المستخدم ، لم يتم تعيين الفترة ، أي أنها غير محدودة ، أي أنه يجب تضمين جميع المستندات التي ليس لها حد للتاريخ في التقرير.

"من وجهة نظر" نظام 1C ، يتم تعيين فترة المعلمة و ... كلا حدودها تساوي 01.01.

من وجهة نظر المستخدم ، يجب تضمين جميع المستندات التي تبدأ من تاريخ 28/01/2010 في التقرير.

"من وجهة نظر" 1C الفترة 01/28/2010 - 01/01/0001 سوف تتسبب في استثناء.

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

واحد). لم يتم تعيين StartPeriod و EndPeriod -> كافة المستندات.

2). تم تعيين StartPeriod فقط -> جميع المستندات بدءًا من StartPeriod

3). بالإضافة إلى ذلك ، سوف نتحقق من أن نهاية الفترة> = بداية الفترة ، وإذا لم يكن هذا صحيحًا ، فسنفترض أنه لم يتم تعيين نهاية الفترة ، أي 2).

بناءً على ما سبق ، فإن تعبير معلمة EndDate هو:

WHEN & Period.EndDate = DATETIME (1،1،1)

ومن بعد DATETIME (3999،12،31)

متى والفترة. تاريخ الانتهاء<&Период.ДатаНачала

ومن بعد DATETIME (3999،12،31)التاريخ (3999،12،31،23،59،59)

& فترة. تاريخ الانتهاء

يظهر العرض النهائي لتصميم اختيار الفترة في

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

لذا ، لنبدأ.

من أجل التبسيط ، وفهم المثال ، سنبني على سجل تراكم عكسي بسيط.

في حالتي ، هذا هو سجل التراكم "محاسبة العمل الجاري".

على سبيل المثال ، سنحدد معلماته بشكل صارم (ليس من خلال الفرض الناعم للمعلمات على ACS):

لاحظ أن معدل تكرار الجدول الظاهري هو "تسجيل".

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

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

يُشار إلى الأنواع المتاحة في علامة التبويب "المعلمات":

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

فيما يلي التنسيقات الفعلية:

الشهر: DF = "MMMM yyyy" y. "

اليوم: DF = dd.MM.yyyy

الأسبوع: df = "" أسبوع من "dd.MM.yyyy"

ربع السنة: DF = "to" ربع "yyyy" y. "

السنة: DF = "yyyy" y. "

العقد: DF = "" عقد منذ "dd.MM.yyyy"

نصف عام: DF = "" نصف عام منذ "dd.MM.yyyy"

هذا كل شئ. ونتيجة لذلك لدينا صورة رائعة:

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

الشيء هو أن الغالبية العظمى من المستخدمين "يفهمون" الفترة بشكل مختلف عن 1C "يفهمونها" ، أمثلة:
واحد). انصح تين. 3
من وجهة نظر المستخدم ، لم يتم تعيين الفترة ، أي أنها غير محدودة ، أي أنه يجب تضمين جميع المستندات التي ليس لها حد للتاريخ في التقرير.
"من وجهة نظر" نظام 1C ، يتم تعيين فترة المعلمة و ... كلا حدودها تساوي 01.01.
2). انصح الشكل 4
من وجهة نظر المستخدم ، يجب تضمين جميع المستندات التي تبدأ من تاريخ 28/01/2010 في التقرير.
"من وجهة نظر" 1C الفترة 01/28/2010 - 01/01/0001 سوف تتسبب في استثناء.

بالطبع ، يمكنك أن تحاول أن تشرح للمستخدم سبب عدم عرض التقرير للمستندات التي يتوقع رؤيتها وكيف يتم تقديم الفترة من "وجهة نظر" 1C ، لكن هذه مهمة غير مرغوب فيها وخاطئة. يجب أن يكون البرنامج الجيد ، أولاً وقبل كل شيء ، مناسبًا للمستخدم ، لأن البرنامج موجود للمستخدم ، وليس العكس ، لذلك يجب عليك "تعليم" 1C لفهم الفترة التي يفهمها المستخدم ، وهي:
واحد). لم يتم تعيين StartPeriod و EndPeriod -> كافة المستندات.
2). تم تعيين StartPeriod فقط -> جميع المستندات بدءًا من StartPeriod
3). بالإضافة إلى ذلك ، سوف نتحقق من أن نهاية الفترة> = بداية الفترة ، وإذا لم يكن هذا صحيحًا ، فسنفترض أنه لم يتم تعيين نهاية الفترة ، أي 2).
بناءً على ما سبق ، سيبدو تعبير معلمة EndDate كما يلي:

حدد متى & فترة. EndDate = DATETIME (1،1،1) ثم DATETIME (3999،12،31،23،59،59) آخر حدد متى والفترة.<&Период.ДатаНачала ТОГДА ДАТАВРЕМЯ(3999,12,31,23,59,59) ИНАЧЕ &Период.ДатаОкончания КОНЕЦ КОНЕЦ

يظهر العرض النهائي لتصميم اختيار الفترة في الشكل 5