Имя: Пароль:
1C
1С v8
Чтение файла на сервере
0 13spartak13
 
20.10.20
12:30
Имеется данный код;

&НаКлиенте
Процедура ИмяФайлаНачалоВыбора(Элемент, ДанныеВыбора, СтандартнаяОбработка)
    
    Диалог = Новый ДиалогВыбораФайла(РежимДиалогаВыбораФайла.Открытие);
    Диалог.Заголовок = "Выберите Файл";
    Диалог.ПолноеИмяФайла = "";
        Диалог.Фильтр = "MS Excel|*.xls";
        Диалог.МножественныйВыбор = Ложь;
    Если Диалог.Выбрать() Тогда
        ИмяФайла = Диалог.ПолноеИмяФайла;
    КонецЕсли;
    ФайлИмя = ИмяФайла;
    
        
    лФайл = Новый ДвоичныеДанные(ФайлИмя);
    Адрес = ПоместитьВоВременноеХранилище(лФайл, Новый УникальныйИдентификатор);
    ПолучитьРезультат(Адрес);
    
    

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

&НаСервере
Процедура ПолучитьРезультат(Адрес)
    
Период = ДатаФормирования;    
Состояние = Перечисления.СостоянияРаботникаОрганизации.Работает;
ВидЗанятости = Перечисления.ВидыЗанятостиВОрганизации.ОсновноеМестоРаботы;
Категория = Справочники.КатегорииОбъектов.НайтиПоНаименованию("Мира,37");

Файл = ПолучитьИмяВременногоФайла("xls");
пФайл = ПолучитьИзВременногоХранилища(Адрес);
пФайл.Записать(Файл);


    ТабличныйДокумент = Новый ТабличныйДокумент;
       ТабличныйДокумент.Прочитать(Файл);
    УдалитьФайлы(Файл);
КонецПроцедуры

Выдает: "Ошибка при выполнении файловой операции". Клиент-серверная версия. Что можно сделать?
1 ZDenis
 
20.10.20
12:47
(0) На какой строке ругается то? Может файл открыт или не выбран
2 13spartak13
 
20.10.20
12:49
(1) ТабличныйДокумент.Прочитать(Файл);
3 ДенисЧ
 
20.10.20
12:51
Поставь ТО на эту строчку и глазами посмотри на записанный файл. Он в порядке?
4 13spartak13
 
20.10.20
12:53
(3) Впорядке, на файловой все работает, клиент-сервер такая ошибка
5 ZDenis
 
20.10.20
12:54
(1) А так что скажет?
    Попытка
        
        ТабличныйДокумент.Прочитать(Файл);    
    Исключение
        Сообщить(ОписаниеОшибки(), СтатусСообщения.Внимание);
    КонецПопытки;
6 arsik
 
гуру
20.10.20
12:59
(2) Может файл еще не передался на сервер?
7 ДенисЧ
 
20.10.20
13:01
(4) Так смотреть надо там, где ошибка возникает. А не искать потерю под фонарём, потому что там светлее
8 Жан Пердежон
 
20.10.20
13:02
попробуй:
Адрес = ПоместитьВоВременноеХранилище(лФайл, УникальныйИдентификатор);
9 13spartak13
 
20.10.20
13:10
(8) не помогает
(6) файл передался
10 Жан Пердежон
 
20.10.20
13:12
может файл левый (не xls)?
11 ZDenis
 
20.10.20
13:31
Сделай

На клиенте
//УдалитьФайлы(Файл);

На сервере
Файл = ПолучитьИмяВременногоФайла("xls");
пФайл = ПолучитьИзВременногоХранилища(Адрес);
пФайл.Записать(Файл);

Сообщить(Файл);

Далее все закомментируй и попробуй открыть сам файл на серваке по указанному пути. Откроется он?
12 ZDenis
 
20.10.20
13:32
А хотя на клиенте то зачем трогать, не надо)
13 13spartak13
 
20.10.20
13:51
Всем спасибо, нашел выход без передачи файла на сервер (походу проблемы с работой через RDP и правами доступа). Просто обрабатываю EXEL на клиенте и закидываю на ТЗ объекта.
14 13spartak13
 
20.10.20
13:51
(13) А уже с ней не проблема работать на сервере
15 Kassern
 
20.10.20
15:54
(0) А расширение точно совпадает с расширением временного файла(xls)? Лучше поэтому передавать еще и расширение файла на сервер. Если к примеру файл xlsx, а вы временный файл создаете с расширением xls, то у вас не получится прочитать табличный документ...
Глупец, лишенный способности посмеяться над собой вместе с другими, не сможет долго выносить программирование. Фредерик Брукс-младший