Форум 1С
Программистам, бухгалтерам, администраторам, пользователям
Задай вопрос - получи решение проблемы
22 ноя 2024, 16:25

Не могу вызвать из временного хранилища, ошибка "Файл не обнаружен"

Автор maxxi, 26 сен 2022, 14:41

0 Пользователей и 1 гость просматривают эту тему.

maxxi

Есть xml-файл На сервере.("E:\project\contr.xml")

Из клиента запускаю регламентное задание:

Процедура ЗаписьДанныхНаСервере() Экспорт
   
    ЧтениеXML=Новый ЧтениеXML;
   
    ЧтениеXML.ОткрытьФайл(""E:\project\contr.xml"");
   
    Результат = ФабрикаXDTO.ПрочитатьXML(ЧтениеXML);
       
    Для каждого Элемент Из Результат.ЭлементСправочника Цикл
       
        Если ТипЗнч(Элемент.Наименование) <> Тип("Строка") Тогда
            Продолжить
        КонецЕсли;
               
        НайденнаяКарта = Справочники.ДисконтКарты.НайтиПоРеквизиту("Наменование", Число(Элемент.Наименование));
        //ЧтениеXML.ЗначениеАтрибута("УНП");
        //Справочники.Контрагенты.НайтиПоРеквизиту("Наименование", Число(ЧтениеXML.Наименование));
        Если НайденнаяКарта <> Неопределено Тогда
            Продолжить;
        КонецЕсли;
       
        НоваяКарта = Справочники.ДисконтКарты.СоздатьЭлемент();
        НоваяКарта.Наименование = Элемент.Наименование;
        НоваяКарта.Имя = Элемент.Имя;
        НоваяКарта.Фамилия = Элемент.Фамилия;
        НоваяКарта.ФИО = Элемент.ФИО;
        НоваяКарта.ПроцентКарта = Элемент.ПроцентКарта;
        НоваяКарта.СрокДействия = Элемент.СрокДействия;
        НоваяКарта.ДатаРегистрация = Элемент.ДатаРегистрация;
        НоваяКарта.Активный = Элемент.Активный;
        НоваяКарта.Адрес = Элемент.Адрес;
        НоваяКарта.ДатаРождения = Элемент.ДатаРождения;
        НоваяКарта.Активный = Элемент.Активный;
        НоваяКарта.Телефон = Элемент.Телефон;


        НоваяКарта.Записать();

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

{ОбщийМодуль.ОбщийМодуль1.Модуль(3)}: Ошибка при вызове конструктора (ДвоичныеДанные)
по причине:

по причине:
Файл не обнаружен 'E:\project\contr.xml'

Затем помести файлы в Временное Хранилище по коду:

Процедура ЗаписьДанныхНаСервере() Экспорт
   
    ДанныеФайла= Новый ДвоичныеДанные("E:\project\contr.xml");
    АдресДанных=ПоместитьВоВременноеХранилище(ДанныеФайла);
   
    Данные=ПолучитьИзВременногоХранилища(АдресДанных);
    ПутьКФайлуНаСервере=ПолучитьИмяВременногоФайла("xml");
   
    Данные.Записать(ПутьКФайлуНаСервере);
   
       
    ЧтениеXML=Новый ЧтениеXML;
   
    ЧтениеXML.ОткрытьФайл(ПутьКФайлуНаСервере);
   
    Результат = ФабрикаXDTO.ПрочитатьXML(ЧтениеXML);
       
    Для каждого Элемент Из Результат.ЭлементСправочника Цикл
       
        Если ТипЗнч(Элемент.Наименование) <> Тип("Строка") Тогда
            Продолжить
        КонецЕсли;
               
        НайденнаяКарта = Справочники.ДисконтКарты.НайтиПоРеквизиту("Наменование", Число(Элемент.Наименование));
        //ЧтениеXML.ЗначениеАтрибута("УНП");
        //Справочники.Контрагенты.НайтиПоРеквизиту("Наименование", Число(ЧтениеXML.Наименование));
        Если НайденнаяКарта <> Неопределено Тогда
            Продолжить;
        КонецЕсли;
       
        НоваяКарта = Справочники.ДисконтКарты.СоздатьЭлемент();
        НоваяКарта.Наименование = Элемент.Наименование;
        НоваяКарта.Имя = Элемент.Имя;
        НоваяКарта.Фамилия = Элемент.Фамилия;
        НоваяКарта.ФИО = Элемент.ФИО;
        НоваяКарта.ПроцентКарта = Элемент.ПроцентКарта;
        НоваяКарта.СрокДействия = Элемент.СрокДействия;
        НоваяКарта.ДатаРегистрация = Элемент.ДатаРегистрация;
        НоваяКарта.Активный = Элемент.Активный;
        НоваяКарта.Адрес = Элемент.Адрес;
        НоваяКарта.ДатаРождения = Элемент.ДатаРождения;
        НоваяКарта.Активный = Элемент.Активный;
        НоваяКарта.Телефон = Элемент.Телефон;


        НоваяКарта.Записать();
       
    КонецЦикла;
КонецПроцедуры


Все равно Выдает ошибку:

{ОбщийМодуль.ОбщийМодуль1.Модуль(3)}: Ошибка при вызове конструктора (ДвоичныеДанные)
по причине:

по причине:
Файл не обнаружен 'E:\project\contr.xml'


Подскажите пожалуйста, где допускаю ошибку.
Спасибо всем.

LexaK

maxxi, может это, надо так, с такими кавычками
   ЧтениеXML.ОткрытьФайл("E:\project\contr.xml");
если помогло нажмите: Спасибо!

antoneus


maxxi

antoneus, Файловая система, а это серверная.

maxxi

LexaK, это при копировании так получилось))

LexaK

maxxi, еще раз, точнее проверьте имя файла! загружаете Дисконтные карты,
и файл называется contr.xml - очень похоже на Контрагентов!
если помогло нажмите: Спасибо!

antoneus

Вообще, временное хранилище нужно, чтобы запулить данные с клиента на сервер, например. А то я не улавливаю логики: создаем двоичные данные из файла на сервере, кладем их в хранилище, тут же вытаскиваем, тут же на сервере их сохраняем во временный файл и открываем чтением xml. Ну странно как-то.

maxxi

antoneus, Это я только тестировала, потому что где то прочитала, что если передаем на сервер тогда только через временное хранилище.

Удивительно, если вызвать через кнопку, все работает отлично, без всяких хранилищ.

maxxi

ручном режиме, без проблем находить эту папку и загружает.

maxxi


Теги:

Похожие темы (5)

Рейтинг@Mail.ru

Поиск