زنگ

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

جلسات پارامترهای 1C 8.3- متغیری که مقدار پارامتر مورد نیاز را برای مدت زمان جلسه کاربر ذخیره می کند. در حقیقت ، این نوعی متغیر جهانی است که با جلسه کاربر فعلی گره خورده است.

استفاده از پارامترهای جلسه در 1C

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

مثال تنظیم پارامتر جلسه 1C

بیایید به یک مورد استفاده معمولی برای پارامترهای جلسه بپردازیم - تنظیم کاربر فعلی. مثالی از آماده شدن برای آن می آورم.

در درخت ابرداده ، یک پارامتر جلسه جدید ایجاد کنید - CurrentUser ، آن را به یک نوع اختصاص دهید - ReferenceLink.

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

در ماژول جلسه روشی را ایجاد خواهیم کرد که در آن پارامتر جلسه فعلی مشخص شود:

کد رویه:

روش تنظیم پارامترهای Session (پارامترهای ضروری) // به دنبال جسمی. صورت با نام کاربری CurrentUser \u003d دایرکتوری. اشخاص حقیقی. FindByDesign (نام کاربری ())؛ // اگر یافت نشد ، یک مورد جدید ایجاد کنید اگر CurrentUser. خالی () سپس NewUser \u003d دایرکتوری. اشخاص حقیقی. CreateElement ()؛ کاربر جدید. نام \u003d نام کاربری ()؛ کاربر جدید. نوشتن ()؛ CurrentUser \u003d NewUser. ارتباط دادن؛ EndIf؛ // به پارامتر جلسه CurrentUser پیوندی به مرجع افراد اختصاص دهید پارامترهای جلسه. CurrentUser \u003d CurrentUser؛ پایان مراحل

پارامترهای مورد بررسی در 1C: Enterprise به عنوان یک ماده ابرداده ارائه می شود. اساساً ، این چیزی نیست جز یک متغیر جهانی که به جلسه فعلی محدود باشد.

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

تا آنجا که پارامتر جلسه یک ماده ابرداده است ، ویژگی های خاصی دارد:

  • این می تواند از نوع خاصی باشد. انواع مجاز بصورت خاص برای پلتفرم هستند. لیست آنها کاملاً گسترده است ، اما حتی اگر این لیست حاوی لیست مورد نیاز شما نباشد ، همیشه می توانید مقدار را سریال کنید و آن را در یک پارامتر به صورت رشته ذخیره کنید.
  • حقوق مربوط به آن ، مانند هر موضوع ابرداده دیگری ، می تواند به نقشها محدود شود (هم برای نوشتن و هم برای خواندن). در عین حال ، هنگام استفاده از آن در RLS یک ویژگی وجود دارد ، اما این مورد در زیر توضیح داده خواهد شد.
  • این مقدار در داده های سریالی که می توان در آن قرار داد محدودیت دارد. حجم آنها نباید بیشتر از 4 گیگابایت باشد.

اگر نوع پارامتر جلسه است:

  • FixedArray
  • مجموعه ثابت
  • ساختار ثابت

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

دامنه اصلی پارامترها استفاده از مقادیر آنها در درخواستهای RLS (محدودیت دسترسی به سطح رکورد) است.

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

گزینه های جلسه.CurrentUser \u003d<значение>

Table.User \u003d & CurrentUser

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

CurrentUser \u003d SessionParameters.CurrentUser؛


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

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

روش تنظیم پارامترهای Session (نام SessionParameterNames) اگر نام های SessionParameter تعریف نشده باشند ، اگر ParameterName \u003d "CurrentUser" باشد ، سپس SessionParameters.CurrentUser \u003d؛ ElseIf ParameterName \u003d "CurrentOrganization" سپس SessionParameters.CurrentOrganization \u003d؛ // و غیره. EndIf؛ EndIf؛ مقدار EndProcedure\u003e مقدار \u003e\u003e

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

  • اعلامیه های 1C
  • نمونه کد در PLATFORM 1C
نقش ها ، حقوق دسترسی در 1C 8.x
چگونه می دانم نقش خاصی در اختیار کاربر فعلی است؟
اگر No RoleAvailable ("مدیر") سپس گزارش دهید ("مشاهده درخواست از خریداران مجاز نیست!")؛ EndIf؛
چگونه می توانم در مورد نقش های پیکربندی اطلاعات کسب کنم؟
تابع ConfigurationPossibleRoleList () RoleList \u003d newList of Values؛ RolesConfigurations \u003d Metadata.Roles؛ برای هر نقش از لیست نقش چرخه RoleConfiguration .Add (Role.Name)؛ پایان چرخه؛ لیست بازی های برگشتی؛ عملکرد نهایی
چگونه می توانم بدون چک کردن حقوق ، کد را اجرا کنم؟
1. از یک ماژول ممتاز استفاده کنید. قرار دادن کد برنامه ، که باید بدون کنترل محدود ، در یک ماژول مشترک با پرچم PRIVILEGED تنظیم شده برای ماژول اجرا شود. استفاده از حالت ممتاز اجرای کد برنامه مشابه حالت عملکرد کد ماژول های ممتاز. با استفاده از زبان داخلی می توانید فعال یا غیرفعال کنید: تنظیم حالت ترجیحی (<Включить>) پارامتر<Включить> (ضروری) نوع: بولی. تعیین می کند که حالت ممتاز فعال خواهد شد: صحیح - حالت را فعال کنید. کاذب - حالت را خاموش کنید. تابع PrivilegedMode () به شما امکان می دهد حالت ممتاز را فعال کنید یا نه. استفاده از حالت ممتاز ، در مرحله اول امکان سرعت بخشیدن به کار را فراهم می کند ، زیرا هیچ گونه محدودیتی برای دسترسی به داده ها وجود نخواهد داشت ، و ثانیا ، به شما امکان می دهد عملیات را با داده هایی از طرف کاربرانی که این داده ها در دسترس نیست انجام دهید. استفاده از حالت ممتاز توصیه می شود وقتی که از دیدگاه منطقی ، شما می توانید چک کردن حقوق را غیرفعال کنید ، یا اینکه می توانید چک کردن حقوق را غیرفعال کنید تا کار خود را سریع تر کنید. استفاده از حالت ممتاز هنگام کار با داده از طرف کاربر خاص مجاز به نقض حقوق دسترسی تعیین شده برای این کاربر نیست.

5
هنگامی که تنظیم دقیق دسترسی بیشتر مورد نیاز است ، ساز و کار امنیتی RLS - Record Level نجات می یابد. پیکربندی سیستم 1C: Enterprise 8 در ابتدا به عنوان برنامه ای برای حسابداری چند شرکت قرار گرفت و یکی از ... 3
با شروع از پلتفرم 8.0 سیستم 1C Enterprise ، می توان حق دسترسی کاربر را در سطح ضبط محدود کرد. برای این کار از مکانیزم RLS (Record Level Security) استفاده شده است. چنین "تنظیم دقیق" می تواند ... 3
من اغلب با سؤالات مرتبط با ایجاد نرم افزار و تنظیمات حقوق کاربر روبرو می شوم. در این مقاله نمونه هایی را برای برنامه های معمولی و مدیریتی ارائه می دهم که بطور برنامه ای کاربر را در ... 2
سوال: من یک کاربر جدید اضافه کرده ام. من یک رابط جدید ایجاد می کنم (با کپی کردن موجود) و این رابط را به عنوان اصلی ترین برای این کاربر مشخص می کنم. مشکل این است که رابط جدید ایجاد شده ...

زنگ

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