![]() |
![]() |
![]() |
|
Как программно получить список активных пользователей? | ☑ | ||
---|---|---|---|---|
0
be-may
04.11.04
✎
15:50
|
Кто-нибудь знает как программно получить список активных пользователей? Точнее, как это делает сама 1С?
Извините, может тема не нова, но что-то ничего не могу найти.. |
|||
1
Meer
04.11.04
✎
15:56
|
Процедура ПриОткрытии()
спрС=СоздатьОбъект("Справочник.Сеанс"); спрС.выбратьЭлементы(); пока спрС.ПолучитьЭлемент()=1 цикл если спрС.Активный=1 тогда СП_Ктоесть.ДобавитьЗначение(спрС.Наименование);конецЕсли; конецЦикла; КонецПроцедуры |
|||
2
Волшебник
04.11.04
✎
15:57
|
||||
3
GrayT
04.11.04
✎
16:01
|
Получить списк пользователей - вот еще
|
|||
4
be-may
04.11.04
✎
16:17
|
А можно без внешних компонент? Не хочется ничего больше подключать..
Проблема вот в чем. База SQL. Получаю список процессов и имена ПК в сети с которых процессы запущены (через MSSQL). Нужно сопоставить имени компьютера - имя пользователя. Если через links.tmp - некорректно. Можно (наверное) попробовать открывать каждый каталог пользователя и смотреть есть ли там *.lck. Но, что-то мне это тоже не очень. Что еще? Может знает кто-то как это в самой 1С делается? Быстро и динамично .. |
|||
5
MMF
04.11.04
✎
16:40
|
||||
6
be-may
04.11.04
✎
17:08
|
(5) А средствами 1C?
|
|||
7
MMF
04.11.04
✎
17:12
|
(6) ну конечно можно, надо только суметь залочить область в файле :-)
|
|||
8
be-may
04.11.04
✎
17:29
|
(7) не хочешь в аське пообщаться?
|
|||
9
MMF
04.11.04
✎
17:39
|
(8) хоть в форуме, хоть в аське, результат один - средствами 1С (если не считать ВК) список активных юзеров получить нельзя.
|
|||
10
Warlock
04.11.04
✎
19:38
|
MMF, нк почему же нельзя, если можно :) Вот у Meer'а идея правильная... Каждый создает за себя (ПриНачалеРаботыСистемы) элемент в справочнике "Сеанс". Можно и по-другому: например, выставляешь какой-нибудь флаг(например, константу), и все компы откликаются, кто есть живой(надо вышать обработку ожидания).
ИМХО первый метод лучше(надежнее). ЗЫ И никаких ВК! |
|||
11
о_о
04.11.04
✎
20:09
|
(10) А в ситуации если на машине не отработалось по каким-то причинам снятие из списка сеансов /просто перегрузили машину/? А пользователь снова ломится? Получится что 2 пользователя подключены. Ко второй части : если запущен какой нибудь отчет/обработка и работать он будет еще полтора часа - как он отклитнется?
|
|||
12
GrayT
04.11.04
✎
22:30
|
+11 или висит модальное окно.
А по поводу перегрузки машины - сеансы очень действенный способ воспитания юзеров. |
|||
13
Warlock
05.11.04
✎
01:58
|
(11)Не зря я уточнил, что первый метод надежнее... На самом деле вторым методом я не делал бы, просто паказал, что такая возможность есть.
А теперь ответы: >А в ситуации если на машине не отработалось по каким-то причинам снятие из >списка сеансов /просто перегрузили машину/? Какие причины кроме зависания и жесткой перегрузки Reset'ом? И как часто такое бывает? >А пользователь снова ломится? В языке 1С есть "Если Тогда КонецЕсли"... >Получится что 2 пользователя подключены. См. выше >Ко второй части : если запущен какой нибудь отчет/обработка и работать он >будет еще полтора часа - как он отклитнется? Не откликнется... Как показывает практика, случаи, когда не работает ОбработкаОжидания() происходят очень редко... ЗЫ Можно комбинировать эти два метода: заприсывать справочник ПриНачалеРаботыСистемы() и обновлять реквизит "ВремяОбновления" в нем периодически. |
|||
14
be-may
05.11.04
✎
10:04
|
Вот поэтому (11-13) не хочется никаких новых справочников и прочего..
Ладно. Наверное, подробней нужно рассказать. Большая SQL база. В секунду может быть созданы до 3 документов + отчеты и прочее. В связи с этим - часто транзакции и возмущенные вопли "висим!" :( Чтобы найти 'причину', пишу прямой SQL запрос к базе (таблица master..sysprocesses, master..syslockinfo) получаю результат - кто (Имя компьютера+ № процесса) и что (напр, транзакции) делает в базе. Тут же можно кинуть сообщение или 'кильнуть' зависший процесс. Но хотелось бы видеть и имя пользователя а не полько имя компьютера. Вот и вопрос.. Как его (имя) сопоставить имени компьютера? Можно из links.tmp. (Так и сделано, в-принципе..) Но это некоректно. Может кто-то подобное реализовывал? Или оставить все как есть :( ? |
|||
15
Витаэль
05.11.04
✎
11:56
|
Мне кажется, что стандартные механизмы 1с (журнал регистрации, активные пользователи) - очень удобен.
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |