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


30.03.2017

گزینه های کاربردی 1C 8.3 (مکانیسم، استفاده)

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

پیکربندی اشیاء فراداده

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

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

گزینه اول «استفاده از انبارهای چندگانه» است. مقدار در ثابتی به همین نام ذخیره می‌شود که شامل دایرکتوری "Warehouses" است. بنابراین، زمانی که مقدار ثابت "True" باشد، دایرکتوری در رابط موجود است، در صورت false، دایرکتوری در رابط نمایش داده نمی شود (محتوای زیر سیستم ها، اشکال شی و غیره)




دومین کاربردی "از چند انبار استفاده نکنید" زمانی نصب می شود که اولین "از چند انبار" نصب نشده باشد.
آن ها اگر از چندین انبار استفاده نکنیم (استفاده از چندین انبار = FALSE و کتاب مرجع "انبارها" موجود نیست) دستور "OpenMainWarehouse" نمایش داده می شود که در دسترس بودن آن توسط گزینه "از چند انبار استفاده نکنید" کنترل می شود. (از چند انبار استفاده نکنید = درست است)

بررسی رفتار سیستم

انتخاب 1. UseMultipleWarehouses = True، Don'tUseMultipleWarehouses = False. فهرست "انبارها" در رابط موجود است


گزینه 2. UseMultipleWarehouses = نادرست، Don'tUseMultipleWarehouses = درست است. دایرکتوری "Warehouses" در رابط موجود نیست، در عوض، دستور عمومی "OpenMainWarehouse" در دسترس است.

با انتشار پلت فرم 1C: Enterprise 8.2، یک شی جدید در درخت پیکربندی ظاهر شد - "گزینه های کاربردی". این به طور فعال در تمام پیکربندی‌های استاندارد مبتنی بر فرم‌های مدیریت‌شده استفاده می‌شود و برای ساده‌سازی فرآیند نمایش جزئیات و اشیاء منفرد در رابط استفاده می‌شود. به عنوان مثال، در پیکربندی شما یک ماژول برای تبادل با خدمات وب خارجی وجود دارد. این ماژول از تعدادی جزئیات در اسناد، رجیسترها و اجزای جداگانه در زیرسیستم ها استفاده می کند. ماژول اختیاری است و برای هر شرکتی ضروری نیست. منطقی است که از آنجایی که همه به یک ماژول نیاز ندارند، بنابراین همیشه لازم نیست همه عناصر/فیلدهای مرتبط با آن نمایش داده شوند.

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

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

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

مورد شماره 1: یک گزینه کاربردی به عنوان لفاف بر روی اشیاء دیگر

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

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

تمام شد، اکنون در هر جایی از کد که باید به یک ثابت مراجعه کنید، اینگونه می نویسیم:

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

پرونده شماره 2. سطح اضافی انتزاع

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

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

Constants.Ability toSaveData.Get();

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

GetFunctionalOption ("DataSavingAbility");

چاپ (Ctrl+P)

1. هدف از گزینه های کاربردی

گزینه‌های عملکردی به توسعه‌دهنده اجازه می‌دهند تا قابلیت‌های راه‌حل کاربردی را توصیف کند، که می‌تواند به سرعت در مرحله اجرا و/یا در طول عملیات سیستم روشن یا خاموش شود. به عنوان مثال، توانایی کار با ویژگی های محصول اضافی را می توان به یک گزینه کاربردی جداگانه جدا کرد. سپس، اگر این ویژگی را غیرفعال کنید، همه قابلیت‌های مرتبط (با ویژگی‌های محصول اضافی) در رابط راه‌حل برنامه ناپدید می‌شوند.
این سیستم قادر است به طور خودکار وضعیت تنظیمات انجام شده را در نظر بگیرد - ویژگی های غیرفعال را پنهان کند و رابط برنامه را برای کاربر واضح تر و قابل درک تر کند.
در طول توسعه، شرایطی ایجاد می شود که ارزش یک گزینه عملکردی باید به پارامترهای خاصی بستگی داشته باشد، برای مثال، همه سازمان ها حسابداری ارزی را حفظ نمی کنند. برای پیاده سازی چنین وابستگی، از پارامترهای Functional Options استفاده کنید - اشیایی که گزینه های عملکردی را پارامتر می کنند.

2. گزینه های کاربردی چه تاثیری دارند؟

2.1. اطلاعات کلی

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

2.2. رابط فرمان جهانی

تأثیر گزینه های عملکردی بر رابط فرمان جهانی این است که سیستم دستورات تمام اشیاء مربوط به گزینه های غیرفعال را پنهان می کند. به عنوان مثال، اگر مقدار گزینه عملکردی خرید برابر با False باشد، دستورات مربوط به باز کردن قسمت خرید، ایجاد سند رسید کالا، باز کردن لیست دریافت کالا و ... مخفی می شود.
به نوبه خود، گزینه خرید می تواند مقدار یک پارامتر گزینه عملکردی، به عنوان مثال، سازمان را در نظر بگیرد. با تغییر مقدار این پارامتر با استفاده از روش های زبان داخلی، می توانید وضعیت گزینه عملکردی و در نتیجه قابلیت مشاهده عنصر رابط را تغییر دهید.
همچنین باید ویژگی های زیر را در تشکیل رابط دستوری در نظر بگیرید:
● اگر ویژگی که یک پارامتر فرمان است توسط یک گزینه عملکردی غیرفعال شود، دستور از رابط فرمان حذف می شود.
● اگر نوع پارامتر فرمان توسط یک گزینه عملکردی غیرفعال شود، دستور از رابط فرمان حذف می شود. اگر نوع پارامتر یک فرمان مرکب باشد، وقتی همه انواع پارامترها غیرفعال شوند، فرمان از دسترس خارج می شود.

2.3. فرم

در یک فرم، گزینه‌های کاربردی می‌توانند بر جزئیات و دستورات فرم تأثیر بگذارند و (در نتیجه) دید عناصر فرم مرتبط با آنها (فیلدها و ستون‌ها برای جزئیات فرم، دکمه‌های دستورات فرم) را تغییر دهند. هنگام توسعه یک فرم، لازم است ویژگی های زیر رفتار سیستم را در نظر بگیرید:
<Вид>یک شی ( DirectoryObject t، DocumentObject، و غیره) غیرفعال خواهند شد اگر شیء پیکربندی مربوطه توسط گزینه تابعی غیرفعال شود. فقط آن دسته از گزینه های کاربردی که پارامتر ندارند تجزیه و تحلیل می شوند.
● ویژگی اصلی یک نوع فرم مدیریت شده DynamicListدر صورتی غیرفعال می شود که گزینه تابعی، شی پیکربندی را که به عنوان جدول اصلی لیست پویا مشخص شده است، غیرفعال کند. فقط آن دسته از گزینه های کاربردی که پارامتر ندارند تجزیه و تحلیل می شوند.
● اگر شیء پیکربندی که این نوع را تشکیل می دهد توسط یک گزینه تابعی غیرفعال شود، ویژگی فرم یک نوع مرجع غیرفعال می شود. در صورتی که گزینه های عملکردی همه انواع تشکیل دهنده را غیرفعال کنند، ویژگی فرم یک نوع ترکیبی غیرفعال می شود.
● ویژگی type form غیرفعال است<Вид>یک شی (شامل ویژگی فرم اصلی)، اگر شی پیکربندی که این نوع را تشکیل می دهد توسط یک گزینه عملکردی غیرفعال شود. فقط آن دسته از گزینه های کاربردی که پارامتر ندارند تجزیه و تحلیل می شوند.
● اگر یک جدول فرم داده های ویژگی فرم را که توسط یک گزینه عملکردی غیرفعال شده است را نمایش دهد غیرفعال می شود.
● در گفتگوی انتخاب نوع (به عنوان مثال، برای فیلدهای ورودی مرتبط با ویژگی های یک نوع پیچیده) هیچ گونه ای وجود ندارد اگر اشیاء پیکربندی که این انواع را تشکیل می دهند توسط یک گزینه عملکردی غیرفعال شده باشند. اطلاعات مربوط به انواع غیرفعال شده توسط گزینه های کاربردی در حافظه پنهان سمت سرویس گیرنده ذخیره می شود و پس از 20 دقیقه یا در طی تماس روش پاک می شود. UpdateInterface().
توجه!بر خلاف رابط فرمان، مقادیر پارامترهای گزینه های کاربردی فقط برای یک نمونه خاص از فرم تنظیم می شوند.

2.4. سیستم ترکیب داده ها

سیستم ترکیب داده ها در درجه اول برای تولید گزارش استفاده می شود. گزینه های عملکردی بر ترکیب داده هایی که در گزارش نمایش داده می شود و ترکیب تنظیمات گزارش در دسترس کاربر تأثیر می گذارد. به عنوان مثال، اگر گزینه Currency accounting functional غیر فعال باشد، در گزارشی که ثبت سند رسید کالا را نمایش می دهد، ستون ارز و مقدار ارز وجود نخواهد داشت و در تنظیمات امکان انتخاب، گروه بندی، مرتب سازی وجود نخواهد داشت. و غیره توسط فیلد ارز.

2.5. مشخصات

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

برنج. 1. تاثیر گزینه های کاربردی بر عملکرد

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

3. طرح کلی کار

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


برنج. 2. گزینه تابع قابل پارامتر

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

● سازمان (از نوع مناسب).
● انبار (از نوع مناسب).

منبع ثبت اطلاعات، مقدار کل گزینه عملکردی حسابداری خواهد بود.
سپس ساختار کلی پیکربندی به شکل زیر خواهد بود:
● ثبت اطلاعات SummovayaAccounting:
● بعد سازمانی.
● بعد انبار;
● منبع SummovayaAccount که دارای نوع Boolean است.
● سازمان پارامتر گزینه های عملکردی. ویژگی Usage بعد سازماندهی ثبت اطلاعات SummativeAccounting را نشان می دهد.
● گزینه های عملکردی پارامتر انبار. ویژگی Usage به بعد انبار ثبت اطلاعات SumAccounting اشاره دارد.
● گزینه عملکردی SumAccounting. ویژگی Storage به منبع SummovayaAccounting برای ثبت اطلاعات SummovayaAccounting اشاره می کند.
در نتیجه، برای تعیین نیاز به حفظ حسابداری کل، باید در هر مورد خاص مقادیر پارامترهای گزینه های عملکردی (سازمان و انبار) را نشان دهیم و مقدار گزینه عملکردی را بدست آوریم.
بنابراین، در مثال نشان داده شده در شکل 2، حسابداری کل برای سازمان 1 و انبار 1 مجاز است، اما حسابداری کل برای سازمان 2 و انبار 1 ممنوع است.

4. تعامل با اشیاء دیگر

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

5. خلقت

5.1. ایجاد یک گزینه تابع

برای ایجاد یک گزینه کاربردی، باید یک شیء پیکربندی Functional Option ایجاد کنید. این را می توان در حالت Configurator به روش معمول انجام داد، یعنی در پنجره تنظیمات، General و سپس Functional options را انتخاب کنید و یک شی جدید اضافه کنید.

برنج. 3. ایجاد یک گزینه کاربردی

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


برنج. 4. ذخیره مقدار یک گزینه کاربردی

علاوه بر نام، شی دارای یک ویژگی مورد نیاز است - Storage. در ویرایشگر می توانید یکی از آبجکت ها را برای آن انتخاب کنید که منبع مقدار گزینه خواهد بود. لیست اشیاء موجود شامل:
● ثابت ها،
● جزئیات دایرکتوری،
● منابع ثبت اطلاعات.
هیچ محدودیتی در نوع منبع مقدار گزینه وجود ندارد، اما فقط آن دسته از گزینه های کاربردی که مقادیر خود را در ویژگی های نوع Boolean ذخیره می کنند برای مدیریت رابط مناسب هستند. مقادیر گزینه عملکردی با انواع دیگر فقط برای تجزیه در زبان داخلی موجود است.
حالت Privileged در ویژگی بازیابی نحوه بازیابی مقدار یک گزینه عملکردی (و کش) را کنترل می کند.


برنج. 5. حالت ممتاز هنگام دریافت مقدار یک گزینه کاربردی

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

5.2. ایجاد یک پارامتر گزینه های کاربردی

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

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

6. استفاده

6.1 اختصاص ابرداده به اشیا

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

برنج. 6. اختصاص یک گزینه کاربردی به یک شی

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

6.2. تکلیف برای جزئیات و دستورات فرم

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


برنج. 7. اختصاص یک گزینه کاربردی به یک فرمان

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

6.3. استفاده در مکانیزم محدودیت دسترسی به داده

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

6.4. تعیین مقدار یک گزینه کاربردی

مقدار گزینه تابعی توسط شی مشخص شده در ویژگی Storage تعیین می شود. در مورد ثابت از مقدار آن استفاده می شود. برای یک گزینه مرتبط با یک ویژگی دایرکتوری یا یک منبع ثبت اطلاعات، مقادیر ذخیره شده در این اشیاء است. برای یافتن یک شی خاص که مقدار یک گزینه عملکردی را ذخیره می کند، اطلاعات اضافی مورد نیاز است - مجموعه ای از مقادیر برای پارامترهای گزینه های عملکردی.
اگر گزینه ای در یک ویژگی دایرکتوری ذخیره شده باشد، پارامتر باید حاوی پیوندی به یک عنصر دایرکتوری خاص باشد. اگر این گزینه در یک منبع ثبت جزئیات ذخیره می شود، باید مقادیر تمام ابعاد رجیستر مشخص شود. در این مورد، هر اندازه گیری باید با پارامتر خاص خود مشخص شود.
اگر همه پارامترها برای یک گزینه عملکردی از نوع Boolean مشخص نشده باشند، سپس OR اضافه کردن همه مقادیر با پارامترهای نامشخص انجام می شود. به عنوان مثال، اگر یک گزینه کاربردی در یک ثبت اطلاعات با ابعاد سازمان و انبار ذخیره شود و فقط بعد سازمان مشخص شده باشد، در صورتی که حداقل یکی از انبارهای فهرست شده در انبار، مقدار گزینه عملکردی برابر با True خواهد بود. بعد مقدار گزینه عملکردی برابر با True دارد.
برای یک گزینه تابع که از نوع دیگری غیر از Boolean است، وضعیت با پارامترهای ناقص مشخص شده منجر به ایجاد یک استثنا می شود.
متدهای زبان داخلی به شما این امکان را می دهند که هم بسته به پارامترهای ارسال شده و هم برای پارامترهای تنظیم شده، مقدار یک گزینه را دریافت کنید.
برای یک رابط فرمان یا یک فرم خاص. در صورتی که تغییر مقدار یک شی مشخص شده در ویژگی گزینه تابعی Storage در یک تراکنش انجام شود، ارزش واقعی گزینه عملکردی تنها پس از تکمیل تراکنش تغییر خواهد کرد. در حالی که تراکنش باز است، ارزش گزینه عملکردی برابر با مقداری خواهد بود که در شروع تراکنش جاری بود.
اگر یک گزینه عملکردی به یک منبع ثبت اطلاعات دوره ای گره خورده باشد، سیستم از برشی از منبع دوم برای بدست آوردن مقدار گزینه استفاده می کند. اگر می خواهید مقدار یک گزینه را برای تاریخ دیگری بدست آورید، باید مقداری را برای پارامتر گزینه های عملکردی Period (Period) مشخص کنید که دارای نوع Date است که به عنوان تاریخ دریافت برش استفاده می شود. نیازی به ایجاد این پارامتر در فراداده نیست. به صورت خودکار توسط سیستم ارائه می شود.

هنگام استفاده از گزینه های تابعی پارامتر شده، رفتار زیر را در نظر بگیرید:
● در فرم‌های فهرست، اگر حداقل یک مقدار فعال از این گزینه کاربردی در پایگاه اطلاعات ذخیره شود، ستون ویژگی مرتبط با یک گزینه تابعی پارامتری نمایش داده می‌شود.
● اگر لازم است که هنگام باز کردن یک فرم، جزئیات مربوط به گزینه های عملکردی به طور پیش فرض غیرفعال باشد، پس باید
مقادیر این پارامترها را روی مقادیری تنظیم کنید که در پایگاه اطلاعاتی نیستند (برای دایرکتوری ها - یک پیوند خالی، برای ثبت اطلاعات - مقادیر اندازه گیری که هیچ رکوردی برای آنها وجود ندارد). در این صورت گزینه functional مقدار False را خواهد داشت.
● در صورتی که ارجاع به یک گروه به عنوان پارامتر مشخص شود (اگر نوع پارامتر گزینه عملکردی اجازه ایجاد گروه ها را بدهد) و نه ارجاع به یک عنصر، رفتار سیستم به صورت زیر خواهد بود:
● اگر مشخصه ای که مقدار یک گزینه تابعی در آن ذخیره می شود، هم برای یک عنصر و هم برای یک گروه استفاده شود، آنگاه مقدار گزینه تابعی با مقدار این ویژگی تعیین می شود.
● اگر مشخصه ای که در آن مقدار یک گزینه تابعی ذخیره می شود برای یک گروه استفاده نمی شود، هنگام به دست آوردن مقدار یک گزینه عملکردی با استفاده از روش ها GetFunctionalOption()، () و () NULL را برمی گرداند. اگر یک گزینه ویژگی که با این مقدار پارامترگذاری شده است روی رابط کاربری تأثیر بگذارد، سیستم آن را غیرفعال می‌کند (گزینه ویژگی مقدار False را خواهد داشت).
● برای اشیاء فراداده تشکیل دهنده دستور، امکان تنظیم یک اتصال به یک گزینه تابعی پارامتری وجود دارد. در رابط فرمان، دستورات چنین اشیایی تنها در صورتی نمایش داده می شوند که حداقل یک ترکیب از پارامترهای گزینه عملکردی وجود داشته باشد که مقدار گزینه عملکردی برای آن True باشد. با این حال، با استفاده از روش () می توانید مقادیر خاصی را برای پارامترهای گزینه های عملکردی و سپس قابلیت مشاهده تنظیم کنید.
دستورات دقیقاً با پارامترهای مشخص شده تعیین می شوند.
● لیست پویا به طور خودکار از گزینه های کاربردی استفاده شده توسط فرم استفاده می کند. اگر جزئیاتی که در یک درخواست لیست پویا استفاده می شود برای ترکیب معینی از پارامترهای گزینه های عملکردی غیرفعال شود، داده های مربوط به آنها انتخاب نمی شود و در لیست پویا نمایش داده نمی شود و ویژگی از لیست جزئیات موجود در فهرست حذف می شود. دیالوگ تنظیمات نمایش داده ها
لیست پویا (در حالت 1C: Enterprise).

7. کار با گزینه های کاربردی در زبان داخلی

روش های زمینه جهانی GetFunctionOption()و GetInterfaceFunctionalOption() مقدار تابع را برمی گرداند
گزینه ها. تفاوت آنها در این است که روش اول به شما امکان می دهد مجموعه ای از پارامترها را برای گزینه های عملکردی مشخص کنید و روش دوم مقدار یک گزینه عملکردی را بر اساس پارامترهای تعیین شده برای رابط فرمان برمی گرداند. فرم متد خاص خود را دارد که مقدار گزینه را برای پارامترهای مشخص شده در فرم برمی گرداند - GetFunctionalOptionForm().
برای به روز رسانی رابط دستور جهانی، باید به صراحت متد را فراخوانی کنید تنظیم پارامترهای گزینه های رابط عملکردی().
رابط فرمان به روز می شود تا وضعیت جدید گزینه های کاربردی را منعکس کند.
یادداشت E. اگر مقدار یک گزینه تابعی در پایگاه داده تغییر کند، پس به روز رسانی خودکاردر حال حاضر هیچ رابط دستور جهانی یا فرم های باز وجود ندارد. برای این کار باید از روش استفاده کنید UpdateInterface() پس از نوشتن مقادیر گزینه های تابعی در پایگاه داده.
لطفاً به یاد داشته باشید که تنظیم پارامترهای گزینه های کاربردی (و اجرای روش UpdateInterface()) منجر به عواقب زیر می شود:
● برای هر فرم، بسته شدن تمام فرم های کمکی نامیده می شود (با کنترل کننده های مربوطه فراخوانی می شود).
● فرم هایی که از بسته شدن خودداری می کنند بسته نمی شوند.
● ترکیب عناصر فرم اصلی به روز شده است.
● اگر در زمان به روز رسانی رابط فرم فعالاصلی بود، فرم اصلی مطابق با ترکیب جدید عناصر نمایش داده می شود.
● اگر در زمان به روز رسانی رابط، فرم فعال یک فرم کمکی بود، پس:
● دستور باز کردن فرم کمکی در صورتی که پس از به‌روزرسانی رابط موجود باشد، اجرا می‌شود.
● در غیر این صورت ترکیب عناصر فرم اصلی به روز شده و نمایش داده می شود.
● اگر در زمان به روز رسانی رابط، فرم فعال یک فرم کمکی بود که با استفاده از دستوری غیر مرتبط با پانل پیمایش فرم باز شده است، به جای این فرم ترکیب عناصر فرم اصلی به روز می شود و نمایش داده می شود. .
برای به روز رسانی یک فرم خاص، باید آن را دوباره باز کنید یا روش را فراخوانی کنید SetFormFunctionalOptionsParameters(),
در این مورد، دنباله اقدامات ذکر شده در بالا فقط برای فرمی کار می کند که در چارچوب آن تنظیم پارامترهای گزینه های عملکردی فرم فراخوانی می شود.
لازم نیست همه پارامترها را یکجا مشخص کنید، می توانید مقدار یک پارامتر خاص یا مجموعه ای از پارامترها را به صورت انتخابی تغییر دهید. اما این تنظیم گروهی مقادیر با یک تماس است که موثرتر است.
برای بدست آوردن مقادیر پارامتر، باید تابع مربوطه ( GetParametersFunctionalOptionsInterface() یا
GetFormFunctionalOptionsParameters())، که پارامترهای مجموعه را به شکل یک ساختار برمی گرداند، که در آن کلید نام پارامتر خواهد بود.
هنگامی که باز می شود، فرم به طور خودکار از پارامترهای گزینه های عملکردی تنظیم شده برای رابط فرمان استفاده می کند.

گزینه های کاربردی– این یکی از ویژگی های جدید پلتفرم 1C:Enterprise 8.2 است. نکته استفاده از آنها این است که به شما این امکان را می دهند که رابط کاربری را مطابق با تنظیمات گزینه های کاربردی سفارشی کنید و قابلیت مشاهده جزئیات را در فرم ها تنظیم کنید. علاوه بر این، توسعه دهنده فرصت پیاده سازی کد برنامه را دارد که اجرای آن به وضعیت گزینه عملکردی بستگی دارد.

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

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

&در رویه مشتری AfterRecord(RecordParameters) UpdateInterface(); پایان رویه

معنی استفاده از دستور UpdateInterface()به روز رسانی و ترسیم مجدد رابط پس از اعمال تغییر در ثابت مرتبط با گزینه عملکردی است. در غیر این صورت، برای اعمال تغییرات، باید پیکربندی را مجدداً راه اندازی کنید.

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


برنج. 7.23.

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


برنج. 7.24.

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

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

سخت تر مورد استفادهگزینه های عملکردی شامل تنظیم نمایان بودن عناصر فرم فردی است اگر مقدار گزینه عملکردی در ویژگی یک شی ذخیره شود.

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

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

عملکرد مکانیزم بر اساس دو شیء پیکربندی است:

  • گزینه کاربردی
    اشیاء پیکربندی و جزئیات آنها را می توان با گزینه های کاربردی اضافه شده به یک راه حل کاربردی مرتبط کرد. به عنوان مثال، با گزینه کاربردی حسابداری انبارمی توانید لوازم را پیوند دهید موجودیسند دریافت کالا. سپس، اگر این گزینه کاربردی را در حالت 1C: Enterprise فعال کنید، فیلد را فعال کنید موجودیدر تمام فرم های سند نمایش داده می شود. اگر آن را خاموش کنید - فیلد موجودینمایش داده نخواهد شد. ادامه مطلب...
  • پارامتر گزینه عملکردی
    گزینه های عملکردی را می توان با پارامترها استفاده کرد. به عنوان مثال، به طوری که ظاهر یک فرم خاص می تواند به مقدار پارامتر انتخاب شده در فرم بستگی داشته باشد. به عنوان مثال، با پارامتر گزینه function حسابداری ارزیشاید سازمان. سپس بسته به اینکه کدام سازمان در فرم انتخاب شده باشد، فیلد ارز تسویه حساب های متقابلپنهان یا نمایش داده می شود. ادامه مطلب...
انتخاب سردبیر
کیک تعبیر خواب وقتی به رختخواب می رویم، اغلب در خواب می بینیم که طرح رویایی خوشایند خواهد بود و البته می خواهیم رویا پیش بینی کند...

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

تعبیر خواب قرن بیست و یکم چرا در خواب هلیکوپتر می بینید و تعبیر آن چیست : هلیکوپتر - دیدن هلیکوپتر در خواب به این معنی است که به زودی یک موضوع مهم ...

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