1с установка параметров сеанса

Обновлено: 07.07.2024

Использование параметров сеанса

Область применения: управляемое приложение, мобильное приложение, обычное приложение.

1.1. Параметры сеанса предназначены для хранения значений определенных типов для каждого клиентского сеанса на время работы этого сеанса. Инициализацию параметров сеанса следует выполнять в модуле сеанса (см. ниже раздел 2.1), а их значения рекомендуется использовать в запросах и условиях ограничения доступа к данным для текущего сеанса.
Примеры параметров сеанса:

  • ТекущийПроект – тип СправочникСсылка.Проекты ;
  • ОбменДаннымиВключен – тип Булево ;
  • РабочееМестоКлиента – тип СправочникСсылка.РабочиеМеста .

Параметры сеанса доступны из встроенного языка 1С:Предприятия , например:

В этом случае, для установки или получения значения параметра сеанса текущий пользователь должен быть наделен соответствующим правом.

Также они могут использоваться в текстах ограничений доступа, например:

ГДЕ Документ.Автор = &ТекущийПользователь

В последнем случае для получения значения параметра сеанса наличия у текущего пользователя соответствующего права не требуется.

1.2. Не рекомендуется использовать параметры сеанса для хранения значений, используемых исключительно в клиентской логике. Поскольку в клиент-серверном варианте 1С:Предприятия параметры сеанса хранятся на сервере, то любое их считывание или изменение в процессе работы на клиенте потребует дополнительного серверного вызова и увеличит объем передаваемых данных с клиента на сервер и обратно.

В таких случаях следует использовать глобальные переменные модуля управляемого приложения (и обычного приложения – для режима обычного приложения, соответственно).

1.3. Также не рекомендуется использовать параметры сеанса для кеширования вычисленных значений, которые многократно используются в серверной бизнес-логике. В таких случаях следует определять функцию в серверном общем модуле с повторным использованием возвращаемых значений. Исключение составляют случаи, когда время вычисления результата функции модуля с повторным использованием возвращаемых значений соизмеримо с периодом сброса платформенного кеша.

Установка параметров сеанса "по требованию"

2.1. Не следует производить инициализацию параметров сеанса при запуске программы, так как:

  • не все параметры сеанса запрашиваются из кода конфигурации при запуске программы.
  • при работе программы возможно намеренное обнуление значений параметров сеанса из кода на встроенном языке.

Правильным способом установки значений параметров сеанса является установка значений "по требованию" в обработчике УстановкаПараметровСеанса модуля сеанса. Т.е. параметры сеанса должны быть инициализированы только в тот момент, когда к ним происходит первое обращение, как к неустановленным.

Пример установки параметров сеанса "по требованию":

Если ИменаПараметровСеанса = Неопределено Тогда
// Раздел установки параметров сеанса при начале сеанса (ИменаПараметровСеанса = Неопределено)
// Выполняется установка параметров сеанса, которые можно инициализировать
// при начале работы системы

Иначе
// Установка параметров сеанса "по требованию"

// Параметры сеанса, инициализация которых требует обращения к одним и тем же данным
// следует инициализировать сразу группой. Для того, чтобы избежать их повторной инициализации,
// имена уже установленных параметров сеанса сохраняются в массиве УстановленныеПараметры
УстановленныеПараметры = Новый Массив;
Для Каждого ИмяПараметра Из ИменаПараметровСеанса Цикл
УстановитьЗначениеПараметраСеанса(ИмяПараметра, УстановленныеПараметры);
КонецЦикла;

// Установить значения параметров сеанса и возвратить имена установленных параметров сеанса
// в параметре УстановленныеПараметры.
//
// Параметры
// ИмяПараметра - Строка - имя параметра сеанса, который требуется установить (проинициализировать).
// УстановленныеПараметры - Массив - массив, в который добавляются имена
// установленных (проинициализированных) параметров.
//
Процедура УстановитьЗначениеПараметраСеанса(Знач ИмяПараметра, УстановленныеПараметры)

// Если в данном вызове УстановкаПараметровСеанса параметр ИмяПараметра уже
// был установлен - возврат.
Если УстановленныеПараметры.Найти(ИмяПараметра) <> Неопределено Тогда
Возврат;
КонецЕсли;

Если ИмяПараметра = "ТекущийПользователь" Тогда
ПараметрыСеанса.ТекущийПользователь = <значение>;
ПараметрыСеанса.<другой параметра сеанса> = <значение>;
УстановленныеПараметры.Добавить(ИмяПараметра);
УстановленныеПараметры.Добавить("<другой параметра сеанса>");
КонецЕсли;

При нажатии на кнопку "Заполнить" - выполняется заполнение текущих инициализированных параметров сеанса.

При изменении значения, устанавливается флаг, сигнализирующий о изменении параметра сеанса.

При нажатии кнопки "Записать", выполняется установка измененных значений параметров сеанса.

Тестирование проводилось на платформе 8.3.7

Обработка имеет обычную и управляемую форму.

Открывается как внешний файл.

Специальные предложения

Electronic Software Distribution

Интеграция 1С с системой Меркурий

Алкогольная декларация

Готовые переносы данных

54-ФЗ

Управление проектом на Инфостарте

Траектория обучения 1С-разработчика

Цель: без использования конфигуратора и консоли просматривать и изменять параметры сеанса.

Просмотры 9540

Загрузки 15

Рейтинг 2

Создание 16.03.17 20:42

Обновление 16.03.17 20:42

№ Публикации 598590

Конфигурация Конфигурации 1cv8

Операционная система Не имеет значения

Страна Россия

Вид учета Не имеет значения

Доступ к файлу Абонемент ($m)

Код открыт Не указано


См. также

Запуск 1С под любым пользователем (без необходимости указания пароля) Промо

Предназначается для запуска сеанса другого пользователя из своего сеанса 1С (если пароль вам неизвестен).

1 стартмани

02.07.2019 28947 297 sapervodichka 0

Подсистема прав доступа (анализ ролей, отладка RLS, английский код, обычные и управляемые формы)

Доброе время суток. Я как обычно – с интересностями. И в этот раз мы поговорим о такой жуткой штуке – как RLS, генерация расширений на лету, и обратим внимание на одну интересную особенность «Полных прав» и про английский сорцкод. Статья не является «продажной», ибо решение специфическое, кому надо, тот знает, что покупает. Однако, в этой статье я расскажу про кучу тонкостей, с которыми мы столкнулись и как оптимизировали. Так что не забудьте открыть все спойлеры :)

5 стартмани

18.10.2021 4821 58 DitriX 29

Генератор ролей

Обработка генерирует атомарные наборы ролей для каждого объекта метаданных (Справочник, Документ, Отчет, Обработка, Регистр сведений).

1 стартмани

12.05.2021 3012 10 anton.fly7 7

Как увидеть пароли, сохраненные в базе 1С

Обработка, позволяющая посмотреть пароли и прочие данные скрываемые звёздочками на формах настройки.

1 стартмани

11.05.2021 12186 59 lepihin 27

Анализ ролей и прав доступа Промо

Отчет для анализа ролей и прав с использованием СКД. Формируется в разрезе объектов, ролей, пользователей и прав (чтение, просмотр и т.д.). Позволяет быстро узнать, какие пользователи или роли имеют конкретные права на объекты.

4 стартмани

09.01.2015 36703 21 kser87 7

Авторизация в мобильном приложении 1С

Реализация входа по паролю (личному коду) в мобильном приложении 1С.

10 стартмани

23.02.2021 5330 6 kaiman_fedor_yandex 0

Анализ ролей доступа

Быстрое определение, каких ролей доступа не хватает и на что влияет выбранная роль.

1 стартмани

06.01.2021 6080 84 yermak 9

Групповое добавление и удаление ролей из списка профилей

Подключаемая обработка. Помогает при конструировании профилей доступа пользователей (настройке прав пользователей), экономит время на добавлении/удалении одной и той же роли сразу в нескольких профилях.

1 стартмани

14.12.2020 7433 37 sapervodichka 9

Просмотр прав пользователей Промо

Обработка наглядно показывает права доступа конкретного пользователя или роли к конкретному объекту метаданных.

1 стартмани

19.10.2012 35981 306 NILS2009 17

Анализ прав доступа на объекты метаданных 1С (быстрое получение списка только тех ролей, у которых есть соответствующий доступ). А так же получение списка ролей, которым дано право "Интерактивное удаление" (или другое, на выбор)

Часто нужно получить набор ролей, в которых есть определенное право для объекта. Чтобы не перебирать все роли в поисках доступных прав, можно воспользоваться этой обработкой. Она покажет только те роли, в которых назначено нужное нам право. И конфигуратор открывать не нужно. Особенно полезно для анализа облачных баз. По просьбам трудящихся, дополняю функционал: теперь можно быстро найти те объекты и роли, у которых есть право "Интерактивное удаление" для этого есть специальная кнопка.

1 стартмани

08.11.2020 4490 28 akrelius 6

Обфускатор операционного кода 1С

Защита обработок 1С от восстановления исходного кода awa-ким декомпилятором. Протестировано 1С:Предприятие 8.3 (8.3.16.1502)

2 стартмани

18.09.2020 9383 47 MoiseevSN 46

Подсистема прав доступа к объектам с гибкими отборами (расширение)

Возможность без доработок конкретизировать пользователям права Просмотра и Изменения объектов базы 1С, установив ограничения с помощью отборов системы компоновки данных.

2 стартмани

02.07.2020 17874 219 sapervodichka 109

Отключение доступа уволенным пользователям Промо

Давно хотели навести порядок в пользователях? Надоело, что в списке мешаются давно уволенные сотрудники? Тогда эта обработка для Вас!

3 стартмани

15.10.2013 55546 109 VBod 17

Настройка ограничений входа пользователей в базу (расширение)

Настраиваем для пользователей 1С разрешенное количество открытых сеансов к текущей базе данных 1С в привязке к компьютерам. (У пользователя не будет возможности превысить допустимое количество сеансов или зайти с чужого компьютера).

2 стартмани

19.05.2020 14500 27 sapervodichka 18

Менеджер подключений к удаленным рабочим столам (RDP)

Менеджер подключений к удаленным рабочим столам для организации доступа сотрудникам, без передачи паролей для доступа.

2 стартмани

19.11.2019 6808 8 Shalnov 1

Обозреватель криптографии

Отчет для просмотра доступных провайдеров и сертификатов криптографии на сервере и клиенте.

2 стартмани

21.10.2019 14740 19 YPermitin 10

Права доступа ролей Промо

Отчет по правам доступа ролей, выводит в удобной краткой форме права доступа в разрезе ролей на интересующие нас объекты метаданных или объекты метаданных, к которым есть доступ у интересующей нас роли. Показывает наличие RLS и позволяет сравнить роли. Отображает использование роли в профилях групп доступа/группах доступа.

1 стартмани

05.02.2018 22722 168 Serge R 5

Завершение работы пользователей

Завершение работы пользователей с помощью подключения обработчика ожидания.

1 стартмани

02.10.2019 9410 16 user921814 6

Расширение "Туманность" - помощник настройки профилей групп доступа. ERP 2.4.9+

Расширение позволяет настраивать профили групп доступа как комбинации из других профилей групп доступа.

1 стартмани

30.08.2019 6773 10 Brawler 0

PowerShell из 1С: создание пользователя Active Directory

Пример создания пользователя Active Directory с помощью PowerShell из 1С.

3 стартмани

27.08.2019 14568 25 wowik 13

Регистры правил [Расширение] Промо

Регистры правил - права доступа, запрет редактирования, автоподстановка реквизитов и т.д.

10 стартмани

15.03.2018 23486 30 33lab 5

Копирование настроек профилей группы доступа из одной базы в другую. 1С: Предприятие 8.3 БП 3.0, ЗУП 3.1, ЕРП 2.4 и т.д.

Иногда необходимо состав ролей профиля группы доступа перенести из одной базы 1С в другую быстро, а если таких баз 20-30, то сидеть и выбирать нужные роли руками это проблематично и долго. Для этого была разработана данная обработка. Проверялось на релизах: Платформа 1С: Предприятие 8.3.14.1630; 1С: ЗУП 3.1.9.229 и выше; 1С: ERP 2.4.5.54.

1 стартмани

02.08.2019 6639 74 mityushov.vv 5

Сравнение доступа профилей, ролей, пользователей по всем объектам конфигурации 8.3, 8.2 (обычные формы "ОФ" и управляемые формы "УФ") (выборочно)(НАБОР УТИЛИТ)

Сравнение профилей доступа по всем объектам конфигурации 8.3 (полноценно функционирует с версии 1С:Предприятия 8.1.10 - 8.3.X). Очень хотелось иметь обработку, которая бы показывала различия профилей доступа по каждому конкретному объекту конфигурации и по всем сразу. Желание было воплощено в данной обработке.

1 стартмани

23.06.2019 9971 44 AlexandrSmith 0

Запуск 1С под другим пользователем без ввода пароля

Для проверки настроек ролей и прав или для отладки можно использовать это решение.

1 стартмани

22.03.2019 11576 55 pridecom 0

Включение и выключение регистрации отказа в доступе если "У пользователя не достаточно прав над операцией с базой данных". Промо

Включает (выключает) регистрацию событий отказа доступа в журнале регистрации.

1 стартмани

12.01.2011 40387 368 nexts 32

Наследование ролей в профилях групп доступа в конфигурациях на базе БСП

С помощью данной доработки можно создать новый профиль групп доступа, с наследованием ролей от базового (поставляемого) профиля. В созданном профиле можно добавить или исключить какие-либо роли относительно базового профиля.

1 стартмани

15.03.2019 13569 18 ids79 1

PasswordHashViewer - просмотр хэшей пользовательских паролей

Программа для просмотра хэшей паролей пользователей в файловых и клиент-серверных базах 1С. Зачем это нужно? Для их проверки на криптостойкость.

1 стартмани

25.02.2019 8859 13 GeraltSnow 5

Обезличивание базы ЗУП 3.1.*

Обработка по перемешиванию/скрытию конфиденциальной информации в базе ЗУП.

1 стартмани

05.02.2019 14544 85 Skin123 16

Права пользователей Промо

Кросс-таблица прав пользователей (подсистема "Управление доступом")

1 стартмани

10.05.2016 31809 105 inspam 4

Наводим порядок в Active Directory с помощью ЗУП / ЗИКГУ 3.1 (идентификация, отключение и актуализация учетных записей пользователей)

Продолжаем использовать ЗУП 3.1 совместно с LDAP во имя автоматизации работы системного администратора. В этот раз займемся аудитом учетных записей. Обработка производит сопоставление учетной записи с данными сотрудников из ЗУП, причем с учетом недавних событий (для перехода на ЗУП 3.1 чаще всего используется рекомендованный перенос, не включающий уволенных сотрудников) есть возможность использовать объединенные с помощью COM-соединения данные ЗУП 2.5 и ЗУП 3.1. Также в данной обработке есть возможность массовой корректировки, заполнения данных и отключения учетных записей. Перед использованием обработки для душевного спокойствия необходимо сделать резервную копию Active Directory любым удобным способом. Протестировано на ЗУП 3.1.6 - 3.1.8.


Параметры сеанса предназначены для хранения каких-либо значений в течении всего сеанса пользователя. Например, имя текущего пользователя.


При создании нового параметра сеанса для него нужно указать имя и тип. Перечень возможных типов ограничен:


Помимо ссылочных типов, примитивных типов и других типов, можно указывать такие типы как: ФиксированныйМассив, ФиксированноеСоответствие и ФиксированнаяСтруктура.

Значения параметров сеанса хранятся отдельно для каждого пользователя, в течении всего сеанса пользователя.


Для параметров сеанса можно назначать права доступа: на получение и на установку.


Модуль сеанса

Данный модуль выполняется самым первым при загрузке конфигурации. Он всегда выполняется без контроля прав доступа (в привилегированном режиме).

В модуле сеанса есть только один обработчик УстановкаПараметровСеанса с одним параметром ТребуемыеПараметры (при этом ничто не мешает переименовать данный параметр). Данный обработчик предназначен для инициализации параметров сеанса.


Работа с параметрами сеанса из встроенного языка

К параметрам сеанса можно обращаться только на сервере. Причем, можно как получать значения параметров, так и изменять. Обращение выполняется через свойство ПараметрыСеанса, после которого указывается имя параметра:


Пользователи

Откроется окно со списком всех пользователей информационной базы:

Пользователи

Для добавления нового пользователя нужно нажать на зеленую кнопку с плюсом. Будет открыто окно редактирования нового пользователя:

Пользователи

В поле Имя нужно ввести имя пользователя, которое будет показано при входе в программу, например: Иванов И.И.

В поле Полное имя нужно ввести полное имя пользователя. Оно будет отображаться в программе, например: Иванов Иван Иванович.

Для аутентификации средствами платформы 1С нужно чтобы был установлен флаг Аутентификация 1С:Предприятия. В этом случае при входе нужно будет ввести логин и пароль.

В полях Пароль и Подтверждение пароля нужно указать пароль пользователя.

Заполним данные пользователя:

Пользователи

Пользователи

Дело в том, что хотя бы один пользователь должен иметь административные права доступа, чтобы он мог создавать новых пользователей и задавать для них права доступа.

Роли и права доступа мы рассмотрим позднее, пока просто создадим одну роль Полные права, указав для нее максимально возможные права доступа.

ПолныеПрава

Дважды щелкнув по роли, откроем окно настроек прав доступа для данной роли:

ПолныеПрава

Установить все права

И сохраним конфигурацию базы данных.

Вернемся к настройке пользователя и на закладке Прочее установим флаг рядом с ролью Полные права в списке доступных ролей и нажмем ОК:

Доступные роли

И добавим еще одного пользователя:

Пользователь

Теперь при входе в базу нужно выбрать пользователя и ввести его пароль:

Пользователь

Идентификация пользователя не выполнена

Значит пользователя с таким именем нет в базе данных или введен неверный пароль.

Для удаления пользователя нужно выделить его в списке пользователей и нажать на кнопку с красным крестом:

Удалить пользователя

Список пользователей хранится в специальной таблице базы данных.

Показывать в списке выбора

В настройках пользователя есть флаг Показывать в списке выбора:

Показывать в списке выбора

Если данный флаг установлен, то пользователь будет доступен для выбора при входе в программу. Если снять этот флаг, то пользователя не будет в списке выбора, но можно будет ввести его имя вручную и войти под ним. Это можно использовать, чтобы скрыть администратора системы.

Например, создадим нового пользователя Администратор и снимем у него флаг Показывать в списке выбора:

Показывать в списке выбора

Теперь при входе в базу пользователь не будет в списке доступных пользователей:

Показывать в списке выбора

Но можно вручную ввести его логин и пароль и войти под ним:

Показывать в списке выбора

Защита от опасных действий

Потенциально опасными действиями считаются:

  • Загрузка внешней обработки или отчета
  • Подключение расширения
  • Обновление конфигурации
  • Выполнение команды операционной системы из внешней обработки/отчета или расширения
  • Программное добавление или удаление пользователей из внешней обработки/отчета или расширения
  • Загрузка внешней компоненты из внешней обработки/отчета или расширения
  • Использование COM-объекта из внешней обработки/отчета или расширения

Если в свойствах пользователя установлен флаг Защита от опасных действий:

Защита от опасных действий

предупреждение безопасности

Если нажать Нет, то внешняя обработка не будет открыта.

Если нажать Да, то внешняя обработка будет открыта и платформа запомнит, что данное действие было разрешено. При последующих открытиях этой же обработки предупреждения не будет. Платформа запоминает разрешение для хэша обработки. Если в дальнейшем обработка будет изменена, то при первом открытии обработки снова будет выдано предупреждение безопасности.

Активные пользователи

Активные пользователи

Будет открыт список активных пользователей:

Активные пользователи

Текущий пользователь выделен специальной пиктограммой с галочкой.

Параметры

В открывшемся окне нужно установить флажок Режим технического специалиста:

Режим технического специалиста

После этого в главном меню выбрать Функции для технического специалиста:

Функции для технического специалиста

В открывшемся окне в узле Стандартные нужно найти пункт меню Активные пользователи:

Активные пользователи

По двойному клику будет открыто окно с активными пользователями. Текущий пользователь будет выделен жирным шрифтом:

Активные пользователи

Активные пользователи
Активные пользователи

Если база клиент-серверная, то можно запустить утилиту для администрирования серверов 1С предприятие. Для этого в меню пуск нужно найти соответствующий пункт меню:

администрирование серверов 1С

В открывшемся окне нужно в списке информационных баз найти нужную базу, развернуть ее и выбрать пункт Сеансы:

Сеансы

Справа будут показаны все активные сеансы с текущей базой:

Сеансы

Если нужно просто узнать текущего пользователя, то он отображается в правом верхнем углу:

Текущий пользователь

Завершение работы пользователей

Чтобы завершить работу пользователей в 1С можно воспользоваться утилитой для администрирования серверов. Данный вариант подойдет только для клиент-серверных баз. В списке сеансов нужно выделить нужного пользователя и выбрать команду Удалить:

Завершение работы пользователей

Чтобы выгнать всех пользователей из базы нужно нажать ctrl+A, чтобы выделить всех пользователей. А потом выбрать в контекстном меню команду Удалить.

В конфигурациях на базе БСП, в списке активных пользователей есть кнопка Завершить сеанс, которая позволяет завершить сеанс пользователя:

Завершить сеанс

Чтобы выкинуть всех пользователей из файловой базы можно завершить их процессы операционной системы. Этот вариант подойдет если все пользователи работают на одном компьютере. Нужно запустить диспетчер задач (ctrl + alt + Del), на закладке Процессы найти все процессы 1С и завершить их, выбрав в контекстном меню Снять задачу:

Снять задачу

Программная работа с пользователями

Создать нового пользователя

Управление пользователями информационной базы выполняется с помощью объекта ПользователиИнформационнойБазы.

Для добавления нового пользователя нужно вызвать метод СоздатьПользователя у данного объекта. Затем заполнить все необходимые поля и записать пользователя в базу методом Записать:

НовыйПольз = ПользователиИнформационнойБазы . СоздатьПользователя ( ) ; ЗащитаОтОпасныхДействий = Новый ОписаниеЗащитыОтОпасныхДействий ; ЗащитаОтОпасныхДействий . ПредупреждатьОбОпасныхДействиях = Истина; НовыйПольз . ЗащитаОтОпасныхДействий = ЗащитаОтОпасныхДействий ; НовыйПольз . Роли . Добавить ( Метаданные . Роли . ПолныеПрава ) ;

В результате будет добавлен новый пользователь:

пользователь

Получить всех пользователей

Всех пользователей можно получить с помощью метода ПолучитьПользователей. Данный метод вернет массив объектов типа ПользовательИнформационнойБазы:

ВсеПользователи = ПользователиИнформационнойБазы . ПолучитьПользователей ( ) ;

Поиск пользователей

Найти пользователя можно или по имени или по идентификатору. Для поиска используются методы НайтиПоИмени и НайтиПоУникальномуИдентификатору:

НайдПольз = ПользователиИнформационнойБазы . НайтиПоИмени ( "Сидоров С.С." ) ; УИДПользователя = Новый УникальныйИдентификатор ( "0c3c8e07-c36a-41ce-977a-85ee65d03a00" ) ; НайдПольз = ПользователиИнформационнойБазы . НайтиПоУникальномуИдентификатору ( УИДПользователя ) ;

Удаление пользователя

Для удаления пользователя используется метод Удалить:

НайдПольз = ПользователиИнформационнойБазы . НайтиПоИмени ( "Сидоров С.С." ) ;

Текущий пользователь

Чтобы программно получить текущего пользователя можно воспользоваться методом ТекущийПользователь:

ТекПользователь = ПользователиИнформационнойБазы . ТекущийПользователь ( ) ;

Блокировка установки сеансов

Клиент-серверный вариант

Иногда требуется на некоторое время заблокировать вход пользователей в базу. Это можно сделать с помощью механизма установки блокировки сеансов пользователей. Блокировка настраивается через утилиту администрирования серверов 1С. В списке информационных баз нужно найти нужную базу и в контекстном меню выбрать пункт Свойства:

Свойства

В поле с администратором информационной базы нужно ввести логин и пароль пользователя 1С:

администратор информационной базы

Блокировка начала сеансов включена

Начало сеанса с информационной базой запрещено

Блокируются как пользовательские сеансы, так и конфигуратор. При этом, существующие сеансы смогут продолжить работать.

При необходимости можно задать код разрешения, указав который можно войти даже при включенной блокировке. Код указывается в параметре Код разрешения:

Код разрешения

Данный код указывается в свойствах базы в параметре Дополнительные параметры запуска после ключа /UC. Чтобы открыть свойства базы нужно в списке баз выделить нужную базу и нажать кнопку Изменить:

Дополнительные параметры запуска

Теперь в данную базу можно войти даже во время блокировки.

Чтобы снять блокировку до ее окончания нужно просто снять флаг Блокировка начала сеансов включена.

Читайте также: