Имя: Пароль:
1C
1С v8
Друзья, подскажите пожалуйста!
0 Mattew
 
05.10.12
14:32
Есть обработка, которая достает с хоста xml и загружает в 1С, все работает отлично, цепляет файл с датой минус один день.. Но хочется автоматизировать процесс загрузки, т.е. написать цикл, который будет хватать не один файл, а перебирать все в указанном промежутке времени, например за месяц. В данный момент так:

Дата = ТекущаяДата()-60*60*24;

Как сделать цикл например с первого числа месяца по текущую дату?
1 Maxus43
 
05.10.12
14:33
по дате файла определяете что грузиьт?
2 PR
 
05.10.12
14:33
3 Mattew
 
05.10.12
14:33
Да
4 Mattew
 
05.10.12
14:34
Что за ссыль?
5 Maxus43
 
05.10.12
14:35
где то подвох, ибо судя по коду - до секунды должно совпасть всё
6 Kashemir
 
05.10.12
14:35
Конструкций цикла тебе мало ?
7 PR
 
05.10.12
14:36
(4) Это ссылка на яндекс, в котором написан твой вопрос. Ты же, уверен, тщательно подумал перед тем, как сформулировать его?
8 Mattew
 
05.10.12
14:36
Сейчас все норм, цепляется вчерашний день, нужен цикл, который поместит первый день месяца и так до текущей даты, запишет в переменную Дата
9 Mattew
 
05.10.12
14:37
Ну вот не могу разобраться как реализовать
10 Kashemir
 
05.10.12
14:37
(8) Очень толсто
11 Maxus43
 
05.10.12
14:37
код в студию, где определяется какой файл грузить
12 Mattew
 
05.10.12
14:38
Нашел файл, загрузил процедурой в 1С, далее выбрал следующий с следующей датой и отработал снова процедуру и так далее до конца
13 Mattew
 
05.10.12
14:40
ДатаФайла = ТекущаяДата()-60*60*24;  
СтрокаДата=Формат(ДатаФайла, "ДФ=""гггг-ММ-дд""");
ИмяФ="orders_"+СтрокаДата+".xml";
ПутьКФайлу = "C:\"+ИмяФ;    
Попытка
FTP = Новый FTPСоединение(тут доступ прописан);
FTP.Получить(ИмяФ, ПутьКФайлу);
Исключение
КонецПопытки;
Файл = Новый Файл(ИмяФ);
Если Файл.Существует() Тогда
ЧтениеХМЛ();
КонецЕсли;
ЗавершитьРаботуСистемы(Ложь);
14 НЕА123
 
05.10.12
14:42
НачалоМесяца()
и добалвяй по 8400 в цикле.
15 pumbaEO
 
05.10.12
14:42
FTP.НайтиФайлы("", "orders_"+Формат(ДатаФайла, "ДФ=""гггг-ММ""")+"*")
16 Mattew
 
05.10.12
14:44
Этот код перед .Получить? Вместо?
17 pumbaEO
 
05.10.12
14:46
(16) сначала почитать СП, потом подумать, потом попробовать, потом с конкретным вопросом на форум.
18 Mattew
 
05.10.12
14:47
ДатаФайла = ТекущаяДата();  
ПутьКФайлу = "C:\"+ИмяФ;    
Попытка
FTP = Новый FTPСоединение(тут доступ прописан);
FTP.НайтиФайлы("", "orders_"+Формат(ДатаФайла, "ДФ=""гггг-ММ""")+"*")
FTP.Получить(ИмяФ, ПутьКФайлу);
Исключение
КонецПопытки;
Файл = Новый Файл(ИмяФ);
Если Файл.Существует() Тогда
ЧтениеХМЛ();
КонецЕсли;
ЗавершитьРаботуСистемы(Ложь);
19 Mattew
 
05.10.12
14:47
Такой код?
20 Kashemir
 
05.10.12
14:49
МассивФайлов = FTPСоединение.НайтиФайлы(путь,,Ложь);
   Для каждого Файл из МассивФайлов Цикл
       Если    Файл.ПолучитьВремяИзменения() < НачалоДня(ТекущаяДата()) И
               Файл.ПолучитьВремяИзменения() >= НачалоМесяца(ТекущаяДата()) Тогда
               
               // файл нам подходим - обрабатываем
               Сообщить(Файл.ПолноеИмя());
       КонецЕсли;
   КОнецЦикла;
21 Mattew
 
05.10.12
14:51
Ок, спасибо попробую
22 alexandrius
 
05.10.12
15:09
Ему проще уж так, тем более ему нужно не дата изменения а наименования:
Дни = День(ТекущаяДата());
Для каждого Д = 1 по Дни цикл
ДатаФайла = НачалоМесяца(ТекущаяДата()) + 60*60*24*Дни;  
СтрокаДата=Формат(ДатаФайла, "ДФ=""гггг-ММ-дд""");
ИмяФ="orders_"+СтрокаДата+".xml";
ПутьКФайлу = "C:\"+ИмяФ;    
Попытка
FTP = Новый FTPСоединение(тут доступ прописан);
FTP.Получить(ИмяФ, ПутьКФайлу);
Исключение
КонецПопытки;
Файл = Новый Файл(ИмяФ);
Если Файл.Существует() Тогда
ЧтениеХМЛ();
КонецЕсли;
КонецЦикла;
ЗавершитьРаботуСистемы(Ложь);

Что-то типа того..
23 Mattew
 
05.10.12
15:19
{Форма.Форма.Форма(354,18)}: Ожидается символ '='
           Для каждого Д <<?>>= 1 по Дни Цикл (Проверка: Толстый клиент (обычное приложение))
24 Kashemir
 
05.10.12
15:22
(23) Жесть. Не позорься - хоть операторы выучи.
25 pumbaEO
 
05.10.12
15:22
(23) а можно я за тебя буду кушать?
26 Mattew
 
05.10.12
15:23
разобрался