Как закрыть 1С, если открыта форма в модальном режиме #258617


#0 by z123456789
Как закрыть 1С, если открыта форма в модальном режиме? ЗавершитьРаботуСистемы не срабатывает.
#0 by z123456789
Как закрыть 1С, если открыта форма в модальном режиме? ЗавершитьРаботуСистемы не срабатывает.
#1 by DF_Slayer
убить процесс?
#2 by Ковекс
taskkill (под ХР)
#3 by z123456789
Средствами 1С
#4 by ShoGUN
КомандаСистемы("taskkill /PID "+PID); Как PID получить - была надавно темка от TormozIT по-моему...
#5 by ShoGUN
Не, не от него...
#6 by Морозов Александр
Шамбраа
#7 by ShoGUN
Точняк...
#8 by а лю 427
сама платформа умеет это делать, но это недокументированный эффект... P.S. эффект получен на 10 местном пробном сервере 2000...
#9 by а лю 427
т.е. это срабатывает - при выборе базы.... - при модальном окне...
#10 by ShoGUN
Поделись наработками по заваливанию процессов :)
#11 by ShoGUN
+ А я волшебное слово знаю :) Пожалуйста... Вспомнил еще тему от Гения1С, про код, заваливающий платформу. Восьмера вылетала без предупреждения, а вот на семерке не экспериментировал...
#12 by Морозов Александр
ввобще по идеи можно закрыть при помощи Формекса
#13 by ShoGUN
Думаю, не будет юзать формекс только ради этого...
#14 by z123456789
я 1с++ юзаю. формекс тоже не закрывает 1С.
#15 by z123456789
когда закрываешь модальное окно, тогда закрывается и 1С (срабатывает "ЗавершитьРаботуСистемы")
#16 by YF
Пытаешься блеснуть знаниями :-)
#17 by а лю 427
штатно и с помощью формекса, если открыто модальное окно - туфта... это не наработка, это обнаруженный факт... На дисках МСДН в свое время был сервер Вин2000, типа тестовый, полностью работоспособный, но ТОЛЬКО 10 ПОДКЛЮЧЕНИЙ... т.е. ДЛЯ ПОПРОБОВАТЬ.... если было активно 10 подключений и кто то пытался ломануться 11-м, то сервер проделывал очень интересную штуку - выбрасывал по своему выбору одного юзера, и пускал нового.... При этом в результате экспериментов было выяснено - 1С закрывалась даже при открытом модальном окне - 1С закрывалась, даже если светилось окно ввода пароля - закрытие осуществлялось явно не через килл процесс, а штатно - потом не требовалась переиндесация... Значит, в исполняющей системе платформы 1С есть недокументированный вызов от мягких, который обеспечивает штатное завершение задачи и она при этом корректно закрывает открытые файлы... Второй нюанс - если программа отказывалась закрываться, то штатно винды прекращают действие. Здесь же задача закрывалась автоматически - система плевала на ее ответ...
#18 by а лю 427
после обнаружения специально этот факт не копал ....
#19 by АЛьФ
2 "Значит, в исполняющей системе платформы 1С есть недокументированный вызов от мягких" - смешной вывод.
#20 by VasilyKushnir
Если грубо, то из крона я делаю так BEGIN KILL: "1cv7.exe" UNTIL Убивает все процессы 1С перед переиндексацией и ей плевать на какую сторону головы съехала тюбитейка (т.е. какие открыты окна). Полное описание задания - . А еще есть <Контроль окна "Авторизация доступа"> вроде убивает модальные окна. И самое главное (с этого, пожалуй надо было начать...) посмотри у Ромикса - у него есть просто обббалденная убивалка.
#21 by Мираж
Formex: Синтаксис: ОбработкаОжидания(Имя, Интервал) Параметры: •    Имя - тип: Строка. Имя глобальной процедуры для периодического вызова (если в качестве параметра передается пустая строка, то ранее запущенный процесс прекращается); •    Интервал - тип: Число. Интервал вызова процедуры в миллисекундах (если в качестве параметра передается 0 (ноль), то ранее запущенный процесс прекращается). Описание: Вызывает глобальную процедуру с заданным интервалом в милисекундах. В отличии от штатной обработки ожидания, вызывается при открытых модальных формах. объект Сервис: новый метод СписокВсехОткрытыхОкон возвращает список значений со всеми открытыми формами. объект РасширениеФормы: новый метод Закрыть, который немедленно закрывает форму (в отличие от стандартного метода Форма.Закрыть который ожидает завершения выполнения текущего кода)
#22 by а лю 427
Тогда дай объяснение тому, как можно кильнуть 1С с открытым модальным окном так, чтобы потом не требовалась переиндексация... P.S. Условия - 1С непатченая, на честном ключе, компонента ТиС, не используется никаких ВК...
#23 by АЛьФ
2 Да просто послать сообщение на закрытие окон.
#24 by а лю 427
а разве модальное отработает? P.S. почему же тогда ни один изобретатель не использовал этого способа в закрывалках 1С?
#25 by а лю 427
лично мне сейчас нужна такая закрывалка, но не хочется калечить конфу - хочется иметь стороннюю
#26 by АЛьФ
2 Кто тебе сказал, что ни один не использовал? 2 Ну так вперед.
#27 by а лю 427
Приведи пример... я же не идиот в отличие от некоторых...
#28 by АЛьФ
2 Зачем тебе пример? Ты ж и так все лучше всех знаешь и умеешь.
#29 by а лю 427
ну вот...опять Альф пёрнул в лужу и весь в брызгах отвалил...
#30 by ASV
с окном блокировки 1с-предприяти косячок выйдет
#31 by АЛьФ
2 Неужели тебе самому слабо додуматься? Там кода-то - десяток строк.
#32 by а лю 427
и чЁ? Слабо? Неужели все лохи такие? падскасать не могут?
#33 by АЛьФ
2 Что ж ты такой ленивый-то? Подумай хоть немного самостоятельно.
#34 by а лю 427
жаба душит самому себе 5 баксов заплатить за решение....
#35 by АЛьФ
2 Правильно. За такие деньги только ты сам и согласишься что-то делать.
#36 by а лю 427
Скажи еще чего нибудь... или в лужу дай - скушно...
#37 by АЛьФ
2 Лучше ты еще что-нибудь такое же ржачное, как заверни.
#38 by ShoGUN
, И давно у вас такой срач? Всю ветку изгадили...
#39 by а лю 427
ну вот... веселее.... веселее.... поддай жару...
#40 by а лю 427
да это он обиделся, когда я сказал, что УЖЕ зарабатываю на нем, но не дам ему ни копейки... ибо защита - Г.....
#41 by ASV
ууу...
#42 by ASV
кто то говорил что асм знает и сломать смогет всё, а тут 10 строк просит написать
#43 by а лю 427
как он с пеной доказывал.... это просто цирк был...
#44 by а лю 427
И ти не знаешь? Подскажи? А то миня повесят...
#45 by ASV
жалко будет, кто дятлов считать будет?
#46 by а лю 427
все лохи, такой малости не знают... а я погибаю...
#47 by АЛьФ
Вот "а лю" раскочегарился! :)
#48 by ShoGUN
Предлагаю дуёль на мясорубках (с)
#49 by а лю 427
спасибо... посмешил... Возьми пирожок с полки...
#50 by Mic
"И самое главное (с этого, пожалуй надо было начать...) посмотри у Ромикса - у него есть просто обббалденная убивалка." Можно подробней.
#51 by АЛьФ
2 Ты не злись. Там же действительно все очень просто. Ну, не знаешь ты ничего, кроме 1С, так это ж не трагедия.
#52 by Vorchun
Ребята, на самом деле я сталкивался еще с одно проблемой при убивании 1С. На удаленных компах было включено автообновление окошек. Когда вся эта хрень заканчивала закачиваться, вылезало окошко о перезагрузки для установки обновлений. Пока не ответишь на него, нельзя ни к одно проге получить доступ. Так что Формекс не пойдет. У меня катило только с собственной компонентой.
#53 by а лю 427
там не все так просто, как кажется... 2003 сервант (его защита) проделывала все без каких либо изменений программы.
#54 by Иде я
Грохаете открытые файло, и процессы на SQL и усе тип топ. Локи чистите и впереееед!!! Ураааа!! Банзааааай!
#55 by а лю 427
для того и ставят сиквел, чтобы просто грохать... А если грохнешь задачу на гигабайтной ДБФ - потом ведь индексироваться надо...
#56 by АЛьФ
2 Для тебя, конечно, может быть и не просто.
#57 by а лю 427
да, да, конечно... Умненький ты наш... Спой песенку...
#58 by а лю 427
P.S. денег все равно не дам...
#59 by АЛьФ
2 Правильно. Оставь себе на курсы повышения квалификации.
#60 by а лю 427
вместо того, чтобы болтаться здесь, давай КЗК распространяй... А то работы маловато...
#61 by Feanor
Любому окну в винде можно послать сообщение, хоть MDI, хоть SDI The WM_CLOSE message is sent as a signal that a window or an application should terminate. WM_CLOSE   Parameters This message has no parameters. Return Values If an application processes this message, it should return zero. Default Action The DefWindowProc function calls the DestroyWindow function to destroy the window. Remarks An application can prompt the user for confirmation, prior to destroying a window, by processing the WM_CLOSE message and calling the DestroyWindow function only if the user confirms the choice. See Also Кури Вин32 СДК, ДятлоДолб
#62 by АЛьФ
2 Работы мало? Надеюсь, не голодаешь еще? Ты держись!
#63 by Feanor
Специально для тебя за 1500$ напишу тулзу, как с чюжого не возьму, чес слово )))
#64 by Feanor
Все таки забавно так 427 расписался в импотентности...
#65 by zalex
Минуточку. С этого места поподробнее... Где это сработает, в рамках одного приложения, или ты так сможешь закрыть одноэсовское окно извне? Что второе - сомневаюсь, если первое, то как, ОбормоткаОжидания не фурычит, и с какого места ты это вызовешь?
#66 by а лю 427
плачу 3 бакса... + 50 баксов в качестве премии... P.S. в задаче, запущенной на сервере, д.б. выбор машины и задачи, крутящейся в ней (1С не обязательно д.б. одна запущена, м.б. открыто 2-3 базы) ОС сервера - 2003, ОС рабочих станций - 98, 2000, ХР...   Берешься или как Альф - пернешь в лужу и пойдешь? P.S. за полторы я и сам напишу.....
#67 by а лю 427
да, забыл - 1С может находиться в режиме ввода пароля пользователя или м.б. открыто модальное окно... После завершения задачи при повторном входе не должно быть запроса на переиндексацию... т.е. завершение должно быть штатным...
#68 by romix
А я сейчас использую вот эту примочку Одна из функций - загасить 1С у всех пользователей, и не пускать новых польз-й в определенную базу.
#69 by romix
+гасит конкретную базу - по таймауту (число секунд и сообщение перел закрытием указывается в ini)
#70 by zalex
И модальных окон не боится?
#71 by Скользящий
>>- Содержит "выгонялку" пользователей из 1С (выгонялка работает независимо от того, в каком режиме работают пользователи, и независимо от наличия открытых модальных окон).
#72 by Ковычки
немного спешишь, а килобаксов никто не даст, ибо давно написАно, причем можна и без ВК...
#73 by zalex
Впрочем поделки romix'a это по-любому патч... :)
#74 by КонецЦикла
Прекрасно! Надоть испробовать!
#75 by а лю 427
в идеале, если повторить сделанное 2000 тестовым сервером, такая программа должна уметь гасить любую задачу на клиенте (в эксперименте гасилось все, что открывало файлы). И при этом на рабочей станции не должно ставиться никаких примочек ( у меня были 98, 2000 проф и пара виндовс НТ воркстайшен). АД на 2000 сервере не поднималась, роль сервера - обычная стандалоне файлопомойка...   Нехилый инструмент для наблюдения за сетью и контроля рабочих станций получится, однако...
#76 by Feanor
Для тебя я цену назвал - не хочешь, значит сам пиши. Инструмент я тебе сказал, ты ведь так настойчиво . Мне эта задача не интересна. Сработает, когда поместишь сообщение в очередь сообщений окна. Об этом подробно написано в win32 API В отличие от дятла, винда умеет посылать соощения wm_close и wm_destroy приложениям, которые хочет закрыть )) А дятлы потом делают смешные выводы и танцуют с бубном около сервака в надежде его задобраить и получить "Нехилый инструмент для наблюдения за сетью и контроля рабочих станций"
#77 by Feanor
+.1 ...ты ведь так настойчиво просил подсказки.
#78 by Feanor
из-вне, конечно, используя функционал винды. Грубо, это имитация клика по крестику окна.   Причем тут ВК?!?
#79 by mergan
плачу 1500 штуки баков... имея wm_close и wm_destroy кошерно закроешь ДБФ конфу под одинСи...
#80 by а лю 427
а теперь пошли wm_Close с серванта на 98 винду...
#81 by smaharbA
- тут дядьки серьезные, если говорят, то знают что... а кому нах нужно внешн приложение ? да и с этим повердой человек не все так проста... И еще - уверен что любую форму закроешь так, без краха ?
#82 by Анахримед
написать COM сервер, который юзать из под 1С и в нем можно сымитировать действия любого пользователя, вплоть до нажатия кнопок отмена в окне ввода пароля и т.д., только повозится и объем кода с отлавливанием всяких разных ситуэйшенов получится неслабый, но написать такое в принципе дело времени и денег.
#83 by а лю 427
весь хохот в том, что это все работало в 2000 сервере (тестовом) без сом серверов и прочего...
#84 by а лю 427
так что - похоже, пустой выхлоп в лужу...
#85 by Анахримед
насчет того что "в исполняющей системе платформы 1С есть недокументированный вызов от мягких" гон это реальный, имхо, чего там есть такого что мы не знаем? да и навряд ли ваще мягкие встраивали что такое именно для 1С
#86 by а лю 427
при сборке любой программы в ее состав будут включены средства взаимодействия с ОС - пролог, эпилог, интерфейс апи, требуемые библиотеки, которые стандартно идут со средой разработки и влючаются в любую программу.... Ты часто смотришь, что туда включается? Лично я смотрел туда не более 3-х раз - когда был критичен размер программы и надо было порезать неиспользуемое...
#87 by а лю 427
библиотеки поставляются разработчиком среды. Среда - МС и сервер МС...
#88 by а лю 427
до офиса 2002 эксель юзал недокументированные возможности ОС, за что пинали МС...
#89 by Анахримед
если даже MS чего то там встроила в функцию CWnd::OnDestroy, как известно v 7.7 использует MFC, то что мягкие в этой функции удаляют 1С файл lck ? ;)))
#90 by zalex
Не сработает с модальным... Попробуй закрыть одноэс с висящим модальным окном используюя функционал видны руками. Ни крестик, ни кнопка на панели задач, ни даже три пальца не позволят корректно завершить приложение. И что-то имхается мне, что wm_close тоже не спасет, проигнорирует его эска. Помню писал как-то подружке программульку, комп по таймеру вырубать (аналог sleep на телике, с той же целью), так вот единственный способ закрыть ворд с несохраненным документом, эску с модальным окном и т.п. это принудительное завершение, без сохранения данных, аналог снять задачу. В случае с одноэской с большой долей вероятности это приведет к переиндексации.
#91 by MMF
этой байке уже как минимум пять лет :-)
#92 by Анахримед
на самом деле что происходит при обыкновенном сбросе сессии, процессы юзера этой сессии просто убиваются, системные в зависимости от ситуации завершаются корректно, но предположить такое как в это явный гон ...
#93 by Анахримед
просто надо отлавливать это диалоговое окно (модальное) и посылать ему соответствующие сообщения
#94 by а лю 427
Надо поискать дистрибутив этого тестового сервера... Возможно, диск еще живой, валяется в завалах... Если найду - могу выслать....
#95 by а лю 427
хотя - ты вроде с Украины... Хрен пошлешь, если только контрабандно... У нас на почте СД на Украину не берут...
#96 by zalex
Когда будешь отлавливать извне окном считается сама одноэска, а что там внутри покрыто мраком, для того чтобы работать с ее внутренними окнами надо к ней по оле подрубаться или еще как...
#97 by Анахримед
::EnumChildWindows(::GetDesktopWindow, EnumWindowsProc, (LPARAM)hwnd); Это даст ВСЕ окна в системе, затем определяешь принадлежность окна процессу, какие на нем кнопки и т.д. и усе, просто попотеть надо
#98 by MMF
:-)
Тэги:
Ответить:
Комментарии доступны только авторизированным пользователям

В этой группе 1С