1c 8.3 Хариуцлагатай одоогийн хэрэглэгч. Одоогийн хэрэглэгчдэд тодорхой үүрэг байгаа эсэхийг хэрхэн олж мэдэх вэ

1C: Enterprise-д авч үзэж буй параметрүүдийг мета өгөгдлийн объект хэлбэрээр үзүүлэв. Үндсэндээ энэ нь одоогийн сесстэй холбогдсон глобал хувьсагчаас өөр зүйл биш юм.

Глобал хувьсагч нь бусадтай ижил хувьсагч боловч түүний онцлог нь програмын хаанаас ч хандах боломжтой бөгөөд сессийн параметрийн хувьд энэ нь зөвхөн одоогийн сесс дотор ажилладаг.

Учир нь сессийн параметрмета өгөгдлийн объект бөгөөд энэ нь тодорхой онцлог шинж чанартай:

  • Энэ нь тодорхой төрлийн байж болно.Зөвшөөрөгдсөн төрлүүд нь платформд зориулагдсан байдаг. Тэдгээрийн жагсаалт нь нэлээд өргөн хүрээтэй боловч энэ жагсаалтад танд хэрэгтэй зүйл байхгүй байсан ч та утгыг үргэлж цуваа болгож, параметрт мөр болгон хадгалах боломжтой.
  • Түүнд болон бусад мета өгөгдлийн объектын эрхийг үүргээр (бичих болон уншихад) хязгаарлаж болно. Үүний зэрэгцээ үүнийг RLS-д ашиглахад нэг онцлог шинж чанартай байдаг боловч үүнийг доор авч үзэх болно.
  • Энэ нь цуваа хэлбэрээр байрлуулсан өгөгдлийн хэмжээг хязгаарласан байдаг.Тэдний хэмжээ 4 ГБ-аас хэтрэхгүй байх ёстой.

Хэрэв сессийн параметрийн төрөл:

  • FixedArray
  • FixedCollection
  • FixedStructure

Дараа нь цуглуулгын элементийн утга байж болно Тэмдэглэгдээгүй.

Параметрүүдийн гол талбар нь RLS хүсэлтэд тэдгээрийн утгыг ашиглах явдал юм (бичгийн түвшинд хандалтыг хязгаарлах).

Жишээлбэл, бид RLS хүсэлтэд одоогийн хэрэглэгчийн нөхцөлийг тохируулах хэрэгтэй. Үүнийг хийхийн тулд бид "CurrentUser" сесс параметрийг суулгасан хэлний кодоос утгыг тохируулна.

SessionParameters.CurrentUser =<значение>

Хүснэгт.Хэрэглэгч = &Одоогийн хэрэглэгч

Сеанс параметрийг ийм байдлаар ашиглах нь параметрийн унших эрхийг харгалзахгүй, гэхдээ та тэдгээрийн утгыг суулгасан хэлнээс авахыг оролдож болно.

CurrentUser = SessionParameters.CurrentUser;


Та сессийн параметрийг, өөрөөр хэлбэл түүний утгыг зөвхөн програмын дагуу, зөвхөн сервер дээр тохируулах боломжтой. Үүнийг хийхийн тулд та үйлчлүүлэгчээс серверийн процедурыг дуудах хэрэгтэй. Сеансын параметрт хандах үед (тохиргоо, авах) хэрэв параметрийг эхлүүлээгүй бол процедурыг дуудах болно SettingSessionParametersсесс модульд. Энэ процедур нь нэг параметртэй Шаардлагатай сонголтууд– тохируулагдах сессийн параметр тодорхойлогчдын массив. SettingSessionParameters-тай холболт үүссэн үед мөн дуудагдана мэдээллийн баазбусад бүх зохицуулагчийг дуудахын өмнө. Энэ тохиолдолд Шаардлагатай сонголтуудтэнцүү байх болно Тэмдэглэгдээгүй.

Системийг эхлүүлэх үед бүх сессийн параметрүүдийг шууд шаарддаггүй тул хойшлогдсон (залхуу) эхлүүлэхийг ашиглахыг зөвлөж байна. Залхуу эхлүүлэх нь дараах байдлаар хийгддэг.

Procedure SettingSessionParameters(SessionParameterNames) Хэрэв SessionParameterNames тодорхойгүй байвал IfParameterName = "CurrentUser" Дараа нь SessionParameters.CurrentUser = ; ElseIf ParameterName = " CurrentOrganization" Дараа нь SessionParameters.CurrentOrganization = ; // гэх мэт. EndIf; EndIf; EndProcedurevalue>утга>>

Сеанс параметр нь сесстэй холбогдсон тул далд ажиллаж байгаа аргаас сессийн параметрт хандах боломжгүй, учир нь энэ нь өөр сесс байх болно. Энэ нюанс нь гэнэтийн зүйл байж болох тул шаардлагатай утгыг аргын параметр болгон дамжуулж, процедурын эхэнд сесс параметрээс эхлүүлэх замаар урьдчилан бэлдэх нь дээр.

  • ӨНӨӨГИЙН ХУГАЦАА 1С
  • 1С ПЛАТФОРМ ДАХЬ КОДЫН ЖИШЭЭ
1С 8.x дээрх үүрэг, хандах эрх
Одоогийн хэрэглэгч тодорхой үүрэг гүйцэтгэх боломжтой эсэхийг яаж мэдэх вэ?
Хэрэв үүрэг байхгүй бол("Менежер") Дараа нь мэдээлэх("Худалдан авагчдын захиалгыг харахыг хориглоно!"); EndIf;
Тохируулгын үүргийн талаарх мэдээллийг хэрхэн авах вэ?
Функцийн боломжит тохиргооны үүргүүдийн жагсаалт() Үүргийн жагсаалт = шинэ утгын жагсаалт; ConfigRoles = Мета өгөгдөл.Үүрэг; RoleConfiguration Loop List-ийн үүрэг тус бүрийн хувьдRoles.Add(Role.Name); Төгсгөлийн мөчлөг; Гүйцэтгэлийн жагсаалтыг буцаах; Төгсгөлийн функцууд
Эрхийг шалгахгүйгээр кодыг хэрхэн гүйцэтгэх вэ?
1. Давуу эрхтэй модулийг ашиглах 2. Байршуулах програмын код, ХЯЗГААРЛАЛГҮЙ ХЯНАЛТГҮЙ хийгдэх ёстой бөгөөд модульд тохируулсан PRIVILEGE туг бүхий нийтлэг модуль болгон. Програмын кодыг гүйцэтгэх давуу горимыг ашиглах Давуу эрхтэй модулиудын кодын ажиллах горимтой төстэй. Уг горимыг суулгасан хэлийг ашиглан идэвхжүүлж/идэвхгүй болгож болно: SetPrivilegedMode(<Включить>) Параметр<Включить>(шаардлагатай) Төрөл: Boolean. Давуу эрхтэй горимыг идэвхжүүлэх эсэхийг тодорхойлно: Үнэн - горимыг идэвхжүүлэх; Худал - горимыг унтраа. PrivilegedMode() функц нь давуу эрхтэй горим идэвхжсэн эсэхийг тодорхойлох боломжийг танд олгоно. Давуу эрхтэй горимыг ашиглах нь нэгдүгээрт, өгөгдөлд нэвтрэхэд ямар ч хязгаарлалт байхгүй тул ажлыг хурдасгах, хоёрдугаарт, энэ өгөгдөл байхгүй хэрэглэгчдийн нэрийн өмнөөс өгөгдөлтэй ажиллах боломжийг олгодог. Зөвшөөрлийн шалгалтыг унтраах нь логик шаардлагатай үед эсвэл үйлдлийг хурдасгахын тулд зөвшөөрлийн шалгалтыг унтрааж болох үед давуу горимыг ашиглахыг зөвлөж байна. Тодорхой хэрэглэгчийн нэрийн өмнөөс өгөгдөлтэй ажиллах нь энэ хэрэглэгчийн тогтоосон хандалтын эрхийг зөрчөөгүй тохиолдолд давуу эрхтэй горимыг ашиглахыг зөвшөөрнө.

Сеансын параметрүүд 1С 8.3- утгыг хадгалдаг хувьсагч хүссэн параметрхэрэглэгчийн сессийн хугацаанд. Үнэн хэрэгтээ энэ нь одоогийн хэрэглэгчийн сесстэй холбоотой нэг төрлийн глобал хувьсагч юм.

1С дахь сессийн параметрүүдийг ашиглах

Сеансын параметрүүдийг зөвхөн программын дагуу тохируулдаг бөгөөд системд сессийн параметрүүдийг тохируулах бүх нийтийн интерфейс байдаггүй. Тэдгээрийг ихэвчлэн системийг эхлүүлэх үед "Сессийн модуль" хэсэгт тохируулдаг. Хэрэв параметр тодорхойлогдоогүй бол түүнд хандах явцад алдаа гарна.

1С сесс параметрийг тохируулах жишээ

Сеансын параметрүүдийн ердийн хэрэглээний жишээг харцгаая - одоогийн хэрэглэгчийг тохируулах. Би бэлтгэлээс жишээ авах болно.

Мета өгөгдлийн модонд шинэ сесс параметр үүсгэцгээе - CurrentUser, түүнд төрлийг оноох - DirectoryReference.Individuals:

267 1С видео хичээлийг үнэгүй аваарай:

Сеансын модульд одоогийн сессийн параметрийг тодорхойлох процедурыг үүсгэцгээе:

Процедурын код:

Процедурын тохиргооSessionParameters(Шаардлагатай Параметрүүд) //бид биеийг хайж байна. хэрэглэгчийн нэрээр нүүр царай CurrentUser = Лавлахууд. Хувь хүмүүс. FindByName(ХэрэглэгчийнНэр() ); // олдохгүй бол шинээр үүсгэнэ үүХэрэв CurrentUser. Empty() Дараа нь NewUser = Лавлах. Хувь хүмүүс. CreateElement(); Шинэ хэрэглэгч. Нэр = Хэрэглэгчийн нэр() ; Шинэ хэрэглэгч. Write(); Одоогийн хэрэглэгч = Шинэ хэрэглэгч. Холбоос; EndIf; //CurrentUser сессийн параметрт хувь хүмүүсийн лавлах холбоосыг оноох SessionParameters. CurrentUser = CurrentUser; Төгсгөлийн процедур

Ачааж байна...
Топ