1s آرایه توابع مجموع SKD. توابع زبان بیان سیستم ترکیب داده ها. تغییر ترتیب ستون ها

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


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

بر این اساس، اکنون لازم است مجموع گروه های فوق ("انبارها"، "انواع انبار") و کل کل محاسبه شود.
برای این کار از تابع استفاده کنید 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 را با مقادیر مختلف «Calculate by...» با استفاده از عبارات زیر کپی می کنیم، توجه داشته باشید که در هر سطح بالاتر از مقادیر سطوح زیر گروه بندی استفاده می شود. .

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

U این روشبه نظر من یک منفی وجود دارد، اما کار می کند، اما منفی بزرگ است. بیایید به یک مثال نگاه کنیم: در پیکربندی یک سند "دریافت کالا" با قسمت جدولی«محصولات»، لازم است در گزارش، اسناد و اسامی کالاهای دریافتی برای هر سند درج شود.

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

شکل 1. پرس و جو مجموعه داده
در برگه "فیلدهای محاسبه شده"، یک فیلد محاسبه شده به نام TabularPart اضافه کنید و یک رشته خالی را در ستون Expression مشخص کنید (شکل 2 را ببینید).
فیلد محاسبه‌شده ما به‌عنوان یک منبع استفاده خواهد شد، بنابراین در برگه «منابع» عبارت گروه‌بندی را تنظیم می‌کنیم: ConnectRows(Array(Products.Nomenclature)»»). ما همچنین نشان می دهیم که این منبع باید با استفاده از فیلد پیوند محاسبه شود (شکل 3 را ببینید).
نتیجه گزارش:
نکته منفی استفاده از گروه بندی است؛ در مورد ما، گروه بندی توسط ویژگی Link انجام می شود، در غیر این صورت کار نخواهد کرد. وجود یک گروه بندی محدودیت هایی را در تنظیم خروجی داده ها اعمال می کند (شکل 4 را ببینید).

2) فراخوانی تابع خود از یک ماژول مشترک.

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

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


شکل 6. پرس و جو مجموعه داده ها
بیایید یک ماژول مشترک _Demo Work WITH Reports ایجاد کنیم و تابع صادرات را بنویسیم Get List of Products for Report(). کد برنامهتوابع زیر را ببینید.
در برگه "Calculated Fields"، یک فیلد محاسبه شده به نام TabularPart اضافه کنید و در ستون Expression یک فراخوانی تابع را از ماژول عمومی نشان می دهیم (شکل 2 را ببینید):
_DemoWorking WITH Reports. دریافت لیست محصولات برای گزارش (لینک)

بیایید به برگه "تنظیمات" برویم و یک تنظیم برای خروجی داده ایجاد کنیم - این یک رکورد دقیق خواهد بود (شکل 8 را ببینید).
نتیجه گزارش:

دانلود نمونه گزارش

آنچه باید هنگام استفاده از این روش بدانید:
1) عبارت موتور ترکیب داده ممکن است شامل فراخوانی به توابع ماژول های پیکربندی مشترک جهانی باشد. مثلا:
AbbreviatedName (پیوند، تاریخ، شماره)
2) هنگام تولید گزارش به صورت برنامه ای، استفاده از توابع ماژول های رایج تنها در صورتی مجاز است که پارامتر مربوطه پردازشگر ترکیب داده مشخص شده باشد (پارامتر چهارم):
CompositionProcessor = newDataCompositionProcessor;
LayoutProcessor.Initialize(LayoutLayout, DecryptionData, True);
3) توابع ماژول های رایج را نمی توان در عبارات فیلد سفارشی استفاده کرد.
4) اگر هنگام ایجاد گزارشی که عملکردی از یک ماژول مشترک را نشان می دهد، استثنا ایجاد می شود، زمینه اجرای ماژول را بررسی کنید (شکل 9 را ببینید).

شرح توابع استفاده شده

ConnectRows (Value، ItemSeparator، ColumnSeparator)- طراحی شده برای ترکیب رشته ها در یک خط.
  • ارزش - عباراتی که باید در یک خط ترکیب شوند. اگر آرایه باشد، عناصر آرایه در یک رشته ترکیب می شوند. اگر یک ValueTable باشد، تمام ستون‌ها و ردیف‌های جدول در یک ردیف ترکیب می‌شوند.
  • جداکننده عنصر - رشته ای حاوی متن برای استفاده به عنوان جداکننده بین عناصر آرایه و ردیف های جدول مقدار. پیش فرض - کاراکتر خوراک خط.
  • جداکننده های ستون - رشته ای حاوی متن برای استفاده به عنوان جداکننده بین ستون های جدول مقدار. پیش فرض ";".
آرایه ([متفاوت] عبارت)- می توانید از جدول مقادیر به عنوان پارامتر استفاده کنید. در این حالت، نتیجه تابع، آرایه ای خواهد بود که حاوی مقادیر ستون اول جدول مقادیر است که به عنوان پارامتر ارسال می شود. اگر یک عبارت حاوی یک تابع آرایه باشد، آن عبارت به عنوان یک عبارت جمع در نظر گرفته می شود. اگر مشخص شود کلمه کلیدیمتفاوت است، پس آرایه به دست آمده حاوی مقادیر تکراری نخواهد بود.

دریافت لیست محصولات برای گزارش (DocumentLink)- تابع یک خط با لیستی از کالاهای ورودی تولید می کند.
// گزینه ها:
// DocumentLink - DocumentLink.Goods Receipt - Document "Goods Receipt".
// مقدار برگشتی:
// رشته - رشته ای با لیستی از محصولات.
تابع دریافت لیست محصولات برای صادرات گزارش (DocumentLink).

فهرست محصولات = "";

برای هر خط PM از چرخه DocumentLink.Products
فهرست محصولات = فهرست محصولات + خط TC.Nomenclature;
لیست محصولات = لیست محصولات + نمادها.PS;
چرخه پایان

لیست بازگشت محصولات؛

EndFunction // دریافت لیست محصولات برای گزارش ()

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

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

گزینه ها :

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

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

گزینه ها :

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

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

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

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

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

گزینه ها :

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


سازنده layout، هنگام تولید عباراتی برای نمایش یک فیلد سفارشی که عبارت آن فقط شامل تابع CalculateArrayWithGroup است، عبارت خروجی را به گونه ای تولید می کند که داده های نمایش و داده ها مرتب شوند.
به عنوان مثال، برای یک فیلد سفارشی با عبارت:
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: سازمانی.
مثال:
قالب (مقدار فاکتورها. سند، "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 حاوی نوع مقدار پارامتر تابع را برمی‌گرداند.

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

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

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

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

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

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

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

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

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

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

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


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


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

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

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

دسترسی به توابع صادرات یک ماژول مشترک

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

مقداری نکات مهم:

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

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


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

طرح بندی عبارات زبان

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

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

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

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

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

فرض کنید می‌توانید مقدار Document Amount را از خط قبلی درخواست ما با تعیین مقدار Calculate Expression ("مبلغ سند"، "مبلغ قبلی") در قسمت "Expression" دریافت کنید.

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

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

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

بیان مشکل برای استفاده از توابع ACS Array و JoinStrings

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

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

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

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

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

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


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

شرح تابع JoinStrings

JoinStrings

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

نحو:

ConnectRows (Value، ItemSeparator، ColumnSeparator)

گزینه ها:

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