Ошибка при вызове метода контекста прочитать файл не обнаружен файл
Текст ошибки
: Ошибка при вызове метода контекста (Прочитать)
Пока ЧтениеXML.Прочитать() Цикл
по причине:
Ошибка разбора XML: - [2,191623]
Ошибка:
Namespace prefix r for id on headerReference is not defined
SystemId: file://E:/TMP/v8_AF95_52/word/document.xml
Код метода, вызывающий ошибку
Конкретное место, где останавливается
Пока ЧтениеXML.Прочитать() Цикл
Файл XML прикрепляю.
Ошибка при вызове метода контекста
есть ссылка "e79ba7ae-0747-11db-9244-0011955c22cb". как присвоить ее новому элементу справочника.
Ошибка при вызове метода контекста
Задача сделать автоподбор. Но вот при выполнении выдает.
Ошибка при вызове метода контекста (ПолучитьОбъект)
Привет народ Программа ругается что: : Ошибка при вызове метода контекста.
Сvотри что бы тег не содержал запрещенных символов (не должен начинаться с цифры и т.д.)
Установившаяся Практика Именования
Делайте имена описательными. Имена с символом подчеркивания выглядят аккуратно: , .
Имена должны быть короткими и простыми, например: а не: .
Избегайте символов "-". Если вы называете xml-элемент, используя дефис ("first-name,") некоторые компьютерные программы могут решить, что вы хотите вычесть значение name из значения first.
Избегайте символов ".". Если вы называете что-нибудь например так: "first.name," некоторые программы могут решить, что "name" является свойством объекта "first."
Старайтесь не использовать символы ":". Двоеточие зарезервировано для использования в так называемых пространствах имен (подробнее о них будет рассказано позже).
XML документы часто имеют соответствующую базу данных. Обычно используют правила именования этой базы данных для элементов XML документов.
Не английские буквы, такие как ���, вполне допустимы в XML, но следите за тем, чтобы не было проблем совместимости, если ваш производитель программного обеспечения не поддерживает их.
Добавлено через 1 минуту
Правила Именования в XML
Элементы XML должны следовать следующим правилам именования:
Имена могут состоять из букв, чисел, и других символов
Имена не могут начинаться с числа или знака препинания
Имена не могут начинаться с букв xml (или XML, или Xml, и т.п.)
Имена не могут содержать пробелы
Любое имя может использоваться, зарезервированных слов нет.
Пытаюсь на 8.3 в управляемых формах на клиенте прочитать файл:
ВыбФайл = "C:\ВО_200114.txt";
Текст=Новый ТекстовыйДокумент();
Текст.Прочитать(ВыбФайл);
Выдает ошибку:
: Ошибка при вызове метода контекста (Прочитать)
Текст.Прочитать(ВыбФайл);
по причине:
Файл не обнаружен 'C:\ВО_200114.txt'
Но файл там 100% есть! Помогите
(2) , взял отладчик, и в том месте где идет Прочитать(ВыбФайл), скопировал значение ВыбФайл в буфер обмена, потом вставил в командную строку и нажал энтер => файл открылся.
(3), реально! положил сюда \\nbnb\хлам\ВО_200114.txt => прочитал. А почему с моего диска С не хочет читать?
(12) , тоже пишет что не найден.
(8),(10), так получается он ищет диск С не моего компьютера, а на сервере, где база sql крутится? хотя я запускаю 1с через толстого клиента со своего компа..
(13) Если команда выполняется на сервере, то вполне логично, что и файл ищется на сервере. И скорее не на сервере SQL, а на сервере 1С.
(15) , вы реально здесь телепаты.
обработка получения имени пути у меня на клиенте выполняется, а вот прочитать я его пытаюсь из модуля обработки, код которого выполняется на сервере.
Спасибо большое, никак не привыкну к управляемым формам.
(19) твоим следующим вопросом, по-идее, должно быть такое - почему со своего компьютера файл читается, а с компьютера Афанасия Мухтаровича - нет. Я подожду :)
(25) конечно не причем. Т.к. ты не задал этот вопрос, т.к. у тебя все хорошо и с этой ситуацией ты пока не столкнулся :) Я повторюсь - я подожду :)
(26) , Интригант? о_О
вот, смотрите в (8), там "\\nbnb\хлам\ВО_200114.txt" - это и есть компьютер Григория. И все отлично считалось.
(26), то есть вы хотите сказать, что те папки, которые видны с сервера будут считываться, а те что не видны - нет. Это я понимаю. Решение вижу только два: открывать им доступ с сервера или выполнять метод Прочитать "&наклиенте".
В вэб-клиенте вопрос: Передать файл на сервер \\nbnb\хлам\ВО_200114.txt ? Ура я нашел модальное окно, в режиме использования модальности - не использовать. 8.3.4.389
Описание ошибки:
Обнаружена при разработке обработки для изменения содержимого файла формата XML в серверной базе 1С 8 в режиме управляемого приложения. При тестировании на сервере ошибка не возникала. Проявила себя при работе на рабочем месте пользователя.
По факту ошибка возникала при выполнении метода "Прочитать()" для объекта "ТекстовыйДокумент". Как было отмечено, при тестировании работы обработки непосредственно на сервере данной ошибки не возникало. Она проявила себя уже при попытке работы на другом рабочем месте. Обработка разрабатывалась для конфигурации 1С: Комплексная автоматизация 8, ред. 2, которая работает в режиме управляемого приложения - это необходимо отметить. Т.к. это проясняет причины возникновения проблемы.
По привычке разместил операции по чтению содержимого текстового файла и извлечению его содержимого на стороне сервера - см. "&НаСервере" перед процедурой "ОбрабткаНаСервере()". Клиент-серверная архитектура платформы 1С: Предприятие 8.3, казалось бы, к этому обязывала.
В итоге получалось, что платформа на клиентском рабочем месте искала файл по указанному пути на сервере, где развернут сервер 1С: Предприятия 8 исходя из директивы "&НаСервере", а не на рабочем компьютере, где была запущена обработка.
Но, как оказалось позже - конструктор "Новый ТекстовыйДокумент", методы "Прочитать()", "ПолучитьТекст()" - все они доступны не только на стороне сервера, но и на стороне тонкого и толстого клиента. Поэтому замена директивы "&НаСервере" на "&НаКлиенте" решила проблему.
Гружу файл. Просмотрел как грузятся проблемные места все нормально.
Находятся элементы и прописываются.
Отлавливаю проблему.
Когда функция просто не отрабатывает, поиска по наименованию (((
Хотя так же все нормально передается туда для поиска.
(26) Ну так найдена была бы пустая ссылка, но не ошибка.
То работает то нет. Так же строка передается!
Глупый вопрос: зачем тогда для каждой строки делать поиск для справочника?
Сделай соответствие символьного представления и ссылки
(24) все же сомнения терзают, там не пробел будет, а нечитаемый неправильный вызывающий ошибку символ, который СОКРЛП не отловит и СТРЗаменить
(44) Сейчас отлаживаю эту процедуру, по нажатию кнопке. Ошибки в ней.
Вот. Все работает. Но иногда идет эта ошибка и все, на таких же данны!
(48) я так и останавливаюсь на строке 2000 с лишним
(51)(52) Да можно многого добавить, но я же смотрю в отладчике, в функцию передаются верные данные, а идет ошибка.
Добавлю конечно проверки.
(55) не знаю. у меня правило, если происходит неведомая херня, нужно сначала делать это, а потом только лезть за бубном
Кэш почищу сейчас догрузится.
Стоит галка останавливаться по ошибке.
Ошибка видимо возникает при записи элемента.
Я смотрю что там в нем, вижу проблему в единицах измерения и родителе.
Но из за чего не пойму.
Или ошибка заполнения обязательных на уровне платформы полей: наименование, владелец (если справочник подчинённый) и тд
(71) У меня же нет попытки исключения?
Да ранее я вижу что в родителе и единицах измерения.
Но туда идут нормальные данные. Буду разбираться.
Видимо энергия ушла.
сейчас вот с этим буду бороться что это пока не знаю
(83) в общем пройдись по справочнику номенклатуры где-то есть одинаковое наименование у элемента и группы. Или если самому лень, посади за проверку девочку-восьмиклассницу, пусть проштудирует справочник от и до.
(81) Не должно такого быть.
(84) Гружу структуру из другой базы. Я пока не могу записать ни одного элемента. Так как грузится в транзакции.
Мне не лень. Я пытаюсь разобраться. Но такого не могло в принципе быть. Надеюсь докапаться до проблемы.
(84) смотрю в файле не нахожу.
Поставил останавливаться по ошибке.
Остановка же будет на проблемном элементе?
Ну вот, пока я в отладчеке не увидел там проблемы.
Исправляем ситуацию
Рис.1 Запускаем на исполнение нижеприведенный кусок кода с запросом, в котором забыли дописать условие отбора
Но ошибки могут быть не только в текстах запросов. Допустим, мы хотим выбрать всю номенклатуру и узнать, входит ли она в определенную группу. Проверка происходит с помощью метода «ПринадлежитЭлементу» и его параметра, который должен быть типа СправочникСсылка. Мы опять допускаем ошибку и вместо ссылки в параметр метода помещаем строку, содержащую имя переменной.
Рис.2 Мы опять допускаем ошибку и вместо ссылки в параметр метода помещаем строку, содержащую имя переменной
Рис.3 Синтакс-помощник
Рис.4 Сверив пример с нашим кодом, приходит понимание, что кавычки не нужны и без них все работает
Чаще всего причиной подобных ошибок выступают следующие факторы:
- Невнимательность;
- Отсутствие опыта или знаний;
- Несогласованность действий разработчиков друг с другом;
- Изменения в методах контекста в новых версиях платформы.
Читайте также: