Меню

Ошибка при вызове метода контекста прочитать файл не обнаружен файл

   evorle145

30.01.14 — 16:12

Пытаюсь на 8.3 в управляемых формах на клиенте прочитать файл:

ВыбФайл = «C:ВО_200114.txt»;

Текст=Новый ТекстовыйДокумент();

    Текст.Прочитать(ВыбФайл);

Выдает ошибку:

{ВнешняяОбработка.Загрузка_приходных_накладных_в_1С_8_2.МодульОбъекта(214)}: Ошибка при вызове метода контекста (Прочитать)

    Текст.Прочитать(ВыбФайл);

по причине:

Файл не обнаружен ‘C:ВО_200114.txt’

Но файл там 100% есть! Помогите

   fmrlex

1 — 30.01.14 — 16:14

с корня убери

   Wobland

2 — 30.01.14 — 16:14

откуда вычислил 100%?

   Wobland

3 — 30.01.14 — 16:14

(1) на сервер

   fmrlex

4 — 30.01.14 — 16:16

(3) А ну да, скорее всего.

   evorle145

5 — 30.01.14 — 16:16

(2) , взял отладчик, и в том месте где идет Прочитать(ВыбФайл), скопировал значение ВыбФайл  в буфер обмена, потом вставил в командную строку и нажал энтер => файл открылся.

   Wobland

6 — 30.01.14 — 16:17

(5) не гарантирует наличия файла там, где его ищут, а не там, где ты его положил

   Mafoni

7 — 30.01.14 — 16:18

процедура сия у тя случаем не на сервере ли выполняется ?

   evorle145

8 — 30.01.14 — 16:19

(3), реально! положил сюда  \nbnbхламВО_200114.txt => прочитал. А почему с моего диска С не хочет читать?

   fmrlex

9 — 30.01.14 — 16:20

(8) Корень защищен

   Wobland

10 — 30.01.14 — 16:20

(8) потому что на сервере нет твоего диска

   Mafoni

11 — 30.01.14 — 16:21

(10) диск С скорее всего есть а вот файла скорее всего нет

   fmrlex

12 — 30.01.14 — 16:22

(8) Пробуй C:1ВО_200114.txt

   evorle145

13 — 30.01.14 — 16:23

(12) , тоже пишет что не найден…

(8),(10), так получается он ищет диск С не моего компьютера, а на сервере, где база sql крутится? хотя я запускаю 1с через толстого клиента со своего компа..

   sikuda

14 — 30.01.14 — 16:24

«C:\ВО_200114.txt». Да с безопасностью такого решения все плохо.

   Mafoni

15 — 30.01.14 — 16:24

Пришли весь код функции которая у тя читает файл

   Fish

16 — 30.01.14 — 16:27

(13) Если команда выполняется на сервере, то вполне логично, что и файл ищется на сервере. И скорее не на сервере SQL, а на сервере 1С.

   Господин ПЖ

17 — 30.01.14 — 16:29

уже давно в корень дисков класть ничего нельзя…

   fmrlex

18 — 30.01.14 — 16:29

(13) Ну все понятно. Серверная процедура.

   evorle145

19 — 30.01.14 — 16:29

(15) , вы реально здесь телепаты…

обработка получения имени пути у меня на клиенте выполняется, а вот прочитать я его пытаюсь из модуля обработки, код которого выполняется на сервере…

Спасибо большое, никак не привыкну к управляемым формам….

   Mafoni

20 — 30.01.14 — 16:31

(19) удачи

   13_Mult

21 — 30.01.14 — 16:31

Чаще, синтакс — помошника читать надо ))

   Wobland

22 — 30.01.14 — 16:31

(19) >МодульОбъекта(214)

это непропиваемый опыт и внимательность, а не телепатизм 😉

   fmrlex

23 — 30.01.14 — 16:33

(22) От блин, а я не заметил ))

   Новиков

24 — 30.01.14 — 16:33

(19) твоим следующим вопросом, по-идее, должно быть такое — почему со своего компьютера файл читается, а с компьютера Афанасия Мухтаровича — нет. Я подожду 🙂

   evorle145

25 — 30.01.14 — 16:34

(22) , блин, так я еще и подсказку оказывается изначально уже дал)))

(24), это тут не причем

   Новиков

26 — 30.01.14 — 16:36

(25) конечно не причем. Т.к. ты не задал этот вопрос, т.к. у тебя все хорошо и с этой ситуацией ты пока не столкнулся 🙂 Я повторюсь — я подожду 🙂

   Mafoni

27 — 30.01.14 — 16:37

(26) взял попкорн уселся поудобней 🙂

   evorle145

28 — 30.01.14 — 16:38

(26) , Интригант? о_О

вот, смотрите в (8), там «\nbnbхламВО_200114.txt» — это и есть компьютер Григория. И все отлично считалось.

   EvgeniuXP

29 — 30.01.14 — 16:39

(2) оказалось не 100%, а 0% 🙂

   fmrlex

30 — 30.01.14 — 16:40

(28) Ну правильно, сервер свою папку «хлам» видит, пусть даже по сетевому пути.

   evorle145

31 — 30.01.14 — 16:41

(30) , nbnb — это не сервер.

   fmrlex

32 — 30.01.14 — 16:43

(31) без разницы, все равно он ее видит.

   evorle145

33 — 30.01.14 — 16:46

(26), то есть вы хотите сказать, что те папки, которые видны с сервера будут считываться, а те что не видны  — нет. Это я понимаю. Решение вижу только два: открывать им доступ с сервера или выполнять метод Прочитать «&наклиенте».

   sikuda

34 — 30.01.14 — 16:51

В вэб-клиенте вопрос: Передать файл на сервер \nbnbхламВО_200114.txt ?  Ура я нашел модальное окно, в режиме использования модальности — не использовать. 8.3.4.389

  

EvgeniuXP

35 — 30.01.14 — 16:54

(34) откатываемся обратно по окнам? 🙂

Ошибка при вызове метода контекста (Прочитать)

Ошибка при выполнении файловой операции при чтении xls файла методом прочитать объекта ТабличныйДокумент. 

Скрин сообщения

oshibka-pri-vypolnenii-fajlovoj-operatsii

Данный объект 1C умеет не только записывать в Excel, но возможна и обратная операция с ограничениями, свойственными табличному документу.

В чем плюсы такой методики чтения

  • Всё производится встроенными средствами;
  • достаточно быстро;
  • код в 2 строки
  • данные не требуется преобразовывать, обычно всё считывается достаточно корректно, их можно проверить средствами 1С.
  • возможно считывать значения ячеек как текст (без авто-преобразования),
  • доступно на сервере, где excel вообще нельзя установить (linux, OSx).

Причина ошибки

Отличительной особенностью, вызывающей данную ошибку, является то, что 1С нужен монопольный доступ на время считывания.

Если же документ открыт, то выходит ошибка при выполнении файловой операции чтения.

COM-Объекта Excel.Application в данном ситуации просто открывает еще один экземпляр, а также  в нём можно скрыть отображение сообшения о режиме «чтения».

Другой причиной может быть: отсутствие прав на чтение этого файла

Решение:

Закрыть открытую в Excel (или другой программе) книгу, проверить права на файл (возможность открытия в его в Excel, косвенный признак его наличия)

Реклама — средство заставить людей нуждаться в том, о чем они раньше не слыхали.

Описание ошибки:
Обнаружена при разработке обработки для изменения содержимого файла формата XML в серверной базе 1С 8 в режиме управляемого приложения. При тестировании на сервере ошибка не возникала. Проявила себя при работе на рабочем месте пользователя.

Найденные решения:

1С 8 ошибка файл не обнаружен при чтении файла

По факту ошибка возникала при выполнении метода «Прочитать()» для объекта «ТекстовыйДокумент». Как было отмечено, при тестировании работы обработки непосредственно на сервере данной ошибки не возникало. Она проявила себя уже при попытке работы на другом рабочем месте. Обработка разрабатывалась для конфигурации 1С: Комплексная автоматизация 8, ред. 2, которая работает в режиме управляемого приложения — это необходимо отметить. Т.к. это проясняет причины возникновения проблемы.

По привычке разместил операции по чтению содержимого текстового файла и извлечению его содержимого на стороне сервера — см. «&НаСервере» перед процедурой «ОбрабткаНаСервере()». Клиент-серверная архитектура платформы 1С: Предприятие 8.3, казалось бы, к этому обязывала. 

1с 8.3 при чтении файла пишет, выводит ошибку: Файл не обнаружен

В итоге получалось, что платформа на клиентском рабочем месте искала файл по указанному пути на сервере, где развернут сервер 1С: Предприятия 8 исходя из директивы «&НаСервере», а не на рабочем компьютере, где была запущена обработка.

Но, как оказалось позже — конструктор «Новый ТекстовыйДокумент», методы «Прочитать()», «ПолучитьТекст()» — все они доступны не только на стороне сервера, но и на стороне тонкого и толстого клиента. Поэтому замена директивы «&НаСервере» на «&НаКлиенте» решила проблему.

1С 8 Ошибка при вызове метода контекста (Прочитать)

Если по какой-то причине окажется, что я не совсем ясно объяснил суть проблемы, то вот еще обсуждение на форуме mista.ru, где данная пробелма обсуждается несколько другими словами: 1с 8.3 при чтении файла пишет: Файл не обнаружен

Оцените, помогло ли Вам предоставленное описание решения ошибки?




© www.azhur-c.ru 2014-2020. Все права защищены. Использование текстов и изображений с данной страницы без письменного разрешения владельца запрещено. При использовании материалов с данной страницы обязательно указание ссылки на данную страницу.

02-11-2020

Журавлев А.С.
(Сайт azhur-c.ru)

2.84 КонсольЗапросов WQL

AnyBody Дата: Вторник, 11.06.2013, 10:53 | Сообщение # 1

Рядовой

Группа: Проверенные

Репутация: 3

Статус: Оффлайн

{Обработка.ирКонсольЗапросов.Форма.Форма.Форма(4785)}: Ошибка при вызове метода контекста (Прочитать)
    Текст.Прочитать(Файл.ПолноеИмя);
по причине:
Файл не обнаружен ‘C:WindowsSystem32wbemru-RUcimwin32.mfl’

У меня Win7 64 Проф  ru.
Этот фал лежит в папке: C:WindowsSystem32wbemen-US
Заодно вопрос, как в своем коде использовать «запрос WQL» отлаженный в консоле.

 
tommyknocker Дата: Пятница, 14.06.2013, 10:37 | Сообщение # 2

Рядовой

Группа: Проверенные

Репутация: 0

Статус: Оффлайн

Аналогично. тоже Win7 64 Проф ru. Но файл лежит там, где его не могут найти. ‘C:WindowsSystem32wbemru-RUcimwin32.mfl’

 
Kasansin Дата: Вторник, 18.06.2013, 15:14 | Сообщение # 3

Лейтенант

Группа: Проверенные

Репутация: 5

Статус: Оффлайн

У меня Win7 64 prof eng+SP1+все обновы.
Файла нет. Админы поживают плечами.

Если после этой ошибке сохранить файл запросов,топом попытаться открыть консоль —  получаешь эту ошибку. Консоль не открывается.

Сообщение отредактировал KasansinВторник, 18.06.2013, 15:17

 
Simol Дата: Вторник, 18.06.2013, 17:49 | Сообщение # 4

Полковник

Группа: Проверенные

Репутация: 27

Статус: Оффлайн

Что интересно файл, то есть. И если пуск-выполнить открывается, а 1С не видит его.

 
tormozit Дата: Среда, 19.06.2013, 01:45 | Сообщение # 5

Генералиссимус

Группа: Администраторы

Репутация: 126

Статус: Оффлайн

Проблемы записал. Они будут исправлены в следующей версии.

 
Altair Дата: Понедельник, 01.07.2013, 11:12 | Сообщение # 6

Рядовой

Группа: Проверенные

Репутация: 0

Статус: Оффлайн

Тоже столкнулся с такой ситуацией. Операционка та же самая — Win7 64 Проф  ru.
Скопировал файл в корень C: и заменил кусочек кода в форме обработки

Код

Попытка
           Текст.Прочитать(Файл.ПолноеИмя);
    Исключение
           ПолноеИмя = «c:cimwin32.mfl»; // Еще можно грузить cimdmtf
           Файл = Новый Файл(ПолноеИмя);
           Текст = Новый ТекстовыйДокумент;
           Текст.Прочитать(Файл.ПолноеИмя);
    КонецПопытки;

 

И заработало.

 
tormozit Дата: Понедельник, 01.07.2013, 11:38 | Сообщение # 7

Генералиссимус

Группа: Администраторы

Репутация: 126

Статус: Оффлайн

До конца недели выйдет новая версия с исправлением этой проблемы.

 
tormozit Дата: Четверг, 04.07.2013, 12:49 | Сообщение # 8

Генералиссимус

Группа: Администраторы

Репутация: 126

Статус: Оффлайн

Исправлено в 2.85

 

0 / 0 / 0

Регистрация: 23.10.2017

Сообщений: 14

1

Ошибка при вызове метода контекста (Записать): Файл не обнаружен

31.10.2019, 11:06. Показов 5977. Ответов 2


Добрый день! Являюсь системным администратором, и с самой конфигурацией не работаю. Специалист 1С присылает ошибку вида:
Ошибка при вызове метода контекста (Записать): Файл не обнаружен ‘E:Profilesusr1c8AppDataLocalTempForma.xls

Переменная %userprofile% смотрит на E:Profiles .Служба 1С сервера запущена от usr1c8, у учетной записи есть локальный админ. Доступы у него на собственную temp директорию есть.
Также для проверки дал полный доступ юзеру, с которого запущен клиент на директорию пользователя usr1c8. Результатов не принесло. В чем может быть проблема?

__________________
Помощь в написании контрольных, курсовых и дипломных работ, диссертаций здесь



0



198 / 158 / 45

Регистрация: 23.08.2014

Сообщений: 807

31.10.2019, 12:32

2

Что выполняет код ?
Есть подозрение что спец в коде ошибку допустил и пытается не существующий файл перезаписать.

Добавлено через 16 секунд
П.С. был такой же косяк…



1



Модератор

Эксперт 1С

3697 / 2897 / 569

Регистрация: 10.03.2011

Сообщений: 11,398

Записей в блоге: 1

04.11.2019, 02:16

3

Цитата
Сообщение от dimm-dimm
Посмотреть сообщение

Ошибка при вызове метода контекста (Записать): Файл не обнаружен ‘E:Profilesusr1c8AppDataLocalTempForma.xls

Косяк программиста, пытается куда-то сохранить из директории «E:Profilesusr1c8AppDataLocalTemp» файл «Forma.xls» которого там не существует



0



  1. Доброго дня. Возникла проблема, подскажите пожалуйста, как решить. Необходимо из каталога прочитать файлыи нужные строки из каждого файла записать в регистр сведений. На данный момент задача читать первые 4 строчки из каждого файла.
    Но не могу понять как прочитать не из отдельного файла, а из каталога все файлы. Вот как думал.

    МассивФаилов = НайтиФайлы("C:spyunsortedIakovlevEE", "*.txt");
    Текст = Новый ТекстовыйДокумент;
     Для Каждого Фаил из МассивФаилов Цикл
     Текст.Прочитать(Фаил);
     Для НомерСтроки = 1 по Текст.КоличествоСтрок() Цикл
     Стр = Текст.ПолучитьСтроку(НомерСтроки);
     Сообщить(Стр);
     КонецЦикла;
     КонецЦикла;
    

    Если читать не из массива а один фаил, то все нормально, если из массива то пишет ошибку:
    {Обработка.ПереносИзФаила.Форма.Форма.Форма(19)}: Ошибка при вызове метода контекста (Прочитать)
    Текст.Прочитать(Фаил);
    по причине:
    Файл не обнаружен ‘Файл’

    Как поправить подскажите?


  2. LordMaverick

    Offline

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

    Регистрация:
    17 мар 2014
    Сообщения:
    4.003
    Симпатии:
    465
    Баллы:
    104

    для начала полученный массив надо проверить, если в нём что-то вообще?
    это обычное правило вообще-то


  3. Tiger86

    Offline

    Tiger86
    Модераторы
    Команда форума
    Модератор

    Регистрация:
    24 мар 2011
    Сообщения:
    6.407
    Симпатии:
    108
    Баллы:
    104

    если ничего нет в массиве, то и в цикл не зайдет

  4. Да вы правы. Но, к примеру, такой код выводит список файлов:

    МассивФаилов = НайтиФайлы("C:spyunsorted","*.txt");
    Для Каждого Фаил из МассивФаилов Цикл
       Сообщить(Фаил.Имя);
    КонецЦикла;
    

    т.е. мне теперь надо каждый файл открыть и обработать…


  5. LordMaverick

    Offline

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

    Регистрация:
    17 мар 2014
    Сообщения:
    4.003
    Симпатии:
    465
    Баллы:
    104

    вот так должно было быть

        МассивФаилов = НайтиФайлы("C:spyunsortedIakovlevEE", "*.txt");
        Текст = Новый ТекстовыйДокумент;
        Для Каждого Фаил из МассивФаилов Цикл
            Текст.Прочитать(Фаил.ПолноеИмя);
            Для НомерСтроки = 1 по Текст.КоличествоСтрок() Цикл
                Стр = Текст.ПолучитьСтроку(НомерСтроки);
                Сообщить(Стр);
                Если НомерСтроки=4 Тогда // тут на 4 строке файла прерывает принудительно цикл
                    Прервать;
                КонецЕсли;
            КонецЦикла;
        КонецЦикла;
    


1C-pro.ru - форум по 1С:Предприятию 7.7, 8.0, 8.1, 8.2, 8.3

0 0 голоса
Рейтинг статьи
Подписаться
Уведомить о
guest

0 комментариев
Старые
Новые Популярные
Межтекстовые Отзывы
Посмотреть все комментарии

А вот еще интересные материалы:

  • Яшка сломя голову остановился исправьте ошибки
  • Ясность цели позволяет целеустремленно добиваться намеченного исправьте ошибки
  • Ясность цели позволяет целеустремленно добиваться намеченного где ошибка
  • Ошибка при вызове метода контекста найтипотипу несоответствие типов параметр номер 1
  • Ошибка при вызове метода контекста прочитать ошибка разбора xml