Имя: Пароль:
1C
1С v8
FTP найти файлы И дальше поиск по результатам найденного?
0 lamme
 
28.03.15
16:52
1C82
FTP.НайтиФайлы()  - возвращаем массив.
как в этом массиве - без перебора !!! - найти значение по определенному имени файла?

те в отладчике Массив найденных файлов показывает колонки Имя, ИмяБезРасширения,Путь,ПолноеИмя,Расширение.

Как по такому массиву поиск делаеться ?
1 vde69
 
28.03.15
16:58
у НайтиФайлы есть параметры ????
2 lamme
 
28.03.15
16:58
есть конечно. путь - маска
3 lamme
 
28.03.15
17:00
только если файлов 20 тыщ
то быстрее будет 1 раз получить массив всех файлов локально
и потом уже 20т раз искать в массиве.
чем 20т раз обращаться к FTP.НайтиФайлы() с установленным именемем файла.
проверено.
4 mistеr
 
28.03.15
19:18
(0) >как в этом массиве - без перебора !!! - найти значение по определенному имени файла?
Загрузить в ТЗ и проиндексировать.
5 lamme
 
28.03.15
19:56
в том то и дело что не грузиться
6 lamme
 
28.03.15
20:08
массивР = ФТП.НайтиФайлы(......)
// массивР - тут есть найденные

дальше как его загрузить в ТЗ ?
7 lamme
 
28.03.15
20:11
у ТЗ есть только  метод =- загрузить колонку
Тз.ЗагрузитьКолонку(МассивР,"ИмяКолонки")

и вот тут косяк .. - не грузится
8 XLife
 
28.03.15
20:19
учу читать СП...

Возвращаемое значение:
Тип: Массив.

Описание:
Осуществляет поиск файлов - объектов типа FTPФайл.
9 lamme
 
28.03.15
20:22
(8)
читаем 0
внимательно .

вопрос - как потом в этом массиве найти опр значение?
10 XLife
 
28.03.15
20:25
(9) читаем (8) и думаем...

p.s. ответ - никак, кроме перебора
11 lamme
 
28.03.15
20:29
прикалываешься?
вот массив того что получилось
http://clip2net.com/s/3f4gTW8

это N-мерный массив

к нему можно обратится по индексу

МассивР[20].Имя


должен быть метод выгрузки в ТЗ такого массива или опр колонки
12 vde69
 
28.03.15
20:33
в ТЗ можно загрузить колонку из массива, но вся проблема, что значение массива - это не имя файла....

по этому по имени файла найти нельзя...

напиши подробно свою задачу, уверен там решение есть простое...
13 ДенисЧ
 
28.03.15
20:36
(11) Мдя...
14 lamme
 
28.03.15
20:37
есть куча файлов на ftp
в 1С определенные файлики лежат локально. да - есть такая необходщимость. именно локально.
и надо с локального компа скопировать на  ftp те файлы - которых не хватает на ftp

как вариант
создать массив найденых файлов.
ну и с ним работать.
те когда в 1С идет запрос и выборка запроса -

пока Выборка.Следующий() цикл
имявлокально = выборка.товар.свойство.имяфайла1

и вот тут вот можно или лезить на ftp и по маске определять на ftp файлик.
или в массиве сделать поиск

по мне так второй вариант быстрее
15 XLife
 
28.03.15
20:37
(11) массив содержит конкретные значения, поэтому ты видишь их свойства... если ты сможешь создать объект с типом  "FTPФайл", то твоя проблема будет решена
16 lamme
 
28.03.15
20:37
(12)
да - согласен. в этом и проблема
17 lamme
 
28.03.15
20:38
15
понял - но не понял как это сделать
18 XLife
 
28.03.15
20:39
(17) еще раз... только перебор
19 XLife
 
28.03.15
20:42
(14) копировать все файлы не вариант?
20 lamme
 
28.03.15
20:57
19
20т файлов - жесть ...
21 lamme
 
28.03.15
20:57
а запрос к массиву? чтоб потом результат вытащить в тз?
22 lamme
 
28.03.15
20:58
(13)
понял понял свой косяк ...
23 lamme
 
28.03.15
22:28
лана .. че спорил то ..
5 сек обход массива занимает
24 medved_kot
 
28.03.15
22:32
(23) Ты молодец.
25 mistеr
 
29.03.15
00:34
(6) В цикле.

(11) Никто никому не должен.
26 Повелитель
 
29.03.15
08:42
У меня кажется похожая проблема была.
Около 100 000 картинок на данный момент выгружено на ftp для интернет магазина.
Перебрать по одному не реально, методы ftp (найти, получить размер файла), тормозные отрабатывают за 1-2 секунды. При 100к это очень долго.

И тебя не спасет то что ты список файлов получил, так как у меня например часть файлов лежит битая, то есть файл есть но он меньше 1024 байта. Ты будешь думать что он есть, а его нет. Спасает только проверка размера файла исходного и на ftp.

Решил проблему так. 1 раз при выгрузке файла, после его выгрузки проверяю размер файла на фтп, если совпадает с исходным то в месте хранения 1с ставлю отметку "Картинка на ftp проверена" и больше этот файл никогда не проверяю.

Но это уже в прошлом. Сейчас поставили программу Allway Sync, она теперь сама синхронизирует с ftp, а все проверки я делаю локально.
27 raykom
 
29.03.15
08:55
(0) Реч идет о существующем хранилище файлов ? Или о создаваемом ?
Если о создаваемом, то если это вебсервис - то проще сделать запись в БД при создании/закачивании, а потом уже аботать с готовой таблицей/индексом.
28 vde69
 
29.03.15
13:05
(14) на сайте делаешь

таблички в мускуле
файлыСервера - имяФайла/CRC
ФайлыНовые - ИмяФайла

при записи по фтп на сервер добавляешь имя файла в табличку ФайлыНовые


потом запускаешь ХП которая файлы из ФайлыНовые пересчитывает CRC

дальше продолжать?
29 ДенисЧ
 
29.03.15
14:37
(28) мдя... для примитивной задачи поднимать сервер с пыхпыхом...
rsync и всё. Даже 1с не нужна.
30 vde69
 
29.03.15
15:15
(29) если 100 000 картинок - значит по любому скайт на мускуле...
31 ДенисЧ
 
29.03.15
15:22
(30) Прямо таки по-любому? 146%
Кaк может человек ожидaть, что его мольбaм о снисхождении ответит тот, кто превыше, когдa сaм он откaзывaет в милосердии тем, кто ниже его? Петр Трубецкой