Имя: Пароль:
1C
1С v8
Сортировка файлов
0 DrHiHi
 
10.10.11
14:49
Народ, как отсортировать выборку файлов по дате?? Использую метод НайтиФайлы().
при создании счет-фактуры создается xml-файл (имя файла = номер счета + дата счета). потом в терминале по штрихкоду идентифицируется файл и терминал записывает в этот файл сумму оплаты. есть обработка, которая через каждые полчаса проверяет файлы, и если файл был изменен, то проверяется сумма в файле и сумма по оплатам в 1с, если разные суммы, тогда добавляется разность в документ "оплаты по терминалу". но файлов с каждым днем добавляется 100-500. и со временем выполнение обработки для проверки файлов занимает больше времени. создана константа, в которую записывается наибольшая дата измененных документов или дата проверки файлов. вот хотелось бы при выборке файлов отсортировать по дате, чтобы уменьшить время выполнения обработки.
1 DrHiHi
 
10.10.11
15:12
апну)))
2 izekia
 
10.10.11
15:20
если не средствами 1С то можно сделать более оптимальным способом
просто мониторить изменение файлов и передавать в 1С внешним событием
3 DrHiHi
 
10.10.11
15:27
(2) не стандартными средствами можно и скопировать файлы через xcopy, а потом перебрать скопированные файлы... но думал может есть какой-то скрипт, который вернет мне измененные файлы...
4 izekia
 
10.10.11
15:31
(3) ну как я понял у тебя на сравнение времени изменения файла со временем последней проверки много ресурсов тратится?
5 Kom-off
 
10.10.11
15:32
(0) НайтиФайлы() возвращает массив. Загоняй этот массив в таблицу значений с двумя колонками самим файлом и его датой, обходи таблицу и получай для каждого файла дату последнего изменения и во вторую колонку его. Сортируй.
6 Vladal
 
10.10.11
15:32
1) Читать атрибуты файла и потом по ним сортировать.
2) Нарисовать скрипт на всяких бейсиках и юзать его.
3) Нарисовать скрипт, который создает папки с номером месяца и рассовывает файлы в эти папки.

md %1\01
move %1\?????01* %1\01\

md %1\02
move %1\?????02* %1\02\

md %1\03
move %1\?????03* %1\03\

md %1\04
move %1\?????04* %1\04\

md %1\05
move %1\?????05* %1\05\

md %1\06
move %1\?????06* %1\06\

md %1\07
move %1\?????07* %1\07\

md %1\08
move %1\?????08* %1\08\

md %1\09
move %1\?????09* %1\09\

md %1\10
move %1\?????10* %1\10\

md %1\11
move %1\?????11* %1\11\

md %1\12
move %1\?????12* %1\12\
7 DrHiHi
 
10.10.11
15:36
(4) да, так как файлов много...
(5) %))) маразм, на создание таблицы уйдет время, потом при обходе таблицы мне нужно позаписывать дату, а потом отсортировать %)) все таки обход через найти файл намного быстрее выйдет...
(6) счет может быть выписан месяц назад, а оплатили его только сегодня
8 izekia
 
10.10.11
15:40
(7) я бы не через 1С делал, так как здесь скорее всего уже нечего оптимизировать именно средствами 1С
9 Kom-off
 
10.10.11
15:42
(7) Ты абсолютные значения потери скоростей замерял прежде чем дискутировать в обидном тоне ("маразм")? Маразм - задавать такого уровны вопросы на форуме.
10 DrHiHi
 
10.10.11
15:50
(8) значить скорее всего оптимальный вариант xcopy
(9) тут нечего даже замерять... в твоем случае: создание таблицы, обход таблицы, заполнение колонки с датой через метод ПолучитьВремяИзменения(), сортировка таблицы, обход таблицы; в моем случае: получения файла, проверка даты через ПолучитьВремяИзменения() с константой, не подходит файл беру следующий...