Вход | Регистрация
 
1С:Предприятие :: 1С:Предприятие 8 общая

Ошибка в регл. задании

Ошибка в регл. задании
Я
   John83
 
26.04.21 - 18:19
В регл. задании происходит загрузка файла
C:\Users\Администратор\AppData\Local\Temp\GRLS\lp2021-04-22-1.xls

Проверяю, что этот файл есть через НайтиФайлы - файл есть.
И сразу при попытке чтения этого же файла выдает ошибку

{ОбщийМодуль.РегламентныеЗадания_Прометей.Модуль(72)}: Ошибка при вызове метода контекста (Open)
        ExcelФайл = ExcelПриложение.WorkBooks.Open(ИмяФайла);
по причине:
Произошла исключительная ситуация (Microsoft Office Excel): Нет доступа к файлу 'C:\Users\Администратор\AppData\Local\Temp\GRLS\lp2021-04-22-1.xls'. Это может быть вызвано одной из следующих причин.
• Имени файла или пути не существует.
• Файл используется другой программой.
• Имя книги, которую вы пытаетесь сохранить, совпадает с именем открытой в данный момент книги.

Есть идеи, почему так происходит?
   ДенисЧ
 
1 - 26.04.21 - 18:23
Права, атрибуты, "Имя книги, которую вы пытаетесь сохранить, совпадает с именем открытой в данный момент книги"
   Вафель
 
2 - 26.04.21 - 21:06
Там нужен какой то каталог в system32
   John83
 
3 - 26.04.21 - 23:52
(2) зачем?
   John83
 
4 - 27.04.21 - 00:07
И еще обратил внимание, что некоторые регл. задания по ЖР запускаются от какого-то пользователя 1С, а некоторые без пользователя.
От чего это зависит?
Забыл указать, это серверная база.
   John83
 
5 - 27.04.21 - 00:11
+4 хотя возможно в консоли заданий намудрили
   Cthulhu
 
6 - 27.04.21 - 01:12
проверяешь наличие из-под себя.
регламентное выполняется не из-под тебя.
   dchumak
 
7 - 27.04.21 - 03:42
(6) скорее всего в этом причина
   dchumak
 
8 - 27.04.21 - 03:43
А также, хотелось бы посмотреть код, от начала задания, до разбора файла. Там скорее всего пытается открывать файл напрямую с диска, а не из временного хранилища, поэтому и доступа нет
   John83
 
9 - 27.04.21 - 11:36
(6) в том-то и дело, что проверка производится в самом регл. задании и результат выводится в ЖР
   John83
 
10 - 27.04.21 - 11:43
(8)
Соединение = Новый HTTPСоединение("grls.rosminzdrav.ru"); 


ТекЗапрос = Новый HTTPЗапрос("pricelims.aspx");

Попытка
    ТекОтвет = Соединение.ОтправитьДляОбработки(ТекЗапрос);     
    ТекСтрока = ТекОтвет.ПолучитьТелоКакСтроку();
Исключение
    ЗаписьЖурналаРегистрации("Сообщение", УровеньЖурналаРегистрации.Ошибка,,, ПодробноеПредставлениеОшибки(ИнформацияОбОшибке()));
КонецПопытки;
    

ТекИмяФайлаПриемника = ПолучитьИмяВременногоФайла("html");

ТекТекстовыйФайл = Новый ТекстовыйДокумент;
ТекТекстовыйФайл.УстановитьТекст(ТекСтрока);
ТекТекстовыйФайл.Записать(ТекИмяФайлаПриемника, КодировкаТекста.ANSI);

ТекЧтениеХТМЛ = Новый ЧтениеHTML;
ТекЧтениеХТМЛ.ОткрытьФайл(ТекИмяФайлаПриемника);

ТекПостроительDOM = Новый ПостроительDOM;
ТекДокументHTML = ТекПостроительDOM.Прочитать(ТекЧтениеХТМЛ);
ТекЭлемент = ТекДокументHTML.ПолучитьЭлементПоИдентификатору("ctl00_plate_tdzip");

ТекЧтениеХТМЛ.Закрыть();

ТекИмяФайлаИсточника = "http://grls.rosminzdrav.ru/" + ТекЭлемент.ПервыйДочерний.Гиперссылка;
ТекИмяФайлаПриемника = ПолучитьИмяВременногоФайла("zip");

КопироватьФайл(ТекИмяФайлаИсточника, ТекИмяФайлаПриемника);    

ТекКаталог = КаталогВременныхФайлов() + "GRLS";

ТекZIP = Новый ЧтениеZipФайла();
ТекZIP.Открыть(ТекИмяФайлаПриемника);    
ТекZIP.ИзвлечьВсе(ТекКаталог);
ТекZIP.Закрыть();

ТекФайлы = НайтиФайлы(ТекКаталог, "lp"+Формат(ТекущаяДата(), "ДФ=yyyy-MM-dd")+"*.xls");

Попытка
    Для Каждого ЭлементМассива Из ТекФайлы Цикл
        ЗаписьЖурналаРегистрации("Сообщение",,,, ЭлементМассива.ПолноеИмя);
    КонецЦикла;
Исключение
    ЗаписьЖурналаРегистрации("Сообщение", УровеньЖурналаРегистрации.Ошибка,,, ПодробноеПредставлениеОшибки(ИнформацияОбОшибке()));
КонецПопытки;

Если НЕ ТекФайлы.Количество() > 0 Тогда
    Возврат;
КонецЕсли;

ТекФайл = ТекФайлы[0];

ИмяФайла = ТекФайл.ПолноеИмя;;

Попытка
    // Загрузка Microsoft Excel
    ExcelПриложение = Новый COMОбъект("Excel.Application");
Исключение
    Сообщить("Ошибка при загрузке Microsoft Excel." + Символы.ПС + ОписаниеОшибки(), СтатусСообщения.Внимание);
    ЗаписьЖурналаРегистрации("Сообщение", УровеньЖурналаРегистрации.Ошибка,,, ПодробноеПредставлениеОшибки(ИнформацияОбОшибке()));
    Возврат;
КонецПопытки;

Попытка
    // Открытие файла Microsoft Excel
    ExcelФайл = ExcelПриложение.WorkBooks.Open(ИмяФайла);
Исключение
    Сообщить("Ошибка открытия файла Microsoft Excel." + ИмяФайла + Символы.ПС + ОписаниеОшибки(), СтатусСообщения.Внимание);
    ExcelПриложение = Неопределено;
    ЗаписьЖурналаРегистрации("Сообщение", УровеньЖурналаРегистрации.Ошибка,,, ПодробноеПредставлениеОшибки(ИнформацияОбОшибке()));
    Возврат;
КонецПопытки;
   Cthulhu
 
11 - 27.04.21 - 14:09
такое впечатление, что у тебя какой-то другой код выполняется.
копипаста сообщения об ошибке в (0) не соответствует тому, какое сообщение должно выдаваться кодом в (10) при такой ошибке метода ".Опен"

Список тем форума
 
Независимо от того, куда вы едете — это в гору и против ветра!
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.