آرایه توابع جمع 1s skd. SKD. نمایش اطلاعات جدولی در یک سلول ایجاد گزارش جدید

در این یادداشت کوتاه، می‌خواهم نشان دهم که چگونه می‌توانید با استفاده از سیستم ترکیب داده، مقادیر را در سطوح مختلف گروه‌بندی در یک گزارش جمع‌بندی کنید.
همانطور که در تصویر نشان داده شده است، تنها در سطح گروه بندی "گروه های آیتم"، منبع "سفارش" محاسبه می شود، نشان می دهد که بر اساس شرایط خاص چقدر باید برای گروه مورد فعلی سفارش دهید:


این مقدار فقط برای آن قابل محاسبه است سطح داده شدهگروه بندی زیرا، در بالا یا پایین، هیچ مقداری برای محاسبه وجود ندارد. به عنوان مثال، در سطح سوابق دقیق، هیچ داده ای در مورد حداکثر تعداد در یک گروه وجود ندارد، زیرا این داده ها فقط برای گروه به عنوان یک کل صادق است و نه برای اجزای جداگانه آن.

بر این اساس، اکنون باید مجموع گروه‌های بالاتر ("انبارها"، "انواع انبار") و کل محاسبه شود.
برای این کار از تابع استفاده می شود محاسبه عبارت با آرایه گروهی:
ارزیابی بیان گروه بندی آرایه (EVALEXPRESSIONWITHGROUPARRAY)
نحو:
ComputeExpressionGroupedArray(,)
شرح:
تابع آرایه ای را برمی گرداند که هر عنصر آن حاوی نتیجه ارزیابی عبارت برای گروه بندی بر اساس فیلد مشخص شده است.
سازنده layout، هنگام تولید یک طرح، پارامترهای تابع را به فیلدهای طرح بندی داده ها تبدیل می کند. به عنوان مثال، قسمت Account به Dataset تبدیل می شود.
سازنده layout، هنگام تولید عباراتی برای نمایش یک فیلد سفارشی که عبارت آن فقط حاوی تابع ()CalculateArrayWithGroupArray است، عبارت خروجی را به گونه‌ای تولید می‌کند که اطلاعات خروجی مرتب شوند. به عنوان مثال، برای یک فیلد سفارشی با عبارت:

محاسبه ExpressionWith GroupingArray ("Amount(AmountTurnover)"، "Counterparty")
سازنده layout عبارت زیر را برای خروجی ایجاد می کند:

ConcatenateStrings(Array(Order(CalculateGroup ExpressionValueTable("View(Amount(DataSet.AmountTurnover))، Amount(DataSet.AmountTurnover)"،"DataSet.Counterparty")،"2")))

گزینه ها:

نوع: رشته عبارتی که باید ارزیابی شود. یک رشته، به عنوان مثال، Amount (AmountTurnover).

نوع: رشته گروه بندی عبارات فیلد - گروه بندی عبارات فیلد که با کاما از هم جدا شده اند. به عنوان مثال، پیمانکار، طرف.

نوع: رشته عبارتی که فیلتر اعمال شده بر روی رکوردهای جزئیات را توصیف می کند. توابع جمع در یک عبارت پشتیبانی نمی شوند. به عنوان مثال، DeletionMark = False.

نوع: رشته عبارتی که فیلتر اعمال شده روی رکوردهای گروه را توصیف می کند. برای مثال، Amount(AmountTurnover) > &Parameter1.
مثال:

حداکثر(محاسبه ExpressionWith GroupingArray("Amount(AmountTurnover)"، "Counterparty"));

شرح مفصلی از نحو تابع را می توان در http://its.1c.ru/db/v837doc#bookmark:dev:TI000000582 یافت.
حال برای محاسبه، فیلد «Order» را با مقادیر مختلف «Calculate by ...» با استفاده از عبارات زیر کپی می کنیم، توجه داشته باشید که در هر سطح بالاتر، مقادیر سطوح پایین تر گروه بندی استفاده می شود.

در نتیجه، ساختار زیر را دریافت می کنیم:

استفاده صحیح از طرح ترکیب داده ها (SKD) به شما امکان می دهد:

  • به طور قابل توجهی زمان مورد نیاز برای تهیه گزارش را کاهش دهید.
  • از بین بردن نیاز به ایجاد فرم مدیریت شدهکنترل کننده؛
  • یک نتیجه زیبا با امکان سفارشی سازی اضافی توسط کاربر دریافت کنید.

اما همه توسعه دهندگان از قابلیت های این طرح حداکثر استفاده نمی کنند، زیرا همه تنظیمات آن واضح و شهودی نیستند. به ویژه، بسیاری از مردم می دانند که فیلدهای محاسبه شده در 1C در ACS وجود دارد، با این حال، آنها به طور کامل منطقه استفاده و روش کار با آنها را درک نمی کنند.

فیلد محاسبه شده چیست

در بیشتر موارد، منبع داده در طرح طرح یک پرس و جو است. در اصل، فرمول‌ها، ساختارها و عبارات مختلفی را می‌توان در داخل خود پرس و جو استفاده کرد. ناشی می شود سوال مشروعچرا به عملکرد تکراری نیاز داریم؟

واقعیت این است که ACS چیزی بیش از نمایش نتیجه یک پرس و جو است و این به وضوح از فرم ایجاد یک طرحواره قابل مشاهده است (شکل 1).

فیلدهای محاسبه شده به شما این امکان را می دهد که اقدامات خاصی را با مجموعه داده های تولید شده انجام دهید:

  • در یک سلول خاص آرایه ای از داده های دریافت شده توسط درخواست را نمایش می دهد و چندین خط را در یک خط ترکیب می کند.
  • دسترسی به توابع صادرات یک ماژول مشترک.
  • عبارات مختلفی را که برای زبان پیوند موجود است اجرا کنید و از توابع ویژه Evalue Expression استفاده کنید.

بیایید این لیست را مرور کنیم.

آرایه ای از مقادیر در یک سلول

بیایید وضعیتی را شبیه سازی کنیم که در آن لازم است تمام تعداد اسناد رسید برای یک طرف مقابل در یک سلول جداگانه دریافت شود:


بنابراین، ما یک فیلد محاسبه اضافی در طرح خود ایجاد کرده ایم.


همانطور که از مثال بالا می بینید، هیچ مشکلی در افزودن و پردازش فیلدهای محاسبه شده وجود ندارد. ما از دو تابع Array() و ConnectStrings().

چند کلمه در مورد دومی. علاوه بر پارامتر اول که به شناسه آرایه، مقادیر یا مقدار اشاره می کند، دو پارامتر دیگر را می توان در آن تنظیم کرد:

  1. جداکننده عناصر - نشان می دهد که کدام کاراکتر یک عنصر از آرایه یا یک ردیف از جدول مقادیر را از دیگری جدا می کند (در مورد ما، ما این پارامتر را حذف کردیم و خط شکست به طور پیش فرض اختصاص داده شد).
  2. Column Separator - کاراکتری که برای جدا کردن ستون‌های جدول مقادیر استفاده می‌شود (به طور پیش‌فرض از نقطه ویرگول استفاده می‌شود).

فراخوانی توابع صادرات یک ماژول مشترک

توابع یک ماژول مشترک می تواند به عنوان منبع داده برای پر کردن یک فیلد محاسبه شده باشد.

چند نکته مهم:

  • تابع باید قابل صادرات باشد.
  • اگر تابع در یک ماژول مشترک با مجموعه پرچم "Global" قرار داشته باشد، مستقیماً با نام فراخوانی می شود، در غیر این صورت تابع باید طبق طرح "نام ماژول مشترک" فراخوانی شود. "نام تابعی که باید فراخوانی شود".

به عنوان مثال استفاده، ما همان درخواست را برای اسناد دریافت دریافت می کنیم و آن را در یک ستون جداگانه نمایش می دهیم. ما خود پرس و جو را توصیف نمی کنیم، مستقیماً به فیلدهای محاسبه شده می رویم:


بنابراین، ما می بینیم که تقریباً هر کنترل کننده داده را می توان از ACS مقداردهی اولیه کرد، که تا حد زیادی امکان استفاده از این طرح را گسترش می دهد.

پیوند عبارات زبان

اغلب در کار یک توسعه دهنده، موقعیتی ایجاد می شود که لازم است نتیجه تقسیم در زمینه ACS نمایش داده شود:

  1. محاسبه میانگین هزینه کالا؛
  2. همه نوع علاقه؛
  3. محاسبات میانگین درآمد و غیره

برای جلوگیری از بروز مشکل، در این موارد بهتر است چکی برای تقسیم بر 0 در قسمت محاسبه شده وارد کنید.

این کار را می توان با استفاده از ساختار "انتخاب وقتی .... سپس ... در غیر این صورت ... پایان" انجام داد.

در پایان چند کلمه در مورد کافی است ویژگی جدیدمحاسبه بیان (). با کمک آن، به ویژه، می توانید انحرافات در هزینه بین خط فعلی و قبلی، تراز تجمعی و غیره را محاسبه کنید.

فرض کنید با تعیین مقدار CalculateExpression("DocumentAmount", "PreviousAmount") در قسمت "Expression" می توانید DocumentAmount را از خط قبلی پرس و جو ما دریافت کنید.

روز بخیر، خوانندگان عزیز وبلاگ ما! امروز می خواهم با استفاده از یک مثال واقعی بگویم چگونه
از توابع SKD Array (Array) و ConnectStrings (JoinStrings) استفاده کنید.. در مقاله ای در مورد

اشاره کمی به نحوه کار با
روی نشانک
، همچنین توضیح داده شده است
با استفاده از برگه منابع امروز بار دیگر به این موارد خواهیم پرداخت
نشانک‌ها در پرتو موضوع ما.

ظاهر نمونه ای از گزارش 1C با استفاده از دو توابع ACS آرایهو ConnectStringsبعد:

بیان مشکل برای اعمال توابع ACS Array (Array) و ConnectStrings (JoinStrings)

وظیفه: باید تمام شماره های فروش یک محصول را در یک سلول درج کرد.

چیزی شبیه به: نامگذاری | مقدار | 001، 002 و غیره |

ما از درخواستی برای ثبت انباشت "اجرای TMZ" استفاده خواهیم کرد.

انتخاب کنید
پیاده سازی TMZ ثبت نام. عدد،
پیاده سازی TMZ نامگذاری،
پیاده سازی TMZ مدیر ثبت،
پیاده سازی TMZ مقدار گردش مالی
از جانب
ثبت انباشت. پیاده سازی TMZ گردش مالی
(, , Registrar, ) نحوه پیاده سازی TMZ

ثبت انباشت "اجرای TMZ" هم در پیکربندی حسابداری و هم در پیکربندی مدیریت شرکت تجاری (UTP) وجود دارد. نحوه پیکربندی USP را در عنصر دایرکتوری "Nomenclature" بیابید. بنابراین پس از دانلود برای بررسی عملکرد آن می توانید این گزارش را در هر دو پیکربندی اجرا کنید.

اجرای کار با استفاده از توابع SKD Array و ConnectStrings


از همان مراحل، اما با مقداری اضافات، برای ایجاد استفاده شد
.

شرح تابع JoinStrings (JoinStrings).

JoinStrings (JoinStrings)

برای به هم پیوستن رشته ها به یک رشته استفاده می شود.

نحو:

ConcatenateStrings (مقدار، جداکننده عنصر، جداکننده ستون)

گزینه ها:

  1. معنی- عبارات در یک خط ترکیب شوند.
    اگر آرایه باشد، عناصر آرایه در یک رشته ترکیب می شوند.
    اگر یک ValueTable باشد، تمام ستون‌ها و ردیف‌های جدول در یک ردیف ترکیب می‌شوند.
  2. جداکننده عناصریک رشته حاوی متنی است که باید به عنوان استفاده شود
    جداکننده بین عناصر آرایه و ردیف های جدول مقدار. پیش فرض یک کاراکتر خط جدید است.
  3. جداکننده های ستون-رشته حاوی متنی که باید به عنوان جداکننده استفاده شود
    بین ستون های جدول مقادیر پیش فرض ";".

به عنوان دانشجو وارد شوید

برای دسترسی به محتوای مدرسه به عنوان دانش آموز وارد شوید

سیستم ترکیب داده 1C 8.3 برای مبتدیان: شمارش نتایج (منابع)

هدف این درس خواهد بود:

  • گزارشی بنویسید که فهرستی از محصولات (فهرست غذا)، محتوای کالری و طعم آنها را نمایش دهد.
  • محصولات را بر اساس رنگ گروه بندی کنید.
  • با ویژگی خلاصه سازی (منابع) و فیلدهای محاسبه شده آشنا شوید.

ایجاد گزارش جدید

مانند درس های قبلی، پایگاه داده را باز کنید. اغذیه فروشی"در پیکربندی و ایجاد یک گزارش جدید از طریق منو" فایل"->"جدید...":

نوع سند - گزارش خارجی:

در فرم تنظیمات گزارش، نام را بنویسید درس 3"و دکمه را فشار دهید" نمودار ترکیب داده باز":

نام طرح پیش فرض را بگذارید و روی " کلیک کنید آماده":

افزودن پرس و جو از طریق سازنده

روی برگه " مجموعه داده ها"کلیک سبزبعلاوه را علامت بزنید و " را انتخاب کنید افزودن مجموعه داده - پرس و جو":

به جای نوشتن دستی متن درخواست، دوباره اجرا کنید سازنده پرس و جو:

روی برگه " جداول"میز را بکشید" غذااز ستون اول تا ستون دوم:

از جدول انتخاب کنید غذا"فیلدهایی که درخواست خواهیم کرد. برای انجام این کار، فیلدها را بکشید" نام", "طعم", "رنگ"و" کالری"از ستون دوم تا سوم:

اینطور معلوم شد:

دکمه را فشار دهید " خوب" - متن درخواست به طور خودکار ایجاد شد:

تشکیل تنظیمات ارائه گزارش

به نشانک بروید تنظیمات"و کلیک کنید عصای جادویی، تماس گرفتن سازنده تنظیمات:

نوع گزارش را انتخاب کنید فهرست کنید..." و دکمه " را فشار دهید به علاوه":

فیلدهایی که در لیست نمایش داده می شوند را از ستون سمت چپ به سمت راست بکشید و رها کنید و روی " کلیک کنید به علاوه":

از ستون سمت چپ به فیلد سمت راست بکشید " رنگ"- طبق آن اتفاق خواهد افتاد گروه بندیخطوط در گزارش مطبوعات " خوب":

و در اینجا نتیجه سازنده است. سلسله مراتب گزارش ما:

  • به طور کلی گزارش دهید
  • گروه بندی "رنگ"
  • سوابق دقیق - خطوط با نام غذا

ذخیره گزارش (دکمه دیسکت) و بدون بستنپیکربندی، بلافاصله آن را در حالت کاربر باز می کنیم. اینطور معلوم شد:

تغییر ترتیب ستون

اما اجازه دهید ترتیب را تغییر دهیدستون ها (فلش های بالا و پایین) به طوری که مانند تصویر زیر باشد:

گزارش را ذخیره کرده و در حالت کاربر دوباره باز کنید:

عالیه خیلی بهتره

جمع بندی (مجموع) بر اساس محتوای کالری

خوب است که محتوای کالری کل غذاها را بر اساس گروه نمایش دهید. برای دیدن مجموع محتوای کالری همه محصولات، مثلاً سفید یا زرد. یا از محتوای کالری کل همه غذاها در پایگاه داده مطلع شوید.

مکانیزم محاسبه منابع برای این وجود دارد.

برو به برگه " منابع"و فیلد را بکشید" کالری"(ما آن را خلاصه می کنیم) از ستون چپ به راست.

در همان زمان، در قسمت عبارت، از لیست کشویی انتخاب کنید " مقدار (کالری)"، از آنجایی که مجموع، مجموع تمام عناصر موجود در کل خواهد بود:

ذخیره و تولید گزارش:

ما نتایج را برای هر یک از گروه ها و برای کل گزارش داریم.

جمع بندی (متوسط) بر اساس محتوای کالری

حالا بیایید آن را طوری بسازیم که ستون دیگری نمایش داده شود میانگینمحتوای کالری محصولات بر اساس گروه ها و به طور کلی برای گزارش.

لمس ستون موجود "محتوای کالری" غیرممکن است - مجموع کل قبلاً در آن نمایش داده شده است، بنابراین بیایید یک فیلد دیگر اضافه کنیم، که یک کپی دقیق از قسمت "کالری" خواهد بود.

برای ایجاد چنین میدان "مجازی"، از مکانیزم استفاده می کنیم فیلدهای محاسبه شده.

به نشانک بروید فیلدهای محاسبه شده"و فشار دهید سبزعلامت مثبت:

در یک ستون " مسیر دادهنام فیلد جدید را بنویسید ( با یکدیگر, بدون فاصله). بگذار نامیده شود میانگین کالری"، و در ستون" اصطلاح"ما نام یک فیلد از قبل موجود را می نویسیم که بر اساس آن فیلد جدید محاسبه می شود. ما در آنجا می نویسیم" کالری". ستون" سرتیتر" به طور خودکار پر می شود.

ما یک فیلد جدید اضافه کرده ایم (" میانگین کالری")، اما به خودی خود در گزارش ظاهر نمی شود - باید دوباره با آن تماس بگیرید سازنده تنظیمات("عصای جادویی") یا این فیلد را اضافه کنید به صورت دستی.

بیایید اقدام کنیم دومینمسیر. برای انجام این کار، به برگه " تنظیمات"، انتخاب کنید " گزارش" (پس از همه، ما می خواهیم فیلد را به عنوان یک کل به گزارش اضافه کنیم)، تب زیر را انتخاب کنید" زمینه های انتخاب شده"و فیلد را بکشید" میانگین کالریاز ستون چپ به راست:

اینطور معلوم شد:

ذخیره و تولید گزارش:

فیلد ظاهر شده است و می بینیم که مقادیر آن مقادیر فیلد "کالری" است. عالی!

برای انجام این کار، ما دوباره از مکانیزمی که قبلاً برای ما آشناست استفاده می کنیم. منابع(خلاصه کردن). به نشانک بروید منابع"و فیلد را بکشید" میانگین کالریاز ستون چپ به راست:

در همان زمان، در ستون اصطلاح"انتخاب کنید" متوسط ​​(متوسط ​​کالری)":

ذخیره و تولید گزارش:

می بینیم که برای گروه ها، یعنی برای هر رنگ، و برای کل گزارش، مقدار میانگین کاملاً درست محاسبه شده است. اما حاضر ورودی های اضافی برای محصولات جداگانه (نه برای گروه ها) که می خواهید از گزارش حذف شوند.

آیا می دانید چرا آنها ظاهر شدند (یعنی نه در گروه)؟ چون وقتی فیلد را اضافه کردیم میانگین کالری" در تنظیمات گزارش، در مرحله دوم انتخاب کردیم کل گزارشو این فیلد جدید عنصر " به تفصیل سوابق".

بیایید خطا را برطرف کنیم. برای انجام این کار، به برگه بازگردید " تنظیمات"، انتخاب کنید " سوابق جزئیات"ابتدا بالا (مرحله 2) و سپس" سوابق جزئیات"از پایین (مرحله 3)، به نشانک بروید" انتخاب شد زمینه های"و در ستون سمت راست آن عنصر را ببینید" خودکار".

عنصر " خودکار" - این یک فیلد نیست. این چندین فیلد هستند که به طور خودکار بر اساس تنظیمات بالاتر به اینجا می آیند.

برای دیدن این فیلدها - روی عنصر کلیک کنید " خودکار" درسترا فشار دهید و " را انتخاب کنید بسط دادن":

عنصر " خودکار" در زمینه های زیر گسترش یافته است:

اینجا رشته ماست میانگین کالری"که از پاراگراف به اینجا رسید" گزارش"وقتی آن را به آنجا کشاندیم. فقط بیایید بلند شویمکنار این فیلد علامت بزنید تا خروجی آن حذف شود.

با توجه به انتشار آینده 8.2.14، سعی می کنم برخی از ویژگی های جدید سیستم ترکیب داده را شرح دهم.

برای سهولت در ویرایش، طرح ترکیب داده را ترجیحاً در یک گزارش خارجی باز کنید.

ما یک مجموعه داده پرس و جو اضافه می کنیم و ساده ترین پرس و جو را به صورت دستی یا با استفاده از سازنده پرس و جو می نویسیم:

1. یک درخواست را در ACS تنظیم کنید.

2. فیلدهای محاسبه شده را در ACS تنظیم کنید

3. ما طرح داده ها را در تب تنظیمات پیکربندی می کنیم

4. ما 1C Enterprise 8.2.14 را راه اندازی می کنیم. گزارش را باز می کنیم. شکل می دهیم، دریافت می کنیم.

توضیحات خود ویژگی های جدید:

1. تاریخ فعلی ()

تاریخ سیستم را برمی گرداند. هنگام طرح‌بندی طرح‌بندی، در تمام عباراتی که در طرح‌بندی وجود دارد، تابع CurrentDate() با مقدار تاریخ جاری جایگزین می‌شود.

2. COMPUTE EXPRESSION()

نحو:

محاسبه بیان (,)

شرح:

این تابع برای ارزیابی یک عبارت در زمینه گروه بندی طراحی شده است.

این تابع انتخاب گروه بندی ها را در نظر می گیرد، اما انتخاب های سلسله مراتبی را در نظر نمی گیرد.

این تابع را نمی توان برای یک گروه بندی در انتخاب گروه آن گروه بندی اعمال کرد. به عنوان مثال، در انتخاب گروه بندی Nomenclature، نمی توانید از عبارت استفاده کنید محاسبه عبارت ("Sum(SumTurnover)"، "TotalTotal") > 1000. اما چنین عبارتی را می توان در انتخاب سلسله مراتبی استفاده کرد.

اگر رکورد پایانی قبل از رکورد شروع باشد، در نظر گرفته می شود که هیچ رکوردی برای محاسبه داده های تفصیلی و محاسبه توابع جمع وجود ندارد.

هنگام محاسبه عبارات بازه ای برای کل کل (پارامتر Grouping روی GrandTotal تنظیم شده است)، در نظر گرفته می شود که هیچ رکوردی برای محاسبه داده های دقیق و محاسبه توابع جمع وجود ندارد.

Layout builder هنگام ایجاد یک عبارت تابع محاسبه بیان، اگر عبارت ترتیب شامل فیلدهایی باشد که نمی توان در گروه بندی استفاده کرد، تابع را جایگزین می کند محاسبه بیانبر روی خالی.

گزینه ها

نوعی از: خط. عبارتی که باید ارزیابی شود.

نوعی از: خط. شامل نام گروهی است که عبارت باید در زمینه آن ارزیابی شود. اگر یک رشته خالی به عنوان نام گروه بندی استفاده شود، محاسبه در زمینه گروه بندی فعلی انجام می شود. اگر رشته GrandTotal به عنوان نام گروه بندی استفاده شود، محاسبه در زمینه کل کل انجام می شود. در غیر این صورت، محاسبه در زمینه گروه بندی والد با آن نام انجام می شود.

مثلا:

Sum(Sales.SumTurnover)/Calculate("Sum(Sales.SumTurnover)"، "TotalTotal")

AT این مثالنتیجه نسبت مجموع بر میدان خواهد بود فروش.میزان گردش مالیگروه بندی ورودی ها به مجموع همان فیلد در کل طرح.

نوعی از: خط. پارامتر می تواند مقادیر زیر را بگیرد:

· نتیجه کلی- عبارت برای تمام رکوردهای گروه بندی ارزیابی می شود.

· سلسله مراتب- اگر ورودی سلسله مراتبی والد وجود داشته باشد، عبارت برای ورودی سلسله مراتبی والد، و اگر ورودی سلسله مراتبی والد وجود نداشته باشد، برای کل گروه بندی ارزیابی می شود.

· گروه بندی- عبارت برای رکورد گروه فعلی گروه بندی ارزیابی می شود.

· GroupingNotResource- هنگام محاسبه یک تابع برای رکورد گروه بر اساس منابع، عبارت برای اولین رکورد گروه گروه بندی اولیه محاسبه می شود.

هنگام محاسبه تابع محاسبه بیان () با معنی GroupingNotResourceبرای رکوردهای گروهی که براساس منابع گروه بندی نمی شوند، تابع به همان روشی محاسبه می شود که اگر مقدار پارامتر برابر با مقدار باشد محاسبه می شود. گروه بندی.

سازنده طرح‌بندی ترکیب داده، هنگام تولید طرح‌بندی ترکیب داده، هنگام نمایش فیلد منبعی که گروه‌بندی توسط آن انجام می‌شود، عبارتی را در طرح قرار می‌دهد که با استفاده از تابع محاسبه می‌شود. محاسبه بیان () ، پارامتر را مشخص می کند GroupingNotResource. برای سایر منابع گروه بندی شده بر اساس منبع، عبارات منبع منظم قرار می گیرند.

نوعی از: خط. مشخص می کند که کدام رکورد برای شروع قطعه شروع شود که در آن توابع جمع عبارت محاسبه شود و از کدام رکورد مقادیر فیلدهای خارج از توابع جمع به دست آید. مقدار می تواند یکی از موارد زیر باشد:

· اول (اول)

· آخرین (آخرین)

· قبلی (قبلی)

· بعدی (بعدی)

· فعلی (جاری)

· LimitingValue(BoundaryValue) LimitingValue

نوعی از: خط. نشان می دهد که به کدام رکورد باید قطعه ای که در آن توابع جمع عبارت محاسبه شود ادامه یابد. مقدار می تواند یکی از موارد زیر باشد:

· اول (اول). شما باید اولین رکورد گروه بندی را بدست آورید. بعد از کلمه داخل پرانتز می توانید عبارتی را مشخص کنید که نتیجه آن از ابتدای گروه بندی به عنوان یک افست استفاده می شود. مقدار حاصل باید یک عدد صحیح بزرگتر از صفر باشد. به عنوان مثال، First(3) - گرفتن رکورد سوم از شروع گروه بندی.

اگر اولین ورودی خارج از گروه بندی باشد، در نظر گرفته می شود که هیچ ورودی وجود ندارد. به عنوان مثال، اگر 3 رکورد وجود دارد، و شما می خواهید First(4) را دریافت کنید، در نظر گرفته می شود که هیچ رکوردی وجود ندارد.

· آخرین (آخرین). شما باید آخرین ورودی گروه بندی را دریافت کنید. بعد از کلمه داخل پرانتز، می توانید عبارتی را مشخص کنید که نتیجه آن به عنوان یک افست از انتهای گروه بندی استفاده می شود. مقدار حاصل باید یک عدد صحیح بزرگتر از صفر باشد. به عنوان مثال، Last(3) - رکورد سوم را از انتهای گروه بندی دریافت کنید.

اگر یک آخرین رکوردفراتر از گروه بندی، در نظر گرفته می شود که هیچ رکوردی وجود ندارد. به عنوان مثال، اگر 3 رکورد وجود دارد، و شما می خواهید آخرین (4) را دریافت کنید، در نظر گرفته می شود که هیچ رکوردی وجود ندارد.

· قبلی (قبلی). باید ورودی گروه بندی قبلی را دریافت کنید. بعد از کلمه داخل پرانتز، می‌توانید عبارتی را مشخص کنید که نتیجه آن به عنوان یک تغییر به عقب از رکورد گروه‌بندی فعلی استفاده می‌شود. به عنوان مثال، Previous(2) - قبلی را از رکورد قبلی دریافت کنید.

اگر رکورد قبلی خارج از گروه بندی باشد (به عنوان مثال، رکورد گروه بندی دوم به Previous(3) نیاز دارد، اولین رکورد گروه بندی به دست می آید.

هنگام بدست آوردن رکورد قبلی برای کل گروه بندی، در نظر گرفته می شود که اولین رکورد بدست آمده است.

· بعدی (بعدی). باید ورودی گروه بندی بعدی را دریافت کنید. بعد از کلمه داخل پرانتز، می‌توانید عبارتی را مشخص کنید که نتیجه آن به عنوان یک تغییر رو به جلو از رکورد گروه‌بندی فعلی استفاده می‌شود. به عنوان مثال، Next(2) - بعدی را از رکورد بعدی دریافت کنید.

اگر رکورد بعدی فراتر از گروه بندی باشد، در نظر گرفته می شود که هیچ رکوردی وجود ندارد. به عنوان مثال، اگر 3 رکورد وجود داشته باشد و رکورد سوم Next() را دریافت کند، در نظر گرفته می شود که هیچ رکوردی وجود ندارد.

هنگامی که رکورد بعدی برای کل گروه بندی دریافت می شود، در نظر گرفته می شود که رکوردی وجود ندارد.

· فعلی (جاری). شما باید ورودی فعلی را دریافت کنید.

هنگامی که برای کل گروه بندی بازیابی می شود، اولین رکورد بازیابی می شود.

· LimitingValue(BoundaryValue). نیاز به گرفتن رکورد با مقدار مشخص شده. بعد از کلمه LimitingValueدر پرانتز، باید عبارتی را مشخص کنید که با مقدار آن می خواهید قطعه را شروع کنید، اولین فیلد ترتیب.

رکورد اولین رکوردی خواهد بود که مقدار فیلد ترتیب آن بزرگتر یا مساوی مقدار مشخص شده باشد. به عنوان مثال، اگر از فیلد Period به عنوان فیلد سفارش استفاده می کنید و دارای مقادیر 01/01/2010، 02/01/2010، 03/01/2010 است و می خواهید دریافت کنید LimitValue(DateTime(2010, 1, 15))، سپس رکوردی با تاریخ 1389/02/01 دریافت خواهد شد.

نوعی از: خط. عبارات جدا شده با کاما که قوانین ترتیب را توصیف می کنند فهرست شده اند. اگر مشخص نشده باشد، ترتیب به همان روشی انجام می شود که برای گروه بندی که عبارت برای آن ارزیابی می شود. بعد از هر عبارت می توانید مشخص کنید کلمه کلیدی صعودی(برای ترتیب صعودی) نزولی(برای ترتیب نزولی) و تنظیم خودکار(برای ترتیب فیلدهای مرجع بر اساس فیلدی که می خواهید شی مورد ارجاع را ترتیب دهید). کلمه تنظیم خودکارمی تواند مانند کلمه استفاده شود صعودی، و با کلمه نزولی.

نوعی از: خط. همانند پارامتر مرتب سازی. برای مرتب کردن رکوردهای سلسله مراتبی استفاده می شود. اگر مشخص نشده باشد، layout builder یک سفارش مطابق با ترتیب مشخص شده در پارامتر ایجاد می کند. مرتب سازی.

نوعی از: خط. در صورت وجود چندین رکورد با مقدار سفارش یکسان، قانونی را برای تعیین رکورد قبلی یا بعدی مشخص می کند:

· بطور جداگانهنشان می دهد که یک دنباله از رکوردهای مرتب شده برای تعیین رکوردهای قبلی و بعدی استفاده می شود. مقدار پیش فرض.

· با هم با هم)نشان می دهد که رکوردهای قبلی و بعدی بر اساس مقادیر عبارات ترتیب تعیین می شوند.

به عنوان مثال، اگر دنباله حاصل بر اساس تاریخ مرتب شده باشد:

تاریخ نام و نام خانوادگی معنی
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)", Current, Current)برابر 50 خواهد بود.

هنگام تعیین مقدار پارامتر برابر با با یکدیگر، در پارامترها شروع کنیدو پایانشما نمی توانید یک افست برای موقعیت ها مشخص کنید اول، آخرین، قبلی، بعدی.

CalculateExpression("Amount(AmountTurnover)"، "First"، "Current")

اگر می خواهید مقدار گروه بندی را در خط قبلی بدست آورید، می توانید از عبارت زیر استفاده کنید:

CalculateExpression ("دوره"، "قبلی")

فهرست کنید جدیدامکانات:

ComputeExpressionGroupedArray(,) -

تابع آرایه ای را برمی گرداند که هر عنصر آن حاوی نتیجه ارزیابی عبارت برای گروه بندی بر اساس فیلد مشخص شده است.

ComputeExpressionGroupedValueTable(,) -

تابع جدولی از مقادیر را برمی‌گرداند که هر ردیف آن حاوی نتیجه ارزیابی عبارات برای گروه‌بندی بر اساس فیلد مشخص شده است.

ValueFilled() - اگر مقدار با مقدار متفاوت باشد True را برمی گرداند از این نوعپیش فرض، غیر از NULL، غیر از مرجع تهی، غیر از Undefined. مقادیر بولی در برابر NULL آزمایش می شوند. رشته ها برای کاراکترهای غیر فضای سفید بررسی می شوند.

قالب(, ) - رشته فرمت شده مقدار ارسال شده را دریافت کنید. رشته قالب مطابق با رشته قالب سیستم 1C: Enterprise تنظیم شده است.

رشته فرعی(, , ) - این تابع برای انتخاب یک رشته فرعی از یک رشته طراحی شده است.

طول رشته() - تابع برای تعیین طول یک رشته طراحی شده است. پارامتر یک عبارت از نوع رشته است

خط() - اگر یک آرایه به عنوان پارامتر ارسال شود، آنگاه تابع رشته ای را برمی گرداند که حاوی نمایش رشته ای از تمام عناصر آرایه است که با کاراکترهای ";" از هم جدا شده اند. اگر جدول مقادیر به‌عنوان پارامتر ارسال شود، تابع رشته‌ای حاوی نمایش‌های رشته‌ای از تمام ردیف‌های جدول مقادیر را برمی‌گرداند و نمایش‌های سلولی هر خط با کاراکترهای «؛» و خطوط از هم جدا می‌شوند. با کاراکتر خط جدید از هم جدا می شوند. اگر هر عنصری یک نمایش رشته خالی داشته باشد، یک رشته به جای نمایش آن نمایش داده می شود.