Имя: Пароль:
1C
 
Как программно узнать список пользователей кто работает в 1с 7.7?
0 Dixix
 
25.06.08
17:25
Доброго времени суток всем. Как программно узнать список пользователей кто работает в 1с? Заранее спасибо)
1 ДенисЧ
 
25.06.08
17:26
штатно - никак
2 Dixix
 
25.06.08
17:27
а нештатно?
3 ДенисЧ
 
25.06.08
17:27
поиском :-)
Здесь эта тема обсасывалась много раз
4 JBF
 
25.06.08
17:29
Нештатно - создается справочник активных пользователей.
Пользователь вошел в систему - производится запись в справочник, вышел - пользователь удаляется из спр-ка (совсем удаляется, а не просто помечается на удаление).
5 ДенисЧ
 
25.06.08
17:29
6 JBF
 
25.06.08
17:30
Правда если 1С "упадет", то запись "зависнет" в справочнике и функция, возвращающая количество элементов в справочнике, выдаст неверный результат.
7 Heckfy
 
25.06.08
17:31
Ищи UsersList1C.dll
Там есть:
clsLink
Синтаксис:
clsLink
Назначение:
Класс содержащий свойства активных соединений с базой 1С
Параметры:
UserName-Имя пользователя;
ComputerName-Имя компьютера, с которого было произведено подключение;
RunMode - Вид соединения:
   E - рабочий режим
   M - монитор
   C - конфигуратор
   D - дебаггер
IsMono - (Y/N) монопольное соединение
LinkDate - дата соединения
LinkTime - время соединения
Замечание:
Объекты класса возвращаются только методом GetLink
8 Dixix
 
25.06.08
17:32
от спасибо) А еще вопросик - как завершить работу принудительно в 1С пользователя, работающего удаленно?
9 Мулька
 
25.06.08
17:33
(8) Кильнуть процесс
10 Heckfy
 
25.06.08
17:33
(8) Кому спасибо?
11 JBF
 
25.06.08
17:33
(8) см (1)
:-)
12 Ковычки
 
25.06.08
17:33
Штатно -

спр=СоздатьОбъект("Справочник.Пользователи");
Если Спр.НайтиПоКоду(ИмяПользователя())=0 Тогда
 Спр.Новый();
 Спр.Код=ИмяПользователя();
 Спр.Записать();
КонецЕсли;
Спр.Блокировать(1);
13 Dixix
 
25.06.08
17:36
а кильнуть процесс на удаленной машине из 1С можно как нибудь?
14 Heckfy
 
25.06.08
17:37
(13) См. (11)
15 Ёпрст
 
гуру
25.06.08
17:38
(12) Это слишком сложно :)))
16 ДенисЧ
 
25.06.08
17:42
(13) читай tasklist и taskkill
17 КонецЦикла
 
25.06.08
18:52
Я так сделал по обработке ожидания (своя табличка):
delete from users where spid not in (select spid from master.dbo.sysprocesses)
Ну и добавлял соответсвенно
18 КонецЦикла
 
25.06.08
18:56
Этот вариант устойчив к падениям + можно получить доп. инфу в одном месте (имя компа, спид, имя юзверя)
Мот выложу когда-нить если интересно
19 Dixix
 
25.06.08
22:25
конечно интересно. Можешь выслать на Dix@sura.ru? буду благодарен.
20 Heckfy
 
25.06.08
22:28
(19) Тебе список пользователей нужен:
Которые в базе зарегены или активные в данный момент?
21 Dixix
 
25.06.08
22:37
мне активные нужны. Могу по lck файлу отслеживать, но это не интересно. ТК если 1С вырубило -
файлик останется)