1s ckd محسوبة حقول الوظائف. وظائف لغة التعبير لنظام تكوين البيانات. عرض بيانات القسم المجدول في سطر واحد

في ضوء الإصدار القادم من 8.2.14 ، سأحاول وصف بعض الوظائف الجديدة لنظام تكوين البيانات.

افتح مخطط تكوين البيانات ، ويفضل أن يكون ذلك في تقرير خارجي ، لتسهيل التحرير.

نضيف مجموعة بيانات من نوع الاستعلام ونكتب استعلامًا بسيطًا ، إما يدويًا أو باستخدام مُنشئ الاستعلام:

1. قم بإعداد طلب في ACS.

2. تكوين الحقول المحسوبة في ACS

3. قم بتنفيذ إعداد تكوين البيانات في علامة تبويب الإعدادات

4. إطلاق 1C Enterprise 8.2.14. نفتح التقرير. نحن نشكل ونحصل.

وصف الوظائف الجديدة نفسها:

1. التاريخ الحالي ()

إرجاع تاريخ النظام. عندما يكون تخطيط التخطيط مرتبطًا ، في كل التعبيرات الموجودة في التخطيط ، يتم استبدال وظيفة CurrentDate () بقيمة التاريخ الحالي.

2. احسب التعبير ()

بناء الجملة:

تقييم التعبير (،)

وصف:

تم تصميم الوظيفة لتقييم تعبير في سياق بعض المجموعات.

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

لا يمكن تطبيق الوظيفة على مجموعة في اختيار المجموعة لهذه المجموعة. على سبيل المثال ، في تحديد التسمية المجمعة ، لا يمكنك استخدام التعبير CalculateExpression ("Sum (SumTurnover)"، "TotalTotal")> 1000... ولكن يمكن استخدام مثل هذا التعبير في الاختيار الهرمي.

إذا كان سجل النهاية يسبق سجل البدء ، فيُعتبر أنه لا توجد سجلات لحساب البيانات التفصيلية وحساب الوظائف التجميعية.

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

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

المعلمات

نوع: خط... التعبير المطلوب تقييمه.

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

على سبيل المثال:

المبلغ (المبيعات. المبلغ المردود) / حساب ("المبلغ (المبيعات. حجم المبيعات)" ، "إجمالي إجمالي")

في هذا المثالالنتيجة هي نسبة المجموع على الحقل المبيعاتتجميع السجلات إلى مجموع نفس الحقل في التخطيط بأكمله ؛

نوع: خط... يمكن أن تأخذ المعلمة القيم التالية:

· النتيجة الإجمالية- سيتم تقييم التعبير لجميع سجلات التجميع.

· التسلسل الهرمي- سيتم تقييم التعبير للسجل الهرمي الأصل ، إذا كان هناك واحد ، وللمجموعة بأكملها ، إذا لم يكن هناك سجل هرمي أصل.

· التجمع- سيتم تقييم التعبير لسجل المجموعة الحالي للتجميع.

· تجميع غير الموارد- عند حساب دالة لسجل مجموعة حسب الموارد ، سيتم حساب التعبير لأول سجل مجموعة للتجميع الأصلي.

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

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

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

· أولا

· آخر

· سابق

· التالي التالي)

· تيار

· تحديد القيمة(قيمة الحدود) تحديد القيمة

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

· أولا... تحتاج إلى الحصول على أول سجل تجميع. بعد الكلمة الموجودة بين قوسين ، يمكنك تحديد تعبير ، سيتم استخدام نتيجته كإزاحة من بداية التجميع. يجب أن تكون القيمة الناتجة عددًا صحيحًا أكبر من الصفر. على سبيل المثال ، الأول (3) - الحصول على السجل الثالث من بداية التجميع.

إذا كان السجل الأول خارج حدود التجميع ، فيُعتبر أنه لا توجد سجلات. على سبيل المثال ، إذا كان هناك 3 سجلات ، وتريد الحصول على الأول (4) ، فيُعتبر أنه لا توجد سجلات.

· آخر... تحتاج إلى الحصول على أحدث سجل تجميع. يمكن تحديد تعبير بعد الكلمة بين قوسين ، وسيتم استخدام نتيجة ذلك كإزاحة من نهاية التجميع. يجب أن تكون القيمة الناتجة عددًا صحيحًا أكبر من الصفر. على سبيل المثال ، Last (3) - الحصول على السجل الثالث من نهاية التجميع.

إذا كان السجل الأخير خارج حدود التجميع ، فيُعتبر أنه لا توجد سجلات. على سبيل المثال ، إذا كان هناك 3 سجلات ، وتريد الحصول على آخر (4) ، فيُعتبر أنه لا توجد سجلات.

· سابق... تحتاج إلى الحصول على سجل التجميع السابق. يمكن تحديد تعبير بعد الكلمة الموجودة بين قوسين ، وسيتم استخدام نتيجة ذلك كإزاحة من سجل التجميع الحالي. على سبيل المثال ، السابق (2) - احصل على السابق من السجل السابق.

إذا تجاوز السجل السابق التجميع (على سبيل المثال ، بالنسبة لسجل التجميع الثاني ، تحتاج إلى الحصول على السابق (3) ، فسيتم الحصول على أول سجل تجميع.

عند استرداد السجل السابق لإجمالي التجميع ، يعتبر السجل الأول قد تم الحصول عليه.

· التالي التالي)... تحتاج إلى الحصول على سجل التجميع التالي. يمكن تحديد تعبير بعد الكلمة الموجودة بين قوسين ، وسيتم استخدام نتيجة ذلك كإزاحة للأمام من سجل التجميع الحالي. على سبيل المثال ، التالي (2) - احصل على التالي من السجل التالي.

إذا خرج السجل التالي من التجميع ، فيُعتبر أنه لا توجد سجلات. على سبيل المثال ، إذا كان هناك 3 سجلات وتم استلام التالي () للسجل الثالث ، فلا توجد سجلات.

عند استلام السجل التالي لإجمالي التجميع ، يعتبر أنه لا يوجد سجل.

· تيار... تحتاج إلى الحصول على السجل الحالي.

عند استرداد إجمالي التجميع ، يتم الحصول على أول سجل.

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

كسجل ، سيتم الحصول على السجل الأول ، وتكون قيمة حقل الطلب أكبر من أو تساوي القيمة المحددة. على سبيل المثال ، إذا تم استخدام حقل الفترة كحقل ترتيب ، وكان يحتوي على القيم 01/01/2010 ، 01/02/2010 ، 01/03/2010 ، وتريد الحصول على القيمة المقيدة (DateTime (2010، 1، 15))، بعد ذلك سوف تتلقى سجل بتاريخ 02/01/2010.

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

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

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

· بشكل منفصليشير إلى أنه يتم استخدام تسلسل من السجلات المطلوبة لتحديد السجلات السابقة والتالية. القيمة الافتراضية.

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

على سبيل المثال ، إذا تم ترتيب التسلسل الناتج حسب التاريخ:

تاريخ الاسم بالكامل قيمة
1 01 يناير 2001

إيفانوف م.

10
2 02 يناير 2001 بيتروف س. 20
3 03 يناير 2001 سيدوروف ر. 30
4 04 يناير 2001 بيتروف س. 40

بشكل منفصلومن بعد:

الإدخال السابق في الإدخال 3 سيكون الإدخال 2.

التيار الحالي(على التوالي ، المعلمات بدايةو النهاية) ، ثم بالنسبة للسجل 2 ، سيتكون هذا الجزء من سجل واحد 2. سيكون التعبير مساويًا لـ 20.

إذا كانت قيمة المعلمة هي سوياومن بعد:

الإدخال السابق في الإدخال 3 سيكون الإدخال 1.

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

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

حساب التعبير ("Sum (SumTurnover)"، "First"، "Current")

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

تقييم التعبير (دورة سابقة)

قائمة الجديدالمهام:

تقييم ExpressionGrouped Array(,) -

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

تقييم ExpressionGroupedValuesTable(,) -

ترجع الدالة جدولاً للقيم ، يحتوي كل صف على نتيجة تقييم التعبيرات للتجميع حسب الحقل المحدد

القيمة() - إرجاع True إذا كانت القيمة مختلفة عن القيمة من هذا النوعبشكل افتراضي ، non-NULL ، non-null ، non-undefined. بالنسبة للقيم المنطقية ، يتم إجراء فحص لـ قيمة فارغة... بالنسبة للسلاسل ، يتم إجراء فحص لعدم وجود أحرف غير مسافات بيضاء

صيغة(،) - احصل على السلسلة المنسقة للقيمة التي تم تمريرها. يتم تعيين سلسلة التنسيق وفقًا لـ سلسلة التنسيقأنظمة "1C: Enterprise".

سلسلة فرعية(،،) - تم تصميم هذه الوظيفة لاستخراج سلسلة فرعية من سلسلة.

طول الخط() - الوظيفة مصممة لتحديد طول السلسلة. المعلمة هي تعبير من نوع السلسلة

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

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


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

وفقًا لذلك ، من الضروري الآن حساب الإجماليات للمجموعات المذكورة أعلاه ("المستودعات" ، "أنواع المستودعات") والإجمالي الكلي.
للقيام بذلك ، استخدم الوظيفة مجموعة التعبير عن مجموعة EvaluateGroup:
احسب التعبير عن طريق مجموعة ARRAY (EVALEXPRESSIONWITHGROUPARRAY)
بناء الجملة:
مجموعة EvaluateGroupExpression (،)
وصف:
تقوم الدالة بإرجاع مصفوفة ، يحتوي كل عنصر منها على نتيجة تقييم التعبير الذي سيتم تجميعه حسب الحقل المحدد.
يقوم مؤلف التخطيط ، عند إنشاء التخطيط ، بتحويل معلمات الوظيفة إلى شروط حقول تخطيط تكوين البيانات. على سبيل المثال ، سيتم تحويل حقل الحساب إلى Dataset.Contractor.
عند إنشاء تعبيرات لعرض حقل مخصص ، يحتوي تعبيره على الوظيفة EvaluateArrayWithGroupArray () فقط ، يقوم مؤلف التخطيط بإنشاء التعبير المعروض بحيث يتم ترتيب المعلومات المعروضة. على سبيل المثال ، بالنسبة لحقل مخصص به تعبير:

CalculateExpressionWithGroupArray ("Sum (SumTurnover)" ، "الطرف المقابل")
سينشئ مؤلف التخطيط التعبير التالي للإخراج:

ربط الصفوف (Array (Arrange (EvaluateExpressionWith GroupingValuesTable ("View (Sum (Dataset.SumTurnover)) ، Sum (Dataset.SumTurnover)" ، "Dataset.Contractor") ، "2")))

المعلمات:

النوع: سلسلة. التعبير المطلوب تقييمه. سلسلة ، على سبيل المثال ، المبلغ (AmountTurnover).

النوع: سلسلة. تجميع تعبيرات الحقول هو تجميع تعبيرات الحقول ، مفصولة بفاصلات. على سبيل المثال ، الطرف المقابل ، الحزب.

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

النوع: سلسلة. تعبير يصف التصفية المطبقة على سجلات المجموعة. على سبيل المثال ، Sum (SumTurnover)> & Parameter1.
مثال:

الحد الأقصى (حساب ExpressionWithGroupArray ("Sum (SumTurnover)" ، "الطرف المقابل")) ؛

يمكن العثور على وصف تفصيلي لبناء جملة الوظيفة على http://its.1c.ru/db/v837doc#bookmark:dev:TI000000582
الآن من أجل الحساب ، سنكرر حقل "الترتيب" بقيم مختلفة "احسب حسب ..." ، باستخدام التعبيرات التالية ، لاحظ أنه في كل مستوى أعلى ، تكون قيم المستويات الموجودة أسفل المجموعات تستخدم.

نتيجة لذلك ، حصلنا على البناء التالي:

سجل الدخول كطالب

سجل الدخول كطالب للوصول إلى المواد المدرسية

نظام تكوين البيانات 1C 8.3 للمبتدئين: ضع في اعتبارك النتائج (الموارد)

سيكون الغرض من هذا البرنامج التعليمي هو:

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

إنشاء تقرير جديد

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

نوع الوثيقة - تقرير خارجي:

في شكل إعداد التقرير ، اكتب الاسم " الدرس 3"واضغط على الزر" فتح مخطط تكوين البيانات":

اترك اسم المخطط الافتراضي وانقر على " منجز":

إضافة طلب من خلال المنشئ

على ال " مجموعة البيانات"يدفع لون أخضرعلامة الجمع وحدد العنصر " إضافة مجموعة البيانات - الاستعلام":

بدلاً من كتابة نص الطلب يدويًا ، نقوم بتشغيله مرة أخرى منشئ الاستعلام:

على ال " الجداول"اسحب الطاولة" طعام"من العمود الأول إلى الثاني:

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

اتضح مثل هذا:

اضغط الزر " نعم"- تم إنشاء نص الطلب تلقائيًا:

نحن نشكل الإعدادات لعرض التقرير

انتقل إلى الإشارة المرجعية " إعدادات"وانقر فوق عصا سحرية، للإتصال منشئ الإعدادات:

اختيار نوع التقرير " قائمة... "واضغط على الزر" إضافه على":

اسحب من العمود الأيسر إلى الحقول اليمنى التي سيتم عرضها في القائمة وانقر على " إضافه على":

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

وهنا نتيجة عمل المنشئ. التسلسل الهرمي لتقريرنا:

  • التقرير ككل
  • تجميع "اللون"
  • سجلات مفصلة - سطور بأسماء الطعام

احفظ التقرير (زر قرص مرن) و بدون إغلاقمن المكوّن ، سنفتحه على الفور في وضع المستخدم. اتضح مثل هذا:

تغيير ترتيب الأعمدة

لكن دعنا تغيير ترتيبأعمدة (سهم لأعلى ولأسفل) بحيث تبدو مثل الصورة أدناه:

لنحفظ التقرير ونعيد فتحه في وضع المستخدم:

عظيم ، أفضل بكثير.

تلخيص (الكمية) حسب محتوى السعرات الحرارية

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

لهذا هناك آلية لحساب الموارد.

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

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

نقوم بحفظ وإنشاء تقرير:

لدينا الآن مجاميع لكل مجموعة وللتقرير ككل.

تلخيص (متوسط) من خلال محتوى السعرات الحرارية

الآن دعنا نجعلها بحيث يتم عرض عمود آخر معدلمحتوى السعرات الحرارية للمنتجات حسب المجموعات وبشكل عام حسب التقرير.

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

لإنشاء مثل هذا الحقل "الافتراضي" ، سنستخدم الآلية الحقول المحسوبة.

انتقل إلى الإشارة المرجعية " الحقول المحسوبة"وانقر لون أخضرعلامة زائد:

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

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

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

اتضح مثل هذا:

نقوم بحفظ وإنشاء تقرير:

ظهر الحقل ونرى أن قيمه هي قيم حقل "محتوى السعرات الحرارية". ممتاز!

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

علاوة على ذلك ، في العمود " تعبير"إختر" متوسط ​​(متوسط ​​السعرات الحرارية)":

نقوم بحفظ وإنشاء تقرير:

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

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

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

جزء " تلقاءي"ليس حقلاً واحدًا. هذه عدة حقول يتم الحصول عليها هنا تلقائيًا بناءً على الإعدادات الأعلى.

لمعرفة ما هي هذه الحقول - انقر فوق " تلقاءي" حقزر وحدد العنصر " وسعت":

جزء " تلقاءي"الموسعة في المجالات التالية:

وهنا مجالنا " متوسط ​​محتوى السعرات الحرارية"التي وصلت إلى هنا من النقطة" تقرير"عندما جرناه إلى هناك. اخلعمربع الاختيار بجوار هذا الحقل لإزالة مخرجاته.

يسمح لك الاستخدام الكفء لنظام تكوين البيانات (ACS) بما يلي:

  • تقليل الوقت اللازم لإعداد التقرير بشكل كبير ؛
  • تخلص من الحاجة للإنشاء شكل مدارمعالج.
  • الحصول على نتيجة جميلة في الإخراج مع القدرة التخصيص الإضافيالمستعمل.

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

ما هو الحقل المحسوب

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

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

تسمح لك الحقول المحسوبة بتنفيذ إجراءات معينة باستخدام مجموعة البيانات المُنشأة:

  • إخراج مجموعة من البيانات التي يتلقاها الاستعلام إلى خلية معينة عن طريق ربط عدة أسطر في سطر واحد ؛
  • الوصول إلى وظائف التصدير وحدة مشتركة;
  • نفذ العديد من التعبيرات المتاحة للغة التخطيط واستخدم وظائف EvaluateExpression الخاصة.

دعنا نتبع هذه القائمة ونذهب.

صفيف قيم في خليه واحده

دعنا نحاكي موقفًا عندما يكون من الضروري الحصول على جميع أرقام الإيصالات للطرف المقابل في خلية منفصلة:


وبالتالي ، قمنا بإنشاء حقل محسوب إضافي في مخططنا ؛


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

بضع كلمات عن الأخير. بالإضافة إلى المعلمة الأولى التي تشير إلى معرف المصفوفة أو القيم أو القيم ، يمكن تعيين معلمتين أخريين فيها:

  1. فاصل العنصر - يشير إلى الحرف الذي سيفصل عنصرًا واحدًا من المصفوفة أو صفًا واحدًا من جدول القيم عن الآخر (في حالتنا ، قمنا بحذف هذه المعلمة وتم تعيين فاصل سطر افتراضيًا) ؛
  2. Column Separator هو حرف يستخدم لفصل أعمدة جدول القيم (يتم استخدام الفاصلة المنقوطة بشكل افتراضي).

الوصول إلى وظائف التصدير لوحدة نمطية مشتركة

يمكن أن تعمل وظائف الوحدة النمطية المشتركة كمصدر بيانات لملء حقل محسوب.

بعض نقاط مهمة:

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

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


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

ربط تعبيرات اللغة

في كثير من الأحيان في عمل المطور ، تنشأ حالة عندما يكون من الضروري عرض نتيجة الانقسام في مجال ACS:

  1. احسب متوسط ​​تكلفة العنصر ؛
  2. جميع أنواع المصالح ؛
  3. حسابات متوسط ​​الدخل ، إلخ.

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

يمكن القيام بذلك باستخدام البناء "الاختيار متى .... ثم ... وإلا ... نهاية".

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

على سبيل المثال ، يمكنك الحصول على مبلغ المستند من السطر السابق لاستعلامنا عن طريق تحديد قيمة حساب التعبير ("مقدار المستند" ، "المجموع السابق") في حقل "التعبير".

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

  1. المجموع التراكمي في التجمع ؛
  2. المجموع الجاري في الجدول الترافقي ؛
  3. الحصول على القيمة السابقة
  4. إخراج الجسيمات في سطر واحد.

1. الحصول على المؤشر على أساس تراكمي

دعنا نحصل على عدد المنتجات على أساس تراكمي على مستوى التجميع. للقيام بذلك ، نقوم بإنشاء حقل محسوب (انظر الشكل 1).
في علامة التبويب "الموارد" ، عيّن الوظيفة للحقل المحسوب:
حساب التعبير ("Sum (AmountTurnover)"، "First"، "Current")
والتي ستلخص عدد المنتجات من السجل الأول إلى السجل الحالي (انظر الشكل 2).

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

2. الحصول على قيمة المؤشر من السطر السابق

دعنا نحصل على سعر العملة للتاريخ والتاريخ السابق. للقيام بذلك ، قم بإنشاء حقل محسوب واكتب التعبير التالي في حقل التعبير (انظر الشكل 5):
CalculateExpression (دورة ، سابق ، سابق)
والتي ستأخذ القيمة السابقة لسعر العملة لـ الخط الحالي، المعلمة الأخيرة للوظيفة تقيد استرداد البيانات.
نظرًا لأننا نعمل على مستوى السجلات التفصيلية ، انتقل مباشرة إلى علامة التبويب "الإعدادات" وقم بإنشاء تجميع - سجلات مفصلة.

3. الحصول على مؤشر على المجموع التراكمي في علامة تبويب متقاطعة

دعنا نحصل على عدد السلع على أساس تراكمي في سياق الفترة. للقيام بذلك ، نقوم بإنشاء حقل محسوب (انظر الشكل 1). في علامة التبويب "الموارد" ، بالنسبة للحقل المحسوب ، سنحدد التعبير التالي (انظر الشكل 6):
حساب التعبير ("Sum (NumberTurnover)" ، "الفترة" ، "الأول" ، "الحالي")
والتي ، على مستوى التجميع ، ستحسب كمية البضائع في الفاصل الزمني من السطر الأول إلى السطر الحالي في سياق الفترة لكل عنصر.
في علامة التبويب "الإعدادات" ، أنشئ جدولاً مُجمَّعًا حسب العنصر في صف ومُجمَّعًا حسب الفترة في عمود (انظر الشكل 7).

4. إخراج بيانات القسم المجدول في سطر واحد

تمت مناقشة طرق عرض بيانات القسم المجدول في سطر واحد ، بما في ذلك الطريقة باستخدام وظيفة EvaluateExpression ، في المقالة