Зависает 7.7 при выходе?

Автор MWW_Ruza, 26 февраля 2025, 22:30

« назад - далее »

Злоп

Убери нафиг вопрос о закрытии вообще.

MWW_Ruza


Злоп

Цитата: MWW_Ruza от 08 июля 2025, 22:20Радикально...
А в чем глубокий смысл этого вопроса при устоявшемся рабочем процессе?
ну закроют СЛУЧАЙНО 1С (если есть что-то несохраненное - выдастся вопрос штатный), откроют заново.

item

Поддерживаю. Вопрос ПриЗавершенииРаботы это зло.
Система убивает АктивИксы еще до Вопроса, и неизвестно, что она там еще обнуляет.

Харлампий Дымба

Вот готовый пример как сторонняя dll подвешивает процесс 1С именно при завершении работы.
На абсолютно пустой тестовой базе (без ничего вообще - создаю из пустой папки) внешней обработкой парсим строку с помощью parser.dll. Если в процессе парсер спотыкается (даже через Попытка), то потом при выходе 1cv7.exe остается висеть фоновой задачей. Если парсим строку без ошибки - проблем при выходе не возникает.

Процедура Сформировать()

Если ФС.СуществуетФайл(КаталогИБ()+"parser.dll")=1 Тогда
    Если ЗагрузитьВнешнююКомпоненту(КаталогИБ()+"parser.dll")<>1 Тогда
        Сообщить("Не удалось загрузить компоненту parser.dll. Воqди под админом или сделай regsvr32.exe parser.dll!","!");
        Возврат;
    КонецЕсли;
КонецЕсли;

Парсер = СоздатьОбъект("AddIn.Parser");

СтримСОшибкой="Dialogs"",
|{""Frame"",
|{""-11"",""0"",""0"",""0"",""400"",""0"",""0"",""0"",""204"",""1"",""2"",""1"",""34"",""MS Sans Serif"",""453"",""142"","""","""","""",""0"","""",""1"",""1"",""6"",""29"",""-1"",""0"",""0"",
|{""0"",
|{""Основной"",""1""}},""1"",""1""}},
|{""Controls""},
|{""Cnt_Ver"",""10001""}}";

СтримБезОшибки="{""Dialogs"",
|{""Frame"",
|{""-11"",""0"",""0"",""0"",""400"",""0"",""0"",""0"",""204"",""1"",""2"",""1"",""34"",""MS Sans Serif"",""320"",""166"","" "","""","""",""0"","""",""1"",""1"",""6"",""29"",""-1"",""0"",""0"",
|{""0"",
|{""Основной"",""1""}},""1"",""1""}},
|{""Controls"",
|{""Закрыть"",""BUTTON"",""1342177291"",""70"",""143"",""54"",""14"",""0"",""0"",""4152"","""",""#Закрыть"","""",""-1"",""U"",""0"",""0"",""0"",""0"",""0"","""","""","""",""0"",""-11"",""0"",""0"",""0"",""0"",""0"",""0"",""0"",""0"",""0"",""0"",""0"",""0"",""MS Sans Serif"",""-1"",""-1"",""0"",""Основной"",""{""""0"""",""""0""""}""},
|{""ОК"",""BUTTON"",""1342181387"",""10"",""143"",""54"",""14"",""0"",""0"",""4153"","""",""#Записать? Закрыть"","""",""-1"",""U"",""0"",""0"",""0"",""0"",""0"","""","""","""",""0"",""-11"",""0"",""0"",""0"",""0"",""0"",""0"",""0"",""0"",""0"",""0"",""0"",""0"",""MS Sans Serif"",""-1"",""-1"",""0"",""Основной"",""{""""0"""",""""0""""}""}},
|{""Cnt_Ver"",""10001""}}"; 


Попытка
    Узлы = Парсер.ParserRecursiveList(СтримСОшибкой);
    Сообщить("Всё нормально");
Исключение
    Сообщить("Теперь не выйдешь");
КонецПопытки;    

КонецПроцедуры