توابع زبان بیان سیستم ترکیب داده ها. گروه بندی فیلدها بر اساس پوشه ها در SKD 1S را نمی توان در گروه بندی استفاده کرد

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

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

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

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

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

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

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

شرح خود توابع جدید:

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

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

2. COMPUTEEXPRESSION()

نحو:

CalculateExpression(,)

شرح:

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

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

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

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

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

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

گزینه ها

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

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

مثلا:

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

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

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

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

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

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

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

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

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

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

· اولین

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

· قبلی

· بعدی (بعدی)

· جاری

· 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 است و می خواهید دریافت کنید. LimitingValue(DateTime(2010, 1, 15))، سپس رکوردی با تاریخ 1389/02/01 دریافت خواهد شد.

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

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

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

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

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

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

تاریخ نام و نام خانوادگی معنی
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("Sum(SumTurnover)"، "First"، "Current")

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

CalculateExpression ("نرخ"، "قبلی")

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

CalculateExpressionWithGroupArray(,) -

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

CalculateExpressionWithGroupValueTable(,) -

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

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

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

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

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

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

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

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

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

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

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

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

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

شرح خود توابع جدید:

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

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

2. COMPUTEEXPRESSION()

نحو:

CalculateExpression(,)

شرح:

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

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

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

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

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

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

گزینه ها

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

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

مثلا:

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

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

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

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

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

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

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

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

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

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

· اولین

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

· قبلی

· بعدی (بعدی)

· جاری

· 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 است و می خواهید دریافت کنید. LimitingValue(DateTime(2010, 1, 15))، سپس رکوردی با تاریخ 1389/02/01 دریافت خواهد شد.

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

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

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

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

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

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

تاریخ نام و نام خانوادگی معنی
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("Sum(SumTurnover)"، "First"، "Current")

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

CalculateExpression ("نرخ"، "قبلی")

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

CalculateExpressionWithGroupArray(,) -

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

CalculateExpressionWithGroupValueTable(,) -

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

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

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

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

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

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

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 برای "Separately"، رکورد 2 و برای "Together" خواهد بود. - رکوردهای 2 و 3. بنابراین، مجموع رکورد فعلی برای "به طور جداگانه" 20 و برای "Together" - 50 خواهد بود. هنگامی که "Together" در پارامترهای Start و End مشخص شده است، نمی توانید یک افست برای موقعیت های "اول"، "آخرین"، "قبلی"، "بعدی". مقدار پیش فرض "جدا" است.
مثال:
به دست آوردن نسبت مبلغ برای قسمت "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 حاوی نوع مقدار پارامتر تابع را برمی‌گرداند.

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


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

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

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

ConnectRows(Array(Order(CalculateExpressionWithGroupingValueTable("مشاهده(Sum(DataSet.AmountTurnover))،Sum(DataSet.AmountTurnover)"،"DataSet.Account")،"2")))

گزینه ها:

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

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

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

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

Maximum(CalculateExpressionWithGroupArray("Amount(AmountTurnover)"، "Counterparty"));

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

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

برای یک مجموعه داده، "Object" برای انتقال داده های خارجی به سیستم کنترل دسترسی، مانند جدول مقادیر، نتیجه یک پرس و جو استفاده می شود. برای این مجموعه داده، توضیحات فیلد و همچنین نام شیئی که به سیستم کنترل دسترسی منتقل می شود، موجود است:

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

در جدول "فیلدها" ویژگی ها پر می شوند:
1. "فیلد" - نام فیلد، در صورت درخواست به طور خودکار پر می شود، در مورد مجموعه داده "شی" به صورت دستی تعیین می شود.

2. "مسیر" - مسیر دسترسی به داده ها را از مجموعه نشان می دهد. این نام مشخص شده در این قسمت است که در تمام تنظیمات ACS بعدی ظاهر می شود.

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

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

5. "محدود کردن در دسترس بودن جزئیات فیلد" - تعدادی از چک باکس های زیر محدودیت هایی را برای جزئیات فیلد نشان می دهد، معنای تنظیم این محدودیت ها مانند فیلد است.

6. "نقش" - نشان دهنده ویژگی های اضافی فیلد و روابط آن با سایر زمینه ها است. برای ویرایش نقش ها، یک گفتگوی ویژه باز می شود:

آ. "بدون نقش" - هیچ "بار" خاصی بر روی فیلد اعمال نمی شود، حالت پیش فرض برای اکثر فیلدها
ب "دوره" - اگر فیلد دارای نوع دوره باشد، شامل شماره دوره است. جوانترین دوره باید از نوع 1 باشد. برای مثال، در یک پرس و جو مجموع دوره های مختلف را محاسبه می کنیم: PeriodSecond = 1، PeriodDay = 2، PeriodWeek = 3، و غیره. این عدد نشان می دهد که چگونه مجموع فیلدهای موجودی در ACS محاسبه می شود.
ج "اضافی" - نشان می دهد که قسمت نقطه اختیاری است
د "حساب" - نشان می دهد که فیلد یک حساب حسابداری است و برای محاسبه کل حسابداری استفاده می شود.
ه. "Type" یک عبارت رشته ای است که برای محاسبه نوع حساب استفاده می شود. نتیجه عبارت باید مقدار شمارش AccountType (Active, Passive, Active/Passive) یا یک عدد باشد. مقدار عدد 0 مربوط به یک حساب فعال، 1 - غیرفعال، 2 - فعال - غیرفعال است. عبارت به زبان بیان سیستم ترکیب داده نوشته شده است. این اطلاعاتهنگام محاسبه با فیلدهای مانده حسابداری استفاده می شود.
f. "Remainders" - نشانه ای است که فیلد یک فیلد باقی مانده است.
g. "Name" - رشته ای حاوی نام گروهی از فیلدهای باقیمانده. به عنوان مثال: "مقدار"، "مقدار"؛
ساعت "نوع" - نوع باقی مانده (InitialRemainder، FinalRemainder، خیر (فیلد باقیمانده نیست)).
من. "رونق." نوع” – نوع مانده حسابداری (بدهی، اعتباری، هیچ (فیلد موجودی حسابداری نیست)).
j "فیلد حساب" - نام فیلد حسابی که موجودی برای آن محاسبه می شود.
ک. مقادیر NULL را نادیده بگیرید - اگر تنظیم شود، اگر فیلد حاوی مقدار NULL باشد، نتیجه نیازی به گنجاندن رکوردهای گروهی برای این فیلد ندارد.
ل "لازم" - هنگام اجرای یک پرس و جو، یک فیلد با پرچم مشخص شده همیشه وجود دارد، حتی اگر در انتخاب انتخاب نشده باشد.

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

به عنوان مثال، شما باید یک تاریخ را به یک قالب خاص تبدیل کنید؛ برای این منظور عبارت زیر را نشان می دهیم: "Format(PeriodHalf-Year,”DF = """Half-Year from"" dd.MM.yyyy"""" )" یا پیوند سند را به یک فرم دلخواه تبدیل کنید: ""تاریخ : "+Link.Date+"Number: "+Link.Number".

8. "بیان سفارش" - نحوه سفارش این فیلد. هنگام ویرایش، یک گفتگو باز می شود:


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

9. "بررسی سلسله مراتب" - در صورت نیاز به ایجاد انتخاب های غیر استاندارد استفاده می شود.
آ. "مجموعه داده" - مجموعه داده برای بررسی سلسله مراتب.
ب "Parameter" - پارامتری که در آن مقداری که می خواهید عناصر فرزند را دریافت کنید جایگزین می شود.

10. "نوع مقدار" - روشن کردن نوع مقدار یک فیلد مجموعه داده که برای روشن کردن فیلدهای یک نوع ترکیبی مفید است.

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


می توانید پارامترهای زیر را تنظیم کنید:
رنگ پس زمینه - رنگ پس زمینه سلول ها را مشخص می کند.
رنگ متن - رنگ متن را در سلول ها مشخص می کند
رنگ نمودار - رنگ خطوط را در نمودار مشخص می کند.
رنگ حاشیه - رنگ خط مرزی
سبک مرزی - انواع خط مرزی
سبک حاشیه سمت چپ - چپ
سبک حاشیه بالا - بالا
سبک حاشیه سمت راست - راست
سبک حاشیه پایین - پایین
فونت - نوع فونت، ضخامت، مایل و غیره.
تورفتگی - تعداد کاراکترهای تورفتگی
تورفتگی خودکار - تعداد کاراکترهای تورفتگی که در گروه بندی ها استفاده می شود
موقعیت افقی - موقعیت افقی متن در یک سلول
موقعیت عمودی - موقعیت عمودی متن در سلول
Placement - متنی را قرار دهید که در سلول قرار نمی گیرد
جهت متن - جهت گیری متن بر حسب درجه (90 چرخش عمود بر)
قالب - رشته مقدار را قالب بندی کنید
هایلایت منفی - برای برجسته کردن مقادیر منفی علامت بزنید
حداقل عرض - حداقل عرض سلول در نقاط
حداقل ارتفاع - حداقل ارتفاع سلول
حداکثر ارتفاع - حداکثر ارتفاع
متن - متنی که به جای مقدار نمایش داده می شود

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


برای قرار دادن یک فیلد در یک پوشه، باید یک پوشه ایجاد کنید، به عنوان مثال "Selection"، سپس برای فیلدهای قرار داده شده در پوشه، مسیر را از طریق نقطه مشخص کنید: "Selection.Organization"، "Selection.Divisions" . پس از این، در فیلدهای موجود هنگام تنظیم، یک پوشه حاوی عناصری که ما تعیین کرده ایم، خواهیم دید.