Заказы на доработку 1С (сервис удаленной работы)

Хранилище

База знаний
Бесплатные отчеты, обработки, конфигурации, внешние компоненты для 1С Статьи, описание работы, методики по работе с 1С

Здравствуйте, гость ( Вход | Зарегистрироваться )



> Отбор файлов в каталоге по дате изменения (8.3.10.2561) , ОС - MS Windows. 1C - 8.3.10.2561          
AleksWhite7 Подменю пользователя
сообщение 06.03.18, 16:23
Сообщение #1

Общительный
**
Группа: Пользователи
Сообщений: 31
Спасибо сказали: 3 раз
Рейтинг: 0

Здравствуйте!
Кто может поделитесь опытом отбора файлов в каталоге по дате изменения.

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

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

Дайте импульс, куда смотреть. Спасибо.

andr_andrey Подменю пользователя
сообщение 07.03.18, 12:29
Сообщение #2

Почти ветеран
Иконка группы
Группа: Местный
Сообщений: 623
Спасибо сказали: 166 раз
Рейтинг: 130.8

AleksWhite7 @ Вчера, 16:23 * ,
Насчет стороннего метода - идея правильная, и выбор огромный.


Signature
#define private public
enum BOOL { FALSE, TRUE, FILENOTFOUND } is made my day

AleksWhite7 Подменю пользователя
сообщение 07.03.18, 15:13
Сообщение #3

Общительный
**
Группа: Пользователи
Сообщений: 31
Спасибо сказали: 3 раз
Рейтинг: 0

Вот и начал двигаться в эту сторону.
Пока есть батничек
@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 Подменю пользователя
сообщение 07.03.18, 16:43
Сообщение #4

Почти ветеран
Иконка группы
Группа: Местный
Сообщений: 623
Спасибо сказали: 166 раз
Рейтинг: 130.8

AleksWhite7 @ Сегодня, 15:13 * ,
Тоже вариант. Мне привычнее Perl/Python/Go.


Signature
#define private public
enum BOOL { FALSE, TRUE, FILENOTFOUND } is made my day

Не нашли ответа на свой вопрос?
Зарегистрируйтесь и задайте новый вопрос.


Ответить Новая тема
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 

RSS Текстовая версия Сейчас: 28.03.24, 18:17
1С Предприятие 8.3, 1С Предприятие 8.2, 1С Предприятие 8.1, 1С Предприятие 8.0, 1С Предприятие 7.7, Литература 1С, Общие вопросы по администрированию 1С, Методическая поддержка 1С - всё в одном месте: на Украинском 1С форуме!