gifts2017

Активные пользователи: посмотреть, оповестить, выгнать из базы (updated)

Опубликовал Яков Коган (Yashazz) в раздел Администрирование - Защита, права, пароли

Небольшое развитие обработки, которую создал coder1cv8 и надстроил markers.
Исправлены ошибки, оптимизирован код, добавлены удобные мелочи.
Обновление 17.04.11, ещё мелкие полезности.
Только для клиент-серверного варианта!

Можно использовать только для клиент-серверного варианта работы 1С!

Учтены ситуации, когда вы сами запустили несколько сеансов 1С. Исходная обработка "выгнала" бы вас, а в текущей версии будут заданы вопросы во избежание случайных промахов, и при групповом "изгнании" не тронет ваши сеансы, будь то конфигуратор или предприятие. Т.е. теперь вы сами себя случайно не отключите.

Сделана возможность выделения нескольких пользователей в списке: отключение всех, кроме выделенных, рассылка сообщения всем, кроме выделенных. Доработан дизайн показа. Добавлена колонка просмотра пользователя ОС, если он есть.

Также оптимизирован код, повышена информативность и надёжность.

В версии от 17.04.11 обработка определяет пользователя ИБ (как аккаунт платформы) и пользователя БД (как элемент справочника "Пользователи"), и позволяет двойным щелчком перейти к их просмотру.

Большая просьба НЕ плюсовать, т.к. это просто маленькая доработка "для себя", которая кому-то может оказаться полезна. Все благодарности - сюда: http://www.infostart.ru/public/15688/

 

Скачать файлы

Наименование Файл Версия Размер Кол. Скачив.
ActiveUsersList
.epf 111,80Kb
17.04.11
1975
.epf 111,80Kb 1975 Скачать

См. также

Подписаться Добавить вознаграждение

Комментарии

1. Александр Рытов (Арчибальд) 22.09.10 12:33
+ за просьбу не плюсовать :D
2. Роман Осадченко (cleaner_it) 22.09.10 15:36
Поставил плюс http://www.infostart.ru/public/15688/.
Но раз уж так - дай ссылку на свою доработку на форуме http://www.infostart.ru/public/15688/, или попроси coder1cv8 сделать ссылку на твою публикацию. Иначе потеряется твоя полезняшка, и
которая кому-то может оказаться полезна
- останется лишь мечтой
3. Яков Коган (Yashazz) 22.09.10 16:22
Ах да, есть ещё всякие мелочи. Например, если дата начала сессии не сегодняшняя, то подсветится красным, так "висяки" сразу видно. Возможно, прикручу и время бездействия для каждого юзверя...
4. Дмитрий Елисеев (w-divin) 22.09.10 17:20
Плюсанул и там и тут... весчь полезная - доработки нужные )))
5. Александр Цегельников (markers) 27.09.10 08:09
Было бы не плохо скриншотик какой-нить, и описание по лучше...
ЗЫ: Мой давнишний вариант обработки coder1cv8 (за что ему спасибо!): http://infostart.ru/public/21475/
6. MadRabbit (MadRabbit) 27.09.10 10:33
Замечательная штука - возьму на вооружение. Правда, на работе пользователи через терминальный клиент citrix'a подключаются - обработка не работает :cry:
7. Яков Коган (Yashazz) 27.09.10 11:00
(5) Ага, хорошо, что ты проявился - я что-то не сумел откопать прямой линк на твой вариант. Тебе спасибо тоже!
8. vladal (Vladal) 28.09.10 08:37
Плюс за полезности и отсутствие наглости.
9. Denis Lookin (lookindenis) 01.10.10 22:32
просьба
на 7.7 что-то подобное.
10. Антон (woozee) 15.10.10 16:32
Скачал... запустил.. "Только клиент-серверный вариант".... лимит скачиваний исчерпан. спасибо! :evil:
11. Яков Коган (Yashazz) 17.04.11 17:53
(10) Упс, поправлю, конечно. Виноват. :(
12. Евгений М (Zen13) 16.09.11 14:17
+1. Немного подработал под свои нужды.
13. robotq (robotq) 19.09.11 05:24
Не работает когда предприятие запущено на сервере терминалов.
14. Игорь (uropek) 20.09.11 21:19
Интересно, почему 1с штатно в системе этого не реализует. Вещь то незаменимая
15. Женя * (smok1986) 29.09.11 11:17
рахмет за штуку такую, очень полезная вещь!
16. Эдуард (edyardg) 29.09.11 12:18
Поленая вещь! У меня не работает в файлом варианте!
17. Sergey Tis (Serggray) 29.09.11 12:25
Хочется скачать, а не могу балов не хватает :)
18. Дима Матюшенко (vremennii) 04.10.11 17:12
а есть ли такая фитча для файлового варианта?
19. Николай (SNT) 11.11.11 23:39
Не работает через сервер терминалов. А вообщем вещь полезная.
20. cs25 (cs25) 15.11.11 09:29
Выдаёт ошибку (клиент-сервер):
{Форма.Форма.Форма(221)}: Ошибка при вызове метода контекста (ConnectAgent): Произошла исключительная ситуация (V81.COMConnector.1): Различаются версии клиента и сервера (8.1.15.14 - 8.2.14.519), клиентское приложение: COM-администратор

Что может быть ?
21. Валерий Карпов (Yakud3a) 24.11.11 08:32
cs25 пишет:

Выдаёт ошибку (клиент-сервер):

{Форма.Форма.Форма(221)}: Ошибка при вызове метода контекста (ConnectAgent): Произошла исключительная ситуация (V81.COMConnector.1): Различаются версии клиента и сервера (8.1.15.14 - 8.2.14.519), клиентское приложение: COM-администратор



Что может быть ?

Пришлось на форуме пофлудить чтоб скачать, и тож самое)
22. Валерий Карпов (Yakud3a) 24.11.11 08:41
Решение было на поверхности V82.COMConnector.1
23. Max Vorobev (maxpostal) 26.11.11 15:58
24. Юля Юля (Fialka88) 09.12.11 16:37
на 8,2 подойдет Управление Торговлей
25. Max Vorobev (maxpostal) 09.12.11 18:40
Спасибо! Вещь очень полезная, много функций, которых так не хватает в штатной конфигурации!
26. Гость 10.12.11 12:27
Fialka88 пишет:

на 8,2 подойдет Управление Торговлей


Что значат ваши слова? На 8.2 УТ 10.3 внешняя обработка не может быть прочитана текущей версией программы.
27. afavor 13.12.11 12:36
28. Юлия Петрова (petrovaUL) 20.12.11 06:37
Спасибо, пригодится. Будет ли доработана?
29. greenvitla (greenvitla) 20.12.11 07:18
30. Andrei Baturskii (bonzo84) 21.12.11 13:17
Спасибо, пригодилось!
Чтобы сообщение передавалось по локальной сети, на компьютере с Windows XP пользователя должна быть включена служба Messenger - некоторые умельцы-олптимизаторы отключают ее. :-)

Хорошее дополнение для вот этой обработки:
http://infostart.ru/public/21475/
31. Петр Лунегов (pvlunegov) 30.12.11 10:24
Автору спасибо за хорошую обработку!

У меня все заработало в 1С 8.2.14 КА. Сообщения отправляются, пользователи выгоняются...
32. Макс Такойто (Maks888) 12.01.12 09:11
Автор молодец, очень социально-ответственный человек =) Весьма нужная обработка!
33. Dimaxx Сысоев (dimaxx) 16.01.12 09:37
(26) Гость, Это означает, что отличается версия программы 1С. Решение: открыть в своем конфигураторе и сохранить.
34. sammas (sammas) 17.01.12 19:02
спасибо. выручает периодически.
35. Василий Кожуховский (yavasilek) 30.01.12 16:51
На 1С:Предприятие 8.2 (8.2.14.540) не заводится. После конвертации выдает:
Ошибка при прерывании соединений: {Форма.ФормаСписка.Форма(263)}: Ошибка при вызове конструктора (COMОбъект): Недопустимая строка с указанием класса: Недопустимая строка с указанием класса
36. Яков Коган (Yashazz) 02.02.12 00:22
(35) Знаю. У себя переделал, а выложить обновлённую забыл, замотался. Извиняюсь. Выложу на днях.
37. Василий Кожуховский (yavasilek) 02.02.12 10:04
(36) Yashazz, отпишись плиз в теме - чтоб люди по подписке увидели обновление
38. nick e (nick_e) 16.02.12 06:33
Эта штука выгоняет не важно из sql или файловых баз?
39. nick e (nick_e) 16.02.12 06:47
Что то не могу понять, клиент - северный режим это что?
Вот у меня база лежит на одном компе,а на других стоят клиенты в которых прописан сетевой путь к базе. В каком режиме у меня работает?
40. Василий Кожуховский (yavasilek) 16.02.12 09:37
41. Яков Коган (Yashazz) 21.02.12 13:22
Короче говоря, времени у меня нетути, поэтому, кому нужно, поправляйте строку V81.ComConnector на V82.ComConnector соответственно. Там есть ещё тонкости, но это точно не сейчас. Приношу извинения, но я и так работаю по 14 часов в сутки.
43. Карина -- (ponaroshku) 28.04.12 05:22
44. andrey dyak (dyak84) 07.01.13 13:22
Автор понимаю что занят скажи пожалуйста твоя обработка будет работать в кластерной системе с 10 рабочими процесами, будет выгонять активных пользователей. Большинство обработок етого не умеют. Зарание спасибо за ответ.
45. Яков Коган (Yashazz) 07.01.13 20:34
(44) Честно сказать - не пробовал. Уже не помню. :(
46. Max Vorobev (maxpostal) 13.01.13 13:55
(41) Yashazz, Очень жаль, что у автора нет времени на доработку обработки под платформу 8.2. Предложенный вариант с заменой строки почему то не сработал, может есть еще какие тонкости?..
47. Виктория Бажанова (Small sa) 05.09.13 16:15
Для 8.2 выгонялка хорошо описана здесь: http://infostart.ru/public/77671/
Прикрепленные файлы:
48. Дима Матюшенко (vremennii) 07.07.14 01:51
а есть уже готовый вариант чтоб опробовать на деле?
49. Дима Матюшенко (vremennii) 07.07.14 01:54
кстати этот http://infostart.ru/public/90241/ вариант еще никто не пробовал?
50. Виктория Бажанова (Small sa) 12.08.14 16:58
Если надо отключить всех, кроме себя, то код ниже подойдет:
Процедура КнопкаВыполнитьНажатие(Кнопка)
Пользователь="Администратор";
Пароль="";

Попытка
  СписокОтключенныхПользователей=Новый СписокЗначений;
  СписокНЕОтключенныхПользователей=Новый СписокЗначений;
  СтрокаСоединения=СтрокаСоединенияИнформационнойБазы();
  ЭтоСоединение=НомерСоединенияИнформационнойБазы();
  Сервер=НСтр(СтрокаСоединения,"Srvr");
  Если СтрДлина(Сервер)>1 И Сред(Сервер,СтрДлина(Сервер),1) = "1" Тогда
	Сервер = Сред(Сервер,1,СтрДлина(Сервер)-1);
	Сервер = Сервер+"0";
  КонецЕсли;	
  База=НСтр(СтрокаСоединения,"Ref");
  КОМ = Новый COMОбъект(ИмяКонектора());
  Агент=КОМ.ConnectAgent(Сервер);
  Кластеры=Агент.GetClusters();
  Кластер=Кластеры.GetValue(0);
  Агент.Authenticate(Кластер,"","");		
  РабочиеПроцессы=Агент.GetWorkingProcesses(Кластер);
		
  Для Каждого Процесс Из РабочиеПроцессы Цикл
	Если Процесс.Running = 0 Тогда
		Продолжить; // Если процесс не запущен, то слетает 1С
	КонецЕсли;
	СтрокаСоединенияРП=Процесс.HostName+":"+Формат(Процесс.MainPort,"ЧГ=");
	СоединениеРП=КОМ.ConnectWorkingProcess(СтрокаСоединенияРП);
	СоединениеРП.AddAuthentication(Пользователь,Пароль);
	ОписаниеИБ=СоединениеРП.CreateInfoBaseInfo();
	ОписаниеИБ.Name=База;
	Соединения=СоединениеРП.GetInfoBaseConnections(ОписаниеИБ);
		
	Для Каждого Соединение Из Соединения Цикл
		Если Соединение.AppID = "backgroundjob" ИЛИ Соединение.AppID = "designer" ИЛИ Соединение.AppID = "comconsole" ИЛИ
        		Соединение.UserName="exchange" ИЛИ Соединение.UserName = ИмяПользователя() Тогда
			Если СписокНЕОтключенныхПользователей.НайтиПоЗначению(Соединение.UserName)=Неопределено Тогда 
	        		СписокНЕОтключенныхПользователей.Добавить(Соединение.UserName);
			КонецЕсли;
			Продолжить;
		КонецЕсли;
		Если Соединение.ConnID<>ЭтоСоединение и Соединение.AppID="1CV8"  Тогда //на всякий случай 
			Если СписокОтключенныхПользователей.НайтиПоЗначению(Соединение.UserName)=Неопределено Тогда 
         			СписокОтключенныхПользователей.Добавить(Соединение.UserName);
			КонецЕсли;
	
		//СоединениеРП.Disconnect(Соединение);
		Сообщить ("могли бы отключить "+ Соединение.UserName)  ;
		КонецЕсли;
	КонецЦикла;
  КонецЦикла;	
		
  КОМ=Неопределено;
  Исключение
    Сообщить (ОписаниеОшибки());
  КонецПопытки;	
	
КонецПроцедуры

Функция ИмяКонектора()
	
  СисИнфо = Новый СистемнаяИнформация;
  ПодстрокиВерсии = РазложитьСтрокуВМассивПодстрок(СисИнфо.ВерсияПриложения,".");
	
  Возврат "v"+ПодстрокиВерсии[0]+ПодстрокиВерсии[1]+".COMConnector";
	
КонецФункции
...Показать Скрыть
51. Алекс Алекс (letchik2000) 25.11.14 18:27
С чем может быть связана вот такая ошибка:

Ошибка при прерывании соединений: {Форма.ФормаСписка.Форма(263)}: Ошибка при вызове конструктора (COMОбъект): Недопустимая строка с указанием класса: Недопустимая строка с указанием класса

52. Яков Коган (Yashazz) 07.12.14 12:48
(51) Ну как я могу сказать навскидку, не видя саму строку с указанием класса?
53. Виктория Бажанова (Small sa) 29.06.15 11:19
Скорее всего не установлена COM-компонента 1с.
Либо вызываете не ту версию коннектора.
Для написания сообщения необходимо авторизоваться
Прикрепить файл
Дополнительные параметры ответа