Имя: Пароль:
1C
Админ
Ограничить количество одновременных подключений под одним логином
0 Мэс33
 
21.06.13
10:34
Собственно - это и есть вопрос. Как лучше это сделать?
1 Лефмихалыч
 
21.06.13
10:35
(0) первое, что в голову пришло: Заблокировать() самого себя в спрваочнике пользователей ПриНачалеРаботыСистемы()
2 Мэс33
 
21.06.13
10:36
У меня пришло только в голову: получить список активных пользователей и сверяться с текущим пользователем :-)
3 Мэс33
 
21.06.13
10:36
(2) и то не ясно, как  :-)
4 ИсчадиеADO
 
21.06.13
10:38
5 Мэс33
 
21.06.13
10:40
(4) Спасибо. Я даже открывать ссылку не стал :-)
6 vde69
 
21.06.13
10:41
(0) зачем???
7 Мэс33
 
21.06.13
10:46
(6) Такая задача стоит.
8 Лефмихалыч
 
21.06.13
10:48
И то верно. Какая разница - зачем? Задача же уже стоит, чо тут думать?..
9 zak555
 
21.06.13
10:51
вопрос в тему:
пусть есть login
и два компа

можно ли с помощью AD настроить такой запрет

когда пользователь login входит на комп1, то под этим же логином запрещено входить на комп2 ?
10 vde69
 
21.06.13
10:59
(7) а выполнение регламентного задания от имени пользователя - ограничивать?

я вижу только одну разумную причину - это ограничение лицензий, если это так - то решение будет несколько отличное от того что ты хочеш
11 Мэс33
 
21.06.13
12:42
(10) Да не копайтесь в причинах. Просто нужно, чтобы под одним логином можно было только два соединения создать (кроме учеток для веб-сервисов).
12 kosts
 
21.06.13
12:55
Поискал тут на форуме, более сотни подобных вопросов.
13 MaxisUssr
 
21.06.13
12:59
(0)
Попробуй метод ПолучитьСоединенияИнформационнойБазы()
14 Галахад
 
гуру
21.06.13
13:05
Разве стандартные конфигурации такого не умеют?
15 Мэс33
 
24.06.13
07:56
(14) А вы знаете, как это сделать к примеру в БП?
16 Галахад
 
гуру
24.06.13
08:09
(15) БП не смотрел, а в КА в настройках пользователя
галка "Запретить открытие нескольких сеансов".
17 vde69
 
24.06.13
08:11
(16) нескольких!

автору нужно не более 2х :)
18 Aleksey
 
24.06.13
08:14
(15) В БП это есть, правда используется по другому
19 wuff
 
24.06.13
08:15
(0) посмотри можно так:

Сеансы = ПолучитьСеансыИнформационнойБазы();
       
       ТекПользователь = ПользователиИнформационнойБазы.ТекущийПользователь();
       
       счСеансов = 0;
       
       Для каждого ТекСеанс Из Сеансы Цикл
           
           Если СокрЛП(ТекСеанс.Пользователь) = СокрЛП(ТекПользователь) Тогда
               счСеансов = счСеансов + 1;
               Если счСеансов > 1 Тогда
                   Предупреждение("Приложение уже запущено пользователем:" + Символы.ПС + ПараметрыСеанса.ТекущийПользователь + " в " + ТекСеанс.НачалоСеанса +
                   Символы.ПС + "Работа в этом сеансе невозможна!");
                   ЗавершитьРаботуСистемы(Ложь);
                   Возврат
               КонецЕсли;
           КонецЕсли;
           
       КонецЦикла;
20 Галахад
 
гуру
24.06.13
08:17
(17) Подкорректировать стандартный код, ИМХО проще чем новы писать.
21 Mitriy
 
24.06.13
08:18
ПолучитьСоединенияИнформационнойБазы
22 Мэс33
 
24.06.13
08:21
(19) Вроде похоже на правду, по крайней мере - ясно куда копать.
Спасибо.
23 wuff
 
24.06.13
08:23
(22) ппц, оценил, оно не похоже, оно и есть....
24 Mitriy
 
24.06.13
08:25
(23) сравнивать лучше уникальные идентификаторы пользователей...
25 wuff
 
24.06.13
08:26
(24) согласен.
26 Mitriy
 
24.06.13
08:29
вот, нашел готовый код из УПП:

       ТекущийНомерСоединения = НомерСоединенияИнформационнойБазы();
       УникальныйИдентификаторПользователя = ПользователиИнформационнойБазы.ТекущийПользователь().УникальныйИдентификатор;
       
       МассивСоединений = ПолучитьСоединенияИнформационнойБазы();
       Для Каждого ТекСоединение Из МассивСоединений Цикл
           Если (ТекСоединение.ИмяПриложения = "1CV8")
              И (НЕ ТекСоединение.НомерСоединения = ТекущийНомерСоединения)
              И (НЕ ТекСоединение.Пользователь = неопределено)
              И (ТекСоединение.Пользователь.УникальныйИдентификатор = УникальныйИдентификаторПользователя) Тогда
             
               Предупреждение("Пользователем с таким именем уже выполнен вход в систему");
               ЗавершитьРаботуСистемы(Ложь);
               Возврат;
               
           КонецЕсли;
       КонецЦикла;
27 Мэс33
 
24.06.13
08:57
(23) - ваш ответ был похож на правду, а в (26)  - и есть правда :-)
28 Мэс33
 
27.06.13
06:58
Ребят, гляньте, пожалуйста, одним глазком на статью: http://infostart.ru/public/92169/

Оно подходит для моего случая?
29 ZanderZ
 
27.06.13
08:04
(28) а чем тебе (26) не подходит ?
Пользователь не знает, чего он хочет, пока не увидит то, что он получил. Эдвард Йодан