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

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

سوال 11.06 امتحان 1C: Platform Professional. هنگامی که در یک سیستم ترکیب داده نمودار استفاده می شود (دریافت شده به صورت خروجی)، با موارد زیر مشخص می شود:

  1. شما فقط می توانید یک نمودار را در فرم خروجی قرار دهید
  2. شما می توانید هر تعداد نمودار را در فرم خروجی قرار دهید، اما آنها باید از یک نوع باشند
  3. شما می توانید هر تعداد نمودار را در فرم خروجی قرار دهید، اما آنها باید داده های یک منبع را نمایش دهند
  4. شما می توانید هر تعداد نمودار را بدون محدودیت در فرم خروجی قرار دهید

پاسخ صحیح چهارم است؛ به عنوان مثال، می توانید گروه بندی خود را برای هر نمودار اضافه کنید. یکی:

و دومی:

سوال 11.14 آزمون 1C: Platform Professional. در چه حالتی شرایط از انتخاب مشخص شده در تنظیمات سیستم ترکیب داده در متن درخواست قرار نمی گیرد؟

  1. مجموعه انتخاب برای گروه بندی
  2. این شرط از یک فیلد محاسبه‌شده یا سفارشی استفاده می‌کند که حاوی عباراتی است که نمی‌توانند در یک زبان پرس و جو نمایش داده شوند
  3. این شرط از فیلدهایی از مجموعه داده های متعدد استفاده می کند
  4. همه موارد بالا درست است

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

سوال 11.15 امتحان 1C: Platform Professional. آیا می توان از توابع بومی در زبان بیان سیستم ترکیب داده استفاده کرد؟

  1. ممنوع است
  2. این امکان پذیر است، اما تنها زمانی که به صورت برنامه نویسی با یک سیستم ترکیب داده کار کنید. توابع باید با کلمه کلیدی "Export" توصیف شوند و باید در یک ماژول مشترک جهانی قرار گیرند
  3. این امکان پذیر است، اما تنها زمانی که به صورت برنامه نویسی با یک سیستم ترکیب داده کار کنید. توابع باید با کلمه کلیدی "Export" توصیف شوند و در هر ماژول معمولی قرار گیرند
  4. این امکان پذیر است، اما تنها زمانی که به صورت تعاملی با سیستم ترکیب داده کار می کنید. توابع باید با کلمه کلیدی "Export" توصیف شوند و باید در یک ماژول مشترک جهانی قرار گیرند
  5. این امکان پذیر است، اما تنها زمانی که به صورت تعاملی با سیستم ترکیب داده کار می کنید. توابع باید با کلمه کلیدی "Export" توصیف شوند و در هر ماژول معمولی قرار گیرند
  6. این امکان هم در حین کار تعاملی و هم برنامه‌ای با سیستم ترکیب داده وجود دارد. توابع باید با کلمه کلیدی "Export" توصیف شوند و در هر ماژول معمولی قرار گیرند

پاسخ صحیح شش است. معلوم نیست عکس برای چیه

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

  1. در قسمت Calculated Fields
  2. در بخش "گزینه ها".
  3. در بخش "Layouts".
  4. در بخش "تنظیمات" در برگه "فیلدهای سفارشی".
  5. تمامی موارد بالا درست است
  6. پاسخ 1 و 4 صحیح است

پاسخ صحیح پنجم است. بیان در فیلدهای محاسبه شده:

در گزینه ها:

در Layouts:

و در زمینه های سفارشی:


سوال 11.19 امتحان 1C: Platform Professional. پارامتر طرح ترکیب داده را می توان ایجاد کرد

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

پاسخ صحیح ششم است - در گزینه سوم پارامتر فقط قابل تغییر است، نه ایجاد:


سوال 11.20 امتحان 1C: Platform Professional. کدام کنترل خروجی یک گزارش را در قالب صفحه گسترده نمایش می دهد؟

  1. فیلد سند صفحه گسترده
  2. فیلد جدول خلاصه
  3. نمودار
  4. نمودار محوری

پاسخ صحیح، پاسخ اول است. قطعا نمودار نیست :)

سوال 11.38 امتحان 1C: Platform Professional. کجا می توانید رابطه بین فیلدهای یک طرحواره خارجی و تودرتو را پیکربندی کنید؟

  1. فیلد سند صفحه گسترده
  2. در تنظیمات خود مدار تو در تو
  3. در تنظیمات طرح خارجی
  4. در پنجره ویژه "تنظیمات نمودار تودرتو"
  5. همه گزینه ها صحیح است
  6. گزینه های 1 و 3 صحیح است

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

برنامه نویس تصمیم گرفت گزارشی را در سیستم ترکیب داده (DCS) ایجاد کند زیرا زمان کمتری می برد. بیایید مراحل ایجاد یک گزارش را مرحله به مرحله بررسی کنیم.

راه حل

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

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

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

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


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

پس از انتخاب نوع گزارش "نمودار" در طراح، باید تنظیمات را انتخاب کنیم:

1. فیلدهای نمودار.


2. نمودارهای سری و نقطه ای


3. نوع نمودار.


در این مرحله می توان کار ایجاد گزارش را تمام شده دانست!

نتیجه

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

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

در پلتفرم 1C:Enterprise، مکانیزمی به نام «سیستم ترکیب داده» (به اختصار DCS) مسئول تولید گزارش‌ها است. در این مقاله سعی خواهیم کرد ارائه دهیم توضیح کوتاهایده ها و معماری مکانیزم ACS و قابلیت های آن.


ACS مکانیزمی است که بر اساس یک توصیف اعلامی از گزارش ها است. سیستم کنترل دسترسی برای تولید گزارش و نمایش اطلاعات با ساختار پیچیده طراحی شده است. به هر حال، علاوه بر توسعه گزارش ها، مکانیسم ACS نیز در 1C: Enterprise در یک لیست پویا، ابزاری برای نمایش اطلاعات لیست با عملکرد غنی (نمایش لیست های مسطح و سلسله مراتبی، طراحی مشروط ردیف ها، گروه بندی ها و غیره) استفاده می شود. ).

کمی تاریخچه

در اولین نسخه پلتفرم 1C: Enterprise 8، نسخه 8.0، گزارش هایی به شرح زیر ارائه شد:
  1. یک یا چند پرس و جو به زبان پرس و جو 1C نوشته شده است (زبان SQL مانند، اطلاعات بیشتری در مورد آن در زیر).
  2. کدی نوشته شده بود که نتایج پرس و جوهای اجرا شده را به سند یا نمودار صفحه گسترده منتقل می کرد. این کد همچنین می تواند کارهایی را انجام دهد که در یک پرس و جو انجام نمی شود - به عنوان مثال، با استفاده از زبان داخلی 1C مقادیر را محاسبه می کند.
رویکرد ساده است، اما راحت ترین نیست - حداقل تنظیمات بصری وجود دارد، همه چیز باید "دست به دست" برنامه ریزی شود. و یکی از برگه های برنده در آن زمان پلت فرم کاملاً جدید "1C: Enterprise 8" به حداقل رساندن در راه حل کاربردی مقدار کدهایی بود که باید به صورت دستی نوشته می شد ، به ویژه از طریق طراحی بصری. منطقی است که همین مسیر را در مکانیسم گزارش دهی دنبال کنیم. این با توسعه یک مکانیسم جدید - سیستم ترکیب داده ها - انجام شد.

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

فرمول بندی مسئله

وظیفه پیش روی تیم توسعه ایجاد یک سیستم گزارش دهی بر اساس الگوریتمی (یعنی از طریق نوشتن کد)، بلکه بر اساس رویکردی اعلامی برای ایجاد گزارش بود. و ما معتقدیم که مشکل با موفقیت حل شده است. در تجربه ما، حدود 80٪ از گزارش های مورد نیاز را می توان با استفاده از ACS بدون یک خط کد (به جز برای نوشتن فرمول برای فیلدهای محاسبه شده)، بیشتر از طریق تنظیمات بصری پیاده سازی کرد.
توسعه اولین نسخه SDS حدود 5 نفر-سال طول کشید.

دو زبان

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

زبان پرس و جو

زبان پرس و جو مبتنی بر SQL است و یادگیری آن برای کسانی که در SQL آگاه هستند آسان است. درخواست نمونه:

دیدن آنالوگ های بخش های استاندارد برای پرسش های SQL آسان است - SELECT، FROM، GROUP BY، ORDER BY.

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

  • دسترسی به فیلدها با استفاده از نقطه اگر فیلدهای یک جدول از نوع مرجع باشند (پیوندهایی به اشیاء جدول دیگری را ذخیره می کنند)، توسعه دهنده می تواند از طریق «.» به آنها در متن درخواست مراجعه کند، و سیستم تعداد سطوح تودرتو را محدود نمی کند. از چنین پیوندهایی (به عنوان مثال، سفارش مشتری. توافقنامه. سازمان. تلفن).
  • شکل گیری چند بعدی و چند سطحی نتایج. مجموع ها و جمع های فرعی با در نظر گرفتن گروه بندی و سلسله مراتب تشکیل می شوند، سطوح را می توان به هر ترتیبی با جمع بندی طی کرد و از ساخت صحیح مجموع ها با توجه به ابعاد زمانی اطمینان حاصل شد.
  • پشتیبانی از جداول مجازی جداول مجازی ارائه شده توسط سیستم به شما این امکان را می دهد که داده های تقریباً آماده را برای اکثر وظایف برنامه بدون نیاز به ایجاد پرس و جوهای پیچیده بدست آورید. بنابراین، یک جدول مجازی می‌تواند داده‌هایی را در مورد مانده‌های محصول بر اساس دوره‌ها در یک نقطه زمانی خاص ارائه دهد. در عین حال، جداول مجازی از اطلاعات ذخیره شده حداکثر استفاده را می کنند، به عنوان مثال، مجموع محاسبه شده قبلی و غیره.
  • میزهای موقت زبان پرس و جو به شما امکان می دهد از جداول موقت در پرس و جوها استفاده کنید. با کمک آنها می توانید عملکرد پرس و جو را بهبود ببخشید، در برخی موارد تعداد مسدود شدن ها را کاهش دهید و خواندن متن پرس و جو را آسان تر کنید.
  • درخواست های دسته ای برای راحت تر کردن کار با جداول موقت، زبان پرس و جو از کار با پرس و جوهای دسته ای پشتیبانی می کند - بنابراین، ایجاد یک جدول موقت و استفاده از آن در یک پرس و جو قرار می گیرد. درخواست دسته ای دنباله ای از درخواست ها است که با نقطه ویرگول (";") از هم جدا شده اند. درخواست ها در دسته یکی پس از دیگری اجرا می شوند. نتیجه اجرای یک درخواست دسته ای، بسته به روش مورد استفاده، یا نتیجه ای خواهد بود که توسط آخرین درخواست در دسته برگردانده می شود، یا آرایه ای از نتایج از تمام پرس و جوهای دسته ای به ترتیبی که در آن پرس و جوها در دسته دنبال می شوند. .
  • بازیابی نمایش فیلدهای مرجع. هر جدول شی (که در آن یک کتاب یا سند مرجع ذخیره می شود) دارای یک فیلد مجازی است - "View". این فیلد حاوی نمایش متنی شی است و کار سازنده گزارش را آسان می کند. بنابراین، برای یک سند، این فیلد حاوی تمام اطلاعات کلیدی است - نام نوع سند، شماره و تاریخ آن (به عنوان مثال، "فروش 000000003 از 07/06/2017 17:49:14")، صرفه جویی در توسعه دهنده از نوشتن یک فیلد محاسبه شده
  • و غیره.
مکانیزم درخواست به طور خودکار درخواست را با در نظر گرفتن نقش‌هایی که کاربری که درخواست از طرف او اجرا می‌شود تعدیل می‌کند (یعنی کاربر فقط داده‌هایی را که حق دیدن آنها را دارد می‌بیند) و گزینه‌های عملکردی (یعنی مطابق با آن‌ها). با مواردی که در عملکرد راه حل برنامه پیکربندی شده اند).

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

مثلا:

  • انتخاب کنید. این جمله فیلدهایی را که کاربر می تواند برای خروجی انتخاب کند را توضیح می دهد. پس از این کلمه کلیدی، نام مستعار فیلدهایی از لیست انتخاب پرس و جو اصلی که برای پیکربندی در دسترس خواهند بود، فهرست می شوند و با کاما از هم جدا می شوند. مثال: (انتخاب مورد، انبار)
  • جایی که. فیلدهایی که کاربر می تواند انتخاب را روی آنها اعمال کند، توضیح داده شده است. این پیشنهاد از فیلدهای جدول استفاده می کند. استفاده از نام مستعار فیلد لیست انتخاب مجاز نیست. هر قسمت از اتحادیه می تواند حاوی عنصر WHERE مخصوص به خود باشد. مثال‌ها: (WHERE Item.*، Warehouse)، (WHERE Document.Date >= &StartDate، Document.Date<= &ДатаКонца}
  • و غیره.
نمونه ای از استفاده از افزونه ها:

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

زبان بیان ترکیب داده ها برای نوشتن عباراتی طراحی شده است که به ویژه برای توصیف عبارات فیلد سفارشی استفاده می شوند. SKD به شما اجازه می دهد تا با استفاده از عبارات خود یا مجموعه ای از گزینه ها با شرایط انتخاب آنها، فیلدهای سفارشی را در یک گزارش تعریف کنید (مشابه با CASE در SQL). فیلدهای سفارشی مشابه فیلدهای محاسبه شده هستند. آنها را می توان هم در پیکربندی و هم در حالت 1C: Enterprise تنظیم کرد، اما عملکردهای ماژول های رایج را نمی توان در عبارات فیلد سفارشی استفاده کرد. بنابراین، فیلدهای سفارشی برای کاربر در نظر گرفته شده است تا توسعه دهنده.

مثال:

فرآیند ایجاد گزارش در مورد سیستم کنترل دسترسی

هنگام ایجاد یک گزارش، باید طرحی ایجاد کنیم که نحوه نمایش داده ها در گزارش را مشخص کند. شما می توانید یک طرح بندی بر اساس نمودار طرح بندی داده ها ایجاد کنید. یک نمودار طرح‌بندی داده، ماهیت داده‌هایی را که به گزارش ارائه می‌شود (از کجا داده‌ها را دریافت کنید و چگونه می‌توانید طرح‌بندی آن را کنترل کنید) را توصیف می‌کند. طرح ترکیب داده ها مبنایی است که بر اساس آن می توان انواع گزارش ها را تولید کرد. طرح ترکیب داده ممکن است شامل موارد زیر باشد:
  • متن درخواست با دستورالعمل برای سیستم ترکیب داده.
  • شرح مجموعه داده های متعدد؛
  • شرح مفصل فیلدهای موجود؛
  • توصیف روابط بین مجموعه داده های متعدد؛
  • شرح پارامترهای اکتساب داده؛
  • شرح طرح‌بندی و گروه‌بندی زمینه؛
  • و غیره.

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

نتیجه راه اندازی طراح پرس و جو متن پرس و جو (در زبان پرس و جو 1C: Enterprise) خواهد بود. در صورت لزوم می توان این متن را به صورت دستی تنظیم کرد:

می‌تواند چندین مجموعه داده در طرح‌بندی داده‌ها وجود داشته باشد، مجموعه‌های داده را می‌توان به هر شکلی در طرح‌بندی پیوند داد، فیلدهای محاسبه‌شده را می‌توان اضافه کرد، پارامترهای گزارش را می‌توان مشخص کرد و غیره. شایان ذکر است یک ویژگی جالب مکانیسم پرس و جو در 1C:Enterprise. پرس و جوها در نهایت به گویش SQL مخصوص DBMS ترجمه می شوند که برنامه مستقیماً با آن کار می کند. به طور کلی، ما سعی می کنیم حداکثر از قابلیت های سرورهای DBMS استفاده کنیم (ما با این واقعیت محدود شده ایم که فقط از قابلیت هایی استفاده می کنیم که به طور همزمان در همه DBMS های پشتیبانی شده توسط پلت فرم 1C: Enterprise - MS SQL، Oracle، IBM DB2 در دسترس هستند. ، PostgreSQL). بنابراین، در سطح پرس و جو در فیلدهای محاسبه شده، ما فقط می توانیم از توابعی استفاده کنیم که به SQL ترجمه شده اند.

اما در سطح طرح ترکیب داده ها، می توانیم فیلدهای سفارشی را اضافه کنیم و از توابع در آنها در زبان توسعه داخلی 1C (از جمله مواردی که توسط ما نوشته شده است) استفاده کنیم، که به میزان زیادی قابلیت های گزارش ها را گسترش می دهد. از نظر فنی، به نظر می رسد - هر چیزی که می تواند به SQL ترجمه شود به SQL ترجمه می شود، پرس و جو در سطح DBMS اجرا می شود، نتایج پرس و جو در حافظه سرور برنامه 1C قرار می گیرد و SKD برای هر رکورد مقادیر را محاسبه می کند. از فیلدهای محاسبه شده که فرمول آنها به زبان 1C نوشته شده است.


افزودن فیلدهای سفارشی

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


طراح گزارش


گزارش زمان اجرا

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

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

  • توسعه دهنده در زمان طراحی با کمک یک طراح (یا در زمان اجرا با استفاده از کد) طرح طرح داده را تعیین می کند:
    • متن درخواست/درخواست
    • شرح فیلدهای محاسبه شده
    • روابط بین درخواست ها (در صورت وجود چندین مورد)
    • گزینه های گزارش
    • تنظیمات پیش فرض
    • و غیره.
  • تنظیمات فوق در طرح بندی ذخیره می شوند
  • کاربر گزارش را باز می کند
    • احتمالاً تنظیمات اضافی انجام می دهد (مثلاً مقادیر پارامترها را تغییر می دهد)
    • روی دکمه "تولید" کلیک کنید
  • تنظیمات کاربر بر روی طرح ترکیب داده تعریف شده توسط توسعه دهنده اعمال می شود.
  • یک طرح ترکیب داده میانی شکل می گیرد که حاوی دستورالعمل هایی در مورد اینکه از کجا داده ها را دریافت کنید. به طور خاص، پرس و جوهای مشخص شده در طرح تنظیم می شوند. بنابراین، فیلدهایی که در گزارش استفاده نمی شوند از درخواست حذف می شوند (این کار به منظور به حداقل رساندن مقدار داده های دریافتی انجام می شود). تمام فیلدهایی که در فرمول های فیلد محاسبه شده شرکت می کنند به پرس و جو اضافه می شوند.
  • پردازشگر ترکیب داده وارد عمل می شود. پردازنده layout کوئری ها را اجرا می کند، مجموعه داده ها را پیوند می دهد، مقادیر فیلدها و منابع محاسبه شده را محاسبه می کند و گروه بندی را انجام می دهد. در یک کلام، تمام محاسباتی که در سطح DBMS انجام نشده است را انجام می دهد.
  • پردازشگر خروجی داده درخواستی را برای اجرا راه اندازی می کند و داده های دریافتی را در یک سند صفحه گسترده، نمودار و غیره نمایش می دهد.


فرآیند تولید گزارش با استفاده از مکانیزم ACS

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

تنظیمات سفارشی

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


تنظیم حالت نمایش در زمان طراحی


نمایش تنظیمات در حالت دسترسی سریع در زمان اجرا (زیر دکمه Generate)

برنامه های توسعه

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

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

و اکنون فرا رسیده است - زمان نمودارها. من اکنون در یک شرکت سرمایه گذاری کار می کنم که با مدیریت امانت وجوه مشتری نیز سروکار دارد. مشتریان متفاوت هستند: از صندوق های بازنشستگی بزرگ غیر دولتی گرفته تا سرمایه گذاران خصوصی که می خواهند 2-3 میلیون روبل خود را به طور سودآور سرمایه گذاری کنند. باید گفت که با چنین سرمایه گذاری حتی با یک استراتژی محتاطانه می توانید درآمدی بالاتر از نرخ سود سپرده های بانکی کسب کنید. با این حال، شما ممکن است تقریبا هیچ چیز را برنده شوید. اما اگر نیاز دارید در مدت زمان کوتاهی (یک یا دو سال) درآمد داشته باشید، ارزش آن را ندارد که برای این کار به خرید املاک یا طلا بپردازید.

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

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

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

هر سند صفحه گسترده شامل مجموعه ای از تصاویر است. این می تواند شامل هر دو طرح استاتیک (آرم، پیکتوگرام، عکس) و نمودار باشد. در مورد نمودار، عنصر مجموعه Picture دارای یک ویژگی Object از نوع Diagram مقداردهی شده است. توجه به این نکته ضروری است که اگر یک سند صفحه‌گسترده را با خروجی پی در پی مناطق طرح‌بندی با نمودارها در آن ایجاد کنید، هیچ راه آسانی برای یافتن نمودار مورد نظر در سند نهایی وجود ندارد: فهرست و نام شکل می‌تواند هر بار که ناحیه به سند خروجی می‌شود، تنها چیزی که باقی می‌ماند جستجو بر اساس ویژگی‌های یک شی است، مانند Title یا ChartType.

در اکسل، نمودار 1C به صورت تصویر آپلود می شود.

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

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

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

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

موارد منحط: یک نمودار دایره ای دارای سری های زیادی است، اما یک نقطه، و یک هیستوگرام یا نمودار را می توان با استفاده از یک سری، اما چندین نقطه ساخت.

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

مثلا،

If Area1.Drawings.Object.Points.Count()< Инд Тогда

Area1.Drawings.Object.Points.Add();

endIf;

Area1.Drawings.Object.Points[Ind-1].Text=”February”;

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

بنابراین، باید نموداری مانند این ترسیم کنیم:

مشکل 1: 1C نمی داند چگونه شیب امضاهای مقیاس را تغییر دهد. می توانید امضاها را به صورت افقی یا عمودی قرار دهید. ما آن را به صورت عمودی انجام می دهیم.

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

بیایید به نمودار زیر برویم:

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

مشکل 4. علاوه بر این، رنگ برچسب های مقدار در نمودار متفاوت است - برای سری 1 سفید است، برای سری 2 سیاه است. 1C هم نمی تواند این کار را انجام دهد. شما باید از سفید در سراسر استفاده کنید.

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

مشکل 5. به نظر می رسد که شی نمودار دارای ویژگی MinimumValue است و هیچ کس مانع از تنظیم آن نمی شود. نصب می کنیم. اوه معلوم می شود که برای هیستوگرام ها کار نمی کند. حیف شد. اما یک ویژگی BasicValue وجود دارد. آن را روی 307 تنظیم کنید و آنچه را که نیاز دارید دریافت کنید.

با این حال، آزمایش سریع گزارش نشان می‌دهد که مقدار پایه فقط زمانی درست کار می‌کند که سری 1 نقش غالب را بازی می‌کند. اگر در نقطه اول مقدار برای سری 1 کوچک باشد، و مقدار برای سری 2 یا هر سری دیگر متفاوت از سری اول باشد. ، بزرگ خواهد بود، سپس چیزی شبیه به زیر دریافت خواهیم کرد:

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

در کنفرانس شریک، این موضوع (خواص غیر کاری Minimum و MaximumValue) چندین بار مطرح شد، اما چیزهایی هنوز وجود دارد. شاید در بین کاربرانی که به ندرت با نمودارها در 1C کار می کنند، پشتکار وجود نداشته باشد.

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

تکثیر آن بسیار آسان است.

مشکل 6. ما از چندین بخش افقی یک طرح می سازیم. در هر کدام 2-3 نمودار قرار می دهیم. ما همه اینها را در یک سند صفحه گسترده نمایش می دهیم و مقادیر نمودارها را به صورت برنامه ریزی شده پر می کنیم. و ناگهان می بینیم که زیرنویس ها در مقیاس افقی یکی از نمودارها ناپدید می شوند. در دیباگر می بینیم که در ناحیه پر شده layout نام نقاط وجود دارد، اما پس از اجرای روش

TabDoc.Output(Area1);

نمودار بدون نام نقاط در TabDoc به پایان می رسد. خطا از نموداری به نمودار دیگر "راه می رود"، اما به طور مداوم بازتولید می شود. حداقل در نسخه 8.2.17.

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

مسئله 7.

نمایش نمودار شفاف 1C در اکسل غیرممکن است. نمودار 1C دارای ویژگی "Transparent background" است و می توان از آن هنگام خروجی به یک سند صفحه گسترده استفاده کرد. اما هنگامی که به اکسل صادر می شود، نمودارهای 1C با تصاویر و در عین حال مات جایگزین می شوند.

من سعی کردم از 1C استفاده کنم تا نمودار را با یک تصویر شفاف جایگزین کنم. این نمودار دارای یک متد GetImage() است.
بعد، من فایل BMP را روی داده های باینری (احتمالاً در یک فایل) آپلود کردم.و با استفاده از سازنده یک شی Image جدید ایجاد کرد. اگر هنگام ایجاد تصویر از منبع، پارامتر دوم را روی True قرار دهید، تصویر به شفاف تبدیل می شود. و اگر اندازه تصویر = تغییر متناسب باشد، می توان یک تصویر شفاف را به اکسل صادر کرد.

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

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

در مورد حل مشکل خاص من، در پایان تمام نمودارها را مستقیماً در اکسل رسم کردم. و همه چیز درست شد.

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

اگر خطایی پیدا کردید، لطفاً یک متن را انتخاب کنید و Ctrl+Enter را فشار دهید.