Имя: Пароль:
1C
 
Обработка ожидания + модальное окно = хочу выгнать пользователей
Ø
0 Vaicartana
 
13.07.05
13:26
В глобальнике прописал ОбработкуОжидания() на свою функцию, которая раз в 15 минут проверяет "А не надо ли выгнать пользователя?" и выходит через ЗавершитьРаботуСистемы().
Все вобшем то работает кроме одного неудобства: в случае, если пользователь ухитрился открыть окно модально или есть какой либо вопрос требующий нажатия Да+Нет то выхода не проходит, т.к. в модальном режиме глоб. ожидание не срабатывает.
Подскажите, плз, как обойти эту хрень?
1 Денис2
 
13.07.05
13:29
1. не открывать окна модально
2. на все вопросы вешать таймаут.
2 Дурочка 1С
 
13.07.05
13:36
Закрой на 1 минуту шару на папку с базой - никого и выгонять не придется. Потом снова верни.
3 Vaicartana
 
13.07.05
13:58
2 (1) угу, и перепиши заодно пол-конфы, где куча дурацких вопросов без тайм-аута...
2 (2) Вумная, да? Адынэсница, да?
Шару на папке ей закрой... Это на терминальнике то? В 12 часов ночи? Каждый день?
.
Может есть координальное решение, типа "закрыть ВСЕ!"?
4 Дурочка 1С
 
13.07.05
14:03
В "терминальнике" еще проще - отстреливай на таймаут по бездействию. Поставь время, например, 1 час. Если котора работает до 6-ти, к 7-ми часам база гарантированно будет пуста.
5 КонецЦикла
 
13.07.05
14:07
Этот вопрос уже обсуждался....
Если РасстояниеДоПользователя <= ПрямаяВидимость Тогда
М16(ИмяПользователя);
ИначеЕсли (РасстояниеДоПользователя > ПрямаяВидимость) и (РасстояниеДоПользователя <= ПочтиНеВидно) Тогда
ЗапускСистемыЗалповгоОгня(ИмяПользователя);
Иначе
ЗапускКрылатойРакеты(ИмяПользователя);
КонецЕсли;
6 Vaicartana
 
13.07.05
14:12
2 (4) да в том то и дело, что в ручную отстреливать не хочется, автоматом нада.
2 (5) Предлогаешь конструктивные методы воздействия?
У нас есть одна бабушка, которая упорно не понимает, что из терминала надо выходить через файл-выход и с упорством, достойным другого применеия, жмет крестик... на терминале.
7 КонецЦикла
 
13.07.05
14:14
2(6) Вот-вот... сами будут бегать и закрывать друг у друга, чтобы осколком не задело...
ЗЫ. Где-то видел приблуду, к-я закрывает процесс да и все
8 Vtlk
 
13.07.05
14:15
Vaicartana вопросы задает... Так не бывает!
9 ADirks
 
13.07.05
14:16
вот такая командочка прибьёт всех в указанной базе:
SET lockfile=X:\1C_Bases\Buh\1cv7.lck
handle %lockfile% |grep -E 1cv7[sl]*.exe|gawk "{ print system(\"pskill \" $3) }"
handle и pskill берутся здесь: http://www.sysinternals.com
всё остальное здесь: http://unxutils.sourceforge.net/
10 Дурочка 1С
 
13.07.05
14:24
(6) Бестолочь! Тебе ж говорят настрой автоматический отстрел сессии по бездействию. Сессию отстрелишь - база освоободится.
11 Vtlk
 
13.07.05
14:28
(10)не освободится. сеанс пользователя будет просто отключен, базу это не освобождает.
12 Дурочка 1С
 
13.07.05
14:33
Бабушкам хорошо помогает: сделать терм. окно 2003 во весь экран и панель окна прятать автоматически - поднести курсор к верхней части экрана бабушки обычно не догадываются.
13 Дурочка 1С
 
13.07.05
14:36
(11) И кто же будет держать базу?
14 Vaicartana
 
13.07.05
14:47
2 (9) я так понимаю, это на сервере надо запускать? Типа процесс-киллера из линуха? Чтож, в качестве "крылатой ракеты" сгодится.
2 (10) Сразу видно, адынэсница.
Ну бестолочь, ну и что? У меня и справка есть. Вот, цитирую:
"Настоящая справка выдана Вайкартане в том, что он является бестолочью"
.
Заметь, я этого нисколько не скрываю.
А вот что скажет столь категорично настроенная Дурочка 1С по поводу (11)? Принудительное отключение сеанса и сброс сеанса все таки разные вещи.
15 Ирбис
 
13.07.05
14:51
ЗавершитьРаботуСистемы(0)
16 Vaicartana
 
13.07.05
14:59
2 (15) исчьо адын адынэснык?
17 smaharbA
 
13.07.05
15:06
(16) винапи в скрипте(но можно и не в скрипте)...
18 ADirks
 
13.07.05
15:06
Ещё один вариант, который можно запускать с любого компа, но он прибьёт вообще все процессы 1С в домене (это наверное будет уже термоядерная бомба :)) http://www.script-coding.info/Processes1C.zip
Правда, требует WMI, и потому может не всегда работать
19 Maxx
 
13.07.05
15:09
Есть альтернативная (но еще не реализованная) идея: допустим надо что-то сделать в базе монопольно но мешают пользователи. Готовим, допустим, новую конфигурацию и настраиваем некий процесс, которой следит за количеством пользователей и как только он говорит что пользователей нет тут же автоматом запускаем обновление. Помимо прочего это должно снизить психологическую напряженность так как у народа будет меньше формальных поводов устраивать истерики.
20 ADirks
 
13.07.05
15:12
(19) Такая хрень у меня тоже есть, на JavaScript'е написана. Единственная неприятность в том, что эти гады уходят домой не закрыв 1С.
21 Des
 
13.07.05
15:13
(14) Ну и сбросьте сеанс по таймауту, Вам же сказали
22 Vtlk
 
13.07.05
15:15
(21)А вам сказали, что сброс сеанса по таймауту базу не освобождает
23 Денис2
 
13.07.05
15:17
(22) Как раз освобождает.
24 Des
 
13.07.05
15:17
У меня освобождает :)) если указать "Завершение отключенного сеанса"
25 Кочуров
 
13.07.05
15:19
(22) SQL-базу не освобождает, так как отстаются подвисшие SQL-сессии. А ДБФ базу очень даже чудесно освобождает.
Я так полагаю, что в 12 часов ночи нужно пользователей выкинуть, чтоб бэкап сделать. Так вот все для этого необходимое есть здесь: http://v7backup.narod.ru
26 Vtlk
 
13.07.05
15:20
(24) В таком случае - да.
27 Пух
 
13.07.05
15:21
В 00:00 помолясь ребутим сервер, в 00:30 запускаем что хотели :)
28 Vtlk
 
13.07.05
15:23
(27)не забывая при этом перед запуском "чего хотели" пакетную реиндексацию проделать
29 Des
 
13.07.05
15:24
net stop mssqlserver /y
net start mssqlserver
- как вариант
30 smaharbA
 
13.07.05
15:25
+(28) ага, еще и логон...
31 Пух
 
13.07.05
15:27
(30) nnCron не требует логона :)
32 Денис2
 
13.07.05
15:27
(25) На SQL процессы сами через некотрое место отвалятся.
33 smaharbA
 
13.07.05
15:28
не, а что апи неможно прикрутить, будет вам по хэндлам/питам рубить нужные окна, процессы и прочий мусор от усеров...
34 Кочуров
 
13.07.05
15:41
(32) Это такая фрейдовская описка, или я чего-то не понял? ;)
35 Vaicartana
 
13.07.05
15:48
уффф, наговорили...
Мне (9) понравился, ну пара лишних экзешников скачать пришлось, ну они же мааааленикие!
36 smaharbA
 
13.07.05
23:06
Ну вот один из примеров давно (еще до отпуска) обещанной ВК без ВК
http://www.karat-e.ru/files/Stop1S/
Для работы ее необходим тока ворд, можно сделать чтоб работала при наличии любого приложения офиса...
Вырубит 1Сэ и при модальных окнах, переделать на управление с др компа даже без наличия шары на базу для "управленца"(кто вываливать будет 1Сэ), либо по времени проблем несоставит...
...
Этт тока пример создания... эээ назову "псевдо-ВК", далее дерзайте...
37 Харлампий Дымба
 
13.07.05
23:55
А чего "tskill *1c* /a" не катит? У меня батничек стартует в 3 ночи с этой командой и тестирование базы, в 4 бэкап раром. Правда база ДБФ.
38 smaharbA
 
13.07.05
23:58
(37) а как ты закроешь нужный/выбранный экзэмпляр 1Сэ?
да и тогда уж taskkill для любого процесса в домене...
39 Харлампий Дымба
 
14.07.05
00:49
(38) В три часа ночи у меня нет задачи закрывать нужный экземпляр - есть задача закрыть все терминальные сеансы 1С для тестирования и архивирования базы.
40 Палыч
 
14.07.05
07:42
Никто не слышал про un1c?
Я ей уже давно пользуюсь. Очень удобно.
И вопрос (38) она решает.
41 smaharbA
 
14.07.05
07:50
(40) на счет этого написан стартер для 1Сэ (все на HTA, никакой компиляции и доп компанент/библиотек), выкидывает процессы по ПИД, пид определяется при старте...
В (36) еще один способ обходиться без ВК и библиотек (правда в этом разе несовсем так, нужно присутствие ворда/офис), кому интересно позырьте, это только вариант использования такой технологии, так можно написать "псевдо-ВК" и для других целей, начинал это для того чтоб получить метод MouseOver/MouseMove, можете использовать вордовский файл как болванку для создания приложений/"ВК"/...
Чтобы обнаруживать ошибки, программист должен иметь ум, которому доставляет удовольствие находить изъяны там, где, казалось, царят красота и совершенство. Фредерик Брукс-младший