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

Я
   SFilchakov

10.06.16 — 22:32

Всем привет!

Хочу кое что в хмл запихнуть.

Пишу в модуле объекта обработки

Процедура СоздатьФайлДанныхВыгрузки(СтруктураВыгрузки)

    ЗаписьXML=Новый ЗаписьXML();

    ЗаписьXML.ОткрытьФайл(«d:doc.xml»);

КонецПроцедуры

\\

И сразу падает:

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

    ЗаписьXML.ОткрытьФайл(«d:doc.xml»);

по причине:

Каталог не обнаружен ‘d:doc.xml’

//////

Хотя все примеры по создания файла xml так и начинаются:

ЗаписьXML=Новый ЗаписьXML();

    ЗаписьXML.ОткрытьФайл(«d:doc.xml»);

///

Пробовал и так:

ЗаписьXML=Новый ЗаписьXML;

    ЗаписьXML.ОткрытьФайл(«d:doc.xml»);

То же самое.

Подскажите, что не так?

   Dmitry1c

1 — 10.06.16 — 22:33

наклонная черта в другую сторону..

   Dmitry1c

2 — 10.06.16 — 22:35

или контекст на сервере

   SFilchakov

3 — 10.06.16 — 22:38

Что значит контекст на сервере?

Это в модуле обработки на 8.3

Поменял наклон, тоже самое.

   Лефмихалыч

4 — 10.06.16 — 22:38

(0) это все происходит на сервере приложений, а там все не так, как у тебя на клиенте

   SFilchakov

5 — 10.06.16 — 22:40

Это надо делать на клиенте что ли?

   SFilchakov

6 — 10.06.16 — 22:42

Спасибо, теперь понял.

А как же желать загрузку выгрузку по регламентному заданию через файл xml? если регламентное задание крутится на сервере, а файл можно создать только на клиенте и перейти с сервера на клиент нельзя?

   Лефмихалыч

7 — 10.06.16 — 23:05

(6) файл можно создать и на сервере. Просто надо создавать его на дисках и в папках, которые существуют на сервере

   Лефмихалыч

8 — 10.06.16 — 23:06

+(7) даже — не просто существуют, а еще и права на запись в них должны быть у пользователя, под которым запущена служба сервера приложений (ragent)

   SFilchakov

9 — 10.06.16 — 23:15

А где этого пользователя можно посмотреть?

  

Стальная Крыса

10 — 11.06.16 — 04:18

На том компьютере, где работает сервер 1С

TurboConf — расширение возможностей Конфигуратора 1С

  1. Есть обработка по выгрузке некоторых данных в файл xml. Возникает такая ошибка:
    Ошибка при вызове метода контекста (ОткрытьФайл): Ошибка совместного доступа к файлу ‘E:\документ.xml’ Запись.ОткрытьФайл(ИмяФайла,»UTF-8″);

    Запрос.УстановитьПараметр("Родитель", ЭлементыФормы.Группа.Значение);
    Выборка = Запрос.Выполнить().Выбрать();
    
    Если ПустаяСтрока(ИмяФайла) Тогда
    Предупреждение("Укажите файл данных XML для выгрузки!");
    Возврат;
    КонецЕсли;
    Файл = Новый Файл(ИмяФайла);
    Если Файл.Существует() Тогда
    Ответ = Вопрос("Файл " + ИмяФайла + " существует. Заменить?",РежимДиалогаВопрос.ДаНет);
    Если Ответ = КодВозвратаДиалога.Нет Тогда
    Сообщить("Сохранение отменено.");
    Возврат;
    КонецЕсли;
    КонецЕсли;
    
    ТекстФайл = Новый ЗаписьТекста(ИмяФайла, КодировкаТекста.UTF8);
    
    Запись = Новый ЗаписьXML; 
    Запись.ОткрытьФайл(ИмяФайла,"UTF-8"); 
    Запись.ЗаписатьОбъявлениеXML(); 
    Запись.ЗаписатьНачалоЭлемента("_1CV8DtUD", "http://www.1c.ru/V8/1CV8DtUD/"); 
    Запись.ЗаписатьСоответствиеПространстваИмен("V8Exch", "http://www.1c.ru/V8/1CV8DtUD/");
    Запись.ЗаписатьСоответствиеПространстваИмен("xsi", "http://www.w3.org/2001/XMLSchema-instance");
    Запись.ЗаписатьСоответствиеПространстваИмен("v8",  "http://v8.1c.ru/data");
    Запись.ЗаписатьНачалоЭлемента("V8Exch:Data");
    
    Пока Выборка.Следующий() Цикл 
    
    Запись.ЗаписатьНачалоЭлемента("Элемент"); 
    .......
    
    Запись.ЗаписатьКонецЭлемента(); 
    КонецЦикла; 
    
    Запись.ЗаписатьКонецЭлемента(); 
    
    ТекстФайл.Записать(Запись.Закрыть());
    ТекстФайл.Закрыть();
    
    
    Запись.Закрыть();
    
    

    Подскажите, в чем может быть дело?


  2. leemuar

    Offline

    leemuar
    Опытный в 1С

    Регистрация:
    21 окт 2010
    Сообщения:
    310
    Симпатии:
    0
    Баллы:
    26

    Вероятно файл уже отрыт другим сеансом или приложением

  3. нет, не открыт. Я уже и перезагружалась, без толку :angry:


  4. uza

    Offline

    uza
    1С, VBA (EXCEL), VB (.NET + WEB)

    Регистрация:
    10 июл 2007
    Сообщения:
    1.845
    Симпатии:
    1
    Баллы:
    29

    А что приходит в ИмяФайла?
    Если «E:\документ.xml» — то это неправильный путь к файлу. Ибо правильный «E:документ.xml», возможно.

  5. Там всё правильно, я просто не стала сюда весь путь копировать :angry:

  6. Неужели никто не сталкивался с такой ошибкой?


  7. BabySG

    Offline

    BabySG
    Администраторы
    Команда форума
    Администратор

    Регистрация:
    10 июн 2007
    Сообщения:
    11.853
    Симпатии:
    18
    Баллы:
    29

    Ошибка у Вас в коде где-то.

    Откуда получаете имя файла?


  8. uza

    Offline

    uza
    1С, VBA (EXCEL), VB (.NET + WEB)

    Регистрация:
    10 июл 2007
    Сообщения:
    1.845
    Симпатии:
    1
    Баллы:
    29

    А файл вообще доступен для записи?
    А то может у Вас прав нет на запись.

    А ОС какая? Не Vista/7ка ли — а то они «из коробки» любят ограничивать доступ к файлам разным прогам.

  9. ИмяФайла — реквизит обработки, типа Строка. Поле ввода на форме с данными ИмяФайла.


  10. Tiger86

    Offline

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

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

    вот нашла такую инфу, сама не пробовала
    обратите внимание. в примере в имени файла наклон разделителей в другую сторону (возможно конечно это не влияет, но все же….)

  11. Проблема решилась. Я убрала

    Запись.ОткрытьФайл(ИмяФайла,"UTF-8");
    

    и вставила

    Запись.УстановитьСтроку("UTF-8");
    
    


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

Sergei
26.10.2011 13:13 Прочитано: 9772

При загрузке данных из файла возникает следующая ошибка: {Форма.Форма.Форма(99)}: Ошибка при вызове метода контекста (ПрочитатьXML)
ПередачаОС = ПрочитатьXML(ЧтениеXML);
по причине:
Значения данного типа не могут быть представлены в XML

Вот код:

Код 1C v 8.х

 ЧтениеXML = Новый ЧтениеXML;
ЧтениеXML.ОткрытьФайл(ПутьКФайлам+"ПередачаОС.xml");
ПередачаОС = ПрочитатьXML(ЧтениеXML);
ДокументОбъект = Документы.ПередачаОС.СоздатьДокумент();
Документ = Документы.ПередачаОС.ПолучитьФормуНовогоДокумента();
Документ.Открыть();
ЧтениеXML.Закрыть()

Изменено 26.10.11 15:34:34 по причине: Разукрасил код

Yandex
Возможно, вас также заинтересует

Реклама на портале

E_Migachev
26.10.2011 14:50 Ответ № 1

(0) Sergei, а откуда у тебя файл? каким кодом его выгружал?

Sergei
26.10.2011 14:59 Ответ № 2

Делал следующую выгрузку:
Код 1C v 8.х

 Файл = Новый ЗаписьXML;
Файл.ОткрытьФайл(ПутьКФайлам+"ПередачаОС.xml");
Файл.ЗаписатьОбъявлениеXML();
Файл.ЗаписатьНачалоЭлемента("Корневой");
Файл.ЗаписатьАтрибут("Документ", "ПередачаОС");
Файл.ЗаписатьКомментарий("Формирование списка документов");
Выборка = Документы.ПередачаОС.Выбрать();
Пока Выборка.Следующий() Цикл
Файл.ЗаписатьНачалоЭлемента("Документ");
Файл.ЗаписатьАтрибут("Номер", Строка(Выборка.Номер));
Файл.ЗаписатьАтрибут("Дата", Строка(Выборка.Дата));
Файл.ЗаписатьАтрибут("Организация", Строка(Выборка.Организация));
Файл.ЗаписатьАтрибут("Контрагент", Строка(Выборка.Контрагент));
Файл.ЗаписатьАтрибут("ДоговорКонтрагента", Строка(Выборка.ДоговорКонтрагента));
Для Каждого НовСтрока Из Выборка.ОС Цикл
Файл.ЗаписатьНачалоЭлемента("Строка");
Файл.ЗаписатьАтрибут("ОсновноеСредство", Строка(НовСтрока.ОсновноеСредство));
Файл.ЗаписатьАтрибут("Сумма", Строка(НовСтрока.Сумма));
Файл.ЗаписатьАтрибут("СтавкаНДС", Строка(НовСтрока.СтавкаНДС));
Файл.ЗаписатьАтрибут("СуммаНДС", Строка(НовСтрока.СуммаНДС));
Файл.ЗаписатьТекст(НовСтрока.ОсновноеСредство.Наименование);
Файл.ЗаписатьКонецЭлемента();
КонецЦикла;
Файл.ЗаписатьКонецЭлемента();
КонецЦикла;
Файл.ЗаписатьКонецЭлемента();
Файл.Закрыть();

Изменено 26.10.11 15:34:17 по причине: Разукрасил код

E_Migachev
26.10.2011 15:36 Ответ № 3

(2) Sergei, читай кодом, типо:
Код 1C v 8.х

 ЧтениеXML = Новый ЧтениеXML();

ЧтениеXML.ОткрытьФайл("c:doc.xml");
// Текущим становится элемент Root.
ЧтениеXML.Прочитать();

// Текущим становится элемент с документом.
ЧтениеXML.Прочитать();

// Проверить, сможет ли с данным значением "справиться" система сериализации в данной базе.
Если ВозможностьЧтенияXML(ЧтениеXML) Тогда
// Получить ДокументОбъект.РеализацияТоваровУслуг.
ЗагружаемыйОбъект = ПрочитатьXML(ЧтениеXML);
ЗагружаемыйОбъект.Записать();
КонецЕсли;

ЧтениеXML.Закрыть()

Подсказка: Для редактирования своего ответа щелкните по значку (справа)
 

Денис Кузевич

Заглянувший

Сообщений: 4
Авторитет:

0

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

Хочу сообщить о небольшой проблеме в обработке загрузки данных в БП3.0.

В ситуации когда Сервер 1С Предприятия находится на одном физическом сервере, а клиенты запускаются на другом, то при выборе файла данных появляется ошибка:
Не удалось прочитать данные из файла:
   C:UsersuserDocumentsunload_20150112_150805.xml
   Ошибка: {ВнешняяОбработка.ЗагрузкаДанных.МодульОбъекта(349)}: Ошибка при вызове метода контекста (ОткрытьФайл): Файл не обнаружен ‘C:UsersuserDocumentsunload_20150112_150805.xml’

Связано с тем, что код чтения файла выполняется на сервере, а путь получен на клиенте, соответственно файла на сервере не существует!
На данный момент решил проблему, размещением файлов выгрузки в сетевой папке, видимой с обоих серверов, но правильней было бы переписать выгрузку с использованием временного хранилища.

 

В обработке на основной форме сверху есть режим. Надо переключить «На клиенте»

 

Артём Бавенд

Заглянувший

Сообщений: 953
Авторитет:

5

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

Здравствуйте.

Прошу выслать обработки: загрузка в бп 3,0 и 2,0
Также, прошу выслать: методичку обмена АА-БП
Также, прошу выслать сегодняшний вебинар.
Благодарю.

 

Артём Бавенд

Заглянувший

Сообщений: 953
Авторитет:

5

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

Технология загрузки Корректировок. Почему, когда загружается корректировка реализации, она подтягивает за собой первоначальный документ, на основании которого была создана корректировка? Нарушает систему работы, если используется запрет на изменение или создание документов в закрытом периоде, а документ находится как раз в закрытом. А без загрузки этого документа, корректировка грузится не корректно. Во первых не подставляется документ основание. И даже если его подставить вручную, то документ корректировки перезаполняется по этому документу основанию… короче его значения, которые из альфы приходят, полностью заменяются значенимями из вновь подставленного документа основания, т.о. корректировка теряет смысл и приходится делать ее вручную в БП.

 

Элина Мухамедзянова

Заглянувший

Сообщений: 168
Авторитет:

0

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

#5



0


27.01.2015 14:58:05

Цитата
Артём Бавенд пишет:
Здравствуйте.

Прошу выслать обработки: загрузка в бп 3,0 и 2,0
Также, прошу выслать: методичку обмена АА-БП
Также, прошу выслать сегодняшний вебинар.
Благодарю.

Добрый день.

Выслала на почту.

 

Элина Мухамедзянова

Заглянувший

Сообщений: 168
Авторитет:

0

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

#6



0


27.01.2015 17:53:49

Цитата
Артём Бавенд пишет:
Технология загрузки Корректировок. Почему, когда загружается корректировка реализации, она подтягивает за собой первоначальный документ, на основании которого была создана корректировка? Нарушает систему работы, если используется запрет на изменение или создание документов в закрытом периоде, а документ находится как раз в закрытом. А без загрузки этого документа, корректировка грузится не корректно. Во первых не подставляется документ основание. И даже если его подставить вручную, то документ корректировки перезаполняется по этому документу основанию… короче его значения, которые из альфы приходят, полностью заменяются значенимями из вновь подставленного документа основания, т.о. корректировка теряет смысл и приходится делать ее вручную в БП.

Артём,

Воспроизвести вашу ситуацию не удалось. Просьба проверить загрузку снова с обработкой, высланной нами ранее.
Когда загружается корректировка реализации, она подтягивает за собой первоначальный документ — все верно. Документ нужен для нахождения уникальной ссылки в таблице соответствий. В последующем он подтягивается в реквизит «Основание» в корректировке. Этот документ не должен загружаться/изменяться в бухгалтерию, так как стоит дата запрета изменений (регламентная операция «Дата запрета изменения данных» в бухгалтерии).

 

Роман Батов

Заглянувший

Сообщений: 9
Авторитет:

0

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

Здравствуйте.
Прошу ВАС выслать обработку загрузки в БП 3.0 , методичку по обмену АА-БП
Заранее спасибо.

 

Добрый день, Роман.
Обработки и методическое пособие высланы на Ваш почтовый ящик.

 

Роман Батов

Заглянувший

Сообщений: 9
Авторитет:

0

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

Спасибо Вам огромное за оперативность

 

#10



0


17.03.2015 14:13:12

Добрый день, вышлите пожалуйста обработку загрузки в БП 3.0 , методичку по обмену АА-БП.

 

#11



0


17.03.2015 14:39:18

Добрый день, Алексей.
Просьба прислать регистрационный номер вашего программного продукта на alfa@rarus.ru. При наличии у вас активной технологической поддержки обработки вам вышлют ответным письмом.

 

Артём Бавенд

Заглянувший

Сообщений: 953
Авторитет:

5

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

#12



0


06.04.2015 09:58:33

Цитата
Элина Мухамедзянова пишет:

Цитата
Артём Бавенд пишет:
Технология загрузки Корректировок. Почему, когда загружается корректировка реализации, она подтягивает за собой первоначальный документ, на основании которого была создана корректировка? Нарушает систему работы, если используется запрет на изменение или создание документов в закрытом периоде, а документ находится как раз в закрытом. А без загрузки этого документа, корректировка грузится не корректно. Во первых не подставляется документ основание. И даже если его подставить вручную, то документ корректировки перезаполняется по этому документу основанию… короче его значения, которые из альфы приходят, полностью заменяются значенимями из вновь подставленного документа основания, т.о. корректировка теряет смысл и приходится делать ее вручную в БП.

Артём,

Воспроизвести вашу ситуацию не удалось. Просьба проверить загрузку снова с обработкой, высланной нами ранее.
Когда загружается корректировка реализации, она подтягивает за собой первоначальный документ — все верно. Документ нужен для нахождения уникальной ссылки в таблице соответствий. В последующем он подтягивается в реквизит «Основание» в корректировке. Этот документ не должен загружаться/изменяться в бухгалтерию, так как стоит дата запрета изменений (регламентная операция «Дата запрета изменения данных» в бухгалтерии).

Здравствуйте.
БП 2,0
Корректировки перегружаются некорректно. Пример. В БП период закрыт по 31 марта 2015. Делаю загрузку. Перегружается документ корректировки, который корректирует заказ-наряд от декабря 2014 года. Итог: Корректировка загружается с ошибкой: «Проведение документа «Корректировка реализации 00000000003 от 31.03.2015 10:44:00»:
Не заполнено значение реквизита «Документ реализации»!»
Документ загружается, но не проводится, т.к. в нем оказывается не заполнен реквизит Основание. А не заполняется он, т.к. закрыт период. Если период открыт, то все грузится корректно.
Поднимаю снова данную тему, прошу решить проблему.

Изменено: Артём Бавенд06.04.2015 09:59:02

 

#13



0


06.04.2015 16:42:42

Добрый день, Артём.

Ваше сообщение передано разработчику, ответ будет дан в этой ветке форума.

 

Александра Олифер

Посетитель

Сообщений: 138
Авторитет:

30

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

#14



0


07.04.2015 10:46:10

Цитата
Александра Олифер пишет:
Добрый день, Артём.

Ваше сообщение передано разработчику, ответ будет дан в этой ветке форума.

На типовой конфигурации данная ситуация не воспроизводится, необходимо удаленное подключение. Пришлите, пожалуйста, параметры подключения на alfa@rarus.ru

Забыл еще сказать, что скриншоты создаются и сохраняются в каталог отчетов, когда тест выполняется не из проверки, а просто из обработки МСТ с любым режимом создания скриншотов.

  1. Настройки:
    01
    Порт тестирования тут не менял, т.к. все тесты запускаются под конкретными пользователями, настройки которых указаны в библиотечном тесте Права, который добавляю в каждый сценарный тест первым шагом. У каждого пользователя указан уникальный порт. Тестируемого клиента пока не убираю, т.к. тесты приходится запускать по отдельности, а не в рамках проверки (для проверки их работоспособности).
    Режим скриншотов во всех тестах указан как Errors. Порт для скриншотов у себя оставил стандартный для всех тестов. Все тесты запускаются последовательно, одновременно пока ничего не выполняется. Думаю, что порт надо менять для тестов, выполняющихся одновременно (поправьте, если неправ).

  2. Добавил шаг «Сделать Screenshot» в сценарий, но в детализации выполнения сценария скриншота все равно нет.
    image
    image

3.1. Не нашел что такое журнал действий, возможно имелась ввиду информация из обработки «Просмотр результатов выполнения проверок» из подсистемы «Тестирование». Там текст сообщения следующий:
Шаг №357 'Команда : Активизировать' Действие/Команда 'Команда/Активизировать' {ВнешняяОбработка.МенеджерСценарногоТеста.Форма.Модуль_ОбработкаДействий.Форма(622)}: Ошибка при вызове метода контекста (Активизировать): Недоступный пользователю элемент управления не может выполнять интерактивные действия. (Вход в программу разрешен)
Что-то помешало активизировать элемент на форме, я предполагаю, что с этой формы «ушел фокус», но проблема в том, что вручную этот тест выполняется без ошибок (да и в проверке ошибка бывает не всегда). Можно, конечно, следить за тестом из нулевой сессии, но там две проблемы: сессия автоматически закрывается через 30 секунд (Windows Server 2016 Standart) и меня выкидывает из терминала; когда происходит ошибка, то тестируемый клиент настолько стремительно закрывается, что я не успеваю ничего увидеть и не могу поймать момент, когда нужно сделать скриншот.
3.2. В журнале регистрации следующие ошибки (последняя наиболее частая):
03
04
05

Вроде бы из этого можно сделать вывод, что не хватает прав на каталог с отчетами о выполнении тестов, но я не понимаю кому. 1С работает от системной учетной записи, для всех пользователей установлен полный доступ к каталогу. Можно, конечно, попробовать для пользователя «Все» дать полный доступ к каталогу, но хотелось бы понять кому все-таки не хватает прав.

  1. В «Логе выполненных заданий (дополнительная информация)» записи почему-то только со вчерашнего вечера и только для одного из тестов.
    image
    image

Текст сообщения:
{ВнешняяОбработка.ЗагрузкаЛогаAllureXMLТеста.Форма.Форма.Форма(251)}: Ошибка при вызове метода контекста (ОткрытьФайл): Каталог не обнаружен 'C:Отчеты о тестированииreport-30_Сценарный тест ОтсутствиеНеявка.xml'
Текст дополнительного сообщения:
ИмяОбработки: ЗагрузкаЛогаAllureXML ИмяФункции: ЗагрузитьОтчетВыполненияСценарногоТестированияФорматAllureXML
Тоже свидетельствует о нехватке прав?

  1. WinAutomationUI запущен и насколько я могу судить работает (иногда скриншоты все-таки сохраняются).
    02

Понравилась статья? Поделить с друзьями:
  • Ошибка при вызове метода контекста открыть форму
  • Ошибка при вызове метода контекста открыть файл
  • Ошибка при вызове метода контекста остатки
  • Ошибка при вызове метода контекста ожидатьзавершения
  • Ошибка при вызове метода контекста объект недоступен для изменения