Имя: Пароль:
1C
1С v8
как выбрать файлы по времени изменения с точностью до секунды?
0 nlira
 
15.07.12
14:09
Задача такая:
выбрать файлы в каталоге за последний месяц с точностью до секунды, потом заархивировать, а затем их удалить. архивацию сделала. Как выбрать файлы?
1 nlira
 
15.07.12
14:10
есть у файла метод: ПолучитьВремяИзменения (GetModificationTime) . получается я выбираю все файлы, потом в цикле кручу эти файлы?
2 ДенисЧ
 
15.07.12
14:10
(1) да
3 nlira
 
15.07.12
14:10
не интересно, так как их будет много за месяц. Если в день у меня около 500 файлов и больше
4 nlira
 
15.07.12
14:11
а в месяц сколько их будет - тьма
5 nlira
 
15.07.12
14:12
по другому никак нельзя? Может запросом как нить, или выборкой? Чтобы поставить условие и выбрать нужное
6 nlira
 
15.07.12
14:14
а хотя, если регламентое задание запустиь 1 числа месяцы в 00-01 тогда выбираю все, архивирую, и удаляю их оттуда и все
7 Фдулич
 
15.07.12
14:16
Тихо сам собой веду беседу.)
8 nlira
 
15.07.12
14:16
только может же быть, что файл с временем создания 00-01 тоже попадет, как его исключить? не перебирая
9 МихаилМ
 
15.07.12
14:17
если исполняется на windows платформе
можно запросом через wmi
10 nlira
 
15.07.12
14:17
(7) )))
11 nlira
 
15.07.12
14:18
(9) я видимо валенок, куча не понятных слов
12 nlira
 
15.07.12
14:18
да на виндовс установлена 1с
13 nlira
 
15.07.12
14:18
а что такое wmi?
14 nlira
 
15.07.12
14:19
я регламентным заданием хочу сделать
15 nlira
 
15.07.12
14:19
в 1с
16 Aleksey
 
15.07.12
14:19
а разве время изменения нельзя отключить?
Вроде бы как для ССД его рекомендуют отключать
17 МихаилМ
 
15.07.12
14:20
(11) скорее всего. безнадежный.
(13) wiki:WMI
18 Aleksey
 
15.07.12
14:21
19 Aleksey
 
15.07.12
14:24
touch — команда Unix, предназначенная для установки времени последнего изменения файла или доступа в текущее время. Также используется для создания пустых файлов.
(с) wiki:Touch
20 Aleksey
 
15.07.12
14:26
Изменение времени файлов 1.0 - Простая программа для изменения времени модификации файлов в папке. Предназначена для коррекции времени файлов в разных копиях одного каталога в связи с переходом на зимнее или летнее время.
(с) http://freesoft.ru/?id=679487
21 nlira
 
15.07.12
14:28
а если в регламентном задании время указать 00:00:00 будет рабоотать?
22 nlira
 
15.07.12
14:29
допустим поставлю такое:Выполнять: один день, 1-го числа месяца; один раз в день
это будет 1 числа в 00 часов?
23 МихаилМ
 
15.07.12
14:30
(22)
Вы наслово поверите ?
24 nlira
 
15.07.12
14:31
(23) сегодня попробую поставить ночью на сегодня в 00:00:00 отправить ко мне письмо на эл. И погляжу заодно,будет делаться или нет
25 nlira
 
15.07.12
14:32
меня смущает время 00:00:00 все остальное делается как укажешь в расписании
26 nlira
 
15.07.12
14:32
проверено
27 nlira
 
15.07.12
14:34
и еще нет гарантии что туда не попадут файлы которые со след месяца. Вдруг автообмен чего то делал и на минуту позже пошло здание, тогда точно попадут лишние файлы в архив, и еще и удалятся
28 nlira
 
15.07.12
14:35
млин,как же се тяжко то
29 Wern
 
15.07.12
14:44
Не лучше ли чтоб автообмен сам раскладывал файлы по папкам по месяцам?
30 nlira
 
15.07.12
15:13
(29) идея хорошая
31 nlira
 
15.07.12
15:14
а как удалить файлы при архивации? методом ЗаписьZipФайла делаю
32 nlira
 
15.07.12
15:15
ИмяZIPФайла ="D:\123123.zip";
   ФайлАрхива = Новый ЗаписьZipФайла(ИмяZIPФайла, , ,
   МетодСжатияZIP.Сжатие,
   УровеньСжатияZIP.Оптимальный,);
   //Выбираем файлы:
   Файлы = НайтиФайлы("D:\Архив","*.txt");
   ДатаГраницы = КонецДня(КонецМесяца('2012-06-12'));
   Для Каждого СтрФайл Из Файлы Цикл
       Если СтрФайл.ПолучитьВремяИзменения() < ДатаГраницы Тогда
           ИмяДобавляемогоФайла = СтрФайл.ПолноеИмя;
           ФайлАрхива.Добавить(ИмяДобавляемогоФайла,,);
       КонецЕсли;
   КонецЦикла;
   ФайлАрхива.Записать();
33 nlira
 
15.07.12
15:15
чтобы потом еще раз не прокручивать цикл?
34 nlira
 
15.07.12
15:31
наверное выбранные файлы поместить в отдельную папку Удаляемые, затем поместить в архив, записать, а затем выбрать все файлы из папки удаляемые, и методом удалить файлы удалить их
2 + 2 = 3.9999999999999999999999999999999...