Последние сообщения

#31
7.7 / Re: Глюк, фича, или я чего-то ...
Последний ответ от cr - 06 июля 2026, 19:49
Цитата: Злоп от 06 июля 2026, 04:04И - это самое - повырывать ноги прмяо до гланд тем, кто дает типа Предупреждение("АлеЧтоТо") - без таймаута, ругаюсь, плююсь и атата! и всегда походя сразу вкорячиваю таймаут если есть возможность. Ибо нефиг. Особенно в модуле проведения (в прошлом году не далее как пару раз натыкался на такое в самописке).
Орефков, кажется, рассказывал что контролы окон типа Предупреждения, Вопрос разработчик нарисовал сам, вместо того чтобы взять системные, еще удивлялся, зачем разработчик движка потратил время впустую? Поэтому таймаут там срабатывает.
А выбор файла/каталога - это системное окно.
И "закрыть" это окно (скорее всего, тот же Виндовс) приложению не дают. Таймаут явно срабатывает - кнопки исчезают, но события (закрытия окна) не происходит, поэтому -1 никогда не возвращается.

    
НачВремя=_GetPerformanceCounter();
ПутьК=""; 
ТаймАут=5;    
Ответ=ФС.ВыбратьКаталог(ПутьК, "Выберите каталог для сохранения файлов выгрузок", ТаймАут); 
КонВремя=_GetPerformanceCounter();
Если Ответ=0 Тогда
    Если (КонВремя-НачВремя+1)/1000 > ТаймАут  Тогда
            Сообщить("Закончился таймаут ("+СокрЛП(ТаймАут)+" сек.)"); 
        Иначе
            Сообщить("Отмена выбора");
        КонецЕсли;
    Иначе          
        ПутьККат=ПутьК;
        Сообщить(""+ПутьК);
    КонецЕсли;
КонецЕсли;
И, кстати, у системной библиотеки таймаута нет.
    
ФСВинды = СоздатьОбъект("Shell.Application"); 
НачПапка=ФСВинды.NameSpace(КаталогИБ());    
Попытка
   ВыбКат = ФСВинды.BrowseForFolder(0,"Выберите каталог для сохранения файлов выгрузок",1+16,0); //  НачПапка  
Исключение  
КонецПопытки;    
    
Если ПустоеЗначение(ВыбКат)=0 Тогда  
   Попытка
       ПутьККат=""+ВыбКат.Items().Item().Path;
       Сообщить(""+ВыбКат.Items().Item().Type+": "+ВыбКат.Items().Item().Path);
   Исключение
        ПутьККат="";
        Сообщить(""+ВыбКат.title);
   КонецПопытки;
Иначе
   Сообщить("Отмена выбора");
КонецЕсли; 

На самом деле, никакого смысла в этом тамауте нет. Потому что окна Предупреждение или Вопрос выводятся программно, а выбор каталога предназначен только для интерактивного действия пользователя - там таймаут не только не имеет смысла, но и просто был бы игрушкой для идиотов и убогих юмористов из предыдущего сообщения.
Ты что хочешь: задать таймаут 3-5 секунд и чтобы окно выбора закрылось потому что юзер не успел выбрать?
Это ты над кем так хочешь издеваться? И для чего? Хорошо если ты ему сразу дашь начальный каталог где-то рядом, а если ему надо выбрать каталог на флешке, которую еще не вставили в комп? Он никода не успеет выбрать по твоему таймауту потому что долго будет его искать. И что он должен делать после этого? Ноги тебе до гланд вырывать за такие фокусы с таймаутом?

#32
7.7 / Re: Глюк, фича, или я чего-то ...
Последний ответ от MWW_Ruza - 06 июля 2026, 11:06
Семерка ещё сырая ;)
#33
7.7 / Re: Глюк, фича, или я чего-то ...
Последний ответ от Злоп - 06 июля 2026, 04:04
Цитата: cr от 05 июля 2026, 10:17
Цитата: Злоп от 04 июля 2026, 19:38Проверил ВыбратьКаталог() у себя на Вин10Хоум.
По таймауту кнопки пропадают.
Ии? Что не так?
А что по-твоему должно произойти после окончания таймаута?
Какая вообще цель указания таймаута для выбора?
Выбор альтернативы - взять файл/отказаться от файла.
Взятие файла приводит к продвижению по шкале процесса "вперед". То есть будут какие-то изменения. Это д.б. осознанный выбор пользователя, т.к. в большинстве случаев это приводит к каким-либо изменениям. Если юзер "задумался/отошел" - оставлять висеть модальное окно есть плохо. Поэтому модальное окно искусственно делаем выбор по таймауту такой, который минимизирует возможный ущерб/последующие действия. Такой выбор из двух - один=отказ.
Поэтому таймаут истек - окно закрылось, процесс дальше не пошел. Я.п. что код должен предусматривать возможность обработки таймаута спецобразом или же как экиваалент отказа. Имхо.
Никогда с таймаутом проблем по логике обработки у меня не было. У себя даже не припомню, чтобы таймаут итерпретировался по коду как-то иначе чем "отказ".
.
И - это самое - повырывать ноги прмяо до гланд тем, кто дает типа Предупреждение("АлеЧтоТо") - без таймаута, ругаюсь, плююсь и атата! и всегда походя сразу вкорячиваю таймаут если есть возможность. Ибо нефиг. Особенно в модуле проведения (в прошлом году не далее как пару раз натыкался на такое в самописке).
#34
7.7 / Re: Глюк, фича, или я чего-то ...
Последний ответ от MWW_Ruza - 05 июля 2026, 12:52
Цитата: cr от 05 июля 2026, 10:17Какая вообще цель указания таймаута для выбора?
Ну, ИМХО - как и везде, окно выбора должно просто закрыться, если юзверь открыл выбор и задумался на долго...

И, просто по тому, что он там есть, и описан в СП.
#35
7.7 / Re: Глюк, фича, или я чего-то ...
Последний ответ от cr - 05 июля 2026, 10:17
Цитата: Злоп от 04 июля 2026, 19:38Проверил ВыбратьКаталог() у себя на Вин10Хоум.
По таймауту кнопки пропадают.
Ии? Что не так?
А что по-твоему должно произойти после окончания таймаута?
Какая вообще цель указания таймаута для выбора?
#36
7.7 / Re: Глюк, фича, или я чего-то ...
Последний ответ от MWW_Ruza - 05 июля 2026, 08:11
Тебе в "копилку" :-)

Раньше как-то не ставил таймаут, и не вылезало. А тут, черт дернул, и пару часов потерял, пока понял что кнопки пропадают именно по таймауту, а не от скролинга или выбора каталога... По началу было не понятно, открывается диалог, все ок. Начинаешь выбирать каталог - бах, пропали... А потом, перепробовав кучу всего, перезрузив комп и т.п. пляски с бубном, просто открыл диалог, и тупо смотрел в экран, почесывая репу, и думая, что-бы еще попробовать... Бах - пропали, без моих действий... Вот это уже и навело на мысль о таймауте...
#37
7.7 / Re: Глюк, фича, или я чего-то ...
Последний ответ от Злоп - 04 июля 2026, 19:38
Проверил ВыбратьКаталог() у себя на Вин10Хоум.
По таймауту кнопки пропадают.
.
"Клюшки неисчерпаемы как атом"
#38
7.7 / Re: Глюк, фича, или я чего-то ...
Последний ответ от Харлампий Дымба - 03 июля 2026, 21:55
Интересно будет посмотреть на старой Винде, может на новой что сломалось?
А так, да - на оригинальной голой 7.70.027 на Windows7 - воспроизводится.
Причем у всех троих:
ФС.ВыбратьФайл() - по таймеру исчезают кнопки и путь, но окошко не закрывается;
ФС.ВыбратьФайлКартинки() - по таймеру исчезает предпросмотр, но окошко не закрывается;
ФС.ВыбратьКаталог() - по таймеру окошко не закрывается.
При этом после закрытия окна все функции возвращают 0 (нажата кнопка "Отмена"), а не -1 (превышен таймаут).
Работа через созданный объект
ФСО = СоздатьОбъект("ФС");
ФСО.ВыбратьКаталог();
картину не меняет.
Баг.
#39
7.7 / Re: Глюк, фича, или я чего-то ...
Последний ответ от MWW_Ruza - 03 июля 2026, 14:20
Ну, я у себя тоже просматривал, единственное, что из присутствуещего у меня в конфе, на это хоть-как-то относительно могло влиять - это "OpenFileDialogsManager.dll"... Очень удобная штучка, использую с 2012 года, когда только первые алко-декларации появились с огромными по длинне именами файлов. Никогда ни каких проблем не замечал.
Но, пробовал отключать ее загрузку - ни чего не меняется, так, что зря я на нее грешил.
Глюк платформы :(
#40
7.7 / Re: Глюк, фича, или я чего-то ...
Последний ответ от alyuev - 03 июля 2026, 14:12
Да, повторилось такое поведение. Я сначала было подумал может это какой-то плагин OpenConf-a. Но не нашел у себя ничего такого.