نحوه راه اندازی گوشی های هوشمند و رایانه های شخصی پرتال اطلاعاتی
  • خانه
  • مشاوره
  • 1c فیلدهایی را محاسبه کرد که از کدام توابع می توان استفاده کرد. توابع زبان بیان سیستم ترکیب داده ها

1c فیلدهایی را محاسبه کرد که از کدام توابع می توان استفاده کرد. توابع زبان بیان سیستم ترکیب داده ها

EvaluateExpression- یک تابع ACS نسبتاً پیچیده برای درک، و نمونه هایی از کاربرد در اطلاعات مرجع نسبتاً کمیاب هستند. این مقاله نمونه هایی را مورد بحث قرار می دهد که مطمئناً برای هر توسعه دهنده ای مفید خواهد بود:

  1. مجموع تجمعی در گروه بندی؛
  2. مجموع در حال اجرا در زبانه متقاطع.
  3. دریافت مقدار قبلی؛
  4. خروجی PM در یک خط

1. دریافت نشانگر در مجموع تجمعی

بیایید تعداد کالاها را به صورت تجمعی در سطح گروه بندی بدست آوریم. برای انجام این کار، یک فیلد محاسبه شده ایجاد می کنیم (شکل 1 را ببینید).
در برگه "منابع"، تابع را برای فیلد محاسبه شده تنظیم کنید:
CalculateExpression ("Sum (NumberTurnover)"، "First"، "Current")
که تعداد محصولات را از اولین رکورد تا رکورد فعلی خلاصه می کند (شکل 2 را ببینید).

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

2. گرفتن مقدار نشانگر از خط قبل

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

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

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

4. خروجی داده های بخش جدولی در یک خط

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

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

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

گزینه ها :

  • اصطلاح(خط). شامل یک عبارت محاسبه شده است.
  • گروه بندی(خط). شامل نام گروهی است که عبارت باید در زمینه آن ارزیابی شود. اگر یک رشته خالی به عنوان نام گروه بندی استفاده شود، محاسبه در زمینه گروه بندی فعلی انجام می شود. اگر خط GeneralTotal به عنوان نام گروه بندی استفاده شود، محاسبه در زمینه کل کل انجام می شود. در غیر این صورت، محاسبه در زمینه گروه بندی والد با همین نام انجام می شود.
    مثلا:
    مقدار (مبلغ فروش.مبلغ گردش مالی) / محاسبه ("مبلغ (مبلغ فروش.مبلغ گردش مالی)"، "کل کل").
    در این مثال، نتیجه نسبت مقدار فیلد Sales.SumTurnover رکورد گروه‌بندی به مقدار همان فیلد در کل طرح‌بندی خواهد بود.
  • نوع تسویه(خط). اگر این پارامتر روی "OverallTotal" تنظیم شود، عبارت برای تمام رکوردهای گروه بندی محاسبه می شود. اگر مقدار پارامتر "گروه بندی" باشد، مقادیر برای رکورد گروه فعلی گروه بندی محاسبه می شود.
2. EvaluateExpression - برای ارزیابی یک عبارت در زمینه گروه بندی در نظر گرفته شده است. این تابع انتخاب گروه بندی ها را در نظر می گیرد، اما انتخاب های سلسله مراتبی را در نظر نمی گیرد. این تابع را نمی توان برای یک گروه بندی در انتخاب گروهی این گروه بندی اعمال کرد.

نحو:
EvaluateExpression (Expression، Grouping، CalculationType، Start، End، Sort، HierarchicalSort، ProcessSimilarOrderValues)

گزینه ها :

  • اصطلاح(خط). شامل یک عبارت محاسبه شده است.
  • گروه بندی(خط). شامل نام گروهی است که عبارت باید در زمینه آن ارزیابی شود. اگر یک رشته خالی به عنوان نام گروه بندی استفاده شود، محاسبه در زمینه گروه بندی فعلی انجام می شود. اگر خط GeneralTotal به عنوان نام گروه بندی استفاده شود، محاسبه در زمینه کل کل انجام می شود. در غیر این صورت، محاسبه در زمینه گروه بندی والد با همین نام انجام می شود.
  • نوع تسویه(خط). اگر این پارامتر روی "OverallTotal" تنظیم شود، عبارت برای تمام رکوردهای گروه بندی محاسبه می شود. اگر مقدار پارامتر "گروه بندی" باشد، مقادیر برای رکورد گروه فعلی گروه بندی محاسبه می شود. اگر پارامتر روی "GroupingNonResource" تنظیم شده باشد، هنگام محاسبه تابع برای یک رکورد گروهی بر اساس منابع، عبارت برای اولین رکورد گروه از گروه بندی اصلی محاسبه می شود. هنگام ارزیابی تابع Evaluate Expression با یک مقدار Non-Resource Grouping برای رکوردهای گروهی که گروه بندی منابع نیستند، این تابع به همان روشی که با مقدار پارامتر Grouping ارزیابی می شود، ارزیابی می شود. سازنده الگوی ترکیب داده، هنگام تولید الگوی ترکیب داده، هنگام خروجی دادن به الگو یک فیلد - منبعی که توسط آن گروه بندی انجام می شود، عبارتی را صادر می کند که با استفاده از تابع EvaluateExpression با پارامتر "GroupingNoResource" مشخص شده در الگو محاسبه می شود. عبارات منبع منظم برای بقیه منابع گروه بندی شده بر اساس منبع بازگردانده می شوند. اگر پارامتر روی Hierarchy تنظیم شده باشد، در صورت وجود یک رکورد سلسله مراتبی والد، و اگر رکورد سلسله مراتبی والد وجود ندارد، عبارت باید برای کل گروه بندی ارزیابی شود. سازنده layout، هنگام تولید عبارتی برای فیلد% در یک گروه سلسله مراتبی، عبارتی حاوی رابطه عبارت منبع با تابع EvaluateExpression برای عبارت منبع ارزیابی شده برای گروه بندی فعلی با نوع محاسبه Hierarchy تولید می کند.
  • شروع کنید... نشان می دهد که با کدام رکورد باید قطعه را شروع کرد، که در آن توابع جمع عبارت را محاسبه کرد و از کدام رکورد مقادیر فیلدهای خارج از توابع جمع را دریافت کرد. رشته ای حاوی یکی از:
    • "اول" ("اول"). شما باید اولین رکورد گروه بندی را بدست آورید. بعد از کلمه داخل پرانتز، می توانید یک عبارت را مشخص کنید که نتیجه آن از ابتدای گروه بندی به عنوان یک افست استفاده می شود. مقدار حاصل باید یک عدد صحیح بزرگتر از صفر باشد. به عنوان مثال، First (3) - گرفتن رکورد سوم از ابتدای گروه بندی. اگر رکورد اول خارج از محدوده گروه بندی باشد، در نظر گرفته می شود که هیچ رکوردی وجود ندارد. به عنوان مثال، اگر 3 رکورد وجود دارد و شما می خواهید اولین (4) را دریافت کنید، در نظر گرفته می شود که هیچ رکوردی وجود ندارد.
    • "آخرین" ("آخرین"). شما باید آخرین رکورد گروه بندی را دریافت کنید. بعد از کلمه داخل پرانتز می توان یک عبارت مشخص کرد که نتیجه آن به عنوان یک افست از انتهای گروه بندی استفاده می شود. مقدار حاصل باید یک عدد صحیح بزرگتر از صفر باشد. به عنوان مثال، آخرین (3) - گرفتن رکورد سوم از پایان گروه بندی. اگر آخرین رکورد خارج از محدوده گروه بندی باشد، در نظر گرفته می شود که هیچ رکوردی وجود ندارد. به عنوان مثال، اگر 3 رکورد وجود دارد و شما می خواهید آخرین (4) را دریافت کنید، در نظر گرفته می شود که هیچ رکوردی وجود ندارد.
    • "قبلی" ("قبلی"). باید رکورد گروه بندی قبلی را بدست آورید. یک عبارت را می توان بعد از کلمه داخل پرانتز مشخص کرد، که نتیجه آن به عنوان یک افست از رکورد گروه بندی فعلی استفاده می شود. به عنوان مثال، قبلی (2) - قبلی را از رکورد قبلی دریافت کنید. اگر رکورد قبلی فراتر از گروه بندی باشد (مثلاً برای دومین رکورد گروه بندی که می خواهید Previous (3) بگیرید)، اولین رکورد گروه بندی به دست می آید. هنگام به دست آوردن رکورد قبلی برای کل گروه بندی، در نظر گرفته می شود که اولین رکورد به دست آمده است.
    • "بعد". باید رکورد گروه بندی بعدی را بدست آورید. یک عبارت را می توان بعد از کلمه داخل پرانتز مشخص کرد که نتیجه آن به عنوان یک افست به جلو از رکورد گروه بندی فعلی استفاده می شود. به عنوان مثال، Next (2) - بعدی را از رکورد بعدی دریافت کنید. اگر رکورد بعدی از گروه بندی خارج شود، در نظر گرفته می شود که هیچ رکوردی وجود ندارد. به عنوان مثال، اگر 3 رکورد وجود داشته باشد و Next برای رکورد سوم دریافت شود، هیچ رکوردی وجود ندارد. هنگامی که رکورد بعدی برای کل گروه بندی دریافت می شود، در نظر گرفته می شود که هیچ رکوردی وجود ندارد.
    • "جاری". شما باید رکورد فعلی را بدست آورید. هنگام بازیابی برای کل گروه بندی، اولین رکورد به دست می آید.
    • "BoundaryValue". نیاز به گرفتن رکورد در مقدار مشخص شده. بعد از کلمه BoundedValue در پرانتز، باید عبارتی را با مقدار آن مشخص کنید که می‌خواهید قطعه، اولین فیلد مرتب‌سازی را شروع کنید. به عنوان رکورد اولین رکورد بدست می آید که مقدار فیلد سفارش آن بزرگتر یا مساوی مقدار مشخص شده باشد. به عنوان مثال، اگر از فیلد Period به عنوان فیلد سفارش استفاده می شود و دارای مقادیر 01/01/2010، 01/02/2010، 01/03/2010 است و می خواهید یک BoundingValue (DateTime (2010) دریافت کنید. ، 1، 15))، سپس رکوردی با تاریخ 01.02. 2010 دریافت خواهید کرد.
  • پایان... نشان می دهد که به کدام رکورد باید قطعه ای را که در آن عبارت جمع ارزیابی می شود ادامه داد. رشته ای حاوی یکی از:
    • "اول" ("اول").
    • "آخرین" ("آخرین").
    • "قبلی" ("قبلی").
    • "بعد".
    • "جاری".
    • "BoundaryValue".
  • مرتب سازی... رشته ای که عبارات را که با کاما از هم جدا شده اند، در جهتی که می خواهید ترتیب ترتیب دهید، فهرست می کند. اگر مشخص نشده باشد، ترتیب به همان روشی انجام می شود که برای گروه بندی که عبارت برای آن ارزیابی می شود. بعد از هر عبارت، می توانید کلیدواژه Ascending، برای مرتبه صعودی، Descending، برای ترتیب نزولی، Auto-ordering، برای مرتب سازی فیلدهای ارجاع شده بر اساس فیلدهایی که می خواهید شی ارجاع شده را بر اساس آنها مرتب کنید، تعیین کنید. کلمه Auto-Arrange را می توان هم با Ascending و هم با Descending استفاده کرد.
  • مرتب سازی سلسله مراتبی... مشابه مرتب سازی. برای مرتب کردن رکوردهای سلسله مراتبی استفاده می شود. اگر مشخص نشده باشد، آهنگساز layout یک ترتیب مطابق با ترتیب مشخص شده در پارامتر Sort ایجاد می کند.
  • پردازش سفارش مقادیر یکسان... رشته ای حاوی یکی از:
    • "Together" نشان می دهد که دنباله ای از رکوردهای مرتب شده برای تعریف رکوردهای قبلی و بعدی استفاده می شود.
    • "به طور جداگانه" - نشان می دهد که رکوردهای قبلی و بعدی بر اساس مقادیر عبارات ترتیب تعیین می شوند.
    به عنوان مثال، اگر دنباله حاصل بر اساس تاریخ مرتب شود:
    1. 01 ژانویه 2001 ایوانف ام. 10
    2. ژانویه 02، 2001 Petrov S. 20
    3.02 ژانویه 2001 سیدوروف آر. 30
    4. 03 ژانویه 2001 پتروف اس. 40
    هنگام استفاده از پردازش همان مقادیر سفارش "به طور جداگانه"، رکورد قبلی برای ضبط 3، رکورد 2 خواهد بود و هنگام استفاده از "Together" - رکورد 1. و قطعه برای رکورد فعلی برای ضبط 2 برای "به طور جداگانه" خواهد بود. رکورد 2 و برای "Together" - رکوردهای 2 و 3 خواهد بود. بنابراین، مجموع رکورد فعلی برای "Separately" 20 و برای "Together" - 50 خواهد بود. اگر "Together" در Start و پارامترهای پایان، نمی توانید برای موقعیت های "اول"، "آخرین"، "قبلی"، "بعدی" یک افست تعیین کنید. پیش فرض جداگانه است.
مثال:
دریافت نسبت مبلغ برای قسمت "Sales.SumTurnover" رکورد گروه بندی به مقدار همان فیلد در کل طرح بندی:
مقدار (Sales.SumTurnover) / CalculateExpression ("مبلغ (Sales.SumTurnover)"، "TotalTotal").

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

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

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

نحو:
EvaluateGroupExpressionArray (Expression,GroupFieldExpressions, RecordSelection, GroupSelection)

گزینه ها :

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


سازنده layout هنگام تولید عباراتی برای نمایش یک فیلد سفارشی، که در عبارت آن فقط تابع EvaluateArrayWithGrouping وجود دارد، عبارت نمایش داده شده را به گونه ای تولید می کند که داده ها برای نمایش نماها و داده ها مرتب شوند.
به عنوان مثال، برای یک فیلد سفارشی با عبارت:
CalculateExpressionWithGroupingArray ("Sum (SumTurnover)"، "Counterparty")
پیوند دهنده layout عبارت زیر را برای خروجی ایجاد می کند:
اتصال ردیف ها (آرایه (Arrange (EvaluateExpressionWith GroupingValuesTable ("نمایش (Sum (Dataset.SumTurnover))، Sum (Dataset.SumTurnover)"، "Dataset.Contractor")، "2")))

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

نحو:
EvaluateGroupExpressionValueTable (عبارت، عبارات GroupField، RecordSelection، GroupSelection)

گزینه ها :

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

نتیجه این تابع جدولی از مقادیر با ستون های Counterparty و SalesVolume خواهد بود که طرف مقابل با حجم فروش خود در آن قرار می گیرد.
سازنده layout، هنگام تولید طرح، پارامترهای تابع را به شرایط فیلدهای طرح بندی ترکیب داده ها تبدیل می کند. به عنوان مثال، قسمت Account به Dataset.Contractor تبدیل می شود.
به عنوان مثال، یک فیلد سفارشی با عبارت:
CalculateExpressionWithGroupValuesTable ("حساب، مقدار (AmountTurnover)"، "حساب")
آهنگساز layout عبارت زیر را برای خروجی ایجاد می کند:
ConnectRows (GetPart (Arrange (EvaluateExpressionWith GroupingValuesTable ("Dataset.Contractor, Dataset.ContractorPresentation, Sum (Dataset.SumTurnover), Presentation (Dataset.TotalTurnover), Dataset.Field" OrderedSet)، "4.

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

نحو:
مرحله()

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

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

نحو:
شماره سفارش ()

مثال:
شماره سفارش ()

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

مثال:
NumberOrderInGrouping ()

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

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

گزینه ها :

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

9. شروع دوره (BeginOfPeriod)

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

گزینه ها :

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

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

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

گزینه ها :

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

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

نحو:
AddKDate (عبارت، نوع افزایشی، مقدار)

گزینه ها :

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

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

نحو:
تفاوت تاریخ (Expression1, Expression2, DifferenceType)

گزینه ها :

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

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

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

گزینه ها :

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

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

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

پارامتر :

  • خط(خط). رشته ای که باید از نظر طول مشخص شود.
مثال:
رشته (Accounts.Address)

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

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

پارامتر :

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

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

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

پارامتر :

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

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

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

پارامتر :

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

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

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

پارامتر :

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

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 (مبلغ (Sales.SumTurnover)، 0)

27. ACos- آرکوزین را بر حسب رادیان محاسبه می کند.

نحو:
ACos (بیان)

پارامتر :

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

نحو:
ASin (بیان)

پارامتر :

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

نحو:
ATan (بیان)

پارامتر :

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

نحو:
Cos (بیان)

پارامتر :

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

نحو:
انقضا (بیان)

پارامتر :

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

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

پارامتر :

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

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

پارامتر :

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

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

گزینه ها :

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

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

پارامتر :

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

نحو:
Sqrt (بیان)

پارامتر :

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

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

پارامتر :

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

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

گزینه ها :

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

نحو:
Int (بیان)

پارامتر :

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

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

مثال:
نام اختصاری (اسناد. پیوند، اسناد. تاریخ، اسناد. شماره)

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

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

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

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

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

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

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

43. ValueIsFilled

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

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

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

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

مثال:
LevelInGroup ()

45. ValueType

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

پارامتر :

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

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

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

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

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

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

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

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

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

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

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

2. محاسبه بیان ()

نحو:

ارزیابی بیان (<Выражение>, <Группировка>, <ОбластьВычисления>, <Начало>, <Конец>, <Сортировка>, <ИерархическаяСортировка>, <ОбработкаОдинаковыхЗначенийПорядка>)

شرح:

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

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

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

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

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

سازنده layout، هنگام تولید عبارتی برای تابع EvaluateExpression، اگر عبارت ترتیبی حاوی فیلدهایی باشد که در گروه بندی نمی توان از آنها استفاده کرد، تابع EvaluateExpression را با NULL جایگزین می کند.

گزینه ها

<Выражение>

نوع: رشته عبارت برای ارزیابی.

<Группировка>

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

مثلا:

مبلغ (Sales.SumTurnover) / محاسبه ("مبلغ (Sales.SumTurnover)"، "TotalTotal")

در این مثال، نتیجه نسبت مقدار فیلد Sales.SumTurnover رکورد گروه‌بندی به مقدار همان فیلد در کل طرح‌بندی خواهد بود.

<ОбластьВычисления>

نوع: رشته پارامتر می تواند مقادیر زیر را بگیرد:

  • GeneralTotal - عبارت برای تمام رکوردهای گروه بندی ارزیابی می شود.
  • سلسله مراتب - عبارت برای رکورد سلسله مراتبی والد، در صورت وجود، و برای کل گروه بندی، اگر رکورد سلسله مراتبی والد وجود نداشته باشد، ارزیابی می شود.
  • گروه بندی - عبارت برای رکورد گروه بندی فعلی ارزیابی می شود.
  • GroupingNonResource - هنگام ارزیابی یک تابع برای یک رکورد گروه بر اساس منابع، عبارت برای اولین رکورد گروه از گروه بندی اصلی محاسبه می شود.

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

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

<Начало>

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

<Конец>

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

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

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

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

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

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

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

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

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

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

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

  • جاری (جاری). شما باید رکورد فعلی را بدست آورید.

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

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

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

<Сортировка>

نوع: رشته فهرستی از عبارات جدا شده با کاما که قوانین دسته بندی را توصیف می کند. اگر مشخص نشده باشد، ترتیب به همان روشی انجام می شود که برای گروه بندی که عبارت برای آن ارزیابی می شود. بعد از هر عبارت، می‌توانید کلیدواژه Ascending (برای ترتیب صعودی)، Descending (برای ترتیب نزولی) و Auto-ordering (برای مرتب‌سازی فیلدهای ارجاع‌شده بر اساس فیلدی‌هایی که می‌خواهید شی ارجاع داده شده را مرتب کنید) را مشخص کنید. کلمه Auto-Arrange را می توان هم با Ascending و هم با Descending استفاده کرد.

<ИерархическаяСортировка>

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

<ОбработкаОдинаковыхЗначенийПорядка>

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

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

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

تاریخ نام و نام خانوادگی معنی
1 01 ژانویه 2001 ایوانف ام. 10
2 02 ژانویه 2001 پتروف اس. 20
3 03 ژانویه 2001 آر. 30
4 04 ژانویه 2001 پتروف اس. 40

اگر مقدار پارامتر جدا باشد، آنگاه:

ورودی قبلی به ورودی 3 ورودی 2 خواهد بود.

اگر قطعه محاسبه شده به صورت Current، Current (به ترتیب پارامترهای Start و End) تعریف شود، برای رکورد 2 این قطعه شامل یک رکورد 2 خواهد بود. برابر 20 باشد.

اگر مقدار پارامتر Together باشد، پس:

ورودی قبلی به ورودی 3 ورودی 1 خواهد بود.

§ اگر قطعه محاسبه شده به عنوان Current، Current (به ترتیب پارامترهای Start و End) تعریف شود، برای رکورد 2 این قطعه شامل رکوردهای 2 و 3 خواهد بود. برابر 50 خواهد بود.

هنگام تعیین مقدار پارامتر برابر با Together، در پارامترهای Start و End، نمی توانید برای موقعیت های First، Last، Previous، Next یک افست تعیین کنید.

محاسبه عبارت ("Sum (SumTurnover)"، "First"، "Current")

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

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

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

EvaluateExpressionGroupedArray(<Выражение>, <ВыражениеПолейГруппировки>, <ОтборЗаписей>, <ОтборГруппировок>) –

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

EvaluateExpressionGroupedValuesTable(<Выражения>, <ВыражениеПолейГруппировки>, <ОтборЗаписей>, <ОтборГруппировок>) –

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

ValueFilled(<Выражение>) - اگر مقدار با مقدار پیش فرض نوع داده شده، غیر از NULL، غیر از یک مرجع خالی، غیر از Undefined متفاوت باشد، مقدار True را برمی گرداند. برای مقادیر بولی، یک بررسی تهی انجام می شود. برای رشته ها، بررسی عدم وجود کاراکترهای بدون فاصله سفید انجام می شود

فرمت(<Выражение>, <Форматная строка>) - رشته فرمت شده مقدار ارسال شده را دریافت کنید. رشته قالب مطابق با رشته قالب سیستم 1C: Enterprise تنظیم شده است.

رشته فرعی(<Выражение>, <Начальные символ>, <ДлинаПодстроки>) - این تابع برای استخراج یک زیر رشته از یک رشته طراحی شده است.

طول خط(<Выражение>) - تابع برای تعیین طول رشته طراحی شده است. پارامتر یک عبارت از نوع رشته است

خط(<Выражение>) - اگر آرایه ای به عنوان پارامتر ارسال شود، تابع رشته ای را برمی گرداند که حاوی نمایش رشته ای از تمام عناصر آرایه است که با نمادها از هم جدا شده اند. ". اگر جدول مقادیر به‌عنوان پارامتر ارسال شود، تابع رشته‌ای حاوی نمایش‌های رشته‌ای از تمام ردیف‌های جدول مقادیر را برمی‌گرداند و نمایش‌های سلولی هر ردیف با «; "، و رشته ها - با یک کاراکتر تغذیه خط. اگر هر عنصری دارای نمایش رشته خالی باشد، رشته به جای نمایش آن نمایش داده می شود<Пустое значение>.

زبان بیان سیستم ترکیب داده ها

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

عبارات در زیر سیستم های زیر استفاده می شود:

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

به معنای واقعی کلمه

عبارات می توانند حاوی لفظ باشند. لفظی از انواع زیر ممکن است:

  • خط
  • عدد؛
  • تاریخ؛
  • بولی.

خط

برای مثال، یک رشته با نویسه های "" نوشته می شود:

"رشته واقعی"

اگر نیاز به استفاده از کاراکتر "" در داخل یک رشته دارید، باید از دو کاراکتر از این قبیل استفاده کنید.

مثلا:

"للفظی" "در نقل قول" ""

عدد

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

10.5 200

تاریخ

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

مثلا:

DATE TIME (1975، 1، 06) - 6 ژانویه 1975 تاریخ (2006، 12، 2، 23، 56، 57) - 2 دسامبر 2006، 23 ساعت و 56 دقیقه و 57 ثانیه، 23 ساعت و 56 دقیقه و 57 ثانیه

بولی

مقادیر بولی را می توان با استفاده از حروف True، False نوشت.

معنی

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

مقدار (نوع حساب. فعال)

عملیات روی اعداد

یگانه -

این عملیات برای معکوس کردن علامت یک عدد در نظر گرفته شده است. مثلا:

فروش.تعداد

Unary +

این عملیات هیچ عملی را روی شماره انجام نمی دهد. مثلا:

فروش.تعداد

دودویی -

این عملیات برای محاسبه تفاوت بین دو عدد طراحی شده است. مثلا:

باقی مانده و گردش مالی. موجودی اولیه - باقی مانده و گردش مالی. مانده نهایی باقی مانده و گردش مالی. موجودی اولیه - 100 400 - 357

باینری +

این عملیات برای محاسبه مجموع دو عدد طراحی شده است. مثلا:

موجودی و گردش مالی. موجودی اولیه + موجودی و گردش مالی. موجودی گردش مالی و گردش مالی. موجودی اولیه + 100 400 + 357

کار کنید

این عملیات برای محاسبه حاصل ضرب دو عدد طراحی شده است. مثلا:

نامگذاری.قیمت * 1.2 2 * 3.14

بخش

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

نامگذاری.قیمت / 1.2 2 / 3.14

باقی مانده از تقسیم

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

قیمت نامگذاری% 1.2 2% 3.14

عملیات رشته

الحاق (باینری +)

این عملیات برای به هم پیوستن دو رشته در نظر گرفته شده است. مثلا:

نامگذاری.مقاله + ":" + نامگذاری. نام

پسندیدن

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

اگر مقدار عملگر LIKE باشد، مقدار TRUE است<Выражения>با الگو مطابقت دارد و در غیر این صورت FALSE.

شخصیت های زیر در<Строке_шаблона>غیر از کاراکتر خط بعدی معنی دارد:

  • % - درصد: دنباله ای حاوی صفر یا بیشتر کاراکتر دلخواه.
  • _ - خط زیر: یک کاراکتر دلخواه.
  • […] - یک یا چند نویسه در کروشه مربع: یک نویسه، هر یک از آنهایی که در داخل پرانتز ذکر شده است. شمارش ممکن است شامل محدوده‌هایی باشد، به‌عنوان مثال، a-z، به معنای یک کاراکتر دلخواه که در محدوده، از جمله انتهای محدوده، گنجانده شده است.
  • [^…] - در داخل پرانتز یک نماد نفی به دنبال یک یا چند کاراکتر: هر کاراکتری به جز آنهایی که بعد از نماد نفی فهرست شده اند.

هر نماد دیگری به معنای خود است و هیچ معنای اضافی ندارد. اگر لازم است یکی از کاراکترهای فهرست شده را به عنوان خود بنویسیم، باید قبل از آن نوشته شود<Спецсимвол>بعد از کلمه کلیدی ESCAPE مشخص شده است.

به عنوان مثال، قالب

"% ABC [abvg] \ _ abc%" SPECIAL SYMBOL "\"

به معنی یک رشته فرعی متشکل از دنباله ای از کاراکترها است: حرف A. حروف B; حروف B; یک رقمی؛ یکی از حروف a، b، c یا d؛ شخصیت زیرخط. حروف a; حروف ب حروف ج علاوه بر این، این دنباله را می توان با شروع از یک موقعیت دلخواه در خط قرار داد.

عملیات مقایسه

برابر است

این عملیات برای مقایسه دو عملوند برای برابری در نظر گرفته شده است. مثلا:

Sales.Contractor = Sales.NomenclatureMainSupplier

نا برابر

این عملیات برای مقایسه دو عملوند برای نابرابری در نظر گرفته شده است. مثلا:

فروش، پیمانکار<>Sales.NomenclatureMainSupplier

کوچکتر

این عملیات برای بررسی این است که عملوند اول کمتر از عملوند دوم است. مثلا:

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

بیشتر

این عملیات برای بررسی بزرگتر بودن عملوند اول از دومی در نظر گرفته شده است. مثلا:

SalesCurrent.Total> SalesPast.Amount

کمتر یا مساوی با

این عملیات برای بررسی این است که عملوند اول کمتر یا مساوی عملوند دوم است. مثلا:

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

بیشتر یا برابر

این عملیات برای بررسی این است که عملوند اول بزرگتر یا مساوی با دومی است. مثلا:

SalesCurrent.Amount> = SalesPast.Amount

عملیات B

این عملیات وجود یک مقدار را در لیست مقادیر ارسال شده بررسی می کند. در صورت یافتن مقدار، نتیجه عملیات True یا در غیر این صورت False خواهد بود. مثلا:

مورد B (& مورد 1 و مورد 2)

عملیات بررسی وجود یک مقدار در یک مجموعه داده

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

فروش. طرف مقابل به طرف مقابل

عملیات بررسی یک مقدار برای NULL

اگر مقدار NULL باشد، این عملیات True را برمی گرداند. مثلا:

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

عملیات بررسی یک مقدار برای نابرابری NULL

اگر مقدار NULL نباشد، این عملیات True را برمی گرداند. مثلا:

فروش. پیمانکار پوچ نیست

عملیات منطقی

عملیات منطقی عبارات بولی را به عنوان عملوند می گیرند.

عملیات نه

اگر عملوند آن False باشد، عملیات True و اگر عملوند آن True باشد، False را برنمی‌گرداند. مثلا:

NOT Document.Consignee = Document.Shipper

عملیات و

اگر هر دو عملوند True باشند، عملگر AND True و اگر یکی از عملوندها False باشد، False را برمی‌گرداند. مثلا:

Document.Consignee = Document.Shipper AND Document.Consignee = & Counterparty

یا عملیات

اگر یکی از عملوندها True باشد، عملیات OR True را برمی‌گرداند و اگر هر دو عملوند False باشد، False را برمی‌گرداند. مثلا:

Document.Consignee = Document.Carrier OR Document.Consignee = & Counterparty

توابع مجموع

توابع انبوه برخی از عملکردها را روی یک مجموعه داده انجام می دهند.

مجموع

تابع Sum aggregate مجموع مقادیر عبارت ارسال شده به آن را به عنوان آرگومان برای تمام رکوردهای جزئیات محاسبه می کند. مثلا:

مقدار (Sales.SumTurnover)

تعداد

تابع Count تعداد مقادیر غیر تهی را محاسبه می کند. مثلا:

مقدار (فروش. پیمانکار)

تعداد مختلف

این تابع تعداد مقادیر متمایز را محاسبه می کند. مثلا:

تعداد (فروش های مختلف. پیمانکار)

بیشترین

تابع حداکثر مقدار را دریافت می کند. مثلا:

حداکثر (موازنه. مقدار)

کمترین

تابع حداقل مقدار را دریافت می کند. مثلا:

حداقل (موجودی. مقدار)

میانگین

تابع میانگین مقادیر غیر NULL را دریافت می کند. مثلا:

میانگین (موجودی. مقدار)

سایر عملیات

عملیات SELECT

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

انتخاب زمانی که مقدار> 1000 سپس مقدار دیگر 0 پایان

قوانین مقایسه دو مقدار

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

  • NULL (کمترین)؛
  • بولی؛
  • عدد؛
  • تاریخ؛
  • خط
  • انواع مرجع

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

اگر انواع داده ها مطابقت داشته باشند، مقادیر مطابق قوانین زیر مقایسه می شوند:

  • نوع بولی دارای مقدار TRUE بیشتر از مقدار FALSE است.
  • نوع Number دارای قوانین مقایسه معمول برای اعداد است.
  • نوع Date دارای تاریخ های زودتر کمتر از تاریخ های بعدی است.
  • برای نوع رشته - مقایسه رشته ها مطابق با ویژگی های ملی تعیین شده پایگاه داده؛
  • انواع مرجع بر اساس مقادیر آنها (اعداد رکورد و غیره) مقایسه می شوند.

کار با مقادیر NULL

هر عملیاتی که در آن مقدار یکی از عملوندها NULL باشد منجر به NULL می شود.

استثناهایی وجود دارد:

  • عملیات AND فقط در صورتی NULL را برمی گرداند که هیچ یک از عملوندها False نباشد.
  • عملیات OR فقط در صورتی NULL را برمی گرداند که هیچ یک از عملوندها True نباشد.

اولویت های عملیات

عملیات دارای اولویت های زیر است (خط اول کمترین اولویت را دارد):

  • B IS NULL IS NOT NULL;
  • =, <>, <=, <, >=, >;
  • باینری +، باینری -;
  • *, /, %;
  • Unary +، ​​Unary -.

توابع زبان بیان سیستم ترکیب داده ها

محاسبه

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

  • اصطلاح. String را تایپ کنید. شامل یک عبارت محاسبه شده است.
  • گروه بندی. String را تایپ کنید. شامل نام گروهی است که عبارت باید در زمینه آن ارزیابی شود. اگر یک رشته خالی به عنوان نام گروه بندی استفاده شود، محاسبه در زمینه گروه بندی فعلی انجام می شود. اگر خط GeneralTotal به عنوان نام گروه بندی استفاده شود، محاسبه در زمینه کل کل انجام می شود. در غیر این صورت، محاسبه در زمینه گروه بندی والد با همین نام انجام می شود. مثلا:
مقدار (Sales.SumTurnover) / محاسبه ("مبلغ (Sales.SumTurnover)"، "TotalTotal")

در این مثال، نتیجه نسبت مقدار فیلد Sales.SumTurnover رکورد گروه‌بندی به مقدار همان فیلد در کل طرح‌بندی خواهد بود.

مرحله

این تابع برای دریافت سطح ضبط فعلی در نظر گرفته شده است.

مرحله()

شماره سفارش

شماره دنباله بعدی را دریافت کنید.

شماره سفارش ()

NumberOrderInGroup

عدد ترتیبی بعدی را در گروه بندی فعلی برمی گرداند.

NumberOrderInGrouping ()

فرمت

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

رشته قالب مطابق با رشته قالب 1C: Enterprise تنظیم شده است.

گزینه ها:

  • معنی؛
  • رشته را قالب بندی کنید.

قالب (Invoices.SumDoc، "NPT = 2")

شروع دوره

گزینه ها:

    • دقیقه؛
    • روز؛
    • یک هفته؛
    • ماه؛
    • ربع؛
    • دهه؛
    • نصف سال.

شروع دوره (DateTime (2002، 10، 12، 10، 15، 34)، "ماه")

نتیجه:

01.10.2002 0:00:00

پایان دوره

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

گزینه ها:

  • تاریخ. تاریخ را تایپ کنید. تاریخ مشخص شده؛
  • نوع دوره String را تایپ کنید. حاوی یکی از مقادیر:
    • دقیقه؛
    • روز؛
    • یک هفته؛
    • ماه؛
    • ربع؛
    • دهه؛
    • نصف سال.

EndPeriod (DateTime (2002، 10، 12، 10، 15، 34)، "Week")

نتیجه:

13.10.2002 23:59:59

افزودن به تاریخ

این تابع برای افزودن مقدار معینی به تاریخ در نظر گرفته شده است.

گزینه ها:

  • نوع بزرگنمایی String را تایپ کنید. حاوی یکی از مقادیر:
    • دقیقه؛
    • روز؛
    • یک هفته؛
    • ماه؛
    • ربع؛
    • دهه؛
    • نصف سال.
  • ارزش - تاریخ چقدر باید افزایش یابد. شماره را تایپ کنید قسمت کسری نادیده گرفته می شود.

افزودن به تاریخ (DateTime (2002، 10، 12، 10، 15، 34)، "Month"، 1)

نتیجه:

12.11.2002 10:15:34

تفاوت تاریخ

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

گزینه ها:

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

DIFFERENCE (DATE TIME (2002، 10، 12، 10، 15، 34)، DATE TIME (2002، 10، 14، 9، 18، 06)، "DAY")

نتیجه:

رشته فرعی

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

گزینه ها:

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

SUBSTRATE (Contractors. Address, 1, 4)

طول خط

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

پارامتر:

  • خط. String را تایپ کنید. رشته ای که باید از نظر طول مشخص شود.

رشته (Accounts.Address)

سال

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

پارامتر:

  • تاریخ. تاریخ را تایپ کنید. تاریخی که در آن سال تعیین می شود.

YEAR (تاریخ فاکتور)

ربع

این تابع برای استخراج یک چهارم عدد از مقداری از نوع Date در نظر گرفته شده است. عدد یک چهارم معمولاً در محدوده 1 تا 4 است.

پارامتر

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

ماه

این تابع برای استخراج عدد ماه از مقداری از نوع Date در نظر گرفته شده است. شماره ماه معمولاً در محدوده 1 تا 12 است.

  • تاریخ. تاریخ را تایپ کنید. تاریخی که ماه تعیین می شود.
MONTH (تاریخ فاکتور)

روز سال

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

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

روز

این تابع برای دریافت روز ماه از مقداری از نوع Date در نظر گرفته شده است. روز ماه معمولاً در محدوده 1 تا 31 است.

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

یک هفته

این تابع برای بدست آوردن شماره هفته از یک مقدار از نوع Date در نظر گرفته شده است. هفته های سال از 1 شماره گذاری می شوند.

  • تاریخ. تاریخ را تایپ کنید. تاریخی که در آن اعداد هفته تعیین می شود.
WEEK (تاریخ فاکتور)

روز هفته

این تابع برای دریافت روز هفته از مقداری از نوع Date در نظر گرفته شده است. روز هفته معمولاً بین 1 (دوشنبه) تا 7 (یکشنبه) است.

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

ساعت

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

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

دقیقه

این تابع برای دریافت دقیقه یک ساعت از مقداری از نوع Date در نظر گرفته شده است. دقیقه ساعت از 0 تا 59 متغیر است.

  • تاریخ. تاریخ را تایپ کنید. تاریخی که دقیقه ساعت تعیین می شود.
MINUTE (تاریخ فاکتور)

دومین

این تابع برای دریافت یک ثانیه از یک دقیقه از مقداری از نوع Date در نظر گرفته شده است. ثانیه از یک دقیقه از 0 تا 59 متغیر است.

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

بیان

این تابع برای استخراج یک نوع از عبارتی است که می تواند دارای یک نوع پیچیده باشد. اگر عبارت حاوی نوع دیگری غیر از نوع مورد نیاز باشد، مقدار NULL برگردانده می شود.

گزینه ها:

  • عبارتی که باید تبدیل شود.
  • نشانگر نوع String را تایپ کنید. شامل یک رشته از نوع به عنوان مثال، "Number"، "String" و غیره. علاوه بر انواع ابتدایی، این رشته می تواند حاوی نام جدول باشد. در این صورت سعی می شود به یک ارجاع به جدول مشخص شده بیان شود.

Express (Data.Props1، "Number (10.3)")

بله نول

اگر مقدار پارامتر اول NULL باشد، این تابع مقدار پارامتر دوم را برمی گرداند.

در غیر این صورت، مقدار پارامتر اول برگردانده می شود.

YesNULL (مبلغ (Sales.SumTurnover)، 0)

توابع متداول ماژول

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

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

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

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

محتوا
1 زبان بیان سیستم ترکیب داده ها
2 لفظ
2.1 رشته
2.2 شماره
2.3 تاریخ
2.4 بولی
2.5 ارزش
3 عملیات روی اعداد
3.1 Unary -
3.2 Unary +
3.3 باینری -
3.4 باینری +
3.5 آثار هنری
3.6 بخش
3.7 باقیمانده
4 عملیات روی رشته ها
4.1 الحاق (باینری +)
4.2 مشابه
5 عملیات مقایسه
5.1 برابر
5.2 برابر نیست
5.3 کمتر
5.4 بیشتر
5.5 کمتر یا مساوی
5.6 بزرگتر یا مساوی
5.7 مرحله B
5.8 عملیات بررسی وجود یک مقدار در یک مجموعه داده
5.9 عملیات بررسی یک مقدار برای NULL
5.10 عملیات بررسی یک مقدار برای نابرابری NULL
6 عملیات منطقی
6.1 عملیات خیر
6.2 عملیات و
6.3 عملیات OR
7 توابع جمع
7.1 مقدار
7.2 مقدار
7.3 تعداد مختلف
7.4 حداکثر
7.5 حداقل
7.6 متوسط
8 سایر عملیات
8.1 عملیات SELECT
9 قانون برای مقایسه دو مقدار
10 کار با NULL
11 اولویت های عملیات
12 توابع زبان بیان سیستم ترکیب داده
12.1 محاسبه کنید
12.2 سطح
12.3 تعداد بر اساس سفارش
12.4 NumberOrderInGroup
12.5 فرمت
12.6 شروع دوره
12.7 پایان دوره
12.8 افزودن به تاریخ
12.9 تفاوت تاریخ
12.10 رشته فرعی
12.11 طول خط
12.12 سال
12.13 سه ماهه
12.14 ماه
12.15 روز سال
12.16 روز
12.17 هفته
12.18 روز هفته
12.19 ساعت
12.20 دقیقه
12.21 ثانیه
12.22 اکسپرس
12.23 بله صفر
12.24 توابع ماژول های رایج

زبان بیان سیستم ترکیب داده ها

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

عبارات در زیر سیستم های زیر استفاده می شود:

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

به معنای واقعی کلمه

عبارات می توانند حاوی لفظ باشند. لفظی از انواع زیر ممکن است:

  • خط
  • عدد؛
  • تاریخ؛
  • بولی.

خط

برای مثال، یک رشته با نویسه های "" نوشته می شود:

"رشته واقعی"


اگر نیاز به استفاده از کاراکتر "" در داخل یک رشته دارید، باید از دو کاراکتر از این قبیل استفاده کنید.

مثلا:

"للفظی" "در نقل قول" ""

عدد

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

تاریخ

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

مثلا:
DATE (1975، 1، 06) - 6 ژانویه 1975
تاریخ زمان (2006، 12، 2، 23، 56، 57) - 2 دسامبر 2006، 23 ساعت و 56 دقیقه و 57 ثانیه، 23 ساعت و 56 دقیقه و 57 ثانیه

بولی

مقادیر بولی را می توان با استفاده از حروف True، False نوشت.

معنی

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

عملیات روی اعداد

یگانه -

این عملیات برای معکوس کردن علامت یک عدد در نظر گرفته شده است. مثلا:
-Sales.Quantity

Unary +

این عملیات هیچ عملی را روی شماره انجام نمی دهد. مثلا:
+ میزان فروش

دودویی -

این عملیات برای محاسبه تفاوت بین دو عدد طراحی شده است. مثلا:
ترازها و گردش مالی. موجودی شروع - ترازها و گردش مالی. تراز نهایی
مانده ها و گردش ها. موجودی اولیه - 100
400 – 357

باینری +

این عملیات برای محاسبه مجموع دو عدد طراحی شده است. مثلا:
مانده ها و گردش ها. موجودی شروع + مانده ها و گردش ها. گردش مالی
موجودی و گردش مالی. موجودی اولیه + 100
400 + 357

کار کنید

این عملیات برای محاسبه حاصل ضرب دو عدد طراحی شده است. مثلا:
نامگذاری.قیمت * 1.2
2 * 3.14

بخش

این عملیات برای بدست آوردن نتیجه تقسیم یک عملوند بر عملوند دیگر در نظر گرفته شده است. مثلا:
نامگذاری.قیمت / 1.2
2 / 3.14

باقی مانده از تقسیم

این عملیات برای بدست آوردن باقیمانده تقسیم یک عملوند بر عملوند دیگر در نظر گرفته شده است. مثلا:
نامگذاری.قیمت% 1.2
2 % 3.14

عملیات رشته

الحاق (باینری +)

این عملیات برای به هم پیوستن دو رشته در نظر گرفته شده است. مثلا:
نامگذاری.مقاله + ":" + نامگذاری. نام

پسندیدن

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

اگر مقدار عملگر LIKE باشد، مقدار TRUE است<Выражения>با الگو مطابقت دارد و در غیر این صورت FALSE.

شخصیت های زیر در<Строке_шаблона>غیر از کاراکتر خط بعدی معنی دارد:

  • % - درصد: دنباله ای حاوی صفر یا بیشتر کاراکتر دلخواه.
  • _ - خط زیر: یک کاراکتر دلخواه.
  • […] - یک یا چند نویسه در کروشه مربع: یک نویسه، هر یک از آنهایی که در داخل پرانتز ذکر شده است. شمارش ممکن است شامل محدوده‌هایی باشد، به‌عنوان مثال، a-z، به معنای یک کاراکتر دلخواه که در محدوده، از جمله انتهای محدوده، گنجانده شده است.
  • [^…] - در داخل پرانتز یک نماد نفی به دنبال یک یا چند کاراکتر: هر کاراکتری به جز آنهایی که بعد از نماد نفی فهرست شده اند.

هر نماد دیگری به معنای خود است و هیچ معنای اضافی ندارد. اگر لازم است یکی از کاراکترهای فهرست شده را به عنوان خود بنویسیم، باید قبل از آن نوشته شود<Спецсимвол>بعد از کلمه کلیدی ESCAPE مشخص شده است.

به عنوان مثال، قالب
"% ABC [abvg] \ _ abc%" SPECIAL SYMBOL "\"

به معنی یک رشته فرعی متشکل از دنباله ای از کاراکترها است: حرف A. حروف B; حروف B; یک رقمی؛ یکی از حروف a، b، c یا d؛ شخصیت زیرخط. حروف a; حروف ب حروف ج علاوه بر این، این دنباله را می توان با شروع از یک موقعیت دلخواه در خط قرار داد.

عملیات مقایسه

برابر است

این عملیات برای مقایسه دو عملوند برای برابری در نظر گرفته شده است. مثلا:
Sales.Contractor = Sales.NomenclatureMainSupplier

نا برابر

این عملیات برای مقایسه دو عملوند برای نابرابری در نظر گرفته شده است. مثلا:
فروش. پیمانکار فروش. نامگذاری تامین کننده اصلی

کوچکتر

این عملیات برای بررسی این است که عملوند اول کمتر از عملوند دوم است. مثلا:
SalesCurrent.Amount

بیشتر

این عملیات برای بررسی بزرگتر بودن عملوند اول از دومی در نظر گرفته شده است. مثلا:
SalesCurrent.Total> SalesPast.Amount

کمتر یا مساوی با

این عملیات برای بررسی این است که عملوند اول کمتر یا مساوی عملوند دوم است. مثلا:
SalesCurrent.Amount

بیشتر یا برابر

این عملیات برای بررسی این است که عملوند اول بزرگتر یا مساوی با دومی است. مثلا:
SalesCurrent.Amount> = SalesPast.Amount

عملیات B

این عملیات وجود یک مقدار را در لیست مقادیر ارسال شده بررسی می کند. در صورت یافتن مقدار، نتیجه عملیات True یا در غیر این صورت False خواهد بود. مثلا:
مورد B (& مورد 1 و مورد 2)

عملیات بررسی وجود یک مقدار در یک مجموعه داده

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

عملیات بررسی یک مقدار برای NULL

اگر مقدار NULL باشد، این عملیات True را برمی گرداند. مثلا:
فروش. پیمانکار تهی است

عملیات بررسی یک مقدار برای نابرابری NULL

اگر مقدار NULL نباشد، این عملیات True را برمی گرداند. مثلا:
فروش. پیمانکار پوچ نیست

عملیات منطقی

عملیات منطقی عبارات بولی را به عنوان عملوند می گیرند.

عملیات نه

اگر عملوند آن False باشد، عملیات True و اگر عملوند آن True باشد، False را برنمی‌گرداند. مثلا:
NOT Document.Consignee = Document.Shipper

عملیات و

اگر هر دو عملوند True باشند، عملگر AND True و اگر یکی از عملوندها False باشد، False را برمی‌گرداند. مثلا:
Document.Consignee = Document.Shipper AND Document.Consignee = & Counterparty

یا عملیات

اگر یکی از عملوندها True باشد، عملیات OR True را برمی‌گرداند و اگر هر دو عملوند False باشد، False را برمی‌گرداند. مثلا:
Document.Consignee = Document.Carrier OR Document.Consignee = & Counterparty

توابع مجموع

توابع انبوه برخی از عملکردها را روی یک مجموعه داده انجام می دهند.

مجموع

تابع Sum aggregate مجموع مقادیر عبارت ارسال شده به آن را به عنوان آرگومان برای تمام رکوردهای جزئیات محاسبه می کند. مثلا:
مقدار (Sales.SumTurnover)

تعداد

تابع Count تعداد مقادیر غیر تهی را محاسبه می کند. مثلا:
مقدار (فروش. پیمانکار)

تعداد مختلف

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

بیشترین

تابع حداکثر مقدار را دریافت می کند. مثلا:
حداکثر (موازنه. مقدار)

کمترین

تابع حداقل مقدار را دریافت می کند. مثلا:
حداقل (موجودی. مقدار)

میانگین

تابع میانگین مقادیر غیر NULL را دریافت می کند. مثلا:
میانگین (موجودی. مقدار)

سایر عملیات

عملیات SELECT

عملیات انتخاب برای انتخاب یکی از چندین مقدار در صورت رعایت شرایط خاصی طراحی شده است. مثلا:
انتخاب زمانی که مقدار> 1000 سپس مقدار دیگر 0 پایان

قوانین مقایسه دو مقدار

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

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

اگر انواع داده ها مطابقت داشته باشند، مقادیر مطابق قوانین زیر مقایسه می شوند:
نوع بولی دارای مقدار TRUE بیشتر از مقدار FALSE است.
نوع Number دارای قوانین مقایسه معمول برای اعداد است.
نوع Date دارای تاریخ های زودتر کمتر از تاریخ های بعدی است.
برای نوع رشته - مقایسه رشته ها مطابق با ویژگی های ملی تعیین شده پایگاه داده؛
انواع مرجع بر اساس مقادیر آنها (اعداد رکورد و غیره) مقایسه می شوند.

کار با مقادیر NULL

هر عملیاتی که در آن مقدار یکی از عملوندها NULL باشد منجر به NULL می شود.

استثناهایی وجود دارد:
عملیات AND فقط در صورتی NULL را برمی گرداند که هیچ یک از عملوندها False نباشد.
عملیات OR فقط در صورتی NULL را برمی گرداند که هیچ یک از عملوندها True نباشد.

اولویت های عملیات

عملیات دارای اولویت های زیر است (خط اول کمترین اولویت را دارد):
یا؛
و
نه
B IS NULL IS NOT NULL;
=, <>, <=, <, >=, >;
باینری +، باینری -;
*, /, %;
Unary +، ​​Unary -.

توابع زبان بیان سیستم ترکیب داده ها

محاسبه

تابع Calculate برای ارزیابی یک عبارت در زمینه برخی از گروه بندی ها طراحی شده است. تابع دارای پارامترهای زیر است:
اصطلاح. String را تایپ کنید. شامل یک عبارت محاسبه شده است.
گروه بندی. String را تایپ کنید. شامل نام گروهی است که عبارت باید در زمینه آن ارزیابی شود. اگر یک رشته خالی به عنوان نام گروه بندی استفاده شود، محاسبه در زمینه گروه بندی فعلی انجام می شود. اگر خط GeneralTotal به عنوان نام گروه بندی استفاده شود، محاسبه در زمینه کل کل انجام می شود. در غیر این صورت، محاسبه در زمینه گروه بندی والد با همین نام انجام می شود. مثلا:
مقدار (Sales.SumTurnover) / محاسبه ("مبلغ (Sales.SumTurnover)"، "TotalTotal")

در این مثال، نتیجه نسبت مقدار فیلد Sales.SumTurnover رکورد گروه‌بندی به مقدار همان فیلد در کل طرح‌بندی خواهد بود.

مرحله

این تابع برای دریافت سطح ضبط فعلی در نظر گرفته شده است.

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

شماره سفارش

شماره دنباله بعدی را دریافت کنید.

مثال:
شماره سفارش ()

NumberOrderInGroup

عدد ترتیبی بعدی را در گروه بندی فعلی برمی گرداند.

مثال:
NumberOrderInGrouping ()

فرمت

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

رشته قالب مطابق با رشته قالب 1C: Enterprise تنظیم شده است.

گزینه ها:
معنی؛
رشته را قالب بندی کنید.

مثال:
قالب (Invoices.SumDoc، "NPT = 2")

شروع دوره

گزینه ها:

    • دقیقه؛
    • روز؛
    • یک هفته؛
    • ماه؛
    • ربع؛
    • دهه؛
    • نصف سال.

مثال:
شروع دوره (DateTime (2002، 10، 12، 10، 15، 34)، "ماه")

نتیجه:

01.10.2002 0:00:00

پایان دوره

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

گزینه ها:

  • تاریخ. تاریخ را تایپ کنید. تاریخ مشخص شده؛
  • نوع دوره String را تایپ کنید. حاوی یکی از مقادیر:
    • دقیقه؛
    • روز؛
    • یک هفته؛
    • ماه؛
    • ربع؛
    • دهه؛
    • نصف سال.

مثال:
EndPeriod (DateTime (2002، 10، 12، 10، 15، 34)، "Week")

نتیجه:

13.10.2002 23:59:59

افزودن به تاریخ

این تابع برای افزودن مقدار معینی به تاریخ در نظر گرفته شده است.

گزینه ها:

  • نوع بزرگنمایی String را تایپ کنید. حاوی یکی از مقادیر:
    • دقیقه؛
    • روز؛
    • یک هفته؛
    • ماه؛
    • ربع؛
    • دهه؛
    • نصف سال.
ارزش - تاریخ چقدر باید افزایش یابد. شماره را تایپ کنید قسمت کسری نادیده گرفته می شود.

مثال:
افزودن به تاریخ (DateTime (2002، 10، 12، 10، 15، 34)، "Month"، 1)

نتیجه:

12.11.2002 10:15:34

تفاوت تاریخ

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

گزینه ها:

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

مثال:
تفاوت (زمان تاریخ (2002، 10، 12، 10، 15، 34)،
DATE (2002، 10، 14، 9، 18، 06)، "DAY")

نتیجه:

رشته فرعی

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

گزینه ها:

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

مثال:
SUBSTRATE (Contractors. Address, 1, 4)

طول خط

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

پارامتر:
خط. String را تایپ کنید. رشته ای که باید از نظر طول مشخص شود.

مثال:
رشته (Accounts.Address)

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

پارامتر:
تاریخ. تاریخ را تایپ کنید. تاریخی که در آن سال تعیین می شود.

YEAR (تاریخ فاکتور)

ربع

این تابع برای استخراج یک چهارم عدد از مقداری از نوع Date در نظر گرفته شده است. عدد یک چهارم معمولاً در محدوده 1 تا 4 است.

پارامتر
تاریخ. تاریخ را تایپ کنید. تاریخی که سه ماهه تعیین می شود

QUARTER (تاریخ ارسال)

ماه

این تابع برای استخراج عدد ماه از مقداری از نوع Date در نظر گرفته شده است. شماره ماه معمولاً در محدوده 1 تا 12 است.
تاریخ. تاریخ را تایپ کنید. تاریخی که ماه تعیین می شود.
MONTH (تاریخ فاکتور)

روز سال

این تابع برای دریافت روز سال از مقداری از نوع Date طراحی شده است. روز سال معمولاً در محدوده 1 تا 365 (366) است.
تاریخ. تاریخ را تایپ کنید. تاریخی که در آن روز سال تعیین می شود.
روز سال (تاریخ فاکتور)

روز

این تابع برای دریافت روز ماه از مقداری از نوع Date در نظر گرفته شده است. روز ماه معمولاً در محدوده 1 تا 31 است.
تاریخ. تاریخ را تایپ کنید. تاریخی که در آن روز ماه تعیین می شود.
DAY (تاریخ فاکتور)

یک هفته

این تابع برای بدست آوردن شماره هفته از یک مقدار از نوع Date در نظر گرفته شده است. هفته های سال از 1 شماره گذاری می شوند.
تاریخ. تاریخ را تایپ کنید. تاریخی که در آن اعداد هفته تعیین می شود.
WEEK (تاریخ فاکتور)

روز هفته

این تابع برای دریافت روز هفته از مقداری از نوع Date در نظر گرفته شده است. روز هفته معمولاً بین 1 (دوشنبه) تا 7 (یکشنبه) است.
تاریخ. تاریخ را تایپ کنید. تاریخی که در آن روز هفته تعیین می شود.
روز هفته (تاریخ فاکتور)

این تابع برای دریافت ساعت روز از مقداری از نوع Date طراحی شده است. ساعت روز از 0 تا 23 متغیر است.
تاریخ. تاریخ را تایپ کنید. تاریخی که ساعت روز تعیین می شود.
HOUR (تاریخ ارسال)

دقیقه

این تابع برای دریافت دقیقه یک ساعت از مقداری از نوع Date در نظر گرفته شده است. دقیقه ساعت از 0 تا 59 متغیر است.
تاریخ. تاریخ را تایپ کنید. تاریخی که دقیقه ساعت تعیین می شود.
MINUTE (تاریخ فاکتور)

دومین

این تابع برای دریافت یک ثانیه از یک دقیقه از مقداری از نوع Date در نظر گرفته شده است. ثانیه از یک دقیقه از 0 تا 59 متغیر است.
تاریخ. تاریخ را تایپ کنید. تاریخی که ثانیه های دقیقه تعیین می شود.
SECOND (تاریخ فاکتور)

بیان

این تابع برای استخراج یک نوع از عبارتی است که می تواند دارای یک نوع پیچیده باشد. اگر عبارت حاوی نوع دیگری غیر از نوع مورد نیاز باشد، مقدار NULL برگردانده می شود.

گزینه ها:
عبارتی که باید تبدیل شود.
نشانگر نوع String را تایپ کنید. شامل یک رشته از نوع به عنوان مثال، "Number"، "String" و غیره. علاوه بر انواع ابتدایی، این رشته می تواند حاوی نام جدول باشد. در این صورت سعی می شود به یک ارجاع به جدول مشخص شده بیان شود.

مثال:
Express (Data.Props1، "Number (10.3)")

بله نول

اگر مقدار پارامتر اول NULL باشد، این تابع مقدار پارامتر دوم را برمی گرداند.

در غیر این صورت، مقدار پارامتر اول برگردانده می شود.

مثال:
YesNULL (مبلغ (Sales.SumTurnover)، 0)

توابع متداول ماژول

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

مثال:
نام اختصاری (اسناد. پیوند، اسناد. تاریخ، اسناد. شماره)

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

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

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

[ برای مشاهده لینک ، لطفا ثبت نام کنید ]

مقالات مرتبط برتر