Menü
Bedava
kayıt
ev  /  internet/ 1s 8.3 istemcide mevcut kullanıcıyı tanımlar.

1c 8.3 istemcide mevcut kullanıcıyı tanımlar.

  • GÜNCEL BÜLTENLER 1C
  • PLATFORM 1C ÜZERİNDEKİ KOD ÖRNEKLERİ
1C 8.x'te roller, erişim hakları
Geçerli kullanıcı için belirli bir rolün mevcut olup olmadığını nasıl bilebilirim?
Eğer Rol Mevcut Değilse ("Yönetici") Sonra Bildirin ("Alıcılardan gelen isteklerin görüntülenmesine izin verilmez!"); EndIf;
Yapılandırma rolleri hakkında nasıl bilgi alabilirim?
FunctionPossibleConfigurationPossibleRoles () RoleList = yeni Değerler Listesi; RolesConfigurations = Metadata.Roles; RoleConfiguration Cycle Role List.Add'den (Role.Name) her bir Rol için; Döngü Sonu; Rol Listesini Döndür; EndFunction
Hakları kontrol etmeden kodu nasıl çalıştırabilirim?
1. Ayrıcalıklı bir modül kullanın 2. SINIRLAMALAR KONTROLÜ OLMADAN yürütülmesi gereken program kodunun, modül için AYRICALIKLI bayrak ayarlı ortak bir modüle yerleştirilmesi. Program kodunun ayrıcalıklı yürütme modunu kullanın Ayrıcalıklı modüllerin kodunun çalışma moduna benzer. Mod, yerleşik dil aracılığıyla etkinleştirilebilir / devre dışı bırakılabilir: Tercih Edilen Modu Ayarla (<Включить>) Parametre<Включить>(gerekli) Tür: Boole. Ayrıcalıklı modun etkinleştirilip etkinleştirilmeyeceğini belirler: True - modu etkinleştirin; Yanlış - modu kapatın. PrivilegedMode () işlevi, ayrıcalıklı modun etkinleştirilip etkinleştirilmediğini belirlemenizi sağlar. Ayrıcalıklı modun kullanılması, ilk olarak, verilere erişimde herhangi bir kısıtlama olmayacağı için çalışmayı hızlandırır ve ikinci olarak, bu verilere erişimi olmayan kullanıcılar adına verilerle işlem yapmanızı sağlar. Mantıksal bir bakış açısından, hak denetimini devre dışı bırakmanız gerektiğinde veya işinizi hızlandırmak için hak denetimini devre dışı bırakmanız gerektiğinde ayrıcalıklı modu kullanmanız önerilir. Belirli bir kullanıcı adına verilerle çalışırken ayrıcalıklı modun kullanılmasına izin verilir, bu kullanıcı için belirlenen erişim haklarını ihlal etmez.

5
Erişimin daha ince ayarlanması gerektiğinde, RLS - Kayıt Düzeyi Güvenlik mekanizması kurtarmaya gelir. 1C: Enterprise 8 sisteminin konfigürasyonu başlangıçta çok şirketli muhasebe için bir program olarak konumlandırıldı ve ... 3
1C Enterprise sisteminin 8.0 platformundan başlayarak, kullanıcı erişim haklarını kayıt düzeyinde kısıtlamak mümkündür. Bunun için RLS (Record Level Security) mekanizması kullanılmaktadır. Böyle bir "ince ayar" olabilir ... 3
Yazılım oluşturma ve kullanıcı haklarını ayarlama ile ilgili sorularla sık sık karşılaşıyorum. Bu yazımda programlı olarak kullanıcı yaratan Normal ve Yönetilen uygulamalara örnekler vereceğim... 2
Soru: Yeni bir kullanıcı ekledim. Yeni bir arayüz oluşturuyorum (mevcut olanı kopyalayarak) ve bu arayüzü bu kullanıcı için ana arayüz olarak belirtiyorum. Sorun, oluşturulan yeni arayüzün ...

1C: Enterprise'da dikkate alınan parametreler bir meta veri nesnesi olarak sunulur. Esasen, geçerli oturuma bağlı global bir değişkenden başka bir şey değildir.

Genel değişken, diğer değişkenlerle aynı değişkendir, ancak özelliği, ona programın herhangi bir yerinden başvurabilmenizdir ve bir oturum parametresi durumunda, bu yalnızca geçerli oturumda çalışır.

kadarıyla oturum parametresi bir meta veri nesnesidir, belirli özelliklere sahiptir:

  • Belirli bir tür olabilir.İzin verilen türler platforma özeldir. Bunların listesi oldukça geniştir, ancak bu liste ihtiyacınız olanı içermese bile, değeri her zaman seri hale getirebilir ve bir parametrede bir dize olarak saklayabilirsiniz.
  • Diğer herhangi bir meta veri nesnesi gibi hakları da rollerle sınırlandırılabilir (hem yazma hem de okuma için). Aynı zamanda, RLS'de kullanırken bir tuhaflık vardır, ancak bu aşağıda açıklanacaktır.
  • Yerleştirilebilecek serileştirilmiş veri miktarında bir sınırı vardır. Hacimleri 4 GB'ı geçmemelidir.

Oturum parametresinin türü ise:

  • Sabit Dizi
  • Sabit koleksiyon
  • Sabit yapı

Daha sonra koleksiyon öğesinin değeri şu şekilde olabilir: Tanımsız.

Parametrelerin ana kapsamı, değerlerinin RLS (kayıt düzeyinde erişim kısıtlaması) taleplerinde uygulanmasıdır.

Örneğin, bir RLS isteğinde mevcut kullanıcı için bir koşul belirlememiz gerekiyor. Bunu yapmak için "CurrentUser" oturum parametresini ayarlayın, yerleşik dil kodundan değeri ayarlayın:

Oturum Parametreleri.CurrentUser =<значение>

Table.User = & CurrentUser

Oturum parametresinin bu kullanımı, parametrenin okuma izinlerini hesaba katmaz, ancak değerlerini gömülü dilden almayı deneyebilirsiniz:

CurrentUser = SessionParameters.CurrentUser;


Oturum parametresi yani değeri yalnızca programlı olarak ve yalnızca sunucu üzerinde ayarlanabilir. Bunu yapmak için, istemciden sunucu prosedürünü çağırmanız gerekir. Bir oturum parametresine (set, get) erişirken, parametre başlatılmazsa prosedür çağrılır. AyarlarOturumParametreleri oturum modülünde. Bu prosedürün bir parametresi vardır. Gerekli parametreler- oturum parametrelerinin bir dizi tanımlayıcı dizisi. AyarlarOturumParametreleri Diğer tüm işleyiciler çağrılmadan önce bir bilgi tabanına bağlantı kurulduğunda da çağrılır. Bu durumda Gerekli parametreler eşit olacak Tanımsız.

Tüm oturum parametreleri doğrudan sistem başlangıcında gerekli olmadığından, oturum parametrelerinin sistem başlangıcında değil, isteğe bağlı olarak başlatılması için ertelenmiş (tembel) başlatma kullanılması önerilir. Tembel başlatma şu şekilde yapılır:

Prosedür SettingSessionParameters (SessionParameterNames) SessionParameterNames Tanımsız ise ParameterName = "CurrentUser" ise SessionParameters.CurrentUser =; ElseIf ParameterName = "CurrentOrganization" Sonra SessionParameters.CurrentOrganization =; // vesaire. EndIf; EndIf; EndProcedure değeri> değeri >>

session parametresi session'a bağlı olduğundan, bu zaten farklı bir session olacağı için arka planda çalışan metoddan session parametresine ulaşmak mümkün olmayacaktır. Bu nüans şaşırtıcı gelebilir, bu nedenle istenen değeri bir yöntem parametresi olarak ileterek ve işlemin başlangıcında oturum parametresinden başlatarak buna önceden hazırlanmak daha iyidir.

Parametre oturumları 1C 8.3- kullanıcının oturumu süresince gerekli parametrenin değerini depolayan bir değişken. Aslında bu, mevcut kullanıcının oturumuna bağlı bir tür global değişkendir.

1C'de oturum parametrelerini kullanma

Oturum parametreleri yalnızca programlı olarak ayarlanır, sistemde oturum parametrelerinin ayarlanması için evrensel bir arabirim yoktur. Genellikle sistem başlangıcında "Oturum modülünde" ayarlanırlar. Parametre tanımlı değilse, çağrı sırasında bir hata atılır.

1C oturum parametresi ayarlama örneği

Şimdi oturum parametreleri için tipik bir kullanım örneğine bakalım - mevcut kullanıcıyı ayarlama. Hazırlıktan bir örnek alacağım.

Meta veri ağacında yeni bir oturum parametresi oluşturun - CurrentUser, buna bir tür atayın - ReferenceLink.

267 1C video eğitimlerini ücretsiz edinin:

Oturum modülünde, mevcut oturum parametresinin belirleneceği bir prosedür oluşturacağız:

Prosedür kodu:

SessionParameters (RequiredParameters) Ayarlama Prosedürü // fiziksel aranıyor. kullanıcı adına göre yüz CurrentUser = Dizinler. Bireyler. FindByDesign (KullanıcıAdı ()); // bulunamazsa yeni bir tane oluşturun Eğer CurrentUser. Boş () Sonra NewUser = Dizinler. Bireyler. CreateElement(); Yeni kullanıcı. İsim = KullanıcıAdı (); Yeni kullanıcı. Yazı yazmak (); CurrentUser = YeniKullanıcı. Bağlantı; EndIf; // CurrentUser oturum parametresine bireylerin referansına bir bağlantı atayın Oturum Parametreleri. CurrentUser = CurrentUser; Prosedürün Sonu