8.х Существует() лии ПроверкаНаСуществовониеФайла()

Тема в разделе "Конфигурирование на платформе "1С:Предприятие 8"", создана пользователем adagold, 28 апр 2017.

  1. TopicStarter Overlay
    adagold
    Offline

    adagold

    Регистрация:
    6 май 2008
    Сообщения:
    11
    Симпатии:
    0
    Баллы:
    1
    Перебирая в цикле список файлов требуется проверить физическое существование файлов на диске и произвести некие монипуляции.
    Получается следующее:

    ФайлНаДиске = Новый Файл(ИмяФайла);
    Если ФайлНаДиске.Существует() Тогда ...

    Выдает ошибку по использованию синхронных вызовов....

    Пытаюсь использовать: ФайлНаДиске.НачатьПроверкуСуществования(Оповещение)

    &НаКлиенте
    Процедура ПроверкаНаСуществовониеФайла(ТекущФайл)
    ФайлНаДиске = Новый Файл(ТекущФайл);
    Оповещение = Новый ОписаниеОповещения("РезультатПроверкиНаСуществовониеФайла",ЭтотОбъект,ФайлНаДиске);
    ФайлНаДиске.НачатьПроверкуСуществования(Оповещение);
    КонецПроцедуры

    Процедуру "РезультатПроверкиНаСуществовониеФайла" выполняется после окончания основной процедуры с циклом. Причем n..ое количество раз сколько и сам цикл.
    Может я что-то делаю неправильно...
    Есть у кого мысли... как правильно в цикле перебрать и проверить физическое существование файлов.
  2. nomad_irk
    Offline

    nomad_irk Гуру в 1С

    Регистрация:
    20 окт 2008
    Сообщения:
    9.246
    Симпатии:
    963
    Баллы:
    204
    Эээ....
    Код:
    Для Каждого ТекИмяФайла Из СписокИменФайлов Цикл
    ФайлНаДиске = Новый Файл(ТекИмяФайла);
    ФайлНаДиске.НачатьПроверкуСуществования(Новый ОписаниеОповещения("РезультатПроверкиНаСуществованиеФайла",ЭтотОбъект));
    КонецЦикла
    
    &НаКлиенте
    Процедура РезультатПроверкиНаСуществованиеФайла(Существует, ДополнительныеПараметры) Экспорт
    
    Если Существует тогда
    .....что-то делаем....
    Иначе
    .....что-то делаем....
    КонецЕсли;
    
    КонецПроцедуры
  3. TopicStarter Overlay
    adagold
    Offline

    adagold

    Регистрация:
    6 май 2008
    Сообщения:
    11
    Симпатии:
    0
    Баллы:
    1
    Об этом я уже писал выше...
    Процедура РезультатПроверкиНаСуществованиеФайла - запускается после окончания цикла. Я так понимаю "по новому-новомодному" внутрь цикла получить (вернуть) результат уже не получиться?
  4. nomad_irk
    Offline

    nomad_irk Гуру в 1С

    Регистрация:
    20 окт 2008
    Сообщения:
    9.246
    Симпатии:
    963
    Баллы:
    204
    Не получится, оно ж выполняется асинхронно.
  5. TopicStarter Overlay
    adagold
    Offline

    adagold

    Регистрация:
    6 май 2008
    Сообщения:
    11
    Симпатии:
    0
    Баллы:
    1
    Прискорбно.... Спасибо за ответ!
  6. LordMaverick
    Offline

    LordMaverick Профессионал в 1С

    Регистрация:
    17 мар 2014
    Сообщения:
    3.946
    Симпатии:
    463
    Баллы:
    104
    всё просто и банально :))))

    Код:
    Файл.Существует() // возвращает Булево
    в примере проверка существования каталога и предложение его создания

    Код:
    Файл (File)
    Существует (Exist)
    Синтаксис:
    
    Существует()
    Возвращаемое значение:
    
    Тип: Булево.
    Истина - файл существует; Ложь - в противном случае.
    Описание:
    
    Определяет, существует ли файл, соответствующий данному объекту.
    
    Доступность:
    
    Тонкий клиент, веб-клиент, сервер, толстый клиент, внешнее соединение, мобильное приложение(клиент), мобильное приложение(сервер).
    Примечание:
    
    Для работы метода на веб-клиенте необходимо предварительно подключить расширение работы с файлами.
    Пример:
    
    Функция ПроверитьСуществованиеКаталога(ИмяКаталога) Экспорт
        КаталогНаДиске = Новый Файл(ИмяКаталога);
        Если КаталогНаДиске.Существует() Тогда
            Возврат Истина;
        Иначе
            Ответ = Вопрос("Каталог не существует. Создать?",
                            РежимДиалогаВопрос.ОКОтмена);
            Если Ответ = КодВозвратаДиалога.ОК Тогда
                СоздатьКаталог(ИмяКаталога);
                Возврат Истина;
            Иначе
                Возврат Ложь;
            КонецЕсли;
        КонецЕсли;
    КонецФункции
    
  7. nomad_irk
    Offline

    nomad_irk Гуру в 1С

    Регистрация:
    20 окт 2008
    Сообщения:
    9.246
    Симпатии:
    963
    Баллы:
    204
    Ага, если включено использование модальности :)
  8. LordMaverick
    Offline

    LordMaverick Профессионал в 1С

    Регистрация:
    17 мар 2014
    Сообщения:
    3.946
    Симпатии:
    463
    Баллы:
    104
    чтоб просто проверить наличие файла? :))

    есть и другие варианты, например попробывать найти файл по точному имени и местоположению
  9. TopicStarter Overlay
    adagold
    Offline

    adagold

    Регистрация:
    6 май 2008
    Сообщения:
    11
    Симпатии:
    0
    Баллы:
    1
    НайтиФайлы()
    Существует()
    Использование синхронных методов на клиенте запрещено!

Поделиться этой страницей