|
|
Тонкий клиент 8.3 - несколько сеансов в одном приложении? |
☑ |
|
0
vdeemer
21.04.16
✎
09:47
|
Доброго времени суток!
Пытаюсь сделать запрет запуска нескольких сеансов одним пользователем в тонком клиенте (конфигурация Документооборот, УФ). Делаю это в модуле сеанса:
// Проверка разрешения на запуск нескольких сеансов
ТекущийПользователь = ПользователиКлиентСервер.ТекущийПользователь();
//РеквизитыПользователя = ОбщегоНазначения.ПолучитьЗначенияРеквизитов(ТекущийПользовательИБ, "РазрешатьЗапускНесколькихСеансов");
Если (НЕ ТекущийПользователь.РазрешатьЗапускНесколькихСеансов) Тогда
УникальныйИдентификаторПользователя = ТекущийПользователь.ИдентификаторПользователяИБ;
ТекущийНомерСеанса = НомерСеансаИнформационнойБазы();
// Нахождение текущего соединения
//ТекущееСоединение = Неопределено;
СеансыИБ = ПолучитьСеансыИнформационнойБазы();
Для Каждого СеансИБ Из СеансыИБ Цикл
Если ((СеансИБ.ИмяПриложения = "1CV8") ИЛИ (СеансИБ.ИмяПриложения = "1CV8C"))
И (НЕ СеансИБ.НомерСеанса = ТекущийНомерСеанса)
И (НЕ СеансИБ.Пользователь = неопределено)
И (СеансИБ.Пользователь.УникальныйИдентификатор = УникальныйИдентификаторПользователя) Тогда
ТекстСообщения = НСтр("ru = 'Пользователем с именем " + СокрЛП(СеансИБ.Пользователь.ПолноеИмя) + " уже выполнен вход в систему ("
+ СокрЛП(СеансИБ.ИмяКомпьютера) + "[" + Строка(СеансИБ.НомерСеанса) + "], " + Формат(СеансИБ.НачалоСеанса, "ДЛФ=DDT") + ")!
|Создаваемый сеанс = [" + Строка(ТекущийНомерСеанса) + "], проверьте значок приложения 1С в трее.'");
ВызватьИсключение ТекстСообщения;
КонецЕсли;
КонецЦикла; // Для Каждого СоединениеИБ Из СоединенияИнформационнойБазы
КонецЕсли; // Если НЕ Пользователь.РазрешатьЗапускНесколькихСеансов
И все бы хорошо, но при запуске отчета "Задачи" создается НОВЫЙ СЕАНС!!! Вся система летит в тартараты... Как можно решить эту проблему? Спасибо.
|
|
|
1
Господин ПЖ
21.04.16
✎
09:54
|
отчет выполняется в фоновом задании
|
|
|
2
vdeemer
21.04.16
✎
10:05
|
(1) Афигеть... И как же понять, что это мой отчет? Сеанс-то новый
|
|
|
3
vdeemer
21.04.16
✎
10:07
|
Если сохранить переменную "УжеУстанавливалиПараметрыСеанса" и проверять ее в модуле сеанса... Но там не видны переменные модуля управляемого приложения((
|
|
|
4
Pistol
21.04.16
✎
10:16
|
А в чем беда-то? Ты честно реализовал свою хотелку - один сеанс на одного пользователя.
Тебе ж наверно не сеанс нужен, а интерактивное начало работы системы?
|
|
|
5
vdeemer
21.04.16
✎
10:21
|
(4) в точку
|
|
|
6
Pistol
21.04.16
✎
10:25
|
Ну там и проверяй, уже гарантировано на клиенте :)
|
|
|
7
vdeemer
21.04.16
✎
10:31
|
(6) В модуле управляемого приложения функция НомерСеансаИнформационнойБазы() не видна((
|
|
|
8
Pistol
21.04.16
✎
10:43
|
За вызов функции общего модуля тебя расстреляют?
|
|
|
9
vdeemer
21.04.16
✎
10:50
|
(8) Не должны)) Пробую уже
|
|
|
10
vdeemer
21.04.16
✎
10:59
|
Вышел каменный цветок! Спасибо, Данила-мастер))
|
|
Требовать и эффективности, и гибкости от одной и той же программы — все равно, что искать очаровательную и скромную жену... по-видимому, нам следует остановиться на чем-то одном из двух. Фредерик Брукс-младший