5
Там, де необхідно більш тонка настройка доступу, на допомогу приходить механізм RLS - Record Level Security. Конфігурації системи «1С: Підприємство» 8 спочатку позиціонувалася як програма для багатофірмового обліку, і один з ...
3
Починаючи з платформи 8.0 системи 1С Підприємство, існує можливість обмежувати права доступу користувачів на рівні записів. Для цього використовується механізм RLS (Record Level Security). Така «тонка» налаштування може бути ...
3
Часто зустрічаю питання що стосуються програмного створення і налаштування прав користувачів. В цей статті я приведу приклади для Звичайного і Керованого додатків, які програмно створюють користувача в ...
2
Питання: У мене доданий новий користувач. Створюю новий інтерфейс (копіюванням існуючого) і вказую цей інтерфейс в якості основного для даного користувача. Проблема в тому, що створений новий інтерфейс ...
Розглянуті параметри в 1С: Підприємство представлені у вигляді об'єкта метаданих. По суті, це не що інше, як глобальна змінна, прив'язана до поточного сеансу.
Глобальна змінна - така ж мінлива, як і будь-яка інша, але особливість її в тому, що звернутися до неї можна з будь-якої точки програми, а у випадку з параметром сеансу це працює тільки в межах поточного сеансу.
оскільки параметр сеансу є об'єктом метаданих, він має певні особливості:
- Він може бути певного типу. Дозволені типи визначаються платформою. Перелік їх досить великий, але навіть якщо в даному списку немає потрібного для вас, завжди можна серіалізовать значення і зберігати його в параметрі у вигляді рядка.
- Права на нього, як і на будь-який інший об'єкт метаданих, можна обмежувати ролями (як на запис, так і на читання). При цьому існує особливість при використанні його в RLS, але про це буде написано нижче.
- Він має обмеження на обсяг поміщаються даних в серіалізовані вигляді. Їх обсяг не повинен перевищувати 4 Гб.
Якщо тип параметра сеансу:
- ФіксірованнийМассів
- ФіксірованнаяКоллекція
- ФіксірованнаяСтруктура
Тоді значення елемента колекції може бути Не визначене.
Основна область параметрів - застосування їх значень в запитах RLS (обмеження доступу на рівні записів).
Наприклад, нам потрібно в запиті RLS встановити умову по поточному користувачеві. Для цього заводимо параметр сеансу «ТекущійПользователь», з коду вбудованого мови встановлюємо значення:
ПараметриСеанса.ТекущійПользователь \u003d<значение>
Табліца.Пользователь \u003d & ТекущійПользователь
При такому використанні параметра сеансу права на читання параметра не враховуються, проте можна спробувати отримати їх значення з вбудованої мови:
ТекущійПользователь \u003d ПараметриСеанса.ТекущійПользователь;
Встановити параметр сеансу, тобто його значення, можна тільки програмно і тільки на сервері. Для цього з клієнта потрібно викликати серверну процедуру. При зверненні до параметру сеансу (установка, отримання), якщо параметр не инициализирован, буде викликана процедура УстановкаПараметровСеанса в модулі сеансу. Дана процедура має один параметр ТребуемиеПараметри - масив встановлюються ідентифікаторів параметрів сеансу. УстановкаПараметровСеанса викликається також під час активного з'єднання з інформаційною базою до виклику всіх інших обробників. В цьому випадку ТребуемиеПараметри буде дорівнює Не визначене.
Рекомендовано використовувати відкладену (ледачу) ініціалізацію, тобто ініціалізувати параметри сеансу на вимогу, а не при старті системи, так як не всі параметри сеансу потрібні безпосередньо при старті системи. Відкладене ініціалізація виконується так:
Процедура УстановкаПараметровСеанса (ІменаПараметровСеанса) Якщо ІменаПараметровСеанса Не визначено Тоді Якщо ІмяПараметра \u003d "ТекущійПользователь" Тоді ПараметриСеанса.ТекущійПользователь \u003d; ІначеЕслі ІмяПараметра \u003d "ТекущаяОрганізація" Тоді ПараметриСеанса.ТекущаяОрганізація \u003d; // і т.д. КонецЕсли; КонецЕсли; КонецПроцедуризначеніе\u003e значення \u003e\u003eТак як параметр сеансу прив'язаний до сеансу, не вийде звернутися до параметру сеансу з методу, що виконується у фоновому режимі, оскільки це буде вже інший сеанс. Цей нюанс може стати несподіванкою, тому краще до нього підготуватися заздалегідь, передавши потрібне значення як параметр методу і запускати з параметра сеансу на початку процедури.
- АКТУАЛЬНІ РЕЛІЗИ 1С
- Приклади КОДА НА ПЛАТФОРМІ 1С