Переключение на Главную Страницу Страницы: [1] 2 3  ОтправитьПечать
Очень популярная тема (более 25 ответов) Сервис::ПолучитьСписокПользователей(КаталогИБ) (число прочтений - 12373 )
simply
God Member
*****
Отсутствует


Мечта: избавиться от 1С

Сообщений: 573
Местоположение: Киев
Зарегистрирован: 31. Декабря 2008
Пол: Мужской
Сервис::ПолучитьСписокПользователей(КаталогИБ)
08. Сентября 2010 :: 14:02
Печать  
Сервис::ПолучитьСписокПользователей(КаталогИБ)
Не документированная возможность?
Ни в als-е, ни в chm-е нет. Но работает!

А нет, случаем, возможности получения списка активных пользователей?
Буду очень признателен.

З.Ы.: Admin1C уже смотрел
  
Наверх
IP записан
 
Eprst
God Member
*****
Отсутствует



Сообщений: 3397
Зарегистрирован: 08. Октября 2007
Re: Сервис::ПолучитьСписокПользователей(КаталогИБ)
Ответ #1 - 09. Сентября 2010 :: 06:10
Печать  
Вот тут было упоминание, http://www.1cpp.ru/forum/YaBB.pl?num=1156832322/0#0
Но один хрен не знал, спасибо
Улыбка
А активных можно и штатно получить, через справочник и Блокировка()
  
Наверх
 
IP записан
 
shmalevoz
Junior Member
**
Отсутствует


1C++ rocks!

Сообщений: 55
Зарегистрирован: 23. Апреля 2009
Re: Сервис::ПолучитьСписокПользователей(КаталогИБ)
Ответ #2 - 09. Сентября 2010 :: 06:47
Печать  
Вот, посмотри
  

meta.zip ( 1 KB | Загрузки )
Наверх
 
IP записан
 
simply
God Member
*****
Отсутствует


Мечта: избавиться от 1С

Сообщений: 573
Местоположение: Киев
Зарегистрирован: 31. Декабря 2008
Пол: Мужской
Re: Сервис::ПолучитьСписокПользователей(КаталогИБ)
Ответ #3 - 09. Сентября 2010 :: 06:52
Печать  
Eprst писал(а) 09. Сентября 2010 :: 06:10:
Вот тут было упоминание, http://www.1cpp.ru/forum/YaBB.pl?num=1156832322/0#0
Но один хрен не знал, спасибо
Улыбка
А активных можно и штатно получить, через справочник и Блокировка()

Да, благодаря этому упоминанию, а также, упоминанию в архивах mista.ru, я и узнал про такой метод.

Можно по подробней про блокировку справочника?
  
Наверх
IP записан
 
Eprst
God Member
*****
Отсутствует



Сообщений: 3397
Зарегистрирован: 08. Октября 2007
Re: Сервис::ПолучитьСписокПользователей(КаталогИБ)
Ответ #4 - 09. Сентября 2010 :: 06:55
Печать  
Обычный справочник "пользователи" от типовой, где в код пишут ИмяПользователя(), при старте системы пользователь устанавливает блокировку на "свой" элемент справочника методом Блокировка().
Всё собственно.
Для получения списка активных пользователей достаточно перебрать весь справочник и самому попытаться заблокировать элементы, если неудача - юзверь в базе.
При любом завершении 1с (даже аварийном) блокировка снимается автоматом.
  
Наверх
 
IP записан
 
simply
God Member
*****
Отсутствует


Мечта: избавиться от 1С

Сообщений: 573
Местоположение: Киев
Зарегистрирован: 31. Декабря 2008
Пол: Мужской
Re: Сервис::ПолучитьСписокПользователей(КаталогИБ)
Ответ #5 - 09. Сентября 2010 :: 08:04
Печать  
Eprst писал(а) 09. Сентября 2010 :: 06:55:
Обычный справочник "пользователи" от типовой, где в код пишут ИмяПользователя(), при старте системы пользователь устанавливает блокировку на "свой" элемент справочника методом Блокировка().
Всё собственно.
Для получения списка активных пользователей достаточно перебрать весь справочник и самому попытаться заблокировать элементы, если неудача - юзверь в базе.
При любом завершении 1с (даже аварийном) блокировка снимается автоматом.

Это идея!
Спасибо!
А главное - просто и доступно!
Улыбка
З.Ы.: еще интересную идею прелодложил shmalevoz, изучаю ...
  
Наверх
IP записан
 
Eprst
God Member
*****
Отсутствует



Сообщений: 3397
Зарегистрирован: 08. Октября 2007
Re: Сервис::ПолучитьСписокПользователей(КаталогИБ)
Ответ #6 - 09. Сентября 2010 :: 08:17
Печать  
У него не совсем правильная идея: нужно пытаться удалить файло 1Cv7.LCK, а не просто проверять его наличие в каталоге пользователя.
При аварийном выходе, это файло так и остается, хотя пользователя в базе нема.

А блин, посмотрел не до конца, у него как раз и удаление в попытке..
  
Наверх
 
IP записан
 
simply
God Member
*****
Отсутствует


Мечта: избавиться от 1С

Сообщений: 573
Местоположение: Киев
Зарегистрирован: 31. Декабря 2008
Пол: Мужской
Re: Сервис::ПолучитьСписокПользователей(КаталогИБ)
Ответ #7 - 09. Сентября 2010 :: 08:34
Печать  
shmalevoz писал(а) 09. Сентября 2010 :: 06:47:
Вот, посмотри

shmalevoz, большое спасибо!
Еще одна очень интересная идея от тебя!
Проверка путем попытки удаления файла 1Cv7.LCK в каталоге пользователя - это супер!
Очень важно, именно через попытку удаления, т.к.:
Цитата:
Работа с 1С одного из пользователей была завершена некорректно (перезагрузка компьютера в результате кол##аний напряжения, зависание компьютера и т.п.), и в каталоге пользователя (и, возможно, каталоге базы) остались временные файлы 1cv7.LCK. Если причина в этом, то достаточно будет удалить такие файлы.

Источник: Статья "Ошибка блокировки метаданных. Возможно, метаданные используются другой задачей."
http://1c77progr.ru/article/pri-zapuske-1s-vydaetsya-oshibka-oshibka-blokirovki-...)
  
Наверх
IP записан
 
Eprst
God Member
*****
Отсутствует



Сообщений: 3397
Зарегистрирован: 08. Октября 2007
Re: Сервис::ПолучитьСписокПользователей(КаталогИБ)
Ответ #8 - 09. Сентября 2010 :: 08:45
Печать  
Хотя, убеиение lck годится только, если у юзверей свои каталоги назначены, иначе - болт.
  
Наверх
 
IP записан
 
simply
God Member
*****
Отсутствует


Мечта: избавиться от 1С

Сообщений: 573
Местоположение: Киев
Зарегистрирован: 31. Декабря 2008
Пол: Мужской
Re: Сервис::ПолучитьСписокПользователей(КаталогИБ)
Ответ #9 - 09. Сентября 2010 :: 08:51
Печать  
Eprst писал(а) 09. Сентября 2010 :: 08:45:
Хотя, убеиение lck годится только, если у юзверей свои каталоги назначены, иначе - болт.

Согласен!

Но у меня с этим строго.
Когда то, как только я узнал про существование UsersDef.dll - сделал обработку-форму по работе с пользователями из 1С:Предприятия, с контролями и автозаполнениями, чтобы не пускать пользователей в конфигуратор, полностью исключить ошибки и самому этим не страдать.

Но есть недостаток - зайти в эту обработку можно только один раз за сессию 1С:Предприятия - вылетает 1С. Пришлось завести переменную-счетчик запуска обработки.
  
Наверх
IP записан
 
artbear
1c++ developer
1c++ moderator
Отсутствует


Эх, дайте что-нибудь новенькое
да полезное потести

Сообщений: 6303
Местоположение: Москва
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Сервис::ПолучитьСписокПользователей(КаталогИБ)
Ответ #10 - 09. Сентября 2010 :: 08:57
Печать  
Удаление lck неверно, проверено уже давно, лучше попытатьсяч его прочитать и поправить.
У него определенные области блокируются, есть коды, которые давно это юзают.
Например, в ВК Admin1c и т.д.
Метод с блокировкой своего пользователя работает также давно.
  

OpenConf developer :: http://openconf.1cpp.ru&&FormEx developer :: http://formex.dorex.ru&&1C++ active developer && tester :: www.1cpp.ru
Наверх
GTalkSkype/VoIPICQ  
IP записан
 
simply
God Member
*****
Отсутствует


Мечта: избавиться от 1С

Сообщений: 573
Местоположение: Киев
Зарегистрирован: 31. Декабря 2008
Пол: Мужской
Re: Сервис::ПолучитьСписокПользователей(КаталогИБ)
Ответ #11 - 09. Сентября 2010 :: 09:16
Печать  
Всем большое спасибо!  Улыбка
  
Наверх
IP записан
 
Brr
Full Member
***
Отсутствует


I Love YaBB 2!

Сообщений: 142
Зарегистрирован: 26. Декабря 2006
Re: Сервис::ПолучитьСписокПользователей(КаталогИБ)
Ответ #12 - 09. Сентября 2010 :: 11:34
Печать  
Можно еще вариант предложить?
  
Наверх
 
IP записан
 
simply
God Member
*****
Отсутствует


Мечта: избавиться от 1С

Сообщений: 573
Местоположение: Киев
Зарегистрирован: 31. Декабря 2008
Пол: Мужской
Re: Сервис::ПолучитьСписокПользователей(КаталогИБ)
Ответ #13 - 09. Сентября 2010 :: 12:08
Печать  
Brr писал(а) 09. Сентября 2010 :: 11:34:
Можно еще вариант предложить?

Что за вопрос?!
Конечно!!!  Улыбка
  
Наверх
IP записан
 
Brr
Full Member
***
Отсутствует


I Love YaBB 2!

Сообщений: 142
Зарегистрирован: 26. Декабря 2006
Re: Сервис::ПолучитьСписокПользователей(КаталогИБ)
Ответ #14 - 09. Сентября 2010 :: 12:12
Печать  
Подсмотрено, по моему, на http://www.script-coding.info/.
Код
Выбрать все
тз = СоздатьОбъект("ТаблицаЗначений");
    тз.НоваяКолонка("Имя","Строка");
    тз.НоваяКолонка("Режим","Строка");
    тз.НоваяКолонка("Монопольно","Строка");
    тз.НоваяКолонка("ДатаВремя","Строка");
    тз.НоваяКолонка("Компьютер","Строка");

    ЛинксТМП = КаталогИБ()+"SYSLOG\links.tmp";
    Попытка
	  ScrptCtrl=СоздатьОбъект("MSScriptControl.ScriptControl");
	  ScrptCtrl.Language="vbscript";
	  ScrptCtrl.AddCode("
	  |Function WhoIsWork()
	  |    Dim Match, Matches
	  |    Set regexp = New RegExp
	  |    regexp.Pattern = """"""[^""""]*""""""
	  |    regexp.Global = true
	  |    Set fs = CreateObject(""Scripting.FileSystemObject"")
	  |    Set linkstmp = fs.GetFile("""+ЛинксТМП+""")
	  |    Set Stream = linkstmp.OpenAsTextStream(1)
	  |    str_rez = """"
	  |    While Not Stream.AtEndOfStream
	  |	  str = Stream.ReadLine()
	  |	  Set Matches = regexp.execute(str)
	  |	  For Each Match In Matches
	  |		str_rez = str_rez & Match.Value & VbCrLf
	  |	  Next
	  |    Wend
	  |WhoIsWork = str_rez
	  |End Function
	  |");

	  Рез   = СокрЛП(ScrptCtrl.Run("WhoIsWork"));
	  КолСтр = СтрКоличествоСтрок(Рез);
	  Если КолСтр > 0 Тогда
		Сч = 2;
		Пока Сч <= КолСтр Цикл
		    тз.НоваяСтрока();
		    тз.Имя = СтрПолучитьСтроку(Рез,Сч);
		    Сч = Сч + 2;
		    тз.Режим = СтрПолучитьСтроку(Рез,Сч);
		    Сч = Сч + 2;
		    тз.Монопольно = ?(Найти(СтрПолучитьСтроку(Рез,Сч),"Y")>0,"Да","Нет");
		    Сч = Сч + 2;
		    тз.ДатаВремя = СтрПолучитьСтроку(Рез,Сч);
		    Сч = Сч + 2;
		    тз.Компьютер = СтрПолучитьСтроку(Рез,Сч);
		    Сч = Сч + 2;
		КонецЦикла;
	  КонецЕсли;
    Исключение
	  Сообщить(ОписаниеОшибки());
	  Возврат "";
    КонецПопытки;
 

  
Наверх
 
IP записан
 
Переключение на Главную Страницу Страницы: [1] 2 3 
ОтправитьПечать