1с найти файл
Понадобилось мне на днях перебрать весь свой хлам из отчетов и обработок, скопившихся на дисках. Решил сделать простое решение поиска файлов из 1с – обработка с макетом системы компоновки данных. И заодно написать заметку о том, как легко и просто найти файлы (1c из под Windows) из 1с (внешние файлы) – обработка для скачивания в конце статьи:
Итак, для того что бы успешно искать файлы из 1с нам необходимо уметь пользоваться функцией глобального контекста ‘НайтиФайлы‘ и правильно задавать маски поиска! Давайте к примеру найдем все отчеты (.erf) и обработки (.epf) 1с на диске “C:\” программно:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 |
&НаКлиенте Процедура ПриОткрытии(Отказ, СтандартнаяОбработка) // ИскатьВПодкаталогахТест = Истина; МассивМасок = Новый Массив; МассивМасок.Добавить("*.epf"); МассивМасок.Добавить("*.erf"); Для Каждого Маска Из МассивМасок Цикл МассивНайденныхФайлов = НайтиФайлы("C:\", Маска, ИскатьВПодкаталогахТест); //!вернется массив файлов (тип элемента массива "Файл"), из которых можно вытащить необходимые сведения //Имя //ПолноеИмя //Путь //ИмяБезРасширения //Расширение КонецЦикла; КонецПроцедуры |
Здесь обращаем внимание на два момента:
- Одновременно делать поиск по нескольким маскам мы не можем. Поэтому придется искать файлы для каждой маски отдельно. Если я не прав, просьба указать в комментариях рабочий пример с поиском по множеству различных масок в виде одной строки!
- Третий параметр ‘ИскатьВПодкаталогах’ определяет будет ли осуществлен поиск файлов во вложенных каталогах.
Давайте для примера найдем обработки 1с, содержащие в наименовании слово ‘Консоль’ в загрузках:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
&НаКлиенте Процедура ПриОткрытии(Отказ) ИскатьВПодкаталогахТест = Истина; МассивМасок = Новый Массив; МассивМасок.Добавить("*Консоль*.epf"); Для Каждого Маска Из МассивМасок Цикл МассивНайденныхФайлов = НайтиФайлы("C:\Users\DVasilev\Downloads\", Маска, ИскатьВПодкаталогахТест); КонецЦикла; КонецПроцедуры |
В данных примера символ ‘*’ в маске обозначает произвольное количество символов. Так же можем использовать и символ ‘?’ – который обозначает один произвольный символ! Давайте найдем файлы (отчеты 1с), в которых последние 2 символа могут иметь любые значения:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
&НаКлиенте Процедура ПриОткрытии(Отказ) ИскатьВПодкаталогахТест = Истина; МассивМасок = Новый Массив; МассивМасок.Добавить("АнализВерсийОбъектов??.erf"); Для Каждого Маска Из МассивМасок Цикл МассивНайденныхФайлов = НайтиФайлы("C:\Users\DVasilev\Downloads\", Маска, ИскатьВПодкаталогахТест); КонецЦикла; КонецПроцедуры |
В общем поиск файлов из 1с – это простое занятие, не требующее особых навыков программирования. И специально для вас я сделал простую обработку поиска файлов:
Внимание! Поиск по всему компьютеру может занять длительное время!
В этой обработке вы можете задать любое количество шаблонов и каталог поиска файлов. Все найденные файлы появятся на форме в макете системы компоновки данных.
Через пару дней на инфостарте в моем профиле ищите расширенную версию этой обработки. Из неё можно будет открывать файлы, сохранять их в архив и многое другое!:
Всем удачи и отличного поиска файлов!
Скачать файлыcraft1c_PoiskFajlov.epf