Имя: Пароль:
1C
 
Как получить сообщение об ошибки при перемещении файлов
0 ambez
 
16.07.07
22:45
При определенном событии нужно перемещать(переименовывать) папку с файлами в другую. Все бы классно, но злые юзеры часто в этих папках что-то делают, поэтому файлы оказываются занятыми и переместить папку с помощью "переименоватьфайл" не получается. И этот метод никак не сообщает о неудаче.
То есть вопрос в том как можно перемещать папку, и получать в 1с-ку какое-либо сообщение об ошибке при неудаче. Желательно без черных окон, естественно.
1 mamont
 
16.07.07
22:59
(0) Сделай проверку на СуществуетФайл на имя переименованого
2 ambez
 
16.07.07
23:11
забыл сказать, фишка в том что может файл-премник может уже существовать, и в нем тоже может кое-что лежать. то есть хотелось бы возможность использовать конструкцию типа
если переместили()=1 тогда...
иначе
стопмашина
3 mamont
 
16.07.07
23:17
(2) э... может по размеру и дате?
там по АтрибутыФайла много интересного получить можно
ну или через ВК кокойнить
4 ambez
 
16.07.07
23:20
ну вот я и смотрю в сторону COM-объекта или ВК, но чето ничего путного не придумывается
5 ambez
 
16.07.07
23:21
переименоватьфайл полностью истраивает, кроме того что она никак не сигналит о результате
6 mamont
 
16.07.07
23:29
(5) Ну можно еще сделать "финт ушами" - через промежуточное копирование, ну скажем в каталог временных файлов...
7 ambez
 
16.07.07
23:38
Это, кстати, хорошая идея. сенкс.
Но все равно, если кто-нибудь подскажет как эту вобщем-то элементарную операцию сделать с обратной связью, буду рад.
А то мне все равно придется считать размер исходной папки, которая кстати может быть с кучей подкаталогов, потом пытаться мувить, потом проверять изменился ли размер результирующей папки на размер исходной...а что будет если пока это будет считаться, изменится размер папки-приемника.
А так бы я просто сделал- если папка занята, то мы ее ставим в очередь на перемещение, а реквизит, в котором хранится путь к ней меняем только после успешного перемещения.
8 mamont
 
16.07.07
23:41
(7) да, только насчет папки в целом, это думается не удасться, ну я таких ВК не видел в общем
9 ambez
 
16.07.07
23:46
да и вот пока не видел
10 Побрекито
 
16.07.07
23:57
Спроси Орефкова.
Он стопудово знает.
11 Побрекито
 
17.07.07
00:05
10+
Вот одна из его фишек. Думаю, примерно в этом направлении можно покопать.


Функция КрасивоСкопироватьФайлы(стрПапкаНазначения, стрПутьКФайлу)
 Попытка
   Проводник = СоздатьОбъект("Shell.Application");
   Папка = Проводник.NameSpace(стрПапкаНазначения);
   Опции = 0;
   Папка.CopyHere(стрПутьКФайлу, Опции);
 Исключение
   Возврат 0;
 КонецПопытки;
 Возврат 1;
КонецФункции // КрасивоСкопироватьФайлы
12 ambez
 
17.07.07
00:18
выглядит как то что нужно))
Независимо от того, куда вы едете — это в гору и против ветра!