نحوه راه اندازی گوشی های هوشمند و رایانه های شخصی. پرتال اطلاعاتی

1c 8.3 پارامترهای طرح بندی داده. ایجاد گزارش جدید

توجه! در اینجا یک نسخه آزمایشی از درس است که ممکن است مطالب آن کامل نباشد.

به عنوان دانشجو وارد شوید

برای دسترسی به محتوای مدرسه به عنوان دانش آموز وارد شوید

سیستم ترکیب داده 1C 8.3 برای مبتدیان: ایجاد ارتباط بین مجموعه داده ها

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

ایجاد گزارش جدید

پایگاه داده "Gastronom" را در پیکربندی باز کنید و یک گزارش جدید از طریق منوی اصلی ایجاد کنید:

نوع سند - "گزارش خارجی":

در قالب یک گزارش جدید، نام "Lesson6" را مشخص کرده و روی دکمه "Open data Composition scheme" کلیک کنید:

نام طرح پیش فرض را بگذارید:

اضافه کردن اولین مجموعه داده

در نموداری که باز می‌شود، به برگه «مجموعه داده‌ها» بروید و «افزودن مجموعه داده - پرسش» را از طریق علامت سبز سبز انتخاب کنید:

سازنده پرس و جو را صدا می زنیم:

جدول «مشتریان» و فیلدهایی را که می خواهید از پرس و جو دریافت کنید، مشخص کنید:

افزودن مجموعه داده دوم

افزودن مجموعه داده دوم:

آن را انتخاب کنید (DataSet2) و دوباره سازنده query را فراخوانی کنید:

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

اینم متن درخواست:

لطفاً توجه داشته باشید که ما اکنون دو مجموعه داده در گزارش داریم: DataSet1 و DataSet2. هر کدام متن و داده های درخواست خود را دارند.

توصیفی تر کردن نام ها

برای وضوح، اجازه دهید Dataset1 را به Clients و Dataset2 را به Food تغییر نام دهیم.

این کار را با دوبار کلیک کردن روی هر یک از مجموعه ها انجام دهید:

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

در حال حاضر، مجموعه "مشتریان" دارای فیلدهای زیر است: "Name" و "FavoriteColor" و مجموعه "Food": "Name" و "Color".

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

مجموعه "Clients" را انتخاب کنید و نام فیلدها را به این صورت تغییر دهید:

سپس مجموعه "غذا" را انتخاب کنید و نام فیلدها را به این صورت تغییر دهید:

فراخوانی سازنده تنظیمات

در نهایت، به تب "تنظیمات" بروید و چوب جادویی را فشار دهید تا سازنده تنظیمات ظاهر شود:

نوع گزارش - "فهرست...":

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

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

بررسی گزارش

ما گزارش را ذخیره می کنیم و آن را در حالت کاربر تولید می کنیم:

آره باشه ولی نه واقعا به اصطلاح یک اتصال متقاطع از این دو مجموعه انجام شده است (شما باید با این پیوندها در پرس و جوهایی که در ماژول های قبلی مطالعه کردیم با آن آشنا شوید). هر رکورد از جدول "مشتریان" یک رکورد مربوطه از جدول "غذا" دارد.

اما از بین تمام این رکوردها، ما باید فقط مواردی را که فیلد "FavoriteCustomerColor" برای آنها برابر است با قسمت "FoodColor" باقی بگذاریم:

پیوند دادن دو مجموعه داده

برای انجام این کار، بیایید دو مجموعه داده (مشتریان و غذا) را با فیلدهای رنگ مورد علاقه مشتری و رنگ غذا پیوند دهیم.

به تب "Dataset Links" رفته و روی دکمه مثبت کلیک کنید تا پیوند جدیدی اضافه کنید:

پارامترها را مطابق شکل زیر تنظیم کنید:

یه توضیحی میدم

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

بیان منبعدر اینجا یک عبارت یا به سادگی یک فیلد از مجموعه داده منبع مشخص کنید (ما فیلد رنگ دلخواه Client را از مجموعه Clients در اینجا مشخص کرده ایم).

بیان گیرندهما در اینجا یک عبارت یا فقط یک فیلد از مجموعه داده های گیرنده را نشان می دهیم (در اینجا قسمت Food Color را از مجموعه Food نشان دادیم).

بنابراین، این پیوند تنها ردیف‌هایی را از لیست قبلی باقی می‌گذارد که فیلد FavoriteColor برای مشتری برابر با قسمت FoodColor است.

گزارش را ذخیره کرده و در حالت کاربر اجرا کنید:

عالی!

من در مورد رشته توضیح خواهم داد " شرایط ارتباطی"، که برنامه نویسان مبتدی اغلب بر نیزه های خود می زنند.

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

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

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

ایجاد گزارش در 1C از طریق SKD

فرآیند تهیه گزارش با استفاده از SKD را می توان به مراحل زیر تقسیم کرد:

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

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

نمونه ای از ایجاد یک گزارش خارجی در ACS را در نظر بگیرید:


اکنون به 1C می رویم، گزارش خود را باز می کنیم تا مطمئن شویم اقدامات انجام شده صحیح است. همه داده ها منعکس می شوند، گروه بندی ها را می توان جمع کرد و گسترش داد. همانطور که می بینید، ACS به شما اجازه می دهد تا بدون نوشتن کد، گزارش های کامل را دریافت کنید، به جز موارد غیر استاندارد. با توجه به اینکه اکثر گزارش ها ساختار مشابهی دارند، دانش ACS زمان توسعه این اشیاء را به میزان قابل توجهی کاهش می دهد.

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

قابلیت های SKD

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


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


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


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


مکانیسم SKD 1C:Enterprise 8.3 همچنین دارای عملکرد گسترده ای برای توسعه دهندگان است. هنگام توسعه گزارش، ما فقط از 2 تب - "Datasets" و "Settings" استفاده کردیم، اما تعداد بیشتری از آنها در ACS وجود دارد. برای استفاده از تمام عملکردهای سیستم ترکیب داده، باید بدانید که هر یک از تب ها برای چه مواردی لازم است:

  1. مجموعه داده ها - تمام پرسش های مربوط به تولید گزارش در اینجا فهرست شده اند.
  2. روابط مجموعه داده - برای ایجاد روابط بین پرس و جوهای مختلف از تب اول استفاده می شود.
  3. فیلدهای محاسبه شده - لیستی از فیلدهای اضافه شده که از پرس و جو نیستند. اغلب در مواردی استفاده می شود که بر اساس مقادیر چندین فیلد، باید 1 مقدار از درخواست دریافت کنید.
  4. منابع در 1C، این نام فیلدهایی است که باید مجموع آنها را بدانید. منابع از عملیات حسابی مختلف پشتیبانی می کنند - مجموع، کمیت، حداکثر، و غیره.
  5. گزینه ها. آنها در صورتی استفاده می شوند که برای تولید گزارش لازم باشد کاربر داده های خاصی را وارد کند - به عنوان مثال، تاریخ، بخش ها یا نامگذاری.
  6. طرح بندی ها برای مواردی طراحی شده است که کاربران می خواهند گزارشی با طراحی منحصر به فرد ببینند. یک مکان جداگانه برای امضاها یا بالای گزارش ایجاد کنید - همه اینها را می توان در اینجا انجام داد.
  7. طرحواره های تو در تو آنها زمانی مورد نیاز هستند که گزارش شما باید حاوی داده هایی از گزارش های دیگر باشد.
  8. تنظیمات. این بخش فیلدهای خروجی، گروه بندی ها را اعلام می کند و ظاهر گزارش را پیکربندی می کند.


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

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

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


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

کمی تاریخ

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

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

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

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

دو زبان

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

زبان پرس و جو

زبان پرس و جو بر اساس SQL است و به راحتی توسط کسانی که SQL می دانند تسلط دارند. نمونه درخواست:

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

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

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

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

مثلا:

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

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

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

مثال:

فرآیند ایجاد گزارش در مورد ACS

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

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

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

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

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


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

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


طراح گزارش


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

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

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

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


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

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

تنظیمات کاربر

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


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


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

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

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

روند ایجاد گزارش در 1C 8.3 با استفاده از سیستم ترکیب داده ها را در نظر بگیرید. به عنوان مثال، بیایید کار زیر را انجام دهیم: گزارش باید داده هایی را از قسمت جدولی کالاهای اسناد فروش کالا و خدمات برای یک دوره معین و برای سازمان انتخاب شده وارد کند. همچنین باید داده ها را بر اساس فیلدهای Counterparty، Link to document و Nomenclature گروه بندی کند.

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

با استفاده از منوی File->New، یک گزارش خارجی جدید اضافه می کنیم، به آن نام می دهیم و آن را در دیسک ذخیره می کنیم. بیایید با استفاده از دکمه طرح‌بندی داده‌های باز، یک طرح‌بندی ایجاد کنیم.

نوشتن درخواست 1C برای SKD

پس از ایجاد طرح طرح، باید یک کوئری بنویسیم که داده ها را برای گزارش جمع آوری کند. برای انجام این کار، در تب Datasets، یک مجموعه داده Query ایجاد کنید.

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

|انتخاب | تحقق کالا، خدمات، کالا لینک، | تحقق کالاهای خدمات کالا لینک سازمان, | فروش کالا، خدمات، کالا لینک.طرف مقابل، | تحقق کالاها، خدمات، کالاها نامگذاری، | تحقق کالاها، خدمات، کالاها.مقدار، | فروش کالا، خدمات، کالا نرخ مالیات بر ارزش افزوده، | تحقق کالاها، خدمات، کالاها، میزان مالیات بر ارزش افزوده، | تحقق کالا خدمات کالا قیمت | از | سند.تحقق کالاخدمات.کالا | نحوه تحقق کالا خدمات کالا | WHERE | تحقق کالاهای خدمات کالا لینک تاریخ | BETWEEN &StartPeriod AND & EndPeriod | و تحقق کالاهای خدماتی کالا لینک سازمان | = &سازمان

سفارشی کردن فیلدهای مجموعه داده

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

اجازه دهید به طور خلاصه برخی از تنظیمات را شرح دهم:


تنظیم منابع

فیلدهای منبع در سیستم ترکیب داده فیلدهایی هستند که مقادیر آنها بر اساس سوابق دقیق موجود در گروه بندی محاسبه می شود. در اصل، منابع جمع گروهی یا کلی گزارش هستند. در مورد ما، منابع فیلدهای Amount و AmountVAT خواهند بود. مجموع منابع را می توان با استفاده از توابع زبان بیان SKD محاسبه کرد که ساده ترین آنها عبارتند از Sum()، Average()، Maximum()، Minimum() و Quantity(). برای تنظیم منابع گزارش، به تب منابع بروید و فیلدهای گزارش لازم را به جدول منابع بکشید. پس از آن، شما باید یک عبارت را مشخص کنید (در مورد ما، Sum())، همچنین می توانید گروه بندی هایی را که می خواهید مجموع این منبع را مشاهده کنید، انتخاب کنید، این کار را می توان در ستون Calculate by ... انجام داد.

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

تمام پارامترهای مشخص شده در درخواست در برگه پارامترهای طرح طرح نمایش داده می شود. در مورد ما، اینها StartPeriod، EndPeriod و Organization هستند. بیایید برخی از تنظیمات آنها را مرور کنیم:

  1. ستون های نام، عنوان و نوع به طور خودکار پر می شوند و نباید بی جهت تغییر داده شوند.
  2. لیستی از مقادیر موجود است. اگر می خواهید لیستی را به پارامتر ارسال کنید، باید این پرچم را تنظیم کنید، در غیر این صورت فقط اولین عنصر لیست به آنجا می رسد.
  3. معنی. در اینجا می توانید یک مقدار پیش فرض برای پارامتر تعیین کنید. در مثال ما، بیایید مقدار Elements را برای پارامتر Organizations (یک پیوند خالی به دایرکتوری Organizations) انتخاب کنیم.
  4. در فیلدهای موجود قرار دهید. اگر علامت این پرچم را بردارید، پارامتر در تنظیمات قابل مشاهده نخواهد بود: در قسمت های انتخاب شده، انتخاب.
  5. محدودیت در دسترس بودن پرچم مسئول امکان تنظیم مقدار پارامتر در تنظیمات ACS است.

تنظیم ساختار گزارش

بیایید به تب تنظیمات برویم، در اینجا می توانیم گروه بندی گزارش، فیلدهای نمایش داده شده در گزارش، فیلترها، مرتب سازی و غیره را مشخص کنیم. شرط کار می گوید که گزارش باید داده ها را بر اساس فیلدهای: Contractor، Link و Nomenclature گروه بندی کند، ما آنها را یکی پس از دیگری در منطقه گروه بندی نشان خواهیم داد.

در برگه فیلدهای انتخاب شده، منابع ما (مبلغ، مبلغ مالیات بر ارزش افزوده) را از فیلدهای موجود به فیلدهای گزارش بکشید.

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

این کار تنظیم گزارش را تکمیل می کند، اکنون می توانید آن را در حالت سازمانی اجرا کنید.

تولید گزارش

برای گزارش ACS در 1C، نیازی به ایجاد فرم نیست، سیستم طرح بندی خود آن را ایجاد می کند. گزارش را در حالت 1C Enterprise 8 باز کنید.

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

همچنین ویدیوی ایجاد گزارش در ACS را ببینید:

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

در نظر بگیرید که چگونه می توان این کار را در فرم های معمولی 1C انجام داد. بیایید فوراً رزرو کنیم که این مقاله دقیقاً خروجی پارامترهای فرم را در نظر می گیرد. خود پارامترها در ACS باید قبلا ایجاد شده باشند.

دو روش برای نمایش پارامترهای ACS در یک فرم معمولی وجود دارد:

  • خروجی کل جدول تنظیمات پارامتر
  • خروجی پارامترهای فردی به عنوان فیلدهای ورودی.

جدول تنظیمات پارامتر نمایش داده شده در فرم مشابه جدول تنظیمات پارامتر تولید شده توسط ACS است. برای نمایش آن در فرم، باید یک کنترل ایجاد کنید TableField، دارایی آنها داده هامشخص نمودن SettingsComposer.Settings.ParametersData

در این حالت، تمام پارامترهای ACS که محدودیت دسترسی ندارند به کاربر نشان داده می شود.

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

  1. بیایید جزئیات گزارش مربوط به پارامترها را ایجاد کنیم. در مثال ما، این جزئیات خواهد بود تاریخ شروع، تاریخ پایان، سازمان. بیایید انواع داده های مناسب را برای آنها تنظیم کنیم.
  2. بیایید برای هر یک از پارامترها فیلدهای ورودی را در فرم ایجاد کنیم و آنها را از طریق ویژگی پیوند دهیم داده هابا جزئیات گزارش برای هر فیلد ورودی، خوب است یک کتیبه با نام پارامتر در کنار آن ایجاد کنید تا کاربر متوجه شود که کدام پارامتر را ویرایش می کند.
  3. برای هر فیلد ورودی، باید یک رویه برای مدیریت رویداد ایجاد کنید وقتی تغییر می کند، که مقدار انتخاب شده توسط کاربر را روی پارامترهای ACS تنظیم می کند. در مثال، من یک رویه ایجاد کردم و آن را به رویدادهای تغییر هر سه فیلد ورودی اختصاص دادم. یعنی وقتی یک پارامتر تغییر می‌کند، هر سه تنظیم مجدد می‌شوند. از نقطه نظر عملکرد، این به احتمال زیاد کارآمد نیست، اما، از آنجا که. پارامترهای زیادی وجود ندارد، تفاوت قابل توجه نیست. با تعداد زیادی پارامتر، ارزش نمایش نصب هر کدام را در یک روش جداگانه دارد. بنابراین، کد رویه برای کنترل کننده وقتی تغییر می کندبه این صورت خواهد بود:

    Procedure ParametersOnChange (مورد)

    ParameterDateStart = BuilderSettings. تنظیمات. داده های پارامترها عناصر. Find("PeriodStart"); //جستجو با نام پارامتر ACS انجام می شود
    ParameterDateStart استفاده = درست ; //پارامتر هنگام انتخاب استفاده خواهد شد
    ParameterDateStart مقدار = تاریخ شروع. //به پارامتر مقدار ویژگی گزارش اختصاص داده می شود

    ParameterDateCon = BuilderSettings. تنظیمات. داده های پارامترها عناصر. Find("EndPeriod");
    ParameterDateCon. استفاده = درست ;
    ParameterDateCon. Value = EndDay(EndDate) ;

    ParameterOrg = LinkerSettings. تنظیمات. داده های پارامترها عناصر. Find("سازمان");
    ParameterOrg. استفاده = درست ;
    ParameterOrg. ارزش = سازمان;

    پایان رویه

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