Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Отбор файлов в каталоге по дате изменения (8.3.10.2561)
Украинский 1С форум: всё про 1С 8.3, 1С 8.2, 1С 8.1, 1С 8.0, 1С 7.7 > Программисту > Программирование в 1С Предприятие 8.3
AleksWhite7
Здравствуйте!
Кто может поделитесь опытом отбора файлов в каталоге по дате изменения.

Количество обрабатываемых файлов более 300тыс.
На данный момент использую поиск по маске и перебор по файл.ПолучитьВремяИзменения(). Решение получается очень долгое.
Хочу ускорить за счёт откидывания файлов с датой изменения менее требуемой.

Переискал много информации, но решения так и не нашёл.
Склоняюсь к тому, что средствами 1С не решить и надо использовать сторонний метод.

Дайте импульс, куда смотреть. Спасибо.
andr_andrey
AleksWhite7 @ Вчера, 16:23 необходимо зарегистрироваться для просмотра ссылки ,
Насчет стороннего метода - идея правильная, и выбор огромный.
AleksWhite7
Вот и начал двигаться в эту сторону.
Пока есть батничек
@echo off
::введите маску для искомых файлов
set mask=*.*
::исходная папка
set src="D:\Мой каталог"
::Будем отбирать файлы изменённые от даты. Формат даты dd.MM.yyyy
set mydate=+1.1.2018

:: Засекаем время начала скрипта
set _time=%time%
set /a _hours=100%_time:~0,2%%%100,_min=100%_time:~3,2%%%100,_sec=100%_time:~6,2%%%100,_cs=%_time:~9,2%
set /a _started=_hours*60*60*100+_min*60*100+_sec*100+_cs

forfiles /p %src% /m %mask% /d %mydate% /c "cmd /c echo @fname;@ext;@fdate @ftime" >> Findfiles.txt

:: Определяяем время завершения работы
set _time=%time%
set /a _hours=100%_time:~0,2%%%100,_min=100%_time:~3,2%%%100,_sec=100%_time:~6,2%%%100,_cs=%_time:~9,2%
set /a _duration=_hours*60*60*100+_min*60*100+_sec*100+_cs-_started

:: заполнение переменных
set /a _hours=_duration/60/60/100,_min=100+_duration/60/100%%60,_sec=100+(_duration/100%%60%%60),_cs=100+_duration%%100

echo Done at: %_time% took : %_hours%:%_min:~-2%:%_sec:~-2%.%_cs:~-2%


Если надо использовать UNC путь тогда:
Монтируем диск x:
net use x: %src%

И отключаем после работы
net use x: /delete

Нарисовалась такая картина:
Вызываем скрипт из 1С. Потом грузим полученный файл в ТаблицуЗначений и обрабатываем как надо.


andr_andrey
AleksWhite7 @ Сегодня, 15:13 необходимо зарегистрироваться для просмотра ссылки ,
Тоже вариант. Мне привычнее Perl/Python/Go.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.