Ошибка при чтении файла

1. nadyusha22 25.07.23 12:27 Сейчас в теме
таким образом загружаю файл:

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

&НаКлиенте
Процедура ПослеВыбораФайла(ВыбранныеФайлы, ДополнительныеПараметры) Экспорт
    
    Если ВыбранныеФайлы = Неопределено  Тогда
        
        Возврат;
        
    КонецЕсли;
    
    Объект.ПутькФайлам=ВыбранныеФайлы[0];
    

КонецПроцедуры
Показать



Вот таким образом читаю на сервере:

&НаКлиенте
Процедура ПрочитатьФайлы(Команда)
    
    Объект.ДанныеФайла.Очистить();
    
    Если Объект.ФорматФайла="XLS" Тогда
        
        ПрочитатьФайл_XLS();
        
    КонецЕсли;
    
КонецПроцедуры

&НаСервере
Процедура ПрочитатьФайл_XLS_НаСервере(АдресДанных)
    
    
    ТабДок= Новый ТабличныйДокумент;
    
    Данные= ПолучитьИзВременногоХранилища(АдресДанных);
    
    ПутьКФайлуНаСервере=ПолучитьИмяВременногоФайла("xlsx");
    
    Данные.Записать(ПутьКФайлуНаСервере);
    
    Попытка
        
        ТабДок.Прочитать(ПутьКФайлуНаСервере, СпособЧтенияЗначенийТабличногоДокумента.Значение);
                
    Исключение
    
        Сообщение= Новый СообщениеПользователю;
        
        Сообщение.Текст="Файл не найден" + ОписаниеОшибки();
        
        Сообщение.Сообщить();
        
        Возврат;
        
        
    КонецПопытки;
    
    КоличествоСтрок= ТабДок.ВысотаТаблицы;
    
    Для НомерСтроки=2 По КоличествоСтрок Цикл
        
    СтрокаДанных=Объект.ДанныеФайла.Добавить();
                    
    СтрокаДанных.Номенклатура=Справочники.Товары.НайтиПоНаименованию(ТабДок.ПолучитьОбласть("R" + Формат(НомерСтроки,"ЧГ=0") + "C"+1).ТекущаяОбласть.Текст);    
    
    КонецЦикла;    
        
    
КонецПроцедуры
Показать


&НаКлиенте
Процедура ПрочитатьФайл_XLS()
    
    ДанныеФайла2= Новый ДвоичныеДанные(Объект.ПутьКФайлам);
    
    АдресДанных=ПоместитьВоВременноеХранилище(ДанныеФайла2);
    
    ПрочитатьФайл_XLS_НаСервере(АдресДанных);    
    
КонецПроцедуры


Вот таким образом получаю данные из БД:

&НаСервере
Процедура АнализНаСервере()
            
    Запрос = Новый Запрос;
    Запрос.Текст = 
        "ВЫБРАТЬ
        |    ТЧ.Номенклатура КАК Номенклатура
        |ПОМЕСТИТЬ ВТ_ТЧ
        |ИЗ
        |    &ТЧ КАК ТЧ
        |;
        |
        |////////////////////////////////////////////////////////////­////////////////////
        |ВЫБРАТЬ
        |    ВТ_ТЧ.Номенклатура КАК Номенклатура,
        |    ОстаткиОстатки.Товар.Ссылка КАК ТоварСсылка,
        |    ОстаткиОстатки.КолОстаток КАК КолОстаток
        |ИЗ
        |    ВТ_ТЧ КАК ВТ_ТЧ
        |        ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.Остатки.Остатки КАК ОстаткиОстатки
        |        ПО ВТ_ТЧ.Номенклатура = ОстаткиОстатки.Товар.Наименование
        |
        |СГРУППИРОВАТЬ ПО
        |    ВТ_ТЧ.Номенклатура,
        |    ОстаткиОстатки.Товар.Ссылка,
        |    ОстаткиОстатки.КолОстаток";
    
    Запрос.УстановитьПараметр("ТЧ", Объект.ДанныеФайла.Выгрузить());
    Объект.ДанныеФайла.Загрузить(Запрос.Выполнить().Выгрузить());

    РезультатЗапроса = Запрос.Выполнить();
    
    Выборка = РезультатЗапроса.Выбрать();
    
    Объект.ДанныеФайла.Очистить();
    
    Пока Выборка.Следующий() Цикл
        
        ТабЧасть=Объект.ДанныеФайла.Добавить();
        
        ТабЧасть.Номенклатура=Выборка.Номенклатура;
    
    КонецЦикла;

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

&НаКлиенте
Процедура Анализ(Команда)
    АнализНаСервере();
КонецПроцедуры
Показать


БД локальная.

Но получаю такую ошибку:
Прикрепленные файлы:
По теме из базы знаний
Найденные решения
5. spacecraft 25.07.23 14:15 Сейчас в теме
(1) что-то код не соответствует скринам,

Если Объект.ФорматФайла="XLSX" Тогда

Фильтр="Файл Excel (*.xlsx)| *.xlsx";

Иначе

Возврат;

КонецЕсли;

Если Объект.ФорматФайла="XLS" Тогда

ПрочитатьФайл_XLS();

КонецЕсли;

ПутьКФайлуНаСервере=ПолучитьИмяВременногоФайла("xlsx");
nadyusha22; +1 Ответить
Остальные ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. nomad_irk 76 25.07.23 12:42 Сейчас в теме
(1)
АдресДанных=ПоместитьВоВременноеХранилище(ДанныеФайла2);

поменяйте на:
АдресДанных = ПоместитьВоВременноеХранилище(ДанныеФайла2, УникальныйИдентификатор);
3. nadyusha22 25.07.23 13:43 Сейчас в теме
(2)
АдресДанных
Сделали как Вы написали .

Ошибка не исчезла.
Прикрепленные файлы:
4. nomad_irk 76 25.07.23 14:00 Сейчас в теме
(3)что при этом в
Данные = ПолучитьИзВременногоХранилища(АдресДанных);

?
5. spacecraft 25.07.23 14:15 Сейчас в теме
(1) что-то код не соответствует скринам,

Если Объект.ФорматФайла="XLSX" Тогда

Фильтр="Файл Excel (*.xlsx)| *.xlsx";

Иначе

Возврат;

КонецЕсли;

Если Объект.ФорматФайла="XLS" Тогда

ПрочитатьФайл_XLS();

КонецЕсли;

ПутьКФайлуНаСервере=ПолучитьИмяВременногоФайла("xlsx");
nadyusha22; +1 Ответить
6. user856012 14 25.07.23 14:35 Сейчас в теме
(5)
что-то код не соответствует скринам
Код - фигня, у этого автора кое-что посерьезнее "не соответствует": https://forum.infostart.ru/forum9/topic301271/
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот