1c 8.3 احصل على المستخدم الحالي على العميل. كيفية معرفة ما إذا كان هناك دور معين متاح للمستخدم الحالي
يتم تقديم المعلمات قيد الدراسة في 1C: Enterprise ككائن بيانات وصفية. في الأساس ، إنه ليس أكثر من متغير عام مرتبط بالدورة الحالية.
المتغير العام هو نفس المتغير مثل أي متغير آخر ، لكن خصوصيته هي أنه يمكن الوصول إليه من أي مكان في البرنامج ، وفي حالة معلمة الجلسة ، يعمل هذا فقط في الجلسة الحالية.
بسبب ال معلمة الجلسةهو كائن بيانات وصفية ، وله ميزات معينة:
- قد يكون من نوع معين.الأنواع المسموح بها خاصة بالمنصة. القائمة واسعة جدًا ، ولكن حتى إذا كانت هذه القائمة لا تحتوي على القائمة التي تحتاجها ، يمكنك دائمًا إجراء تسلسل للقيمة وتخزينها في المعلمة كسلسلة.
- يمكن تقييد الحقوق الخاصة بها ، وكذلك أي كائن بيانات وصفية آخر ، بالأدوار (للكتابة والقراءة). في الوقت نفسه ، هناك خصوصية عند استخدامه في RLS ، ولكن سيتم مناقشة ذلك أدناه.
- لديها حد لكمية البيانات الموضوعة في شكل متسلسل.يجب ألا يتجاوز حجمها 4 جيجا بايت.
إذا كان نوع معلمة الجلسة:
- مصفوفة ثابتة
- مجموعة ثابتة
- هيكل ثابت
ثم يمكن أن تكون قيمة عنصر المجموعة غير معرف.
المجال الرئيسي للمعلمات هو استخدام قيمها في طلبات RLS (تقييد الوصول على مستوى السجل).
على سبيل المثال ، نحتاج إلى تعيين شرط للمستخدم الحالي في طلب RLS. للقيام بذلك ، قمنا بتعيين معلمة الجلسة "CurrentUser" ، من رمز اللغة المضمنة ، قم بتعيين القيمة:
SessionParameters.CurrentUser =<значение>
Table.User = & CurrentUser
لا يأخذ استخدام معلمة الجلسة بهذه الطريقة في الاعتبار حقوق قراءة المعلمة ، ولكن يمكنك محاولة الحصول على قيمتها من اللغة المضمنة:
CurrentUser = SessionParameters.CurrentUser ،
يمكنك تعيين معلمة جلسة ، أي قيمتها ، برمجيًا فقط وعلى الخادم فقط. للقيام بذلك ، تحتاج إلى استدعاء إجراء الخادم من العميل. عند الوصول إلى معلمة جلسة (الإعداد ، الحصول) ، إذا لم تتم تهيئة المعلمة ، فسيتم استدعاء الإجراء الإعدادات الجلسةالمعلماتفي وحدة الجلسة. هذا الإجراء له معلمة واحدة الخيارات المطلوبة- مجموعة من معرفات معلمات الجلسة التي سيتم تعيينها. الإعدادات الجلسةالمعلماتيُستدعى أيضًا عند إنشاء اتصال بقاعدة المعلومات قبل استدعاء جميع المعالجات الأخرى. في هذه الحالة الخيارات المطلوبةسوف تساوي غير معرف.
يوصى باستخدام التهيئة المؤجلة (الكسولة) ، أي تهيئة معلمات الجلسة عند الطلب ، وليس عند بدء تشغيل النظام ، حيث لا تكون جميع معلمات الجلسة مطلوبة مباشرة عند بدء تشغيل النظام. تتم عملية التهيئة البطيئة على النحو التالي:
الإجراء SettingSessionParameters (SessionParameterNames) إذا كان SessionParameterNames غير معرف ، ثم IfParameterName = "CurrentUser" ثم SessionParameters.CurrentUser =؛ ElseIf ParameterName = "CurrentOrganization" ثم SessionParameters.CurrentOrganization =؛ // إلخ. إنهاء إذا؛ إنهاء إذا؛ EndProcedurevalue> قيمة >>نظرًا لأن معلمة الجلسة مرتبطة بالجلسة ، فلن يكون من الممكن الوصول إلى معلمة الجلسة من طريقة تعمل في الخلفية ، لأنها ستكون جلسة مختلفة. يمكن أن يأتي هذا الفارق الدقيق كمفاجأة ، لذلك من الأفضل الاستعداد له مسبقًا عن طريق تمرير القيمة المطلوبة كمعامل أسلوب والتهيئة من معلمة الجلسة في بداية الإجراء.
5
عند الحاجة إلى إعداد وصول أكثر دقة ، تأتي آلية RLS - Record Level Security في عملية الإنقاذ. 1C: تم وضع تكوينات نظام المؤسسة 8 في الأصل كبرنامج للمحاسبة متعددة الشركات ، وواحد من ...
3
بدءًا من النظام الأساسي 8.0 لنظام 1C Enterprise ، من الممكن تقييد حقوق وصول المستخدم على مستوى السجل. لهذا ، يتم استخدام آلية RLS (أمان مستوى السجل). يمكن أن يكون هذا الضبط "الدقيق" ...
3
غالبًا ما ألتقي بالأسئلة المتعلقة بالإنشاء البرنامجي وإعداد حقوق المستخدم. في هذه المقالة ، سأقدم أمثلة للتطبيقات القياسية والمدارة التي تنشئ مستخدمًا برمجيًا في ...
2
سؤال: لقد قمت بإضافة مستخدم جديد. أقوم بإنشاء واجهة جديدة (عن طريق نسخ الواجهة الحالية) وتحديد هذه الواجهة باعتبارها الواجهة الرئيسية لهذا المستخدم. المشكلة هي أن الواجهة المنشأة حديثًا ...
- الإصدارات الحالية 1 ج
- أمثلة الكود على منصة 1C