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

در ترکیب داده ها تنظیم مجموعکمی متفاوت از درخواست ها به نظر می رسد. اجازه دهید مجموعه داده «پرس و جو» را در سیستم ترکیب داده تعریف کنیم.

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

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

بیایید یک تنظیم استاندارد ترکیب داده ایجاد کنیم.
بر روی دکمه "باز کردن طراح تنظیمات" کلیک کنید.

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

بیایید همه فیلدها را انتخاب کنیم و فیلد طرف مقابل را به موقعیت بالا منتقل کنیم. روی دکمه "بعدی" کلیک کنید.

بیایید همه فیلدها را انتخاب کنیم و فیلد طرف مقابل را به موقعیت بالا منتقل کنیم. روی دکمه "OK" کلیک کنید.

نتیجه تنظیمات زیر است:

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

اگر گزارش خود را در حالت 1C:Enterprise باز کنیم و آن را تولید کنیم، خواهیم دید که داده های نهایی در سطح گروه بندی تولید می شود. نتایج بر اساس آیتم و طرف مقابل.

راه اندازی منابع در طرح ترکیب داده 1C

حال بیایید توجه خود را معطوف کنیم تنظیماتی که برای منابع وجود دارد. در فیلد «Expression» می‌توانیم یک تابع تجمیع را مشخص کنیم که می‌توان از آن برای به دست آوردن مقدار منبع استفاده کرد. در لیست کشویی می توانید تعدادی از توابع استاندارد را ببینید، اما نه همه. به عنوان مثال، هیچ توابعی وجود ندارد.

در اینجا در قسمت "Expression" می توانیم عبارت خود را بنویسیم.

در قسمت "Expression" می توانیم به عملکردهای ماژول های رایج نیز دسترسی داشته باشیم.

علاوه بر این، می توانید در قسمت «محاسبه بر اساس...» مشخص کنید که منبع باید با کدام گروه بندی ها محاسبه شود. اگر فیلد «محاسبه با...» پر نشده باشد، در تمام سطوح گروه بندی که در تنظیمات گزینه گزارش تعریف شده اند، مقدار نهایی منبع محاسبه می شود. در مورد ما، ما باید فیلد "محاسبه بر اساس ..." را در منبع "کمیت" پر کنیم، زیرا می توانیم کالاهایی را با واحدهای اندازه گیری مختلف بفروشیم. به عنوان مثال: روغن در لیتر و چرخ به صورت قطعه. آیا این درست نیست که جمع کردن مقادیر این کالاها غیرمنطقی است؟ بنابراین، ما باید جمع کمیت را در سطح اقلام و در سطح طرف مقابل بگذاریم
بیایید جمع بندی را حذف کنیم.

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

امکانات هنگام توصیف منابع در طرح ترکیب داده 1C

در نظر بگیریم تعدادی از ویژگی های غیر آشکار مربوط به شرح منابع.

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

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

  • در قسمت "Expression" علاوه بر نوشتن فرمول، می توانید استفاده کنید یک تابع ترکیب داده خاص به نام "Ccalculate". این تابع به شما امکان می دهد مقداری از مقدار نهایی را با استفاده از یک فرمول خاص محاسبه کنید. به عنوان مثال برای هر طرف مقابل باید درصد خرید در واحدهای طبیعی را نسبت به حجم کل دانست. اما چگونه می توان حجم کل خریدها را بر اساس کمیت به دست آورد؟ برای این کار از تابع “Calculate” استفاده کرده و عبارت زیر را در قسمت “Expression” بنویسید:
جمع (تعداد)/محاسبه ("مجموع(مقدار)"، "مجموع کل")*100

همانطور که دیدیم، تمام پارامترهای تابع "محاسبه" رشته ای هستند. برای اینکه قسمت کمیت به زیبایی در گزارش نمایش داده شود، آن را در برگه «مجموعه داده‌ها» پیکربندی می‌کنیم. در خط کمیت، فیلد «گزینه‌های ویرایش» را پیدا می‌کنیم. بیایید دیالوگ را باز کنیم، خط "Format" را پیدا کنیم و خط فرمت را در آن ویرایش کنیم، و مقدار "دقت" را روی دو در تب "Number" قرار دهیم.

بیایید گزارش را اجرا کنیم و نتیجه محاسبه درصد خرید طرف مقابل "AUPP KOS TOO" را نسبت به
حجم کل:


در پایان مقاله می خواهم یک مورد رایگان از آناتولی سوتنیکوف را به شما توصیه کنم. این دوره از یک برنامه نویس با تجربه است. نحوه ایجاد گزارش در سیستم کنترل دسترسی را به صورت جداگانه به شما نشان می دهد. فقط باید با دقت گوش کنید و به خاطر بسپارید! پاسخ سوالات زیر را دریافت خواهید کرد:
  • چگونه یک گزارش لیست ساده ایجاد کنیم؟
  • ستون های فیلد، مسیر و عنوان در برگه «فیلدها» برای چیست؟
  • محدودیت های فیلدهای طرح بندی چیست؟
  • چگونه نقش ها را به درستی پیکربندی کنیم؟
  • نقش فیلدهای طرح بندی چیست؟
  • کجا می توانم برگه ترکیب داده را در یک پرس و جو پیدا کنم؟
  • چگونه پارامترها را در سیستم کنترل دسترسی پیکربندی کنیم؟
  • جالب تر هم میشه...
شاید شما نباید خودتان در جستجوی اطلاعات لازم در اینترنت بگردید؟ علاوه بر این، همه چیز برای استفاده آماده است. فقط شروع کن! تمام جزئیات در مورد آنچه در درس های ویدیویی رایگان وجود دارد

در اینجا یکی از درس‌های مربوط به نشانه‌گذاری ترکیب داده‌ها در یک پرس و جو آورده شده است:

بیایید به یک مثال نگاه کنیم:

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

ما گزارش را خروجی می دهیم:

همانطور که می بینید، کل فیلد "تخفیف" به عنوان میانگین حسابی مقادیر فیلد محاسبه می شود، یعنی. مجموع تمام مقادیر تقسیم بر تعداد مقادیر. اما چون از آنجایی که حجم کالاهای ارسال شده با تخفیف های مختلف متفاوت است، میانگین تخفیف را می توان به روش دیگری محاسبه کرد: به عنوان مثال، به عنوان نسبت کل کالای ارسال شده، با در نظر گرفتن تخفیف، به کل کالای ارسال شده. اما در اینجا یک سوال مطرح می شود: اگر بتوانید فرمولی برای محاسبه مقادیر فیلدهای رکوردهای دقیق در ACS بنویسید، مجموع ها به طور خودکار مطابق عبارت مشخص شده در برگه "منابع" محاسبه می شوند و در آنجا، به عنوان قبلاً دیدیم، "میانگین" به عنوان میانگین حسابی مقادیر نمایش داده شده محاسبه می شود، در این صورت، آیا باید کل این ستون را با استفاده از فرمول خودم محاسبه کنم؟
در واقع سخت نیست. برای انجام این کار، ما گزارش خود را با اضافه کردن فیلدهای لازم که در محاسبه شرکت می کنند، تنظیم می کنیم، در مورد ما اینها "AmountWithDiscount" و "AmountAtPrice" هستند.

به منظور "آموزش" ACS برای نمایش نتایج ما، مراحل زیر را انجام می دهیم:
1. در برگه "تنظیمات"، یک نام به گروه بندی اختصاص دهید، به عنوان مثال، "ResultSKD"، برای انجام این کار، منوی زمینه گروه بندی را فراخوانی کنید و روی "تخصیص یک نام" کلیک کنید.

2. در برگه "Layouts"، "طرح بندی سرصفحه گروه بندی" را اضافه کنید، جایی که نام قبلی "TotalSKD" را انتخاب می کنیم.

3. خطی از طرح ترسیم می کنیم، جایی که تمام نتایج را که محاسبه آنها مناسب است، همانطور که هستند می گذاریم، و برای محاسبه میانگین درصد تخفیف، فرمولی برای محاسبه می نویسیم.

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

برای اینکه خروجی تنها خط کل خود را رها کنید، باید در برگه «تنظیمات» در بخش «تنظیمات دیگر» خروجی طرح‌بندی، خروجی «طرح کل افقی» و «طرح کل عمودی کل» را غیرفعال کنید.

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

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

پیشینی، - میانگین وزنی(میانگین وزنی) یک میانگین حسابی است که وزن هر یک از عبارت هایی را که این میانگین برای آنها محاسبه می شود در نظر می گیرد.

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

همان مثال کتاب درسی: اجناس در سه لات خریداری شد که یکی از آنها 100 تن به قیمت 70 پوند بود. هنر در هر تن، دیگری - 300 تن در 80 پوند. هنر در هر تن و سوم - 50 تن در 95 پوند. هنر در هر تن، سپس در مجموع 450 تن کالا خریداری می کند. میانگین قیمت خرید معمولی (70 + 80 + 95) خواهد بود: 3 = 81.7 پوند. هنر میانگین وزنی قیمت با در نظر گرفتن حجم هر دسته برابر است با (100 × 70) + (300 × 80) + (50 × 95) : 450 = 79.4 پوند. هنر در هر تن

فرمول:

که در آن X مقادیری هستند که می خواهیم میانگین وزنی آنها را بدست آوریم و W وزن ها هستند.

اینجاست که تئوری به پایان می رسد.

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

این سوال مطرح می شود: مدیر در دوره گزارش چه سودآوری داشته است؟ برای پاسخ صحیح به این سوال، باید میانگین وزنی ارزش سودآوری را محاسبه کنید.

برای به دست آوردن میانگین وزنی سودآوری در SKD، در سازنده query یک فیلد کمکی از فرم ایجاد می کنیم.بیان دلخواه، جایی که محصول سودآوری و درآمد را ثبت می کنیم. ما یک نام مستعار به این فیلد اختصاص می دهیم -فیلد کمکی. تصویر زیر را ببینید.

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

یکی دیگر از تکنیک های کار با ACS در برگه "منابع"، که در آن محاسبه کل نشان داده شده است، امکان استفاده از عبارات در فیلد "Expression" با داده های فیلد "Available Fields" است. تصویر زیر را ببینید.

برای ستون گزارش "درصد سودآوری" عبارت را می نویسیم مبلغ (فیلد کمکی) / مبلغ (درآمد).

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

امیدوارم این مقاله برای کسی مفید باشد.

1. محاسبه (Eval)- در نظر گرفته شده برای ارزیابی یک عبارت در زمینه برخی از گروه بندی. این تابع برای سازگاری با نسخه های قبلی پلت فرم استفاده می شود. توصیه می شود به جای آن از تابع CalculateExpression استفاده کنید.

نحو:
محاسبه (بیان، گروه بندی، نوع محاسبه)

گزینه ها :

  • اصطلاح(خط). شامل یک عبارت محاسبه شده است.
  • گروه بندی(خط). شامل نام گروهی است که عبارت باید در زمینه آن ارزیابی شود. اگر یک رشته خالی به عنوان نام گروه بندی استفاده شود، محاسبه در زمینه گروه بندی فعلی انجام می شود. اگر رشته GrandTotal به عنوان نام گروه استفاده شود، محاسبه در زمینه کل کل انجام می شود. در غیر این صورت، محاسبه در زمینه گروه مادر با همین نام انجام می شود.
    مثلا:
    جمع (Sales.SumTurnover) / محاسبه ("Sum(Sales.SumTurnover)"، "Total").
    در این مثال، نتیجه نسبت مقدار فیلد «Sales.AmountTurnover» رکورد گروه‌بندی به مقدار همان فیلد در کل طرح‌بندی خواهد بود.
  • نوع محاسبه(خط). اگر این پارامتر روی "TotalTotal" تنظیم شود، عبارت برای تمام رکوردهای گروه بندی محاسبه می شود. اگر مقدار پارامتر "گروه بندی" باشد، مقادیر برای رکورد گروه گروه بندی فعلی محاسبه می شود.
2. ارزیابی بیان (EvalExpression) - در نظر گرفته شده برای ارزیابی یک عبارت در زمینه برخی از گروه بندی. این تابع انتخاب گروه بندی ها را در نظر می گیرد، اما انتخاب های سلسله مراتبی را در نظر نمی گیرد. این تابع را نمی توان برای یک گروه بندی در انتخاب گروه آن گروه بندی اعمال کرد.

نحو:
CalculateExpression(Expression، Grouping، CalculationType، Start، End، Sort، HierarchicalSort، ProcessingIdenticalOrderValues)

گزینه ها :

  • اصطلاح(خط). شامل یک عبارت محاسبه شده است.
  • گروه بندی(خط). شامل نام گروهی است که عبارت باید در زمینه آن ارزیابی شود. اگر یک رشته خالی به عنوان نام گروه بندی استفاده شود، محاسبه در زمینه گروه بندی فعلی انجام می شود. اگر رشته GrandTotal به عنوان نام گروه استفاده شود، محاسبه در زمینه کل کل انجام می شود. در غیر این صورت، محاسبه در زمینه گروه بندی والد با آن نام انجام می شود.
  • نوع محاسبه(خط). اگر این پارامتر روی "TotalTotal" تنظیم شود، عبارت برای تمام رکوردهای گروه بندی محاسبه می شود. اگر مقدار پارامتر "گروه بندی" باشد، مقادیر برای رکورد گروه گروه بندی فعلی محاسبه می شود. اگر پارامتر روی "گروه بندی غیر منبع" تنظیم شود، هنگام محاسبه تابع برای یک رکورد گروهی بر اساس منبع، عبارت برای اولین رکورد گروهی گروه بندی اصلی ارزیابی می شود. هنگام ارزیابی تابع CalculateExpression با مقدار "GroupingNonResource" برای رکوردهای گروهی که بر اساس منبع گروه بندی نمی شوند، تابع به همان روشی ارزیابی می شود که با مقدار پارامتر "گروه بندی" ارزیابی می شود. سازنده طرح‌بندی ترکیب داده، هنگام تولید یک طرح‌بندی ترکیب داده هنگام خروجی یک فیلد - منبعی که توسط آن گروه‌بندی انجام می‌شود، به طرح‌بندی، یک عبارت محاسبه‌شده با استفاده از تابع CalculateExpression با پارامتر «GroupingNon-Resource» مشخص شده را به چیدمان خروجی می‌دهد. برای سایر منابع گروه بندی شده بر اساس منبع، عبارات منبع عادی برگردانده می شوند. اگر پارامتر روی "سلسله مراتب" تنظیم شده باشد، در صورت وجود رکورد سلسله مراتبی والد، و اگر رکورد سلسله مراتبی والد وجود ندارد، عبارت باید برای کل گروه بندی ارزیابی شود. سازنده layout، هنگام تولید عبارتی برای % در فیلد Hierarchy Group، عبارتی را تولید می کند که حاوی رابطه عبارت منبع با تابع CalculateExpression برای عبارت منبعی است که برای گروه بندی فعلی با نوع محاسباتی Hierarchy محاسبه می شود.
  • شروع کنید. نشان می دهد که قطعه باید از کدام رکورد شروع شود، توابع بیان جمع باید محاسبه شوند، و از کدام رکورد برای به دست آوردن مقادیر فیلد خارج از توابع انبوه. رشته ای حاوی یکی از:
    • "اولین" کسب اولین رکورد گروه بندی ضروری است. بعد از کلمه داخل پرانتز می توانید عبارتی را مشخص کنید که نتیجه آن از ابتدای گروه بندی به عنوان یک افست استفاده می شود. مقدار حاصل باید یک عدد صحیح بزرگتر از صفر باشد. به عنوان مثال First(3) – دریافت سومین رکورد از ابتدای گروه بندی. اگر رکورد اول خارج از گروه بندی باشد، در نظر گرفته می شود که هیچ رکوردی وجود ندارد. به عنوان مثال، اگر 3 رکورد وجود دارد، و شما می خواهید First(4) را دریافت کنید، در نظر گرفته می شود که هیچ رکوردی وجود ندارد.
    • "آخر" شما باید آخرین رکورد گروه بندی را دریافت کنید. بعد از کلمه داخل پرانتز، می توانید عبارتی را مشخص کنید که نتیجه آن به عنوان یک افست از انتهای گروه بندی استفاده می شود. مقدار حاصل باید یک عدد صحیح بزرگتر از صفر باشد. به عنوان مثال، Last(3) - دریافت سومین رکورد از پایان گروه. اگر آخرین رکورد خارج از گروه بندی باشد، در نظر گرفته می شود که هیچ رکوردی وجود ندارد. به عنوان مثال، اگر 3 رکورد وجود دارد، و شما می خواهید آخرین (4) را دریافت کنید، در نظر گرفته می شود که هیچ رکوردی وجود ندارد.
    • "قبلی" باید رکورد گروه بندی قبلی را بدست آورید. بعد از کلمه داخل پرانتز، می‌توانید عبارتی را مشخص کنید که نتیجه آن به عنوان یک برگشت از رکورد گروه‌بندی فعلی استفاده می‌شود. به عنوان مثال، Previous(2) - گرفتن قبلی از رکورد قبلی. اگر رکورد قبلی خارج از گروه بندی باشد (به عنوان مثال، رکورد گروه بندی دوم نیاز به گرفتن Previous(3) دارد)، اولین رکورد گروه بندی به دست می آید. هنگام دریافت رکورد قبلی برای کل گروه بندی، اولین رکورد به دست می آید.
    • "بعد" باید رکورد گروه بندی بعدی را دریافت کنید. بعد از کلمه داخل پرانتز، می توانید عبارتی را مشخص کنید که نتیجه آن به عنوان یک افست به جلو از ورودی گروه بندی فعلی استفاده می شود. به عنوان مثال، Next(2) - گرفتن بعدی از رکورد بعدی. اگر رکورد بعدی فراتر از گروه بندی باشد، در نظر گرفته می شود که هیچ رکوردی وجود ندارد. به عنوان مثال، اگر 3 ورودی وجود داشته باشد و ورودی سوم Next را دریافت کند، در نظر گرفته می شود که هیچ ورودی وجود ندارد. هنگامی که رکورد بعدی برای کل گروه بندی دریافت می شود، در نظر گرفته می شود که رکوردی وجود ندارد.
    • "جاری". شما باید رکورد فعلی را بدست آورید. هنگام بازیابی برای کل گروه بندی، اولین رکورد به دست می آید.
    • "BoundaryValue". نیاز به به دست آوردن رکورد با مقدار مشخص شده. بعد از کلمه LimitingValue در پرانتز، باید عبارتی را که می‌خواهید قطعه را با مقدار آن شروع کنید، اولین فیلد مرتب‌سازی را مشخص کنید. اولین رکوردی که مقدار فیلد سفارشی آن بزرگتر یا مساوی با مقدار مشخص شده باشد به عنوان رکورد برگردانده می شود. برای مثال، اگر از فیلد Period به عنوان فیلد سفارش استفاده می شود و دارای مقادیر 01/01/2010، 02/01/2010، 03/01/2010 است و می خواهید LimitingValue(DateTime(2010) را دریافت کنید. ، 1، 15))، سپس رکوردی با تاریخ 02/01 به دست می آید. 2010.
  • پایان. نشان می دهد که قطعه باید به کدام رکورد ادامه داده شود، که در آن عبارت جمع باید محاسبه شود. رشته ای حاوی یکی از:
    • "اولین"
    • "آخر"
    • "قبلی"
    • "بعد"
    • "جاری".
    • "BoundaryValue".
  • مرتب سازی. رشته‌ای که عباراتی را که با کاما از هم جدا شده‌اند، فهرست می‌کند و دنباله باید در جهت آن مرتب شود. اگر مشخص نشده باشد، ترتیب به همان روشی انجام می شود که برای گروه بندی که عبارت برای آن ارزیابی می شود. بعد از هر عبارت، می‌توانید کلیدواژه Ascending، برای مرتب‌سازی به ترتیب صعودی، Descending، برای مرتب‌سازی به ترتیب نزولی، Auto-Ordering، برای مرتب‌سازی فیلدهای مرجع بر اساس فیلدی‌هایی که می‌خواهید شی مورد ارجاع را با آن مرتب کنید، تعیین کنید. کلمه Auto Order هم با کلمه Ascending و هم با کلمه Descending قابل استفاده است.
  • مرتب سازی سلسله مراتبی. مشابه مرتب سازی. برای سازماندهی رکوردهای سلسله مراتبی استفاده می شود. اگر مشخص نشده باشد، ترکیب‌کننده layout ترتیب را طبق ترتیب مشخص شده در پارامتر Sort ایجاد می‌کند.
  • پردازش مقادیر مشابه سفارش. رشته ای حاوی یکی از:
    • "با هم" به این معنی است که دنباله ای از رکوردهای مرتب شده برای تعیین رکوردهای قبلی و بعدی استفاده می شود.
    • "به طور جداگانه" به این معنی است که رکوردهای قبلی و بعدی بر اساس مقادیر عبارات ترتیب تعیین می شوند.
    به عنوان مثال، اگر دنباله حاصل بر اساس تاریخ مرتب شده باشد:
    1. 01 ژانویه 2001 Ivanov M. 10
    2. 02 ژانویه 2001 Petrov S. 20
    3. 02 ژانویه 2001 سیدوروف R. 30
    4. 03 ژانویه 2001 Petrov S. 40
    هنگام استفاده از پردازش مقادیر یکسان از ترتیب "به طور جداگانه"، قبلی برای رکورد 3 رکورد 2 خواهد بود و هنگام استفاده از "Together" - رکورد 1. و قطعه برای رکورد فعلی برای رکورد 2 برای "به طور جداگانه" رکورد 2 و برای "Together" - رکوردهای 2 و 3 خواهد بود. بنابراین، مجموع رکورد فعلی برای "Separately" 20 و برای "Together" - 50 خواهد بود. هنگامی که "Together" در Start و پارامترهای پایان، نمی توانید برای موقعیت های "اول"، "آخرین"، "قبلی"، "بعدی" یک افست تعیین کنید. مقدار پیش فرض "جدا" است.
مثال:
به دست آوردن نسبت مبلغ فیلد "Sales.AmountTurnover" یک رکورد گروه بندی به مقدار همان فیلد در کل طرح بندی:
Sum(Sales.SumTurnover) / CalculateExpression("Sum(Sales.SumTurnover)"، "Total").

این مثال مقدار سلسله مراتب فعلی را محاسبه می کند:
انتخاب
هنگامی که Level() > 0 باشد
سپس EvaluateExpression ("مرجع"، "سلسله مراتب")
در غیر این صورت پوچ
پایان

یادداشت:
این تابع انتخاب گروه بندی ها را در نظر می گیرد، اما انتخاب های سلسله مراتبی را در نظر نمی گیرد. این تابع را نمی توان برای یک گروه بندی در انتخاب گروه آن گروه بندی اعمال کرد. به عنوان مثال، در انتخاب گروه بندی Nomenclature، نمی توانید از عبارت CalculateExpression("Sum(SumTurnover)", "TotalTotal") > 1000 استفاده کنید. اما چنین عبارتی را می توان در انتخاب سلسله مراتبی استفاده کرد. اگر رکورد پایانی قبل از رکورد شروع باشد، در نظر گرفته می شود که هیچ رکوردی برای محاسبه داده های دقیق و محاسبه توابع جمع وجود ندارد. هنگام محاسبه عبارات بازه برای یک کل کل (پارامتر Grouping روی "GrossTotal" تنظیم شده است)، فرض می شود که هیچ رکوردی برای محاسبه داده های دقیق و محاسبه توابع جمع وجود ندارد. هنگام تولید یک عبارت برای تابع CalculateExpression، ترکیب‌کننده layout، اگر عبارت ترتیبی حاوی فیلدهایی باشد که نمی‌توان از آنها در گروه‌بندی استفاده کرد، تابع CalculateExpression را با NULL جایگزین می‌کند.

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

نحو:
CalculateExpressionWithGroupArray (Expression، GroupFieldExpressions، SelectRecords، SelectGroups)

گزینه ها :

  • اصطلاح(رشته) - عبارتی که باید ارزیابی شود. به عنوان مثال، "Amount(AmountTurnover)"؛
  • FieldExpressionsGroups
  • انتخاب رکوردها
  • انتخاب گروه بندی ها- انتخاب برای رکوردهای گروه اعمال می شود. به عنوان مثال: "Amount(AmountTurnover) > &Parameter1".
مثال:
Maximum(CalculateExpressionWithGroupArray("Amount(AmountTurnover)"، "Counterparty"));


سازنده layout، هنگام تولید عباراتی برای نمایش یک فیلد سفارشی که عبارت آن فقط حاوی تابع CalculateArrayWithGroup است، عبارت نمایش را تولید می کند تا داده های نمایش داده شده توسط view ها و داده ها مرتب شوند.
به عنوان مثال، برای یک فیلد سفارشی با عبارت:
CalculateExpressionWithGroupArray("Amount(AmountTurnover)"، "Counterparty")
سازنده layout عبارت زیر را برای خروجی ایجاد می کند:
ConnectRows(Array(Order(CalculateExpressionWithGroupingValueTable("View(Sum(DataSet.AmountTurnover))، Amount(DataSet.AmountTurnover)"، "DataSet.Account")، "2"))

4. محاسبه عبارت با GroupValueTable (EvalExpressionWithGroupValueTable) - تابع جدولی از مقادیر را برمی گرداند که هر عنصر آن حاوی نتیجه محاسبه یک عبارت برای گروه بندی بر اساس فیلد مشخص شده است.

نحو:
CalculateExpressionWithGroupValueTable (عبارت، عبارات GroupField، انتخاب رکوردها، انتخاب گروه)

گزینه ها :

  • اصطلاح(رشته) - عبارتی که باید ارزیابی شود. یک خط می تواند شامل چندین عبارت باشد که با کاما از هم جدا شده اند. بعد از هر عبارت ممکن است یک کلمه کلیدی اختیاری AS و نام ستون جدول مقدار وجود داشته باشد. به عنوان مثال: "طرف مقابل، مبلغ (مبلغ گردش مالی) به عنوان حجم فروش."
  • FieldExpressionsGroups- عبارات فیلدهای گروه بندی که با کاما از هم جدا شده اند. به عنوان مثال، "Counterparty، Party"؛
  • انتخاب رکوردها- عبارتی که برای رکوردهای جزئیات اعمال می شود. به عنوان مثال، "پرچم حذف = نادرست." اگر این پارامتر از یک تابع تجمیع استفاده کند، هنگام ترکیب داده ها خطایی رخ می دهد.
  • انتخاب گروه بندی ها- انتخاب برای رکوردهای گروه اعمال می شود. به عنوان مثال: "Amount(AmountTurnover) > &Parameter1".
مثال:
محاسبه بیان با جدول گروه بندی مقادیر ("حساب به عنوان طرف مقابل، مبلغ (مبلغ گردش مالی) به عنوان حجم فروش، "حساب")

نتیجه این تابع جدولی از مقادیر با ستون های Counterparty و Sales Volume خواهد بود که شامل طرف مقابل با حجم فروش آنها خواهد بود.
ترکیب‌کننده layout، هنگام ایجاد یک طرح، پارامترهای تابع را به فیلدهای طرح‌بندی ترکیب داده‌ها تبدیل می‌کند. به عنوان مثال، قسمت Account به DataSet.Account تبدیل می شود.
به عنوان مثال، یک فیلد سفارشی با عبارت:
CalculateExpressionWithGroupValueTable("حساب، مبلغ(مبلغ گردش)"، "حساب")
سازنده layout عبارت زیر را برای خروجی ایجاد می کند:
ConnectRows(GetPart(Order(CalculateExpressionWithGroupingValueTable("DataSet.Account، DataSet.AccountRepresentation، Sum(DataSet.AmountTurnover)، View(DataSet.AmountTurnover)، "DataSet.Ordering،"3،"DataSet. ), "2، 4"))

5. سطح - عملکرد برای به دست آوردن سطح ضبط فعلی طراحی شده است.

نحو:
مرحله()

مثال:
مرحله()

6. SequenceNumber - شماره سریال بعدی را دریافت کنید.

نحو:
NumberByOrder()

مثال:
NumberByOrder()

7. SequenceNumberInGrouping - شماره دنباله بعدی را در گروه بندی فعلی برمی گرداند.

مثال:
NumberByOrderInGroup()

8. قالب بندی - یک رشته فرمت شده از مقدار ارسال شده را دریافت کنید.

نحو:
قالب (مقدار، FormatString)

گزینه ها :

  • معنی- عبارتی که باید قالب بندی شود.
  • FormatString- رشته قالب مطابق با رشته قالب 1C: Enterprise تنظیم شده است.
مثال:
قالب (فاکتورهای مصرفی. مقدار سند، "NPV=2")

9. BeginOfPeriod

نحو:
دوره شروع (تاریخ، نوع دوره)

گزینه ها :

  • تاریخ(تاریخ). تاریخ مشخص شده؛
  • نوع دوره
مثال:
StartPeriod (DateTime (2002, 10, 12, 10, 15, 34), "Month")
نتیجه: 10/01/2002 0:00:00

10. EndOfPeriod - این تابع برای انتخاب یک تاریخ خاص از یک تاریخ معین طراحی شده است.

نحو:
پایان دوره (تاریخ، نوع دوره)

گزینه ها :

  • تاریخ(تاریخ). تاریخ مشخص شده؛
  • نوع دوره(خط). حاوی یکی از مقادیر زیر است: Minute; ساعت؛ روز؛ یک هفته؛ ماه؛ ربع؛ سال؛ دهه؛ نیم سال.
مثال:
EndPeriod(DateTime(2002, 10, 12, 10, 15, 34), "Week")
نتیجه: 1381/10/13 23:59:59

11. AddKDate (DateAdd) - این تابع برای افزودن مقدار مشخصی به تاریخ طراحی شده است.

نحو:
AddToDate (بیان، نوع افزایشی، بزرگی)

گزینه ها :

  • اصطلاح(تاریخ). تاریخ اصلی؛
  • نوع بزرگنمایی(خط). حاوی یکی از مقادیر زیر است: Minute; ساعت؛ روز؛ یک هفته؛ ماه؛ ربع؛ سال؛ دهه؛ نیم سال.
  • اندازه(عدد). تا چه مقدار تاریخ باید افزایش یابد، بخش کسری نادیده گرفته می شود.
مثال:
AddToDate(DateTime(2002, 10, 12, 10, 15, 34), "Month", 1)
نتیجه: 11/12/2002 10:15:34

12. تفاوت تاریخ - این تابع برای بدست آوردن تفاوت بین دو تاریخ طراحی شده است.

نحو:
DifferenceDate(Expression1, Expression2, DifferenceType)

گزینه ها :

  • بیان 1(تاریخ). تاریخ کسر شده؛
  • بیان 2(تاریخ). تاریخ اصلی؛
  • TypeDifference(خط). حاوی یکی از مقادیر: Second; دقیقه؛ ساعت؛ روز؛ ماه؛ ربع؛ سال.
مثال:
DATEDIFFERENCE(DATETIME(2002، 10، 12، 10، 15، 34)،
DATETIME(2002، 10، 14، 9، 18، 06)، "DAY")
نتیجه: 2

13. رشته فرعی - این تابع برای استخراج یک رشته فرعی از یک رشته طراحی شده است.

نحو:
رشته فرعی (رشته، موقعیت، طول)

گزینه ها :

  • خط(خط). رشته ای که رشته فرعی از آن استخراج می شود.
  • موقعیت(عدد). موقعیت کاراکتری که رشته فرعی که باید از رشته استخراج شود از آن شروع می شود.
  • طول(عدد). طول رشته فرعی اختصاص داده شده
مثال:
SUBSTRING(Accounts.Address, 1, 4)

14. طول رشته - تابع برای تعیین طول یک رشته طراحی شده است.

نحو:
طول رشته (رشته)

پارامتر :

  • خط(خط). رشته ای که طول آن مشخص می شود.
مثال:
خط (Counterparties. Address)

15. سال- این تابع برای استخراج سال از مقدار نوع Date طراحی شده است.

نحو:
سال (تاریخ)

پارامتر :

  • تاریخ(تاریخ). تاریخی که در آن سال تعیین می شود.
مثال:
YEAR (هزینه. تاریخ)

16. ربع - این تابع برای استخراج عدد یک چهارم از مقدار نوع Date طراحی شده است. عدد یک چهارم معمولاً از 1 تا 4 متغیر است.

نحو:
ربع (تاریخ)

پارامتر :

  • تاریخ(تاریخ). تاریخی که سه ماهه تعیین می شود
مثال:
QUARTER (هزینه. تاریخ)

17. ماه - این تابع برای استخراج شماره ماه از مقدار نوع Date طراحی شده است. تعداد ماه معمولاً از 1 تا 12 متغیر است.

نحو:
ماه (تاریخ)

پارامتر :

  • تاریخ(تاریخ). تاریخی که ماه تعیین می شود.
مثال:
MONTH (هزینه. تاریخ)

18. روز سال (DayOfYear) - این تابع برای بدست آوردن روز سال از مقدار نوع Date طراحی شده است. روز سال معمولاً از 1 تا 365 (366) متغیر است.

نحو:
روز سال (تاریخ)

پارامتر :

  • تاریخ(تاریخ). تاریخی که در آن روز سال تعیین می شود.
مثال:
DAYYEAR (ExpenseAccount.Date)

19. روز- این تابع برای بدست آوردن روز ماه از مقدار نوع Date طراحی شده است. روز ماه معمولاً از 1 تا 31 متغیر است.

نحو:
روز (تاریخ)

پارامتر :

  • تاریخ(تاریخ). تاریخی که در آن روز ماه تعیین می شود.
مثال:
DAY (هزینه. تاریخ)

20. هفته - این تابع برای بدست آوردن عدد هفته سال از مقدار نوع Date طراحی شده است. هفته های سال از 1 شماره گذاری می شوند.

نحو:
هفته (تاریخ)

پارامتر :

  • تاریخ(تاریخ). تاریخی که اعداد هفته تعیین می شود.
مثال:
WEEK (هزینه. تاریخ)

21. روز هفته - این تابع برای بدست آوردن روز هفته از مقدار نوع Date طراحی شده است. روز عادی هفته از 1 (دوشنبه) تا 7 (یکشنبه) متغیر است.

نحو:
روز هفته (تاریخ)

پارامتر :

  • تاریخ(تاریخ). تاریخی که در آن روز هفته تعیین می شود.
مثال:
روز هفته (هزینه. تاریخ)

22. ساعت- این تابع برای بدست آوردن ساعت روز از مقدار نوع Date طراحی شده است. ساعت روز از 0 تا 23 متغیر است.

نحو:
ساعت (تاریخ)

پارامتر :

  • تاریخ(تاریخ). تاریخی که ساعت روز تعیین می شود.
مثال:
HOUR (هزینه. تاریخ)

23. دقیقه - این تابع برای بدست آوردن دقیقه ساعت از مقدار نوع Date طراحی شده است. دقیقه ساعت از 0 تا 59 متغیر است.

نحو:
دقیقه (تاریخ)

پارامتر :

  • تاریخ(تاریخ). تاریخی که دقیقه ساعت تعیین می شود.
مثال:
MINUTE (خرج. تاریخ)

24. دوم - این تابع برای بدست آوردن ثانیه از یک دقیقه از مقدار نوع Date طراحی شده است. ثانیه از یک دقیقه از 0 تا 59 متغیر است.

نحو:
دوم (تاریخ)

پارامتر :

  • تاریخ(تاریخ). تاریخی که ثانیه های دقیقه تعیین می شود.
مثال:
SECOND (هزینه. تاریخ)

25. بازیگران - این تابع برای استخراج یک نوع از عبارتی طراحی شده است که ممکن است دارای یک نوع ترکیبی باشد. اگر عبارت حاوی نوع دیگری غیر از نوع مورد نیاز باشد، NULL برگردانده می شود.

نحو:
اکسپرس (بیان، نوع نشانگر)

گزینه ها :

  • اصطلاح- عبارتی که باید تبدیل شود.
  • نشانگر نوع(خط). شامل یک نوع رشته است. به عنوان مثال، "Number"، "String" و غیره. علاوه بر انواع اولیه، این خط ممکن است حاوی نام جدول باشد. در این صورت سعی می شود اشاره ای به جدول مشخص شده بیان شود.
مثال:
Express(Data.Props1، "Number(10,3)")

26. IsNull (IsNull) - اگر مقدار پارامتر اول NULL باشد، این تابع مقدار پارامتر دوم را برمی گرداند. در غیر این صورت، مقدار پارامتر اول برگردانده می شود.

نحو:
IsNull(Expression1, Expression2)

گزینه ها :

  • بیان 1- ارزشی که باید بررسی شود.
  • بیان 2- اگر Expression1 NULL باشد مقدار را برمی گرداند.
مثال:
YesNULL(مبلغ (فروش. مقدار گردش)، 0)

27.ACos- کسینوس قوس الکتریکی را بر حسب رادیان محاسبه می کند.

نحو:
ACos (بیان)

پارامتر :

  • اصطلاح(عدد). مقدار کسینوس (در محدوده -1 ... 1) که با آن زاویه تعیین می شود.
28.ASin- آرکسین را بر حسب رادیان محاسبه می کند.

نحو:
ASin (بیان)

پارامتر :

  • اصطلاح(عدد). مقدار سینوس (در محدوده -1 ... 1) که با آن زاویه تعیین می شود.
29. ATan- تانژانت را بر حسب رادیان محاسبه می کند.

نحو:
ATan (بیان)

پارامتر :

  • اصطلاح(عدد). مقدار مماس که با آن زاویه تعیین می شود.
30. Cos- کسینوس را محاسبه می کند.

نحو:
Cos (بیان)

پارامتر :

  • اصطلاح
31. انقضا- افزایش عدد e به توان.

نحو:
Exp (بیان)

پارامتر :

  • اصطلاح(عدد). معنی مدرک.
32. ورود- محاسبه لگاریتم طبیعی.

نحو:
گزارش (بیان)

پارامتر :

  • اصطلاح
33.Log10- لگاریتم X تا پایه 10 را محاسبه می کند.

نحو:
Log10 (عبارت)

پارامتر :

  • اصطلاح(عدد). عدد اصلی بزرگتر از 0 است.
34. پاو- توانمندی

نحو:
پاو (پایه، نشانگر)

گزینه ها :

  • پایه(عدد). اساس عملیات توان.
  • فهرست مطالب(عدد). توان.
35. گناه- سینوس را محاسبه می کند.

نحو:
گناه (بیان)

پارامتر :

  • اصطلاح(عدد). بر حسب رادیان مشخص شده است.
36. Sqrt- جذر را محاسبه می کند.

نحو:
Sqrt (بیان)

پارامتر :

  • اصطلاح(عدد). عدد غیر منفی
37. قهوهای مایل به زرد- مماس را محاسبه می کند.

نحو:
قهوهای مایل به زرد (بیان)

پارامتر :

  • اصطلاح(عدد). مقدار سینوس که با آن زاویه تعیین می شود.
38. گرد- عدد اصلی را به عمق بیت مورد نیاز گرد می کند. حالت گرد کردن استاندارد است (1.5 به 2).

نحو:
Env (بیان، عمق بیت)

گزینه ها :

  • اصطلاح(عدد). شماره اصلی؛
  • عمق بیت(عدد). تعداد ارقام اعشار برای گرد کردن.
39. بین- قسمت کسری یک عدد را قطع می کند.

نحو:
شی (بیان)

پارامتر :

  • اصطلاح(عدد). یک عدد کسری
40. توابع ماژول های رایج

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

مثال:
AbbreviatedName(Documents.Link، Documents.Date، Documents.Number)

در این مثال، تابع "AbbreviatedName" از ماژول پیکربندی عمومی فراخوانی می شود.
توجه داشته باشید که استفاده از توابع ماژول مشترک تنها در صورتی مجاز است که پارامتر پردازشگر ترکیب داده مناسب مشخص شده باشد.
علاوه بر این، توابع ماژول های رایج را نمی توان در عبارات فیلد سفارشی استفاده کرد.

41. نارضایتی - این تابع یک نمایش رشته ای از مقدار ارسال شده از یک نوع غیر ابتدایی را برمی گرداند. برای مقادیر از نوع اولیه، خود مقدار را برمی گرداند.

<Пустое значение>".

مثال:
ارائه (طرف مقابل)

42. رشته - این تابع مقدار ارسال شده را به یک رشته تبدیل می کند.

اگر از یک آرایه یا جدول مقادیر به عنوان پارامتر استفاده شود، تابع رشته ای حاوی نمایش رشته ای از تمام عناصر آرایه را برمی گرداند که با کاراکترهای ";" از هم جدا شده اند. اگر هر عنصری یک نمایش رشته خالی داشته باشد، رشته "<Пустое значение>".

مثال:
ردیف (تاریخ فروش)

43. ValueIsFilled

برای مقادیر NULL، Undefined همیشه False را برمی‌گرداند.
برای مقادیر بولی، همیشه True را برمی گرداند.
برای انواع دیگر، اگر مقدار با مقدار پیش‌فرض نوع داده شده متفاوت باشد، True را برمی‌گرداند.

مثال:
ValueFilled (تاریخ تحویل)

44. LevelInGroup - این تابع سطح ضبط فعلی را نسبت به گروه بندی دریافت می کند.

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

مثال:
LevelInGroup()

45. ValueType

نحو:
ValueType (عبارت)

پارامتر :

  • اصطلاح(خط). نوع مقدار رشته
مقداری از نوع Type حاوی نوع مقدار پارامتر تابع را برمی‌گرداند.

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

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

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

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

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

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

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

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

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

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

افزودن درخواست از طریق سازنده

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

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

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

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

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

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

ایجاد تنظیمات ارائه گزارش

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

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

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

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

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

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

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

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

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

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

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

بیایید محتوای کالری را خلاصه کنیم

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

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

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

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

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

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

بیایید آن را (متوسط) از نظر کالری خلاصه کنیم

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

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

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

برو به برگه " فیلدهای محاسبه شده"و فشار دهید سبزعلامت جمع:

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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