عبارت فیلد سفارشی 1s 8.3. زبان بیان سیستم ترکیب داده (1Cv8)

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

توسعه پلتفرم 1C: Enterprise 8 فرصت های بیشتر و بیشتری را در اختیار کاربران قرار می دهد. بنابراین، برای مثال، در نسخه 8.2، گزارش‌ها انعطاف‌پذیرتر شده‌اند و به آن‌ها اجازه می‌دهند بدون کمک برنامه‌نویسان واجد شرایط، بر اساس نیازهای مختلف سفارشی شوند.

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

برای مشاهده یا تغییر تنظیمات گزارش، به منوی All Actions رفته و دستور Change Variant را انتخاب کنید. پس از آن، پنجره ای با تنظیمات گزارش باز در مقابل کاربر باز می شود.

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

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

فیلدهای سفارشی

در یک برنامه 1C: مدیریت تجارت 8ویرایش 11 تنظیمات گزارش، گزینه‌های بیشتری را در اختیار کاربران قرار می‌دهد.

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

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

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

بنابراین، یک مثال گویا تنظیمات انعطاف پذیر برای فیلدهای سفارشی در یک برنامه معمولی را نشان می دهد 1C: مدیریت تجارت 8در تنظیمات گزارش ها فرصت های فراوانی را در اختیار کاربر قرار می دهد و به آنها اجازه می دهد تا به سرعت اطلاعات لازم را به شکلی مناسب دریافت کنند.

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

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

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

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

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

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

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

خط

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

"رشته واقعی"

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

برای مثال:

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

عدد

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

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" از ماژول پیکربندی عمومی فراخوانی می شود.

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

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

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

مدتها پیش گزارشی نوشتم "فروش کالا با حمل و نقل" http://infostart.ru/public/16477/. در این نشریه، ما از ارتباط و شایستگی آن صحبت نمی کنیم. این گزارش به عنوان الگویی برای آزمایش ها، تغییرات در نظر گرفته می شود. علاوه بر این، در نظرات آنها نحوه اضافه کردن فیلدها را پرسیدند.

"تنظیمات ..." را باز کنید و به تب "تنظیمات کاربر" بروید.

2. اضافه کردن "New field Expression"

افزودن فیلدها به معنای تجویز عملیات حسابی بین فیلدهای موجود است (این مجاز است، با مربع سبز مشخص شده است). همچنین یک ویژگی، اگر نام چنین فیلدی از دو یا چند کلمه تشکیل شده باشد، باید در آن محصور شود براکت... به این صورت خواهد شد - [مقدار فروش].

پس از ذخیره، این فیلد برای انتخاب در دسترس خواهد بود:

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

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

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

  • حساب "+، -، *، /" با این قابل درک است، من فکر می کنم لازم نیست که اصل عملکرد آنها را توضیح دهیم.
  • عبارات بولی c برای تعیین انتخاب ها استفاده می شود. ">،< , = , >= , <= , <>، و، یا، نه". این عبارات با یک عملیات انتخاب استفاده می شود.
  • عملیات انتخاب برای به دست آوردن یکی از مقادیر ممکن مطابق با شرایط مشخص شده درخواست دهید

انتخاب
چه زمانی< Операция выбора >سپس<Выражение>
در غیر این صورت<Выражение>
پایان
مثال:
انتخاب
WHEN مقدار> 0 و مجموع> 0 سپس "درست"
ELSE "خطا"
پایان

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

  • یک تابع داخلی به شما امکان می دهد تا تغییرات خاصی را با فیلدها انجام دهید.

SUBSTRING ("Expression"، "Start Position"، "End Position") - بخشی از "Expression" را انتخاب می کند که توسط فریم های "Start ..." و "End ..." محدود شده است.
چگونه با مقدار Nomenclature اتفاق می افتد - "Chocolate Paste" فرمول Substring (Nomenclature, 1,5) مقدار "Paste" را به دست می دهد.

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

سال (<Дата>)، ربع (<Дата>), ماه (<Дата>)، روز (<Дата>), روز (<Дата>)، یک هفته(<Дата>)، روزهای هفته (<Дата>), ساعت (<Дата>, MINUTE (<Дата>)، دومین (<Дата>)

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

شروع دوره ("تاریخ"، "دوره شیفت")، پایان دوره ("تاریخ"، "دوره شیفت"). برای داده های تابع، مقدار بیان تاریخ در ابتدا یا انتهای تاریخ مشخص شده است.

افزودن به تاریخ ("تاریخ"، "دوره شیفت"، "مقداری که می خواهید تاریخ را افزایش دهید") - این تابع به شما امکان می دهد تاریخ را با مقدار خاصی افزایش یا کاهش دهید.

تاریخ تفاوت ("تاریخ1"، "تاریخ2"، "دوره شیفت") - این تابع برای دریافت تفاوت بین دو تاریخ طراحی شده است.

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

5. توابع انبوه زبان پرس و جو هنگام گروه بندی نتایج، محاسبه مجموع استفاده می شود

جمع (<>) مجموع حسابی تمام مقادیر موجود در نمونه.
میانگین (<>) میانگین تمام موارد موجود در نمونه را محاسبه می کند
کمترین (<>) حداقل مقدار تمام مقادیر موجود در نمونه را محاسبه می کند
بیشترین (<>) حداکثر مقدار تمام مقادیر موجود در نمونه را محاسبه می کند
عدد (<>) تعداد مقادیر پارامتر را در نمونه می شمارد. این ویژگی امکان استفاده از موارد را فراهم می کند. QUANTITY (*) - به شما امکان می دهد تعداد ردیف های نتیجه را بشمارید. QUANTITY («بیان» مختلف) - به شما امکان می دهد تعداد مقادیر مختلف فیلد مشخص شده را بشمارید.

مقدار (انتخاب
When Substring (Nemclature, 1, 5) = "Paste"
سپس مقدار * 0.2
در غیر این صورت مقدار * 0.35
پایان)

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

سال ([Document.Date])

سالی که سند نوشته شد / ارسال شد نمایش داده می شود.

بیشتر مثال پیچیده، بدون رمزگشایی

انتخاب
When Quarter ([Document.Date]) = 1 AND Substring (Nomenclature, 1, 5) = "Paste"
سپس مقدار * 0.2
در غیر این صورت انتخاب
وقتی کوارتر ([Document.Date]) = 2
سپس مقدار * 0.3
در غیر این صورت انتخاب
هنگامی که یک چهارم ([Document.Date]) = 3
سپس مقدار * 0.4
در غیر این صورت انتخاب
وقتی کوارتر ([Document.Date]) = 4
سپس مقدار * 0.5
پایان
پایان
پایان
پایان

ما تنظیمات گزارش‌های پیاده‌سازی شده بر اساس ACS را با جزئیات بررسی کرده‌ایم. حالا بیایید نگاهی به تنظیمات دقیق تر و دقیق تر گزینه های گزارش بیاندازیم. پنجره تنظیمات "پیشرفته" نوع گزارش با دستور "بیشتر" - "سایر" - "تغییر نوع گزارش" فراخوانی می شود.

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

1. ساختار گزارش.

2. گزارش تنظیمات.


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

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

بخش تنظیمات گزینه گزارش به کاربر فرصت زیادی می دهد تا گزارش را مطابق با نیاز خود پیکربندی کند. تقریباً کاملاً منطبق است با تنظیمات استانداردبیایید همه برگه‌های این بخش را در نظر بگیریم و تفاوت‌ها را یادداشت کنیم.

بخش تنظیمات شامل تب های زیر است:

1. پارامترها.شامل پارامترهای ACS در دسترس کاربر است.

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


جدول پارامترها در قالب "Parameter" - "Value" ارائه شده است. در صورت لزوم می توان مقادیر پارامتر را تغییر داد. با کلیک بر روی دکمه Custom Settings Item Properties تنظیمات سفارشی مورد باز می شود.


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

ویژگی های آیتم سفارشی سازی دارای فیلدها، فیلدها، فیلترها و عناصر شرطی قابل گروه بندی نیز می باشد.

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


کاربر می تواند دو نوع فیلد اضافه کند:

  • فیلد انتخاب جدید ...
  • فیلد عبارت جدید ...

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


به عنوان مثال، بیایید تخمینی از تعداد فروش را محاسبه کنیم. فرض می کنیم اگر کمتر از 10 واحد از یک محصول فروخته شود، فروش کمی دارد و اگر بیشتر از 10 واحد باشد، مقدار زیادی. برای انجام این کار، ما 2 مقدار از فیلد محاسبه شده را تنظیم می کنیم: اولی با انتخاب "تعداد کالاها کمتر یا مساوی" 10 است، دومی با انتخاب "تعداد کالاها است". بزرگتر از "10"".

فیلدهای عبارت به شما این امکان را می دهند که یک مقدار را با استفاده از الگوریتم های دلخواه محاسبه کنید. آنها می توانند از توابع زبان پرس و جو و زبان برنامه نویسی داخلی 1C استفاده کنند. پنجره ویرایش فیلد عبارت شامل دو فیلد برای جزئیات و عبارات خلاصه است. رکوردهای مجموع گروه‌هایی هستند که در ناحیه "ساختار گزارش" پیکربندی شده‌اند، که در آنها باید از توابع جمع استفاده کنید ("مجموع"، "حداقل"، "حداکثر"، "تعداد").

به عنوان مثال، بیایید میانگین درصد تخفیف را محاسبه کنیم. میانگین درصد تخفیف با استفاده از فرمول محاسبه می شود: [میزان فروش بدون تخفیف] - [میزان فروش با تخفیف] / [میزان فروش بدون تخفیف]. باید به خاطر داشت که میزان فروش بدون تخفیف می تواند صفر باشد، بنابراین از اپراتور SELECT برای بررسی استفاده می کنیم. عبارات زیر را دریافت می کنیم:

· برای یادداشت های دقیق:

انتخاب

وقتی [میزان فروش بدون تخفیف] = 0

سپس 0

در غیر این صورت [میزان فروش بدون تخفیف] - [مبلغ فروش با تخفیف] / [مبلغ فروش بدون تخفیف]

پایان

· برای رکوردهای مجموع:

انتخاب

When Amount ([میزان فروش بدون تخفیف]) = 0

سپس 0

در غیر این صورت Amount ([مبلغ فروش بدون تخفیف]) - Amount ([مبلغ فروش با تخفیف]) / Amount ([مبلغ فروش بدون تخفیف])

پایان

همانطور که قبلا ذکر شد، در بیان مجموع از تابع جمع "Sum" استفاده می کنیم.

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


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

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

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


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


6. مرتب سازی.شامل فیلدهای مرتب سازی مورد استفاده در یک نوع گزارش است. سفارشی کردن فیلدهای مرتب سازی به طور مفصل در قسمت 1 این مقاله پوشش داده شده است. مرتب‌سازی به‌طور جداگانه برای هر یک از گروه‌بندی‌ها پیکربندی شده است، اما اگر ریشه «گزارش» را در درخت ساختار انتخاب کنید، می‌توانید فیلدهای مرتب‌سازی کلی را برای یک نوع گزارش تنظیم کنید.


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


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


در پایان، می خواهم توجه داشته باشم که تنظیمات گزارش را می توان نه تنها به عنوان یک نوع گزارش ذخیره کرد، بلکه در یک فایل نیز آپلود کرد (منو "بیشتر" - "ذخیره تنظیمات"). برای دانلود، باید "Load settings" را انتخاب کرده و فایل ذخیره شده را انتخاب کنید. بنابراین، می‌توانیم تنظیمات نوع گزارش را بین پایه‌های مختلفی که پیکربندی یکسانی دارند، منتقل کنیم.


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

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

اما سپس کاربر گفت که باید دو فیلد اضافی اضافه کند:

  1. هشدار کمیت اگر عدد کمتر یا مساوی 5 باشد، هشدار "کافی نیست" است. اگر عدد بزرگتر از 5، سپس کمتر یا مساوی 10 باشد، هشدار "عادی" است. اگر مقدار بیشتر از 10 باشد، آنگاه "Oversupply".
  2. فرمول محاسبه تراز نهایی. در ستون اضافی، کاربر می خواهد ببیند برنامه چه اقداماتی را انجام داده است تا مقدار باقیمانده نهایی را بدست آورد. یعنی فرمول "تراز اولیه + گردش مالی = تراز نهایی" که مقادیر مربوطه جایگزین می شود.

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

فیلدهای اضافی

و بنابراین، بیایید شروع کنیم. بیایید به تنظیمات گزینه گزارش برویم:

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

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

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

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

"انتخاب هنگامی که سپس در غیر این صورت پایان می یابد "،

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

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


در اینجا لازم است در مورد برخی از تفاوت های ظریف بگویم:

  1. ما می توانیم فرمول را در یک سلول فقط به صورت رشته نشان دهیم. بنابراین، ما تمام مقادیر عددی را با استفاده از روش زبان عبارت ACS "String ()" به یک رشته تبدیل می کنیم، که هر مقدار را به یک رشته تبدیل می کند. سپس الحاق رشته ها را انجام می دهیم.
  2. برای اینکه فیلد در مجموع گزارش نمایش داده شود، فرمول مشابهی را به بیان رکوردهای کل اضافه می کنیم. شما فقط باید توابع جمع آوری "SUM ()" را برای هر مقدار مطابق با مجموع اضافه کنید.

همه چیز برای استفاده از فیلدهای گزارش آماده است!

تنظیم و تهیه گزارش

فیلد «فرمول محاسبه مانده نهایی» را به فیلدهای خروجی گزارش اضافه کنید:

عبارت "Alert" را به رکوردهای جزئیات مورد اضافه کنید. برای انجام این کار، فیلد عبارت "Alert" را به گروه "Nomenclature" اضافه کنید. پس از آن، ساختار گزارش به شکل زیر خواهد بود:

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

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

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