زنگ

کسانی هستند که این خبر را قبل از شما می خوانند.
برای دریافت آخرین مقالات مشترک شوید.
پست الکترونیک
نام
نام خانوادگی
چگونه می خواهید The Bell را بخوانید
بدون اسپم

مقاله ادامه چرخه "اولین گام در توسعه در 1C".

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

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

قابلیت استفاده

مقاله با رابط کاربری مدیریت شده در نسخه "نسخه 8.2" پیکربندی توسعه یافته در سکوی 1C 8.3.4.482 می پردازد.

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

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

علاوه بر این ، نسخه فعلی این سیستم عامل قابلیت جستجوی جدید را در لیست ها اضافه کرده است.

شخصی سازی فرم و امکان کار با لیست ها

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

پس از فشردن این دستور ، پنجره "تنظیمات فرم" ظاهر می شود.

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

شما می توانید ترتیب جزئیات را تغییر دهید. یک گروه جدید اضافه کنید و برخی از ویژگی ها (عناصر) را در آن قرار دهید ، گزینه ای برای گروه بندی آنها (افقی ، عمودی) تعریف کنید.

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

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

یک ویژگی مهم امکان اضافه کردن فیلدهای جدید به فرم است. این امر از طریق پروپوزال های نوع مرجع امکان پذیر است.

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

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

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

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

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

پنجره List Customization باز می شود. در این پنجره می توانید طراحی و گروه بندی را انتخاب ، مرتب سازی ، تعریف کنید.

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

انتخاب می تواند توسط چندین زمینه انجام شود. در این حالت به طور پیش فرض انتخاب با شرایط AND کار می کند همچنین می توانید از شرایط OR و NOT استفاده کنید.

برای استفاده از شرط OR (NOT) ، باید گروه مناسب (OR Group ، NOT Group) را با استفاده از دستور گروه Group اضافه کنید.

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

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

شکل بعدی نحوه عملکرد گروه بندی را نشان می دهد.

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

شکل نتیجه نتیجه شرطی زمینه را نشان می دهد میزان.
هنگامی که مبلغ\u003e 100000\u003e باشد.

لازم به ذکر است که امکان مشاهده دایرکتوری ها در حالت سلسله مراتبی وجود دارد.

مشاهده سلسله مراتبی دایرکتوری ها را می توان از طریق مورد پیکربندی کرد مشاهده حالت در منو همه اقدامات... می توانید یکی از گزینه ها را انتخاب کنید: لیست سلسله مراتبی, لیست, چوب.

همچنین می توانید گروه بندی خود را از عناصر دایرکتوری با برخی جزئیات تنظیم کنید.

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

ویژگی مناسب - انتخاب چندگانه در لیست ها با اجرای بعدی اقدامات گروهی (نگه داشتن ، لغو ، حذف بدون علامت).

انتخاب اشیاء در لیست با نگه داشتن کلید انجام می شود تغییر مکانیا Ctrl.

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

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

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

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

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

تصور می کنم نیازی به گفتن ACS نیست ، یک اتصال دهنده تنظیمات و به طور کلی کل مجموعه اشیاء که برای کار با ACS در نظر گرفته شده اند. مناطق اصلی استفاده ، جدا از اقدامات پیچیده در کد ، لیست ها و گزارش های پویا است و در هر دو مورد ، عملکرد بسیار چشمگیر در پشت صحنه باقی مانده است. ما اغلب حتی در مورد منطق رفتار و ارتباط همه شرکت کنندگان در این فرآیند فکر نمی کنیم ، زیرا ما معمولاً مشکلات نسبتاً ساده را حل می کنیم یا به پیش فرض بستر های نرم افزاری اعتماد می کنیم. اما ، در آنجا که سکوت وجود دارد ، یک منطق درونی نیز وجود دارد ، نوعی "پراکندگی" 1C ، برای غلبه بر ثمره هایی که برای دستیابی به جلوه مطلوب مورد نظر وجود دارد ، گاه دشوار و آشکار نیست ، و در عین حال فقط استفاده صحیح از ابزارها کافی است.

علاقه مندان می توانند از قسمت 1-4 پرش کنند و مستقیم به مثالها بروند.

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

JV 8.3.6 و بالاتر ، از بخش های ITS (بند 10.3.7.5 و غیره) ، کتاب "پیشرفت حرفه ای در سیستم 1C-Enterprise 8" (کازان ، 2012 ، جلد دوم) استفاده شده است. در کتاب E. E. Krustaleva ، هیچ چیز قابل فهم در مورد این موضوع یافت نشد.

قسمت 1

همانطور که می دانید پیوند تنظیمات دارای مجموعه های "تنظیمات" ، "تنظیمات ثابت" (از این پس "FN") و "تنظیمات کاربر" (از این پس "PN") می باشد. این گزارش می تواند گزینه های مختلفی داشته باشد ، در حالی که پیوندهای بین گزینه ، N ، PN و FN بسیار عجیب است. همچنین ، فراموش نکنیم منبع تنظیمات موجود و "اجداد" آن ، که معمولاً خود مدار است ، که تنظیمات پیش فرض خاص خود را نیز دارد.

* تنظیمات - تنظیماتی که در حالت تنظیم تنظیم شده و در حالت ویرایش گزینه گزارش تغییر یافته است.

* تنظیمات کاربر - تنظیماتی که کاربر در 1C تغییر می دهد: حالت Enterprise صرفاً رابط.

* FixedSettings - تنظیماتی که از زبان داخلی ساخته شده است ، شامل. بطور ضمنی توسط سیستم تنظیم شده اند. این ویژگی شامل مقادیر انتخابی است که با استفاده از پارامترهای آن به فرم منتقل می شود (ساختار "انتخاب").

تنظیمات و FN از نظر طراحی مشابه هستند و مجموعه ای از "انتخاب" نوع "انتخاب ترکیب داده" را دارند که برای تغییر ترکیب در هر زمان از وجود گزارش در دسترس است. در همان زمان ، تنظیمات برای تغییر رابط از طریق ویرایش یک نوع موجود هستند ، در حالی که FN ها به هیچ وجه در دسترس نیستند. PN ، به نوبه خود ، یک "ظروف سرباز یا مسافر" است ، که در آن هم "انتخاب" و هم اشیاء جداگانه از نوع "عنصر انتخاب ترکیب داده" (نوع به اصطلاح تودرتو) می توانند عناصر مساوی باشند. علی رغم وجود روش های مناسب ، تغییر برنامه ای ترکیب عناصر PN غیرممکن است ، اگر خود PN گزارش باشد و توسط طراح ساخته نشده باشد "- 1C گزارش خواهد داد که" مجموعه تنظیمات کاربر نمی تواند ترکیب آن را تغییر دهد ، زیرا با تنظیمات طرح همراه است. داده ها. " ITS می گوید: "این ملک برای نوشتن با استفاده از زبان داخلی در دسترس نیست." ، اما ، همانطور که بعداً خواهیم دید ، امکان تأثیرگذاری بر PN وجود دارد. "فرنی" اشیاء دارای اتصالات داخلی است - برای تهیه ی سازگاری شرایط هنگام تهیه گزارش ، و هنگام تغییر ترکیب ، بررسی می شود. در ITS می خوانیم: "عناصری که خود به عنوان سفارشی مشخص شده اند ، اضافه نمی شوند. به عنوان مثال ، یک فیلتر سفارشی شامل یک مورد فیلتر نیست که به صورت سفارشی مشخص شده باشد. موارد حاوی موارد سفارشی اضافه نمی شوند. به عنوان مثال ، اگر این گروه شامل مواردی باشد که به عنوان سفارشی مشخص شده اند ، اضافه نمی شود. برای عناصر تو در تو ، ویژگی DisplayMode تجزیه نمی شود. آنها به همراه عناصر والدین اضافه یا اضافه نمی شوند. " بنابراین ، "پیر بودن" اشیاء در پشت صحنه عمل می کند. در این حالت ، هنگامی که رابط اجازه نشان دادن انتخاب های متناقض برای یک نوع و ST و همچنین در داخل ST را می دهد ، می توان جلوه ای دریافت کرد.

به نظر می رسد گزینه "ارشد" است. اما با کلیک بر روی "بیشتر" / "تغییر نوع" و تأیید تغییرات در فرم باز شده ، تماس گیرنده رویداد از فرم را فراخوانی می کنید ، در حالی که انتخاب در صفحه "عمومی" روی فرم نامیده شده از "تنظیمات ..." ظاهر می شود ، و در فرم گزارش ظاهر می شود ، اما در برگه "Selection" نشان داده نمی شود. علاوه بر این ، یا بلافاصله هم در شکل اصلی گزارش و هم در فرم "تنظیمات ..." ظاهر می شود (اگر پرچمی وجود دارد "در تنظیمات کاربر درج کنید") ، یا در آنجا وجود ندارد ، و نه در آنجا. اما در هر صورت ، آن را در برگه "انتخاب" از فرم "تنظیمات ..." نمی باشد. تفاوت بین برگه "عمومی" در فرم "تنظیمات ..." و فرم گزارش اصلی توسط قسمت "حالت ویرایش" مشخص می شود (طبیعی - فقط در "تنظیمات" ، سریع - همچنین در فرم گزارش). اما فکر می کنم همه این را می دانند. به هر حال ، مقادیر "Selection" و "Fast" به هیچ وجه همزمان نمی شوند و ممکن است با یکدیگر متناقض باشند ، اما "Fast" در فرم گزارش و روی فرم تنظیمات کاملاً همزمان شده است. بنابراین ، هنگام ویرایش یک نوع ، خود تغییر می کند (اما شناسه و نام آن تغییر نمی کند) ، اما PN همچنان NOT اصلاح می شود (یعنی حتی اگر ما در مورد آنها صحبت می کنیم ، یعنی در مورد پرچم شامل یک یا عنصر دیگر در PN )

با کلیک بر روی "انتخاب گزینه ..." و تأیید تغییرات در فرم باز شده ، رویدادهای زیر را فراخوانی می کنید:

WhenLoadingOptionOnServer

هنگام به روزرسانی تنظیمات تنظیماتOnServer

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

با کلیک بر روی "تنظیمات ..." و تأیید تغییرات در فرم باز شده ، این رویداد را آغاز می کند هنگام به روزرسانی تنظیمات تنظیماتOnServer (در این حالت ، PN تغییر می یابد ، اما نماها و کلید (در صورت نبود) دریافت نمی شوند ؛ اگر "Fast" برای عناصر "Selection" شیء PN فعال شود ، پس از آن علاوه بر "Selection" ، عناصر آن به صورت فیلد ظاهر می شوند ، یعنی. .به طور مشابه با عناصر تو در تو قرار دارد. این تنظیمات در صورت ذخیره شدن ذخیره شده و دفعه دیگر که فرم را وارد می کنید ، باز می شود. این گزینه را لمس یا تغییر نمی دهد.

کلیک بر روی "بیشتر" / "تنظیم تنظیمات پیش فرض" در فرم تنظیمات (و همچنین مورد "تنظیمات استاندارد" در گزینه ویرایش) فقط این رویداد را آغاز می کند هنگام به روزرسانی تنظیمات تنظیماتOnServer... در این حالت گزینه تغییر می یابد اما PN تغییر می یابد. اگر گزینه قبل از آن تغییر کرده باشد ، آن همچنان تغییر می کند (نه تغییر پرچم تغییر داده می شود ، نه تنظیماتی که واقعاً تنظیم شده اند بازنشانی می شوند).

با کلیک بر روی "خصوصیات مورد تنظیمات سفارشی" در درخت ساختار روی فرم ویرایش متغیر ، شیء "Selection" اضافه می شود و معلوم می شود که خالی است و با انتخاب موجود یک تغییر و عناصر انتخاب تو در تو ، به هیچ وجه همگام نمی شود.

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

اضافه کردن چیزی که در تنظیمات به PN ظاهر شده است نیاز به اقداماتی در کد یا رابط دارد ، اما حذف و پاک کردن تنظیمات بلافاصله و بدون بروزرسانی بر PN تأثیر می گذارد ، به عنوان مثال:

Report.SettingsComposer.Settings.Selection.Elements.Clear ()؛

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

یادداشت:

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

وقتی انتخابی را روی فرم "تغییر نوع" اضافه می کنید ، بلافاصله با مجموعه پرچم "شامل در PN" انجام می شود ، اما ، تکرار می کنم ، از نظر زبان داخلی ، PN بدون تغییر باقی می ماند.

تنظیم واریانس واریانس و تنظیم متغیر بودن PN مستقیماً در ارتباط نیستند ، آنها دو جهت مختلف تغییرات هستند.

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

با وجود این بیانیه در سرمایه گذاری مشترک ، PN ها کاملاً در xml سریال می شوند.

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

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

قسمت 2

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

Comp \u003d New DataCompositionSettingsComposer؛ // همچنین می توانید // comp.Initialize (SomeComposerSettings.GetSourceAvailableSettings ()) را شروع کنید. comp.LoadSettings (SomeComposerSettings.Settings)؛ aSettingsComposer.DownloadUserSettings (comp.UserSettings)؛

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

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

* برای انواع DataCompositionPelement ، محتویات عناصر در موارد تنظیمات سفارشی مربوطه کپی می شوند.

* برای انواع DataCompositionFeed ، مواردی که در تنظیمات اصلی قرار دارند و به عنوان غیرقابل دسترسی مشخص شده اند ، بدون تغییر باقی می مانند. عناصر از PN به موارد اصلی منتقل می شوند. آنها به انتهای مجموعه Selection اضافه می شوند.

* برای انواع DataCompositionElementGroup ، خاصیت Usage در عنصر مربوطه تنظیمات اصلی (بر اساس علامت استفاده از عنصر PN) تنظیم می شود.

قسمت 3

در هنگام تنظیم تنظیمات نهایی ، به نقل از ITS ، گزینه های مختلف تنظیم به شرح زیر است:

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

* اگر هر نوع تنظیمات به صورت سفارشی و نه به طور کامل مشخص شود ، بلکه عنصر به عنصر مشخص می شود ، سپس عناصر مشخص شده به صورت سفارشی از تنظیمات نتیجه گیری از Properties Composer.Custom Settings وارد می شوند و عناصر مشخص شده به عنوان غیرقابل استفاده از تنظیمات Properties در تنظیمات حاصل می شوند. ...

* تنظیمات ثابت به تنظیمات حاصل "همانطور که هست" اضافه می شوند. در این حالت ، وقتی تنظیماتی با همین نام در FN و PN وجود داشته باشد ، غیرقابل قبول است ، برای مثال انتخاب با همان مقدار چپ در شرط. توجه داشته باشید که حتی تصادف کامل با کلیه خواص این شرایط ممنوع است. صادقانه ، تا حدودی غیر منطقی.

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

قسمت 4

پسوند فرم گزارش پارامترهای "FN" و "PN" را در اختیار ما قرار می دهد ، اما در هیچ جا توصیه نمی شود که با انتقال آنها به فرم ، آنها را مستقیماً پر کنید. همانطور که آزمایشات نشان داده اند ، بدون رقص اضافی با یک گیاه نارنگی ، از پر کردن این پارامترها چشم پوشی نمی شود - هنگام تنظیم اولیه اتصال دهنده در هنگام باز شدن و هنگام دریافت PN ذخیره شده قبلی ، بازنویسی می شود. توصیه می شود که با کلیدهای PN کار کنید ، براساس آن می توانید از فروشگاه تنظیمات بدست آمده و سپس باز و استفاده کنید و این کار به صورت خودکار در کنار فرم گزارش انجام می شود و نه در فرم تماس.

پارامتر "SourceAvailableSettings" هنگامی که فرم روی سرور ایجاد می شود به طور خودکار به اطلاعات لینک دهنده ترجمه می شود. در عوض ، می تواند ، اما این تنها پس از تعریف مجدد کامل از زنجیره ای از اشیاء مرتبط ، تأثیر می گذارد. که در آن GetSourceAvailableSettings() تا پایان پردازش تمام رویدادهای افتتاح فرم ، تعریف نشده بازگشت.

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

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

OnCreateAtServer

BeforeLoadingOptionOnServer

WhenLoadingOptionOnServer

قبل از بارگذاری تنظیمات سفارشی روی سرور

هنگام بارگذاری تنظیمات سفارشی روی سرور

هنگام به روزرسانی تنظیمات تنظیماتOnServer

پردازش چک

افتتاح

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

قسمت 5

حال بیایید با جزئیات بیشتر در مورد کار باز کردن فرم گزارش با ساخت آن و انتخاب از پیش تعیین شده آن صحبت کنیم. اطلاعات مختصر در این باره در مورد ITS و در توصیه های روش شناختی وجود دارد ، اما فقط خود اصل در آنجا روشن می شود و ظرافت ها افشا نمی شود. بنابراین ، برای یک تماس متنی از گزارش ، لازم است که پارامتر "GenerateOnOpening" برابر با True به شکل آن منتقل شود. و پارامتر "انتخاب" حاوی ساختار. کلیدهای ساختاری نام فیلدهای ACS یا پارامترهای ACS هستند و مقادیر مقادیر آنها هستند. به نقل از SP ، اگر یک پارامتر ACS با نامی مطابق با نام کلید ساختار وجود داشته باشد ، مقدار آن روی آن تنظیم می شود. اگر پارامتری وجود نداشته باشد ، اما یک فیلد وجود داشته باشد ، یک انتخاب به این قسمت اضافه می شود. علاوه بر این ، اگر پارامتر و فیلد به همین نام وجود داشته باشد ، آنگاه سیستم به سادگی آن را نادیده گرفته و چیزی را نصب نمی کند.

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

بیایید قبل از بارگیری PN روی سرور آنچه را در اختیار ما است ببینیم.

برای یک مورد ساده ، هنگامی که هیچ چیز در ACS از پیش تعریف نشده است و هیچ عنصری در PN گنجانده نشده است ، وضعیت به شرح زیر است: تنظیمات - خالی. FN - شامل انتخاب صحیح؛ PN حاوی انتخاب خالی است. شکل دهی به درستی کار می کند ، اما از دید کاربر ، رابط با روده مخالف است و دلسرد کننده است - انتخاب کار می کند ، اما قابل مشاهده نیست. به همین ترتیب ، اگر Selection را در PN در تنظیمات ساختار متغیر فعال کنید ، گزارش نیز با در نظر گرفتن انتخاب انتخاب می شود ، اما کاربر همچنین هیچ انتخابی را مشاهده نمی کند.

بیایید پیش تنظیمات را در تنظیمات ACS در تنظیم کننده (برابر با مقدار خالی) تنظیم کرده و در PN فعال کنیم. از نظر تئوری ، FN باید تنظیمات را پر کند ، و آنهایی را - PN ، اما در واقع ما داریم: در تنظیمات - انتخاب با عنصر مورد نظر ، اما یک مقدار درست خالی ، FN - حاوی انتخاب صحیح است ، و PN - هنوز هیچ چیزی را در بر نمی گیرد. علاوه بر این ، در این حالت ، گزارش ساخته نمی شود ، زیرا با وجود مقدار منتقل شده در پارامتر Selection مقدار انتخاب صحیح خالی است.

تلاش برای کار با عناصر PN نیز نتیجه ای نمی دهد. برای عنصر PN ، فقط می توانید پرچم "استفاده" و مشارکت در "سریع" را تغییر دهید. مقدار انتخاب روی رابط خالی خواهد بود ، سیستم هیچ خطایی ایجاد نمی کند. به طور مشابه ، تلاش برای کار با PN Selection نیز کار خواهد کرد ، در دیباگر مقدار مناسب به صورت صحیح پر شده مشاهده می شود ، اما شما چیزی در رابط نمی بینید. بگذارید یادآوری کنم که تغییر ترکیب PN غیرممکن است. بنابراین ، ترفندهای اضافی لازم است. مثلا:

& OnServer Procedure SetPresetSections (UserSettings) اگر پارامتر نباشد. Property ("انتخاب") سپس EndIf را برگردانید. اگر Parameters.Selection.Number () \u003d 0 سپس EndIf را بازگردانید؛ rTypeEO \u003d نوع ("DataCompositionSelectionElement")؛ برای هر کلید از پارامترها. چرخه انتخاب rField \u003d زمینه جدید DataComposition (key.Key)؛ // اگر (TypeZnch (kiz.Value) \u003d Type ("Array") orTypeZnch (kiz.Value) \u003d Type ("لیست ارزش ها")) و kiz.Value.Quantity ()\u003e 1 سپس pComparisonType \u003d ComparisonTypeDataCompositionInList؛ در غیر این صورت pComparisonType \u003d DataCompositionComparisonType.Equal؛ پایان اگر // pHn անհրաժեշտChoice \u003d تعریف نشده؛ // ببینید آیا انتخابی در تنظیمات pH سفارشی مورد نیاز EO \u003d تعریف نشده وجود دارد. // ببینید عنصر DataCompositionFeed جداگانه در تنظیمات دلخواه وجود دارد برای هر elnastr از CustomSettings.Elements Cycle IfTypeZnch (elnastr) \u003d Type ("DataCompositionSelection") و pHn անհրաժեշտSelection \u003d تعریف نشده سپس // می تواند تنها یک pHselection \u003d elnastr باشد؛ // این امر می تواند خارج از حلقه انجام شود ، اما لازم است از طریق تنظیمات سفارشی به خاطر عناصر نیز تکرار شود ... در غیر این صورت ، اگر TypeZnch (elnastr) \u003d rTypeEO سپس // // این یک عنصر انتخاب است ، می توانید تعداد زیادی از آنها وجود داشته باشد ، اما ما علاقه مندیم که اولیه نباشیم یا با موارد لازم. زمینه اگر elnastr.LevoeValue \u003d pField یا elnastr.LevoeValue \u003d نامشخص و pHuzhnyEO \u003d تعریف نشده پایان اگر پایان اگر پایان چرخه؛ // اگر pH مناسب باشد<>تعریف نشده پس از آن // به عنوان اولویت RN مورد نیاز EO از انتخاب \u003d تعریف نشده پیش می رود. برای هر یک از چرخه از چرخه pHuzhnyOtbor.Elementy اگر elotb.LevoeValue \u003d pField سپس pHuzhnyEOisObra \u003d elotb؛ قطع EndIf؛ پایان چرخه؛ اگر pHRequiredEOfromSelection \u003d تعریف نشده پس از آن pHRequiredEOfromOffice \u003d pHRequiredSelection.Elements.Add (rTypeEO)؛ pHRealEOfromSelection.LeftValue \u003d pField؛ پایان اگر pHRealEOfromSelection.Comparison View \u003d نوع مقایسه pHRealEOfromSelection.RightValue \u003d kiz.Value؛ pHRealEOisObtaining.Usage \u003d درست است؛ // pHAlrightEO.Usage \u003d نادرست؛ اگر pH مطلوب باشد انتخاب \u003d نامشخص و pH مطلوب EO است<>تعریف نشده سپس // عنصر pHazhnyEO.LeftValue \u003d pField را قرار دهید. pHRealEO.Comparison Type \u003d pComparison Type؛ pHazhnyEO.RightValue \u003d kiz.Value؛ pHEO.Usage \u003d درست است؛ پایان اگر pHn ضروری \u003d نامشخص؛ برای هر یک از گزینه های Report.SettingsComposer.Settings.Selection.Elements // به روشی دوستانه ، باید یک جستجوی بازگشتی باشد! اگر TypeZnch (elotb) \u003d pTypeEO و elotb.LevoValue \u003d pField سپس pHn لازم \u003d elotb؛ قطع EndIf؛ پایان چرخه؛ اگر pHRequired \u003d تعریف نشده سپس pHRequired \u003d Report.Settings Composer.Settings.Selection.Elements.Add (rTypeEO)؛ pHLeftValue \u003d pField؛ پایان اگر pHOfComparisonType \u003d pComparisonType؛ pHazhny.RightValue \u003d kiz.Value؛ pHazy.Usage \u003d درست است؛ // انتهای حلقه؛ Report.SettingsComposer.FixedSettings.Selection.Elements.Clear ()؛ // در غیر این صورت خواهد گفت که عناصر در تقاطع / متناقض با EndProcedure هستند

صحیح ترین روش برای تماس با آن:

& روش AtServer برای پردازشFillCheckOnServer (امتناع ، ویژگی های بررسی شده) SetPresetSections (Report.ConfigurationComposer.UserSettings)؛ EndProcedures

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

& OnClient رویه OpenReport (فرمان) اگر ValueFull (Object.Link) باشد \u003d ساختار جدید ("ReferenceOnDirectory" ، Object.Link)؛ // این نام فیلد در ACS گزارش پارامترهای فرم گزارش \u003d ساختار جدید ("انتخاب ، تولید در باز کردن" ، Ot ، True) است. OpenForm ("Report.Report1.Form.ReportForm" ، پارامترهای فرم ، EtaForm)؛ پایان اگر EndProcedures

قسمت 6

در صورت لزوم ، تنظیمات گزارش را هنگام کار با آن ، تغییر دهید. هم در هنگام راه اندازی و هم بعد از باز کردن ، صحیح ترین روش تغییر "از ابتدا" است ، یعنی از تنظیمات ACS تغییر شمای ACS فقط با هدف Report (یا ExternalReport) انجام می شود ، و نه با داده های فرم ، و به خودی خود هیچ چیزی را تغییر نمی دهد - در تنظیمات و در PN ، همان حالت قبلی باقی می ماند و ممکن است FN بطور کلی خالی بماند. بنابراین بسته به وظایف ما:

بعد از اعدام

Report.SettingsComposer.DownloadSettings (ACS.Default)

فقط نوع تغییر می کند ، و هیچ چیز بیشتر.

پس از انجام تکنیک گفته شده در بند 2 (با استفاده از "واسطه" و روش) تنظیمات سفارشی بارگیری()

فقط در صورت تنظیم مجدد PN های فعلی با استفاده از رابط کار می کند. به خودی خود ، وقتی گزینه تغییر کند ، تغییر نخواهند کرد. این گزینه Selection را تغییر می دهد ، اما یک مورد جدید انتخاب را اضافه نمی کند.

بعد از اعدام

ThisForm.CreateFormElementsCustomSettings (، DisplayModeDataCompositionSettings.All)

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

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

& AtServer Procedure ChangeSKD () rObject \u003d FormInValue ("گزارش")؛ خاموش \u003d pObject.DataCompositionSchema.SettingsOptions.Get (0) .Settings.Feed؛ eo \u003d otb.Elementy.Add (نوع ("DataCompositionOptionElement"))؛ eo.LeftValue \u003d NewDataCompositionField ("ReferenceRef.Field1")؛ eo.ComparisonType \u003d DataCompositionComparisonType.Equal؛ eo.RightValue \u003d درست است؛ eo.Use \u003d حقیقت؛ ValueVRequisitForm (موضوع ، "گزارش")؛ Report.SettingsComposer.LoadSettings (rObject.DataCompositionSchema.D تنظیمات پیش فرض)؛ Report.ConfigurationComposer.Restore ()؛ // مطلوب ، اگرچه این هنوز FN تأثیر نمی گذارد. // در واقع ، این چیزی است که می توان تغییر برای ترکیب PN را برای هر ایمیل از Report.ComposerSettings.Notroyki.Obor.Elements Cycle e.Display Mode \u003d نمایش حالت MataDataCompositionSettingsSettingElement.BystryAccess؛ اگر این یک EmptyString است (شناسه ایمیل UserSettings) سپس // می توانید از روش 'SetIdentifier' برای عنصر PN استفاده کنید ، به کمک آن در سرمایه گذاری مشترک مراجعه کنید ، همه چیز به اندازه کافی واضح است. شناسه کاربر UserSettings '\u003d "ID123"؛ // مهم - شناسه می تواند هرگونه باشد ، نه یک UUID یا یک راهنما! emailPresentationUserSettings \u003d "محاکمه"؛ پایان اگر پایان چرخه؛ comp \u003d New DataCompositionSettingsComposer؛ تنظیمات Comp.LoadSet (rObject.DataCompositionSchema.Default)؛ Report.Settings Composer.DownloadUserSettings (comp.UserSettings)؛ برای هر نامه الکترونیکی از Report.SettingsComposer.UserSettings.Elements Cycle e.Display Mode \u003d نمایش حالت ModeDataCompositionSettings.DataCompositionStyleAccess؛ // EndCycle را به فرم گزارش بکشید. // و اکنون تأثیر خواهد داشت: ThisForm.CreateUserSettingsFormElements (، DataCompositionSettingsDisplayMode.QuickAccess)؛ EndProcedures

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

چیزی به صورت تجربی روشن شده است و بنابراین بحث برانگیز است. از کسانی که بیشتر می دانند دعوت می شود تا انتقاد و اظهار نظر کنند.

زیر سیستم در 1C 8.3 - یک موضوع درخت ابرداده که وظیفه ساخت رابط فرمان پیکربندی را بر عهده دارد.

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

واقعیت این است که در نسخه 8.1 (و همچنین برای یک برنامه معمولی 8.2) سیستم های فرعی نیز وجود دارد ، اما آنها اهداف کاملاً متفاوتی را ارائه می دهند ، بیشتر از نظر کاربر برای توسعه دهنده. سیستمهای فرعی در 8.1 معمولاً عملکردهای متفاوتی را از هم جدا می کنند. زیر سیستم ها همچنین هنگام ترکیب تنظیمات مختلف 1C به کمک شما می رسند - می توان مشخص کرد که کدام سیستم برای انتقال است.

زیر سیستم های 1C و یک رابط برای برنامه نویس

در نسخه های 8.3 و 8.2 ، سیستمهای فرعی ابزار اصلی برای ایجاد رابط کاربری فرمان هستند. اشیاء ابرداده "زیر سیستم" دارای ساختار سلسله مراتبی است ، برای پیکربندی "زیرمنو" در رابط ، شما باید یک زیر سیستم فرعی اضافه کنید:

ویژگی ها و تنظیمات

تنظیمات و خصوصیات زیر سیستم ها را در تنظیم کننده در نظر بگیرید:

267 آموزش ویدیویی 1C را به صورت رایگان دریافت کنید:

در رابط فرمان وارد کنید - اگر فراموش کردید این پرچم را تنظیم کنید ، زیر سیستم نمایش داده نمی شود در رابط

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

تصویر - تصویر اختصاص داده شده به زیر سیستم در حالت شرکت نمایش داده می شود. شما می توانید یک تصویر استاندارد را انتخاب کنید ، یا می توانید خود را اضافه کنید ، زیرا قبلاً آن را به عنوان یک شیء پیکربندی ایجاد کرده اید تصویر:

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

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

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

اگر هیچ گزارشی یا پردازشی در رابط کاربری نمایش داده نشده است

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

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

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

زنگ

کسانی هستند که این خبر را قبل از شما می خوانند.
برای دریافت آخرین مقالات مشترک شوید.
پست الکترونیک
نام
نام خانوادگی
چگونه می خواهید The Bell را بخوانید
بدون اسپم