Реклама на этом месте
Форум 1С
Форум 1С
Программистам. Бухгалтерам. Администраторам. Пользователям
Задай вопрос - получи решение проблемы. Без троллинга и флуда.
13 Дек 2017, 12:52
МультиВход
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Не получили письмо с кодом активации?
 
collapse

Автор Тема: Функция НайтиФайлы() не работает!  (Прочитано 9491 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн Shkerin

  • **
  • Сообщений: 56
  • РЕПУТАЦИЯ: 3
  • КПД: 5%
  • Регистрация: 2011-03-01
  • Сайт: 
  • Профессия: Программист 8.1
Добрый день!
Никак ни могу заставить работать функцию НайтиФайлы(), пример:

    Если НайтиФайлы("D:\СОБЫТИЯ\Прием.txt") <> Неопределено Тогда // Если файл существует
        УдалитьФайлы("D:\СОБЫТИЯ\Прием.txt")
    КонецЕсли;

Файл и 1С на локальном компе.


Оффлайн Klyacksa

  • Фрилансер. Милости прошу с задачами в личку.
  • Глобальный модератор
  • *****
  • Сообщений: 1325
  • РЕПУТАЦИЯ: 430
  • КПД: 32%
  • Регистрация: 2010-08-20
  • Сайт: 
  • Профессия: Программист 1С
1. НайтиФайлы(<Путь>, <Маска>). То есть, в Вашем случае нужно использовать:
   
НайтиФайлы("D:\СОБЫТИЯ","Прием.txt") 
2. Для проверки существования файла есть отдельная функция:
   
  ФайлНаДиске = Новый Файл(ИмяФайла);
    Если ФайлНаДиске.Существует() Тогда
        Сообщить("Файл существует.");
    Иначе
        Сообщить("Файл не существует.");
    КонецЕсли;
xxx: Спасибо! Я бы загуглил, но ты интересней. Материшься. Злишься. Послать можешь...

Мысль - это оргазм мозга. Кто способен его испытать - получают истинное наслаждение, остальным приходится имитировать

Оффлайн Shkerin

  • **
  • Сообщений: 56
  • РЕПУТАЦИЯ: 3
  • КПД: 5%
  • Регистрация: 2011-03-01
  • Сайт: 
  • Профессия: Программист 8.1
   
НайтиФайлы("D:\СОБЫТИЯ","Прием.txt") 
Приведенный код всегда возвращает Истину! Не зависимо от того, существует файл или нет. Пробовал разные варианты работы: с маской и без, прямой или обратный слеш. Как об стенку горох. В процессе отладки выгружал возврат в массив, он всегда оказывался пустым.

При исползовании следующего кода все сразу заработало:
   
  ФайлНаДиске = Новый Файл(ИмяФайла);
    Если ФайлНаДиске.Существует() Тогда
        Сообщить("Файл существует.");
    Иначе
        Сообщить("Файл не существует.");
    КонецЕсли;

Но тут возник еще один вопрос: в программе использую объект ТекстовыйДокумент, но там нет метода проверки существования файла(.Существует()) как при использовании объекта Файл. Получается, что для проверки существования текстового файла необходимо создавать лишний объект Файл?

Оффлайн Klyacksa

  • Фрилансер. Милости прошу с задачами в личку.
  • Глобальный модератор
  • *****
  • Сообщений: 1325
  • РЕПУТАЦИЯ: 430
  • КПД: 32%
  • Регистрация: 2010-08-20
  • Сайт: 
  • Профессия: Программист 1С
Про НайтиФайлы - внимательно читайте справку.
Цитировать
Возвращаемое значение:
Тип: Массив. Массив из значений типа Файл, содержащий найденные файлы.

Про ТекстовыйДокумент: да, лучше в начале проверять существование, а потом работать с ТекстовымДокументом.
xxx: Спасибо! Я бы загуглил, но ты интересней. Материшься. Злишься. Послать можешь...

Мысль - это оргазм мозга. Кто способен его испытать - получают истинное наслаждение, остальным приходится имитировать

Оффлайн Shkerin

  • **
  • Сообщений: 56
  • РЕПУТАЦИЯ: 3
  • КПД: 5%
  • Регистрация: 2011-03-01
  • Сайт: 
  • Профессия: Программист 8.1
Цитировать
Про НайтиФайлы - внимательно читайте справку.
Klyacksa виноват, привел неверный код, когда написал про возврат Истины. Правильный вариант:
Если НайтиФайлы("D:\СОБЫТИЯ","Прием.txt") <> Неопределено Тогда

Пока искал в инете ответ, наткнулся на полезную рекомендацию:
"Я бы рекомендовал в случае больших объемов выгрузки использовать не ТекстовыйДокумент а ЗаписьТекста, иначе возможна ошибка "нехватка памяти". ЗаписьТекста сразу пишет на диск, а ТекстовыйДокумент пишет только в конце!"
Надеюсь кому-то пригодиться.

Все же по поводу использования функции НайтиФайлы(), так и не нашел толкового ответа.  :dfbsdfbsdf:

Оффлайн Klyacksa

  • Фрилансер. Милости прошу с задачами в личку.
  • Глобальный модератор
  • *****
  • Сообщений: 1325
  • РЕПУТАЦИЯ: 430
  • КПД: 32%
  • Регистрация: 2010-08-20
  • Сайт: 
  • Профессия: Программист 1С
Shkerin , дубль два:
Цитировать
Возвращаемое значение:
Тип: Массив. Массив из значений типа Файл, содержащий найденные файлы.
То есть в любом случае, возвращается МАССИВ. Если файлы не найдены - то массив пустой.
Если НайтиФайлы("D:\СОБЫТИЯ","Прием.txt").Количество()>0 Тогда
xxx: Спасибо! Я бы загуглил, но ты интересней. Материшься. Злишься. Послать можешь...

Мысль - это оргазм мозга. Кто способен его испытать - получают истинное наслаждение, остальным приходится имитировать

Оффлайн Shkerin

  • **
  • Сообщений: 56
  • РЕПУТАЦИЯ: 3
  • КПД: 5%
  • Регистрация: 2011-03-01
  • Сайт: 
  • Профессия: Программист 8.1
книга 1С:Предприятие 8.1 Простые примеры разработки, с.335, листинг 9.35:
Если НайтиФайлы("C:\Temp\Sklad.xml") <> Неопределено Тогда
    УдалитьФайлы("C:\Temp\Sklad.xml");
Выходит НЕПРАВИЛЬНЫЙ ПРИМЕР!  :^454^:

Klyacksa, благодарю за помощь:
Если НайтиФайлы("C:\Temp\Sklad.xml").Количество() > 0 Тогда
    УдалитьФайлы("C:\Temp\Sklad.xml");
Получаем РАБОЧИЙ КОД!  :)

Оффлайн Klyacksa

  • Фрилансер. Милости прошу с задачами в личку.
  • Глобальный модератор
  • *****
  • Сообщений: 1325
  • РЕПУТАЦИЯ: 430
  • КПД: 32%
  • Регистрация: 2010-08-20
  • Сайт: 
  • Профессия: Программист 1С
Негодяи)))
У нас когда-то в универе преподы, допустившие ошибку, отмазывались - мол, это чтобы Вы не бездумно переписывали  :ooifh:
xxx: Спасибо! Я бы загуглил, но ты интересней. Материшься. Злишься. Послать можешь...

Мысль - это оргазм мозга. Кто способен его испытать - получают истинное наслаждение, остальным приходится имитировать


Теги:
 

Не работает метод Сдвинуть() по отношению к программно добавляемой колонке1С:Предприятие 8.3 (8.3.10.2561) Управление производственным предприятием, редакция 1.4 Приветствую, я добавляю программно свою колонку в методе ПриОткрытии() модуля формы, вот так

Автор InsiderРаздел Конфигурирование, программирование в "1С - Предприятие 8"

Ответов: 2
Просмотров: 284
Последний ответ 21 Сен 2017, 10:33
от Insider
Не работает структура подчиненности документов "Требование-накладная" и "Передач

Автор sv_stas_svРаздел Конфигурирование, программирование в "1С - Предприятие 8"

Ответов: 0
Просмотров: 4098
Последний ответ 10 Мар 2011, 07:36
от sv_stas_sv
Дин.список отбор данных - не работает код при тех же данных

Автор Аля ТинаРаздел Конфигурирование, программирование в "1С - Предприятие 8"

Ответов: 2
Просмотров: 67
Последний ответ Сегодня в 09:15
от Аля Тина
Не работает кнопка "установить интервал дат"

Автор depp_juniorРаздел Конфигурирование, программирование в "1С - Предприятие 8"

Ответов: 2
Просмотров: 3668
Последний ответ 11 Июл 2014, 18:07
от LexaK
не работает отчет "Выработка сотрудника" в ЗУП2.5.35.3

Автор a_a2001Раздел Пользователям "1С - Предприятие 8"

Ответов: 1
Просмотров: 3761
Последний ответ 20 Июн 2011, 11:14
от Zvezo

* Живое общение

Не устроил ответ?

Зарегистрируйся и задай свой вопрос. Живое общение приносит результат намного быстрее.


Зарегистрироваться

* Реклама

* Поиск

* Последние задачи на разработку (фриланс)

* Реклама

* Последние вакансии

* Топ 10 авторов за месяц

Геннадий ОбьГЭС Геннадий ОбьГЭС
172 Сообщений
ilyay ilyay
75 Сообщений
oleg-x
51 Сообщений
alex0402
49 Сообщений
andron81_81
38 Сообщений
AIFrame
37 Сообщений
MuI_I_Ika MuI_I_Ika
34 Сообщений
BuhRust
30 Сообщений
Golickoff Golickoff
28 Сообщений
Dima Dddd Dima Dddd
26 Сообщений

* Кто онлайн

  • Точка Гостей: 880
  • Точка Скрытых: 0
  • Точка Пользователей: 14
  • Точка Сейчас на форуме:

* Облако тэгов

* Форум 1С с мобильного

* Инструменты

* Дополнительно

Поиск

 
SimplePortal 2.3.5 © 2008-2012, SimplePortal