30.01.14 — 16:12
Пытаюсь на 8.3 в управляемых формах на клиенте прочитать файл:
ВыбФайл = «C:ВО_200114.txt»;
Текст=Новый ТекстовыйДокумент();
Текст.Прочитать(ВыбФайл);
Выдает ошибку:
{ВнешняяОбработка.Загрузка_приходных_накладных_в_1С_8_2.МодульОбъекта(214)}: Ошибка при вызове метода контекста (Прочитать)
Текст.Прочитать(ВыбФайл);
по причине:
Файл не обнаружен ‘C:ВО_200114.txt’
Но файл там 100% есть! Помогите
1 — 30.01.14 — 16:14
с корня убери
2 — 30.01.14 — 16:14
откуда вычислил 100%?
3 — 30.01.14 — 16:14
(1) на сервер
4 — 30.01.14 — 16:16
(3) А ну да, скорее всего.
5 — 30.01.14 — 16:16
(2) , взял отладчик, и в том месте где идет Прочитать(ВыбФайл), скопировал значение ВыбФайл в буфер обмена, потом вставил в командную строку и нажал энтер => файл открылся.
6 — 30.01.14 — 16:17
(5) не гарантирует наличия файла там, где его ищут, а не там, где ты его положил
7 — 30.01.14 — 16:18
процедура сия у тя случаем не на сервере ли выполняется ?
8 — 30.01.14 — 16:19
(3), реально! положил сюда \nbnbхламВО_200114.txt => прочитал. А почему с моего диска С не хочет читать?
9 — 30.01.14 — 16:20
(8) Корень защищен
10 — 30.01.14 — 16:20
(8) потому что на сервере нет твоего диска
11 — 30.01.14 — 16:21
(10) диск С скорее всего есть а вот файла скорее всего нет
12 — 30.01.14 — 16:22
(8) Пробуй C:1ВО_200114.txt
13 — 30.01.14 — 16:23
(12) , тоже пишет что не найден…
(8),(10), так получается он ищет диск С не моего компьютера, а на сервере, где база sql крутится? хотя я запускаю 1с через толстого клиента со своего компа..
14 — 30.01.14 — 16:24
«C:\ВО_200114.txt». Да с безопасностью такого решения все плохо.
15 — 30.01.14 — 16:24
Пришли весь код функции которая у тя читает файл
16 — 30.01.14 — 16:27
(13) Если команда выполняется на сервере, то вполне логично, что и файл ищется на сервере. И скорее не на сервере SQL, а на сервере 1С.
17 — 30.01.14 — 16:29
уже давно в корень дисков класть ничего нельзя…
18 — 30.01.14 — 16:29
(13) Ну все понятно. Серверная процедура.
19 — 30.01.14 — 16:29
(15) , вы реально здесь телепаты…
обработка получения имени пути у меня на клиенте выполняется, а вот прочитать я его пытаюсь из модуля обработки, код которого выполняется на сервере…
Спасибо большое, никак не привыкну к управляемым формам….
20 — 30.01.14 — 16:31
(19) удачи
21 — 30.01.14 — 16:31
Чаще, синтакс — помошника читать надо ))
22 — 30.01.14 — 16:31
(19) >МодульОбъекта(214)
это непропиваемый опыт и внимательность, а не телепатизм 😉
23 — 30.01.14 — 16:33
(22) От блин, а я не заметил ))
24 — 30.01.14 — 16:33
(19) твоим следующим вопросом, по-идее, должно быть такое — почему со своего компьютера файл читается, а с компьютера Афанасия Мухтаровича — нет. Я подожду 🙂
25 — 30.01.14 — 16:34
(22) , блин, так я еще и подсказку оказывается изначально уже дал)))
(24), это тут не причем
26 — 30.01.14 — 16:36
(25) конечно не причем. Т.к. ты не задал этот вопрос, т.к. у тебя все хорошо и с этой ситуацией ты пока не столкнулся 🙂 Я повторюсь — я подожду 🙂
27 — 30.01.14 — 16:37
(26) взял попкорн уселся поудобней 🙂
28 — 30.01.14 — 16:38
(26) , Интригант? о_О
вот, смотрите в (8), там «\nbnbхламВО_200114.txt» — это и есть компьютер Григория. И все отлично считалось.
29 — 30.01.14 — 16:39
(2) оказалось не 100%, а 0% 🙂
30 — 30.01.14 — 16:40
(28) Ну правильно, сервер свою папку «хлам» видит, пусть даже по сетевому пути.
31 — 30.01.14 — 16:41
(30) , nbnb — это не сервер.
32 — 30.01.14 — 16:43
(31) без разницы, все равно он ее видит.
33 — 30.01.14 — 16:46
(26), то есть вы хотите сказать, что те папки, которые видны с сервера будут считываться, а те что не видны — нет. Это я понимаю. Решение вижу только два: открывать им доступ с сервера или выполнять метод Прочитать «&наклиенте».
34 — 30.01.14 — 16:51
В вэб-клиенте вопрос: Передать файл на сервер \nbnbхламВО_200114.txt ? Ура я нашел модальное окно, в режиме использования модальности — не использовать. 8.3.4.389
EvgeniuXP
35 — 30.01.14 — 16:54
(34) откатываемся обратно по окнам? 🙂
Ошибка при вызове метода контекста (Прочитать)
Ошибка при выполнении файловой операции при чтении xls файла методом прочитать объекта ТабличныйДокумент.
Скрин сообщения

Данный объект 1C умеет не только записывать в Excel, но возможна и обратная операция с ограничениями, свойственными табличному документу.
В чем плюсы такой методики чтения
- Всё производится встроенными средствами;
- достаточно быстро;
- код в 2 строки
- данные не требуется преобразовывать, обычно всё считывается достаточно корректно, их можно проверить средствами 1С.
- возможно считывать значения ячеек как текст (без авто-преобразования),
- доступно на сервере, где excel вообще нельзя установить (linux, OSx).
Причина ошибки
Отличительной особенностью, вызывающей данную ошибку, является то, что 1С нужен монопольный доступ на время считывания.
Если же документ открыт, то выходит ошибка при выполнении файловой операции чтения.
COM-Объекта Excel.Application в данном ситуации просто открывает еще один экземпляр, а также в нём можно скрыть отображение сообшения о режиме «чтения».
Другой причиной может быть: отсутствие прав на чтение этого файла
Решение:
Закрыть открытую в Excel (или другой программе) книгу, проверить права на файл (возможность открытия в его в Excel, косвенный признак его наличия)
Реклама — средство заставить людей нуждаться в том, о чем они раньше не слыхали.
Описание ошибки:
Обнаружена при разработке обработки для изменения содержимого файла формата XML в серверной базе 1С 8 в режиме управляемого приложения. При тестировании на сервере ошибка не возникала. Проявила себя при работе на рабочем месте пользователя.
Найденные решения:

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

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

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


© www.azhur-c.ru 2014-2020. Все права защищены. Использование текстов и изображений с данной страницы без письменного разрешения владельца запрещено. При использовании материалов с данной страницы обязательно указание ссылки на данную страницу.
02-11-2020
Журавлев А.С.
(Сайт azhur-c.ru)
|
2.84 КонсольЗапросов WQL |
||||||
|
||||||
|
||||||
|
||||||
|
||||||
|
||||||
|
||||||
|
||||||
|
|
0 / 0 / 0 Регистрация: 23.10.2017 Сообщений: 14 |
|
|
1 |
|
Ошибка при вызове метода контекста (Записать): Файл не обнаружен31.10.2019, 11:06. Показов 5977. Ответов 2
Добрый день! Являюсь системным администратором, и с самой конфигурацией не работаю. Специалист 1С присылает ошибку вида: Переменная %userprofile% смотрит на E:Profiles .Служба 1С сервера запущена от usr1c8, у учетной записи есть локальный админ. Доступы у него на собственную temp директорию есть.
__________________
0 |
|
198 / 158 / 45 Регистрация: 23.08.2014 Сообщений: 807 |
|
|
31.10.2019, 12:32 |
2 |
|
Что выполняет код ? Добавлено через 16 секунд
1 |
|
Модератор
3697 / 2897 / 569 Регистрация: 10.03.2011 Сообщений: 11,398 Записей в блоге: 1 |
|
|
04.11.2019, 02:16 |
3 |
|
Ошибка при вызове метода контекста (Записать): Файл не обнаружен ‘E:Profilesusr1c8AppDataLocalTempForma.xls Косяк программиста, пытается куда-то сохранить из директории «E:Profilesusr1c8AppDataLocalTemp» файл «Forma.xls» которого там не существует
0 |
-
Доброго дня. Возникла проблема, подскажите пожалуйста, как решить. Необходимо из каталога прочитать файлыи нужные строки из каждого файла записать в регистр сведений. На данный момент задача читать первые 4 строчки из каждого файла.
Но не могу понять как прочитать не из отдельного файла, а из каталога все файлы. Вот как думал.МассивФаилов = НайтиФайлы("C:spyunsortedIakovlevEE", "*.txt"); Текст = Новый ТекстовыйДокумент; Для Каждого Фаил из МассивФаилов Цикл Текст.Прочитать(Фаил); Для НомерСтроки = 1 по Текст.КоличествоСтрок() Цикл Стр = Текст.ПолучитьСтроку(НомерСтроки); Сообщить(Стр); КонецЦикла; КонецЦикла;Если читать не из массива а один фаил, то все нормально, если из массива то пишет ошибку:
{Обработка.ПереносИзФаила.Форма.Форма.Форма(19)}: Ошибка при вызове метода контекста (Прочитать)
Текст.Прочитать(Фаил);
по причине:
Файл не обнаружен ‘Файл’Как поправить подскажите?
-
Offline
LordMaverick
Профессионал в 1С- Регистрация:
- 17 мар 2014
- Сообщения:
- 4.003
- Симпатии:
- 465
- Баллы:
- 104
для начала полученный массив надо проверить, если в нём что-то вообще?
это обычное правило вообще-то -
Offline
Tiger86
Модераторы
Команда форума
Модератор- Регистрация:
- 24 мар 2011
- Сообщения:
- 6.407
- Симпатии:
- 108
- Баллы:
- 104
если ничего нет в массиве, то и в цикл не зайдет
-
Да вы правы. Но, к примеру, такой код выводит список файлов:
МассивФаилов = НайтиФайлы("C:spyunsorted","*.txt"); Для Каждого Фаил из МассивФаилов Цикл Сообщить(Фаил.Имя); КонецЦикла;т.е. мне теперь надо каждый файл открыть и обработать…
-
Offline
LordMaverick
Профессионал в 1С- Регистрация:
- 17 мар 2014
- Сообщения:
- 4.003
- Симпатии:
- 465
- Баллы:
- 104
вот так должно было быть
МассивФаилов = НайтиФайлы("C:spyunsortedIakovlevEE", "*.txt"); Текст = Новый ТекстовыйДокумент; Для Каждого Фаил из МассивФаилов Цикл Текст.Прочитать(Фаил.ПолноеИмя); Для НомерСтроки = 1 по Текст.КоличествоСтрок() Цикл Стр = Текст.ПолучитьСтроку(НомерСтроки); Сообщить(Стр); Если НомерСтроки=4 Тогда // тут на 4 строке файла прерывает принудительно цикл Прервать; КонецЕсли; КонецЦикла; КонецЦикла;




