helpf.pro
Регистрация
 0 
Распечатать

1С 8.2 УП : Как ограничить пользователя только одним сеансом

В восьмой версии 1С нет штатного способа ограничить пользователя использованием только одного сеанса, это сделано потому что теперь при необходимости система может создавать от имени пользователя дополнительные сеансы в которых выполняются какие-то вспомогательные обработки. Например, когда формируется отчет, обработка данных происходит в фоновом задании, которое видно в списке активных пользователей отдельной строкой. С другой стороны это дает возможность пользователям открывать окно приложения несколько раз, на одном или разных компьютерах. Чтобы бороться с этим нужно применять программные методы.
С помощью функции ПолучитьСоединенияИнформационнойБазы() можно получить массив, который будет содержать информацию о всех подключениях, активных на момент обращения к функции, т.е. каждый элемент массива будет соответствовать одному соединению. Получается, что задача сводится к перебору элементов массива и подсчету количества сеансов открытых текущим пользователем.
Вот пример функции, которая возвращает Истина, если количество сеансов больше одного. Нужно обратить внимание, что подсчитываются только сеансы, у которых имя приложения равно 1CV8 (толстый клиент) или 1CV8C (тонкий клиент). Другие возможные имена приложений: Designer (конфигуратор), BackgroundJob (фоновое задание).
Код 1C v 8.х
 Функция  ПроверкаОткрытогоСеансаТекушегоПользователя()   Экспорт
ТекущийПользовательИБ = ПользователиИнформационнойБазы.ТекущийПользователь();
СоединенияИБ = ПолучитьСоединенияИнформационнойБазы();
СеансОткрыт = Ложь;
Для каждого СоединениеИБ Из СоединенияИБ Цикл
Если Найти(СоединениеИБ.ИмяПриложения, "1CV8") = О Тогда
Продолжить; КонецЕсли;
Если СоединениеИБ.Пользователь.УникальныйИдентификатор = ТекушийПользовательИБ.УникальныйИдентификатор Тогда
Если СеансОткрыт Тогда
Возврат Истина;
Иначе
СеансОткрыт = Истина;
КонецЕсли;
КонецЕсли;
КокецЦикла;
Возврат Ложь;
КокецФуккции // ПроверкаОткрытогоСеансаТекушегоПользователя

Еще замечание — эта функция должна выполняться на сервере, пользователь, для которого выполняется проверка, от имени которого выполняется функция, должен иметь доступ к просмотру активных соединений.
Разместил:   Версии: | 8.x | 8.2 УП |  Дата:   Прочитано: 6087
 0 
Распечатать
Возможно, вас также заинтересует
1С Предприятие что это? 6
Что такое 1С? 1С — это фирма , у которой одно из направлений деятельности — разработка программного обеспечения для автоматизации бизнес-процессов предприятий. « 1С:Предприятие » - конкретный продукт, который...
COM-подключение к базе 7.7 из 8.2 1С 4
Если код выполняется на стороне клиента, то необходимо наличие базы 7.7 на локальной машине. Пример (На форме объекта присутствует реквизит Таблица(ТаблицаЗначений)): НаКлиенте Процедура Загрузки() ПутьКБазе="...
Cклонения по падежам 4
НаКлиенте Процедура Команда1(Команда) ФИО = " Иванов Иван Иванович" ; Падеж = 2; Пол = 1; Результат = СклонениеФИО(ФИО, Падеж, пол); Сообщить(Результат); КонецПроцедуры НаСервере Функция СклонениеФИО(ФИО, Падеж, пол) ...
Cодержимое указанного ниже веб-сайта в этом приложении блокируется... Aboutsecurity_1cv8c.exe 0
Проблема: После обновления на 1С:Бухгалтерию предприятия 3-й версии, при нажатии на закладку командного интерфейса 1С:предприятие, выскакивает ошибка: Aboutsecurity_1cv8c.exe или Aboutsecurity_1cv8.exe «Содержимое указанного ниже...
Excel файл как Внешний источник данных 4
Подключимся и загрузим из файла Excel данные в таблицу значений 1С. Сделать теперь это очень просто. 1. В конфигурации добавляет новый объект метаданных типа " Внешние источники данных" и назовем его просто " Excel" . ...
Посмотреть все результаты поиска похожих
Вы не можете отправить комментарий анонимно, пожалуйста войдите или зарегистрируйтесь.