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

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

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

Djelf

Цитата: MWW_Ruza от 01 марта 2025, 22:26отом curl1c (без создания глобальной переменной, естественно, как в редми написано)
В ридми не отмечена важная вешь, libcurl при установке параметров пишет их в коллекцию slist.
 slist дурная коллекция, она при установке параметра дописывает его в slist, а удалить элемент из коллекции slist нельзя.
Из-за этого был сделан метод Карлик.Инит() (который должен был бы чистить slist) но оказалось что он скроее вредит, чем помогает, а скорость создания объекта Карлик не требует его кеширования в глобальной переменной.
Также были переработаны методы кеширования (соединений, передачи ssl сертификатов и т.п.), они теперь не зависят от создания объектов, они глобальные для всей ВК (т.е. работают для любых созданных карликов), что позволило значительно ускорить обмены данных, даже в случае создания новых объектов.
Стресс-тесты в Карлике проходят без изъяна, Карлик - не виноват! Точно, точно ;)

Djelf

А вот то что ВК загружаются динамически это плохо!
Так бы ты смог "Техподдержку" выложить, но если динамически...
Можно доработать для скидывания в каталог, при зависании это может помочь, если примерное время известно (скидывание в каталог будет до момента зависания).

Злоп

А что значит "ВК загружаются динамически"..?

Djelf

Цитата: Злоп от 04 марта 2025, 00:14А что значит "ВК загружаются динамически"..?
Это рудимент старых систем, как пример - нам не нужен вывод в современный xls, мы не подключаем йоксель.
На текущий момент нет уже таких жестких ограничений ни по памяти, ни по ресурсам, чтобы это соблюдать.

MWW_Ruza

Цитата: MWW_Ruza от 02 марта 2025, 13:33

Это, как я понимаю, отку-да-то из формекса прилетело? Специально я этого не делал, оно "само" :-)))

Кстати, я заметил, что этот "счетчик" появляется не всегда...
Не уверен, что это как-то влияет на сабжевую проблему, но, когда он не появляется, то после нажатия на "Да", всегда закрытие происходит без зависания. А когда "часики тикают", то эпизодически случаются зависания.
Но возможно, что это "статистическая погрешность".
Но, все равно не понятно, откуда этот таймер берется...
Процедура "ПриЗавершенииРаботыСистемы()" абсолютно стандартная, она там и была "отродясь", я ее не трогал:
// Предопределенная процедура.
//
Процедура ПриЗавершенииРаботыСистемы()
   Если ЗавБезВопроса = 0 Тогда
       Если глЗначениеПоУмолчанию("НеЗапрашиватьПодтверждениеПриВыходе") = 0 Тогда
         Если Вопрос("Вы действительно хотите закрыть программу?","Да+Нет") = "Нет" Тогда
             СтатусВозврата(0);
            Возврат;
         КонецЕсли;       
       КонецЕсли;
      ОткрытьФормуМодально("Обработка.ТорговоеОборудование", "Отключить");
   КонецЕсли;
КонецПроцедуры // ПриЗавершенииРаботыСистемы()

В отключении торгового оборудования, тоже ничего особенного не происходит...
На всякий случай в отключение сканера добавил "Сканер = 0;", понаблюдаю.
Но, все равно, откуда счетчик секунд на "Вопросе" о завершении работы?

MWW_Ruza

Ха... Только сейчас, по картинке и тексту сообщения, заметил, что текст вопроса то разный :-)
Просто картинка и фрагмент модуля из разных конфигураций.
Вот, от той, из которой скриншот:

// Предопределенная процедура.
//
Процедура ПриЗавершенииРаботыСистемы()
   
   Если глЗначениеПоУмолчанию("НеЗапрашиватьПодтверждениеПриВыходе") = 1 Тогда
      Если Вопрос("Закончить работу с программой?", "Да+Нет", 10)="Нет" Тогда
         СтатусВозврата(0);
         Возврат;
      КонецЕсли;
   КонецЕсли;
   
   ОткрытьФормуМодально("Обработка.ТорговоеОборудование", "Отключить");
   
КонецПроцедуры // ПриЗавершенииРаботыСистемы()

И таймер на 10 секунд там есть.
А на форму вопроса его похоже ФормЕкс выводит автоматом, так, как загружен.

Arbuz

Попробуй в призавершении обнулять (в порядке обратном созданию) глобальные переменные с объектами. Мне как-то помогло при спорадических падениях на выходе из 1С.

MWW_Ruza


Злоп

Таймер на предупреждение выводит формекс, да

trdm

Цитата: Arbuz от 07 марта 2025, 17:20Попробуй в призавершении обнулять (в порядке обратном созданию) глобальные переменные с объектами. Мне как-то помогло при спорадических падениях на выходе из 1С.
Было у меня актуально когда использовал реконекшионз найтив при перепроведении документов. Надо было сбрасывать все "курсоры" блабла = СоздатьОбъект("Спрвочнгик.*")

MWW_Ruza

Вроде победил :-)

И как ни странно, но все-таки это был FormEx...
Везде, где это наблюдалось - стояла какая-то старая, возможно "промежуточная, не релизная" версия.
После обновления до актуальной - проблема зависания при выходе исчезает.
Сказать, какая именно - не могу, всем, с кем часто работаю, заменил на новую.
Да это я думаю и не нужно уже.
Есть новая, проблемы с ней нет, чего о старой вспоминать.
Но, если очень нужно - могу если конечно вылезет у кого-то еще (скорее всего, пока не всем поменял), тогда посмотрю.

Злоп

Ну это трындец. Формекс ставить надо гдето после 138 версии, а лучше 198 или 199

MWW_Ruza

Само собой разумеется!
Но, не всегда же эти версии были.
Ставилось 100 лет назад, какой был на тот момент, и с тех пол не менял, так, как ничего нового в конфу не добавлял, что требует обновление ФормЕкса...
Ну, 138, это ты загнул... Сейчас пробежался по всем копиям баз, какие есть - самый старый нашел 142...
Но, думаю, там еде фокусы с выходом были, релизы свежее были, что-нибудь 170+...
Помню, массово обновлял, когда в него Алексей добавил метод "НарисоватьШтрихКод". Какой это релиз был, х.з... Но, давно это было.

Arbuz

Да, последние версии существенно стабильней, не говоря уже про функционал. У меня в проде стоит 199.

Цитата: Злоп от 15 января 2025, 21:23Или хотя бы 200 с зафиксированным перечнем известных, но непоправленных "проблем"..?
Ждём демиурга и надеемся.  ::)

Кстати, надо как-то собрать в одном месте этот перечень...