Цитата: Харлампий Дымба от 08 июля 2026, 23:04Есть только пара приколов с опущенными / неопущенными запятыми.где-то было подробно описано, надо бы перечитать
Цитата: ADirks от 08 июля 2026, 07:30Понял, значит меня переклинило...
Вообще пофигу, хоть первыми, хоть последними, хоть вперемежку.
Модификатор 'Знач' говорит о том, что параметр передается по значению, а не по ссылке.
В 1С вообще нет таких приколов с привязкой к расположению формальных параметров.
Цитата: ADirks от 08 июля 2026, 07:30В 1С вообще нет таких приколов с привязкой к расположению формальных параметров.Есть только пара приколов с опущенными / неопущенными запятыми.
Цитата: cr от 07 июля 2026, 00:51Мазахисты!Я совсем другое увидел в этой теме.
Вас к юзерам на таймаут нельзя подпускать!

Цитата: cr от 07 июля 2026, 00:51Сами-то попробуйте: успеете в таймаут прокрутить список в начало и выбрать строку?как написал чуть выше - ставить в выбор таймаут 3-5 сек - это кодер, оторваннный от реальности. таких к работе с пользователями подпускать нельзя.
Цитата: cr от 06 июля 2026, 19:49Ты что хочешь: задать таймаут 3-5 секунд и чтобы окно выбора закрылось потому что юзер не успел выбрать?Над пользователем издеваться не надо, но и бардак - с тем же выбором файла - устраивать тоже не надо. а то везде бардак будет. И если юзер сначала тыкает выбрать файл, а потом 5 минут ищет флешку - это не кодер дятел,а пользователь раздолбай. Ну и выбор файла из произвольного места - вещь редкая, да и за 120-180 сек - если сопли не жевать, напокурить не отвлекаться - файл вполне можно выбрать. А не успел за 120-180 мин флешку найти - ну вернулся процесс в точку "начни выбор файла" - найдет флешку, втыркнет, жмакнет кнопку. Следующий раз может сразу флешку догадается воткнуть. до 180 сек - вполне хватает. Для своих скриптов я обычно ставлю 60, для пользовательских процессов 120-180 сек, тем более - как верно отмечено - место выбора уже в большинстве случаев известно, запомнено в настройках. Так что никакой проюлемы в таймауе выборов всяких - не вижу.
СпКат=СоздатьОбъект("СписокЗначений");
СкриптШелл = СоздатьОбъект("WScript.Shell");
НачПапка=КаталогИБ();
СпКат.ДобавитьЗначение(?(Прав(НачПапка,1)="\",Сред(НачПапка,1,СтрДлина(НачПапка)-1) ,НачПапка));
ВременныйФайл = СкриптШелл.ExpandEnvironmentStrings("%TEMP%\dir_out.txt");
СкриптШелл.Run("%comspec% /c dir """ + НачПапка + """ /b /s /ad > """ + ВременныйФайл + """", 0, 1);
Текст=СоздатьОбъект("Текст");
Текст.КодоваяСтраница(1);
Текст.Открыть(ВременныйФайл);
Для Н=1 По Текст.КоличествоСтрок() Цикл
Стр=Текст.ПолучитьСтроку(Н);
СпКат.ДобавитьЗначение(Стр);
КонецЦикла;
Текст.Очистить();
ФСВинды = СоздатьОбъект("Scripting.FileSystemObject");
ФСВинды.DeleteFile(ВременныйФайл, 1);
Для Н=1 По СпКат.РазмерСписка() Цикл
Путь=СокрЛП(СпКат.ПолучитьЗначение(Н));
ИмяПапки="";
Для Бкв=-СтрДлина(Путь) По -1 Цикл
ТекБуква=Сред(Путь,-Бкв,1);
Если ТекБуква="\" Тогда
Прервать;
КонецЕсли;
ИмяПапки=ТекБуква+ИмяПапки;
КонецЦикла;
СпКат.УстановитьЗначение(Н,Путь,ИмяПапки);
КонецЦикла;
ВыбЗнач="";
ТаймАут=5;
РезВыбора=СпКат.ВыбратьЗначение(ВыбЗнач,"Выберите каталог для сохранения файлов выгрузок",,ТаймАут,0);
Если РезВыбора=1 Тогда
ПутьККат=ВыбЗнач;
Сообщить(""+ВыбЗнач);
ИначеЕсли РезВыбора=0 Тогда
Сообщить("Отмена выбора");
ИначеЕсли РезВыбора=-1 Тогда
Сообщить("Закончился таймаут ("+СокрЛП(ТаймАут)+" сек.)");
КонецЕсли;
СпКат=СоздатьОбъект("СписокЗначений");
ФСВинды= СоздатьОбъект("Scripting.FileSystemObject");
НачПапка=ФСВинды.GetFolder(КаталогИБ());
СпКат.ДобавитьЗначение(НачПапка.Path, НачПапка.Name);
Подпапки = НачПапка.SubFolders;
Скрипт = СоздатьОбъект("MSScriptControl.ScriptControl");
Скрипт.Language = "JScript";
Скрипт.AddCode("function ПолучитьПеречислитель(Коллекция) { return new Enumerator(Коллекция); }");
ПеречислительПапок = Скрипт.Run("ПолучитьПеречислитель", Подпапки);
Пока ПеречислительПапок.atEnd(0) = 0 Цикл
СпКат.ДобавитьЗначение(ПеречислительПапок.item(0).Path, ПеречислительПапок.item(0).Name);
ПеречислительПапок.moveNext(0);
КонецЦикла;
ВыбЗнач="";
ТаймАут=5;
РезВыбора=СпКат.ВыбратьЗначение(ВыбЗнач,"Выберите каталог для сохранения файлов выгрузок",,ТаймАут,0);
Если РезВыбора=1 Тогда
ПутьККат=ВыбЗнач;
Сообщить(""+ВыбЗнач);
ИначеЕсли РезВыбора=0 Тогда
Сообщить("Отмена выбора");
ИначеЕсли РезВыбора=-1 Тогда
Сообщить("Закончился таймаут ("+СокрЛП(ТаймАут)+" сек.)");
КонецЕсли;