حساب مجموعة SKD مع التجميع. لغة تعبير نظام تكوين البيانات (1Cv8)

حساب مجموعة SKD مع التجميع.  لغة تعبير نظام تكوين البيانات (1Cv8)
حساب مجموعة SKD مع التجميع. لغة تعبير نظام تكوين البيانات (1Cv8)

قم بالدخول إلى الموقع كطالب

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

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

سيكون الغرض من هذا الدرس هو:

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

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

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

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

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

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

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

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

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

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

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

اتضح مثل هذا:

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

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

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

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

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

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

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

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

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

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

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

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

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

دعونا نلخص محتوى السعرات الحرارية

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

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

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

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

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

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

دعونا نلخص ذلك (المتوسط) من حيث السعرات الحرارية

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

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

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

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

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

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

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

اتضح مثل هذا:

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

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

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

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

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

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

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

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

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

ولمعرفة ماهية هذه الحقول اضغط على العنصر " آلي" يمينزر واختر " يوسع":

عنصر " آلي" موسع في المجالات التالية:

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

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

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

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

1. قم بإعداد طلب في نظام التحكم في الوصول.

2. قم بإعداد الحقول المحسوبة في نظام التحكم في الوصول

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

4. إطلاق 1C إنتربرايز 8.2.14. افتح التقرير. نحن نشكل، نتلقى.

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

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

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

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

بناء الجملة:

حساب التعبير (،)

وصف:

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

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

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

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

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

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

خيارات

يكتب: خط. التعبير المراد تقييمه.

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

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

Sum(Sales.SumTurnover)/حساب("Sum(Sales.SumTurnover)"، "الإجمالي")

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

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

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

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

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

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

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

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

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

· أولاً

· الأخير (الأخير)

· سابق

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

· حاضِر

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

سيتم إرجاع السجل الأول الذي تكون قيمة حقل الترتيب الخاص به أكبر من أو تساوي القيمة المحددة كسجل. على سبيل المثال، إذا تم استخدام حقل الفترة كحقل الطلب، وكان يحتوي على القيم 01/01/2010، 02/01/2010، 03/01/2010، وتريد الحصول عليه LimitingValue(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. التعبير CalculateExpression("Sum(Value)"، الحالي، الحالي)سوف يساوي 50

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

CalculateExpression("Sum(SumTurnover)"، "الأول"، "الحالي")

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

احسب التعبير ("السعر"، "السابق")

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

احسب ExpressionWithGroupArray(,) -

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

احسب ExpressionWithGroupValueTable(,) -

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

معبأ بالقيمة() - تُرجع True إذا كانت القيمة مختلفة عن القيمة من هذا النوعافتراضي، بخلاف NULL، بخلاف المرجع الفارغ، بخلاف غير محدد. يتم التحقق من القيم المنطقية بحثًا عن القيم الخالية. يتم التحقق من السلاسل بحثًا عن عدم وجود أحرف ليست بها مسافات بيضاء

شكل(، ) - تلقي سلسلة منسقة للقيمة التي تم تمريرها. يتم تعيين سلسلة التنسيق وفقًا لسلسلة التنسيق الخاصة بنظام 1C:Enterprise.

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

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

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

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


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

وبناء على ذلك، من الضروري الآن حساب المجاميع للمجموعات المذكورة أعلاه ("المستودعات"، "أنواع المستودعات") والإجمالي الإجمالي.
للقيام بذلك، استخدم الوظيفة حساب ExpressionWithGroupArray:
تقييم التعبير باستخدامGROUPARRAY (EVALEXPRESSIONWITHGROUPARRAY)
بناء الجملة:
تقييم ExpressionWithGroupArray (،)
وصف:
تقوم الدالة بإرجاع مصفوفة، يحتوي كل عنصر منها على نتيجة تقييم تعبير للتجميع حسب الحقل المحدد.
يقوم مؤلف التخطيط، عند إنشاء تخطيط، بتحويل معلمات الوظيفة إلى مصطلحات حقول تخطيط تكوين البيانات. على سبيل المثال، سيتم تحويل حقل الحساب إلى DataSet.Account.
مؤلف التخطيط عند إنشاء تعبيرات للإخراج حقل مخصص، الذي يحتوي تعبيره على الدالة CalculateArrayWithGroupArray() فقط، يقوم بإنشاء تعبير إخراج بطريقة يتم ترتيب معلومات الإخراج بها. على سبيل المثال، بالنسبة لحقل مخصص يحتوي على التعبير:

CalculateExpressionWithGroupArray("المبلغ(AmountTurnover)"، "الطرف المقابل")
سيقوم منشئ التخطيط بإنشاء التعبير التالي للإخراج:

ConnectRows(Array(Order(CalculateExpressionWithGroupingValueTable("View(Sum(DataSet.AmountTurnover)),Sum(DataSet.AmountTurnover)",,"DataSet.Account"),"2")))

خيارات:

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

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

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

النوع: سلسلة. تعبير يصف التحديد المطبق على سجلات المجموعة. على سبيل المثال، المبلغ(AmountTurnover) > &المعلمة1.
مثال:

الحد الأقصى(CalculateExpressionWithGroupArray("Amount(AmountTurnover)", "Counterparty"));

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

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

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

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

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

1. قم بإعداد طلب في نظام التحكم في الوصول.

2. قم بإعداد الحقول المحسوبة في نظام التحكم في الوصول

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

4. إطلاق 1C إنتربرايز 8.2.14. افتح التقرير. نحن نشكل، نتلقى.

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

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

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

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

بناء الجملة:

حساب التعبير (،)

وصف:

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

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

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

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

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

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

خيارات

يكتب: خط. التعبير المراد تقييمه.

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

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

Sum(Sales.SumTurnover)/حساب("Sum(Sales.SumTurnover)"، "الإجمالي")

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

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

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

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

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

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

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

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

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

· أولاً

· الأخير (الأخير)

· سابق

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

· حاضِر

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

سيتم إرجاع السجل الأول الذي تكون قيمة حقل الترتيب الخاص به أكبر من أو تساوي القيمة المحددة كسجل. على سبيل المثال، إذا تم استخدام حقل الفترة كحقل الطلب، وكان يحتوي على القيم 01/01/2010، 02/01/2010، 03/01/2010، وتريد الحصول عليه LimitingValue(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. التعبير CalculateExpression("Sum(Value)"، الحالي، الحالي)سوف يساوي 50

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

CalculateExpression("Sum(SumTurnover)"، "الأول"، "الحالي")

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

احسب التعبير ("السعر"، "السابق")

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

احسب ExpressionWithGroupArray(,) -

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

احسب ExpressionWithGroupValueTable(,) -

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

معبأ بالقيمة() - تُرجع True إذا كانت القيمة غير القيمة الافتراضية لهذا النوع، بخلاف NULL، بخلاف مرجع فارغ، بخلاف غير محدد. يتم التحقق من القيم المنطقية بحثًا عن القيم الخالية. يتم التحقق من السلاسل بحثًا عن عدم وجود أحرف ليست بها مسافات بيضاء

شكل(، ) - تلقي سلسلة منسقة للقيمة التي تم تمريرها. يتم تعيين سلسلة التنسيق وفقًا لسلسلة التنسيق الخاصة بنظام 1C:Enterprise.

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

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

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

لغة التعبير في نظام تكوين البيانات

تم تصميم لغة تعبير نظام تكوين البيانات لكتابة التعبيرات المستخدمة في أجزاء مختلفة من النظام.

يتم استخدام التعبيرات في الأنظمة الفرعية التالية:

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

حرفية

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

  • خط؛
  • رقم؛
  • تاريخ؛
  • منطقية.

خط

تتم كتابة السلسلة الحرفية بأحرف ""، على سبيل المثال:

"سلسلة حرفية"

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

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

""حرفي""في علامتي الاقتباس"""

رقم

يتم كتابة الرقم بدون مسافات، بالتنسيق العشري. يتم فصل الجزء الكسري باستخدام الرمز "." على سبيل المثال:

10.5 200

تاريخ

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

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

DATETIME (1975، 1، 06) - 6 يناير 1975 DATETIME (2006، 12، 2، 23، 56، 57) - 2 ديسمبر 2006، 23 ساعة و 56 دقيقة و 57 ثانية، 23 ساعة و 56 دقيقة و 57 ثانية

منطقية

يمكن كتابة القيم المنطقية باستخدام القيم الحرفية True (True) وFalse (False).

معنى

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

القيمة (نوع الحساب. نشط)

العمليات على الأعداد

أحادي –

تهدف هذه العملية إلى تغيير إشارة الرقم إلى الإشارة المقابلة لها. على سبيل المثال:

كمية المبيعات

الأحادي +

لا تؤدي هذه العملية إلى تنفيذ أية إجراءات على الرقم. على سبيل المثال:

كمية المبيعات

الثنائية -

تهدف هذه العملية إلى حساب الفرق بين رقمين. على سبيل المثال:

المتبقيات والتحويلات.المتبقات الأولية - المتبقيات والتحويلات.المتبقيات النهائيةالمتبقية والتحويلات.المتبقية الأولية - 100 400 - 357

ثنائي +

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

RemainingsAndTurnover.InitialRemaining + RemainingAndTurnover.RemainingsAndTurnover.InitialRemaining + 100 400 + 357

عمل

تم تصميم هذه العملية لحساب منتج رقمين. على سبيل المثال:

التسمية.السعر * 1.2 2 * 3.14

قسم

تم تصميم هذه العملية للحصول على نتيجة قسمة معامل على آخر. على سبيل المثال:

التسمية.السعر / 1.2 2 / 3.14

باقي القسمة

تم تصميم هذه العملية للحصول على الباقي عند قسمة معامل على آخر. على سبيل المثال:

التسميات السعر % 1.2 2 % 3.14

عمليات السلسلة

التسلسل (ثنائي +)

تم تصميم هذه العملية لسلسلة سلسلتين. على سبيل المثال:

Nomenclature.Article + ": "+ Nomenclature.Name

يحب

تتحقق هذه العملية مما إذا كانت السلسلة تطابق النمط الذي تم تمريره.

قيمة عامل التشغيل LIKE تكون TRUE إذا كانت القيمة<Выражения>يرضي النمط، وخطأ خلاف ذلك.

الأحرف التالية في<Строке_шаблона>لها معنى مختلف عن مجرد حرف آخر في السطر:

  • % - النسبة المئوية: تسلسل يحتوي على صفر أو أكثر من الأحرف العشوائية؛
  • _ - الشرطة السفلية: حرف واحد عشوائي؛
  • […] - حرف واحد أو أكثر بين قوسين مربعين: حرف واحد، أي من الأحرف المدرجة داخل القوسين المربعين. قد يحتوي التعداد على نطاقات، على سبيل المثال a-z، مما يعني حرفًا عشوائيًا مدرجًا في النطاق، بما في ذلك نهايات النطاق؛
  • [^...] - بين قوسين مربعين أيقونة النفي متبوعة بحرف واحد أو أكثر: أي حرف باستثناء تلك المدرجة بعد أيقونة النفي؛

أي رمز آخر يعني نفسه ولا يحمل أي حمولة إضافية. إذا كان أحد الأحرف المدرجة يحتاج إلى الكتابة بنفسه، فيجب أن يسبقه<Спецсимвол>، المحدد بعد الكلمة الأساسية SPECIAL CHARACTER (ESCAPE).

على سبيل المثال، القالب

"%ABV[abvg]\_abv%" الحرف الخاص "\"

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

عمليات المقارنة

يساوي

تم تصميم هذه العملية لمقارنة معاملين للمساواة. على سبيل المثال:

Sales.Counterparty = Sales.NomenclatureMainSupplier

غير متساوي

تم تصميم هذه العملية لمقارنة معاملين لعدم المساواة. على سبيل المثال:

المبيعات.الطرف المقابل<>Sales.NomenclatureMainSupplier

أقل

تم تصميم هذه العملية للتأكد من أن المعامل الأول أقل من المعامل الثاني. على سبيل المثال:

SalesCurrent.Amount< ПродажиПрошлые.Сумма

أكثر

تم تصميم هذه العملية للتأكد من أن المعامل الأول أكبر من المعامل الثاني. على سبيل المثال:

مجموع المبيعات الحالي > مجموع المبيعات الماضي

أقل أو متساوية

تم تصميم هذه العملية للتأكد من أن المعامل الأول أقل من أو يساوي المعامل الثاني. على سبيل المثال:

SalesCurrent.Amount<= ПродажиПрошлые.Сумма

أكثر أو يساوي

تم تصميم هذه العملية للتحقق من أن المعامل الأول أكبر من أو يساوي المعامل الثاني. على سبيل المثال:

SalesCurrent.Amount >= SalesPast.Amount

العملية ب

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

العنصر ب (&المنتج1، &المنتج2)

عملية التحقق من وجود قيمة في مجموعة البيانات

تتحقق العملية من وجود قيمة في مجموعة البيانات المحددة. يجب أن تحتوي مجموعة بيانات التحقق من الصحة على حقل واحد. على سبيل المثال:

المبيعات من الطرف المقابل إلى الطرف المقابل

عملية التحقق من قيمة NULL

تُرجع هذه العملية True إذا كانت القيمة NULL. على سبيل المثال:

المبيعات.الطرف المقابل فارغ

عملية التحقق من قيمة عدم المساواة NULL

تُرجع هذه العملية True إذا لم تكن القيمة NULL. على سبيل المثال:

المبيعات. الطرف المقابل ليس فارغًا

العمليات المنطقية

تقبل العمليات المنطقية التعبيرات من النوع Boolean كمعاملات.

العملية لا

تقوم العملية NOT بإرجاع True إذا كان معاملها False وFalse إذا كان معاملها True. على سبيل المثال:

NOT Document.Consignee = Document.Consignor

العملية الأولى

تقوم العملية AND بإرجاع True إذا كان كلا المعاملين صحيحًا، وإرجاع False إذا كان أحد المعاملين خطأ. على سبيل المثال:

Document.Consignee = Document.Consignor AND Document.Consignee = &الطرف المقابل

أو العملية

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

Document.Consignee = Document.Consignor أو Document.Consignee = &الطرف المقابل

وظائف مجمعة

تقوم الوظائف المجمعة بتنفيذ بعض الإجراءات على مجموعة من البيانات.

مجموع

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

المبلغ(المبيعات.مبلغ الدوران)

كمية

تقوم الدالة Count بحساب عدد القيم بخلاف NULL. على سبيل المثال:

الكمية (المبيعات.الطرف المقابل)

عدد مختلف

هذه الدالة تحسب الرقم معان مختلفة. على سبيل المثال:

الكمية (المبيعات المختلفة. الطرف المقابل)

أقصى

تحصل الدالة على القيمة القصوى. على سبيل المثال:

الحد الأقصى (الكمية المتبقية)

الحد الأدنى

تحصل الدالة على الحد الأدنى من القيمة. على سبيل المثال:

الحد الأدنى (الكمية المتبقية)

متوسط

تحصل الدالة على متوسط ​​القيم غير الخالية. على سبيل المثال:

المتوسط ​​(الكمية المتبقية)

عمليات أخرى

عملية التحديد

تهدف عملية التحديد إلى تحديد إحدى القيم المتعددة عند استيفاء شروط معينة. على سبيل المثال:

حدد عند المبلغ > 1000 ثم المبلغ وإلا 0 النهاية

قواعد المقارنة بين قيمتين

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

  • فارغة (الأدنى)؛
  • منطقية؛
  • رقم؛
  • تاريخ؛
  • خط؛
  • أنواع المراجع

يتم تحديد العلاقات بين أنواع المراجع المختلفة بناءً على الأرقام المرجعية للجداول المقابلة لنوع معين.

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

  • بالنسبة للنوع المنطقي، تكون القيمة TRUE أكبر من القيمة FALSE؛
  • يحتوي نوع الرقم على قواعد المقارنة المعتادة للأرقام؛
  • بالنسبة لنوع التاريخ، تكون التواريخ السابقة أقل من التواريخ الأحدث؛
  • بالنسبة لنوع السلسلة - مقارنة السلاسل وفقًا للخصائص الوطنية المحددة لقاعدة البيانات؛
  • تتم مقارنة الأنواع المرجعية بناءً على قيمها (رقم السجل، وما إلى ذلك).

العمل مع القيمة NULL

أي عملية يكون فيها أحد المعاملات NULL سوف تنتج نتيجة NULL.

هناك استثناءات:

  • ستعيد العملية AND القيمة NULL فقط إذا لم يكن أي من المعاملات خطأ؛
  • لن تُرجع العملية OR القيمة NULL إلا إذا لم يكن أي من معاملاتها صحيحًا.

أولويات العملية

العمليات لها الأولويات التالية (السطر الأول له الأولوية الدنيا):

  • ب، لاغية، ليست فارغة؛
  • =, <>, <=, <, >=, >;
  • ثنائي +، ثنائي - ;
  • *, /, %;
  • أحادي +، أحادي -.

وظائف لغة التعبير في نظام تكوين البيانات

احسب

تم تصميم وظيفة الحساب لحساب تعبير في سياق مجموعة معينة. تحتوي الوظيفة على المعلمات التالية:

  • تعبير. اكتب سلسلة. يحتوي على تعبير محسوب؛
  • التجميع. اكتب سلسلة. يحتوي على اسم المجموعة التي سيتم تقييم التعبير في سياقها. إذا تم استخدام سلسلة فارغة كاسم للتجميع، فسيتم إجراء الحساب في سياق التجميع الحالي. إذا تم استخدام سلسلة GrandTotal كاسم للمجموعة، فسيتم إجراء الحساب في سياق الإجمالي الكلي. وبخلاف ذلك، سيتم إجراء الحساب في سياق المجموعة الأصلية التي تحمل نفس الاسم. على سبيل المثال:
Sum(Sales.SumTurnover) / احسب("Sum(Sales.SumTurnover)"، "الإجمالي")

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

مستوى

تم تصميم الوظيفة للحصول على مستوى التسجيل الحالي.

مستوى()

NumberInOrder

احصل على الرقم التسلسلي التالي

رقم حسب الطلب ()

NumberInOrderInGrouping

إرجاع الرقم الترتيبي التالي في المجموعة الحالية.

NumberByOrderInGroup()

شكل

الحصول على سلسلة منسقة للقيمة التي تم تمريرها.

يتم تعيين سلسلة التنسيق وفقًا لسلسلة التنسيق 1C:Enterprise.

خيارات:

  • معنى؛
  • سلسلة التنسيق.

التنسيق(الفواتير.مبلغ المستند، "NPV=2")

بداية الفترة

خيارات:

    • دقيقة؛
    • يوم؛
    • أسبوع؛
    • شهر؛
    • ربع؛
    • عقد؛
    • نصف سنة.

فترة البداية (DateTime(2002, 10, 12, 10, 15, 34), "Month")

نتيجة:

01.10.2002 0:00:00

نهاية الفترة

تم تصميم الوظيفة لاستخراج تاريخ محدد من تاريخ معين.

خيارات:

  • تاريخ. اكتب التاريخ. تاريخ محدد؛
  • نوع الفترة. اكتب سلسلة. يحتوي على إحدى القيم التالية:
    • دقيقة؛
    • يوم؛
    • أسبوع؛
    • شهر؛
    • ربع؛
    • عقد؛
    • نصف سنة.

فترة النهاية(DateTime(2002, 10, 12, 10, 15, 34), "Week")

نتيجة:

13.10.2002 23:59:59

AddToDate

تم تصميم الوظيفة لإضافة قيمة معينة إلى تاريخ.

خيارات:

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

AddToDate(DateTime(2002, 10, 12, 10, 15, 34), "Month", 1)

نتيجة:

12.11.2002 10:15:34

تاريخ الاختلاف

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

خيارات:

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

DATEDIFFERENCE(DATETIME(2002, 10, 12, 10, 15, 34), DATETIME(2002, 10, 14, 9, 18, 06), "DAY")

نتيجة:

سلسلة فرعية

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

خيارات:

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

سلسلة فرعية (عنوان الحسابات، 1، 4)

طول الخط

تم تصميم الوظيفة لتحديد طول السلسلة.

معامل:

  • خط. اكتب سلسلة. سلسلة تم تحديد طولها.

الخط (الأطراف المقابلة. العنوان)

سنة

تم تصميم هذه الوظيفة لاستخراج السنة من قيمة نوع التاريخ.

معامل:

  • تاريخ. اكتب التاريخ. التاريخ الذي يتم فيه تحديد السنة.

السنة (تاريخ النفقة)

ربع

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

معامل

  • تاريخ. اكتب التاريخ. التاريخ الذي يتم فيه تحديد الربع
الربع (تاريخ النفقة)

شهر

تم تصميم هذه الوظيفة لاستخراج رقم الشهر من قيمة نوع التاريخ. يتراوح رقم الشهر عادة من 1 إلى 12.

  • تاريخ. اكتب التاريخ. التاريخ الذي يتم فيه تحديد الشهر.
الشهر (تاريخ النفقة)

يوم من السنة

تم تصميم هذه الوظيفة للحصول على يوم السنة من قيمة نوع التاريخ. يتراوح يوم السنة عادة من 1 إلى 365 (366).

  • تاريخ. اكتب التاريخ. التاريخ الذي يتم فيه تحديد يوم من السنة.
DAYYEAR(ExpenseAccount.Date)

يوم

تم تصميم هذه الوظيفة للحصول على يوم الشهر من قيمة نوع التاريخ. يتراوح يوم الشهر عادة من 1 إلى 31.

  • تاريخ. اكتب التاريخ. التاريخ الذي يتم فيه تحديد يوم الشهر.
DAY(تاريخ النفقة)

أسبوع

تم تصميم هذه الوظيفة للحصول على رقم الأسبوع في السنة من قيمة نوع التاريخ. يتم ترقيم أسابيع السنة ابتداءً من الرقم 1.

  • تاريخ. اكتب التاريخ. التاريخ الذي يتم فيه تحديد أرقام الأسابيع.
أسبوع (تاريخ النفقة)

يوم الأسبوع

تم تصميم هذه الوظيفة للحصول على يوم الأسبوع من قيمة نوع التاريخ. يتراوح اليوم الطبيعي في الأسبوع من 1 (الاثنين) إلى 7 (الأحد).

  • تاريخ. اكتب التاريخ. التاريخ الذي يتم فيه تحديد يوم الأسبوع.
يوم الأسبوع (تاريخ النفقة)

ساعة

تم تصميم هذه الوظيفة للحصول على الساعة من اليوم من قيمة نوع التاريخ. وتتراوح ساعة اليوم من 0 إلى 23.

  • تاريخ. اكتب التاريخ. التاريخ الذي يتم من خلاله تحديد الساعة من اليوم.
الساعة (تاريخ النفقة)

دقيقة

تم تصميم هذه الوظيفة للحصول على دقيقة الساعة من قيمة نوع التاريخ. وتتراوح دقائق الساعة من 0 إلى 59.

  • تاريخ. اكتب التاريخ. التاريخ الذي يتم من خلاله تحديد دقيقة الساعة.
دقيقة (تاريخ النفقة)

ثانية

تم تصميم هذه الوظيفة للحصول على ثانية الدقيقة من قيمة نوع التاريخ. تتراوح الثانية من الدقيقة من 0 إلى 59.

  • تاريخ. اكتب التاريخ. التاريخ الذي يتم من خلاله تحديد ثواني الدقيقة.
الثاني (تاريخ النفقة)

يعبر

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

خيارات:

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

صريحة (Data.Props1، "الرقم (10،3)")

باطل

ترجع هذه الدالة قيمة المعلمة الثانية إذا كانت قيمة المعلمة الأولى فارغة.

وإلا، سيتم إرجاع قيمة المعلمة الأولى.

نعمNULL(المبلغ(المبيعات.مبلغ الدوران)، 0)

وظائف الوحدات المشتركة

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

في هذا المثال، سيتم استدعاء الدالة "AbbreviatedName" من وحدة التكوين العامة.

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

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