Имя: Пароль:
1C
 
Завершение работы пользователей
0 URAL
 
17.07.09
14:08
Возможно ли организовать завершение работы(сеанса) пользователей с конфигуратора
1 Mitriy
 
17.07.09
14:10
нет
2 fisher
 
17.07.09
14:11
Легко.
"Файл -> Открыть" и запустить скрипт, который завершит сеансы пользователей :)
3 URAL
 
17.07.09
17:40
(2)Файл -> Открыть" и запустить скрипт, который завершит сеансы пользователей

Можно подробнее пожалуйста, недогоняю
4 asady
 
17.07.09
18:22
(0) запустить из конфигуратора сеанс предприятия с установленным параметром запуска некошерно?
6 URAL
 
18.07.09
05:57
А в режиме Предприятие возможно???
7 fisher
 
18.07.09
13:41
(3) Ну, это скорее шутка такая была. Просто можно работать с сервером предприятия через COM. Т.е. можно написать скрипт (vbs, js, ect.) который подключится к серверу и поотрубает нужные сеансы нужных баз.
(6) В типовых уже реализовано. Напомнило анекдот:

Девочка-даун поймала Золотую рыбку, смотрит на неё "тупыми" глазами, а та ей говорит:
- Девочка, отпусти меня, я исполню твои три самые сокровенные желания!
- Хотю огломный нос и штоб с бододавками. - И появился у неё огромный нос с бородавками.
- Второе желание.
- Хотю огломные уши и штоб волосатые такие...- и появились у неё огромные волосатые уши.
- А третье твоё желание, девочка.
- А есё хотю вот такую больфую опу и штоб она вот так колыхалась из стороны в сторону.
Всё получилось, как хотела девочка. Рыбка посмотрела на это зрелище и говорит:
- Девочка, ну скажи мне, пожалуйста, ТЫ и так
ДЕБИЛЬНАЯ, СТРАШНАЯ И ТУПАЯ КАК ВАЛЕНОК, ты что, не могла заказать у меня, чтобы ты была КРАСИВОЙ, СТРОЙНОЙ, УМНОЙ, а!?
- ......а что, МОЖНО БЫЛО!!!???
9 fisher
 
18.07.09
13:46
(7) +
Этот скрипт, ессно, можно запустить из конфигуратора как и любой исполняемый файл.
10 Лефмихалыч
 
18.07.09
13:50
(0) зачем именно из конфигуратора?
12 URAL
 
18.07.09
17:24
(7) В типовых уже реализовано
В каких именно??????????????????????????????
13 fisher
 
20.07.09
10:22
(12) Ну, я с типовыми неплотно работаю. В "УТП для Украины" точно есть. Почти уверен, что и в других то же самое. В полном интерфейсе меню "Пользователи -> Завершение работы пользователей". Предусматривается несколько режимов завершения работы пользователей.
Реализовано предельно просто - в сеансе каждого пользователя подключается обработчик ожидания, опрашивающий константу режима завершения работы. Т.е. когда админу нужно выгнать народ - он меняет значение константы на нужное и все пользовательские сеансы говорят "Есть!". Самый жесткий режим - безусловное завершение работы. При этом вызывается метод глобального контекста ПрекратитьРаботуСистемы(), которому пох на модальные диалоги.
14 asady
 
20.07.09
10:57
(13) а разве при открытом модальном окошке обработчик ожидания срабатывает?
15 fisher
 
20.07.09
11:14
(14) Да.
16 Quadro_pb
 
20.07.09
11:36
>??????????????????????????????
facepalm.jpg
Извините.
17 GenV
 
20.07.09
11:38
(0) В типовых есть обработка ОбновлениеКонфигурации в которой есть пример скрипта по завершению всех сеансов. Пример кода 1С по завершению соединений есть в общем модуле УправлениеСоединениямиИБ (это для БП, для других похожий модуль будет).
18 mikecool
 
20.07.09
11:43
(17) в типовых кажется уже этот функционал убрали? по крайней мере в 14 релизе УПП было, а в 16-м уже нет
19 GenV
 
20.07.09
11:46
(18) 16 не смотрел, а в 22 проверил - вроде есть. По нему обновление конфигурации через интернет должно работать.
20 mikecool
 
20.07.09
11:55
(19) а , точно... про это обновление забыл...
а в 14 - для РИБ работало, только видимо народ много глюков отловил :)
21 Serg_1960
 
20.07.09
12:06
Глюки в том и заключались - модальные окна не закрывались :)
22 URAL
 
21.07.09
14:34
Скачал с ифостарта обработку , а она отрубает только мою сессию
запускаю открывается ТЗ, в ней колонки Имя пользователя, УИД пользователя и.т.д.
кликаю мышъю по нужному пользователю и выбираю в меню завершить сеанс, не срабатывает
Запускаю с одного компа сразу несколько сессий под разными именами, того кто запустил обработку с полными правами отрубает, а остальных нет

Может кто подскажет что не так

Вот часть задействованного кода при текущем действии:

Процедура КоманднаяПанель3ЗаввершитьСеанс(Кнопка)
   ЗавешитьСеансПользователя(ЭлементыФормы.СписокПользователей.ТекущиеДанные);
КонецПроцедуры

Процедура ЗавешитьСеансПользователя(СтрокаТЗ)
//    СформироватьСообщение(1,10,ЭлементыФормы.СписокПользователей.ТекущиеДанные.УИДПользователя);

Текст = "Попытка "+
       " Форма.ОтключитьОбработчикОжидания(""ЗавершитьСеанс"");"+
       " Исключение"+
       " КонецПопытки;"+
   
       " ОжиданиеЗавершенияСобытия = Ложь;"+
       " _ОчиститьСообщения(1);"+
   
       " Попытка"+
       "    ЗавершитьРаботуСистемы(Ложь);"+
       " Исключение"+
       " КонецПопытки;";

СформироватьСообщение(3,10,ЭлементыФормы.СписокПользователей.ТекущиеДанные.УИДПользователя,
                       Строка(_ТекущийПользователь.УникальныйИдентификатор),,Текст);
КонецПроцедуры

Процедура СформироватьСообщение(ТипСобытия,ВремяДоСтарта=5,УИДПолучателя,УИДОтправителя,_ТекстОповещения="",КодИсполнения="") Экспорт
   Сообщение = РегистрыСведений.dsСообщения.СоздатьМенеджерЗаписи();    
   
   Сообщение.ТипСобытия        = ТипСобытия;    
   Сообщение.УИДПолучателя    = УИДПолучателя;    
   Сообщение.УИДОтправителя    = УИДОтправителя;    
   Сообщение.ТекстОповещения    = _ТекстОповещения;
   Сообщение.КодИсполнения    = КодИсполнения;
   Сообщение.ВремяДоСтарта    = ВремяДоСтарта;
   Сообщение.ИмяОтправителя    = _ТекущийПользователь.ПолноеИмя;
   
   Сообщение.Записать();
КонецПроцедуры
23 URAL
 
21.07.09
15:04
Каким образом указать конкретно какого пользователя отрубить?????
24 lordmb
 
21.07.09
16:40
(23) ПолучитьСоединенияИнформационнойБазы()
25 URAL
 
21.07.09
17:42
(24)в какое место кода реализовать
26 GenV
 
21.07.09
17:50
(25) Принцип работы скачанного механизма хоть понял? )
27 URAL
 
21.07.09
17:55
немного, но если приблизительно подскажите что куда то буду премного благодарен, много чего не понимаю....
28 URAL
 
21.07.09
17:58
прошу извинить но сей момент уже реализован

Процедура ЗаполнитьСписокПользователей()
   МассивСоединений = ПолучитьСоединенияИнформационнойБазы();
   СписокПользователей.Очистить();
   
   Если МассивСоединений <> Неопределено тогда
       Для Каждого Значение Из МассивСоединений Цикл
           СтрокаТЗ = СписокПользователей.Добавить();
           // при ожиданни ввода имени пользователя не удается получить полное имя
           Попытка
               СтрокаТЗ.ИмяПользователя    = Значение.Пользователь.ПолноеИмя;
           Исключение
           КонецПопытки;    
           СтрокаТЗ.ИмяКомпьютера        = Значение.ИмяКомпьютера;
           СтрокаТЗ.ИмяПриложения        = Значение.ИмяПриложения;
           СтрокаТЗ.НачалоСеанса        = Значение.НачалоСеанса;
           СтрокаТЗ.НомерСоединения    = Значение.НомерСоединения;
           СтрокаТЗ.УИДПользователя    = Значение.Пользователь.УникальныйИдентификатор;
       КонецЦикла;    
   КонецЕсли;    
КонецПроцедуры
29 GenV
 
21.07.09
18:00
(27) В системе есть регистр сведений в который пишутся сообщения для пользователей. В текущем сеансе проверяется, нет ли сообщений для текущего пользователя (в обработчике ожидания) и если есть они либо выводятся, либо если в них задан программных код он выполняется. В твоем примере программный код отключает нужного пользователя при получении им сообщения (код выполняет отключение _текущего_ соединения).
30 URAL
 
21.07.09
18:03
(29) но почему себя я отключаю без проблем а других ничего не происходит
31 URAL
 
21.07.09
18:45
проверил через отладчик как проходит запись в регистр и себя и других пользователей, не могу понять что делаю не так
32 GenV
 
21.07.09
22:27
(30) Наверное потому, что у себя обработчик ожидания ты включаешь, а другие сеансы про него не знают ) Соотвю. у других пользователей он должен включаться при начале работы системы (или как там написано в описании к обработки), тогда другие пользователи будут знать о получаемых сообщениях.
33 URAL
 
22.07.09
09:16
вот эта обработка
http://www.infostart.ru/projects/3491/
либо я туплю, либо она реально не рабочая
34 GenV
 
22.07.09
13:04
(33) Тупишь. Смотри в демке модуль приложения.
35 URAL
 
22.07.09
18:36
что за демка
36 URAL
 
23.07.09
06:40
что за демка
37 GenV
 
23.07.09
12:03
(35) Там вроде выбор небольшой ) Один файл конфы, другой демка )
38 URAL
 
24.07.09
09:47
что за демка, что за файл напиши
39 URAL
 
24.07.09
09:59
я так понимаю что демка это 1Cv8.1CD и как ее просмотреть
40 fisher
 
24.07.09
10:44
(39) Гм... Вообще-то это база 1С и есть. Смотреть, соответственно, через 1С.
Пользователь не знает, чего он хочет, пока не увидит то, что он получил. Эдвард Йодан