ПолучитьИмяВременногоФайла("xlsx")

1. user1004898 28 13.03.19 16:11 Сейчас в теме
Почему если инициализировать
имяФайла = ПолучитьИмяВременногоФайла("xlsx");

то открываются только файлы Excel формата "xlsx", а формата "xls" - игнорируются?

Хотя в начале обработки указал

Фильтр = "Документы Excel(*.xls; *.xlsx)|*.xls;*.xlsx";
По теме из базы знаний
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
14. Olga21C 23.05.23 22:15 Сейчас в теме
(1) Вопрос, наверное, уже не актуален.
Сама впервые делаю загрузку данных из Excel, возник такой же вопрос, как и у Вас. Вижу, что ранее отвечающие его не поняли. Возможно, мой ответ кому-то будет полезен.
Я решила просто:
- кроме адреса во временном хранилище передала на сервер имя пути к файлу;
- прописала условие с использованием метода СтрЗаканчиваетсяНа().
Грубо, если СтрЗаканчиваетсяНа(ИмяПутиКФайлу, "x"), то ПолучитьИмяВременногоФайла("xlsx"), иначе ПолучитьИмяВременногоФайла("xls").
Работает.
16. starik-2005 3036 25.05.23 09:42 Сейчас в теме
(14)
Работает
Можно просто расширение передавать. А там ПолучитьИмяВременногоФайла(Расширение).
17. YozZzhik 25.05.23 13:29 Сейчас в теме
(14) Более гибкий механизм - получать расширение: РасширениеФайла = СокрЛП(Сред(ПутьКФайлу, СтрНайти(ПутьКФайлу,".", НаправлениеПоиска.СКонца,,1)));
18. starik-2005 3036 25.05.23 13:42 Сейчас в теме
(17)
получать расширение
  Файл = Новый Файл(ИмяФайла);
  Расширение = Файл.Расширение;
19. user1826630 25.05.23 13:45 Сейчас в теме
(18)
Если Файл.Существует() Тогда...
2. Timur.V 78 13.03.19 16:16 Сейчас в теме
При открытии, в фильтре можно выбрать расширение файлов (справа внизу).
4. user1004898 28 13.03.19 16:20 Сейчас в теме
(2)
Вы про это меню?

тут то могу выбрать, но в итоге не подгружаются файлы старого формата.
Прикрепленные файлы:
5. Timur.V 78 13.03.19 16:20 Сейчас в теме
8. user1004898 28 13.03.19 16:27 Сейчас в теме
(5)
мысль, вот если указан новый формат
имяФайла = ПолучитьИмяВременногоФайла("xlsx");

то только новый и откроет. старые все равно в игнор.

два фомата в ПолучитьИмяВременногоФайла вписать никак?
9. ranis888 104 13.03.19 16:27 Сейчас в теме
10. user1004898 28 13.03.19 16:29 Сейчас в теме
(9)
все равно никак. только новый формат...
11. ranis888 104 13.03.19 17:00 Сейчас в теме
(10) А там точно есть файлы старого формата?
12. user1004898 28 13.03.19 17:15 Сейчас в теме
(11)
в моей базе?
да, файлы формата 22.xls и 22.xlsx
3. ranis888 104 13.03.19 16:19 Сейчас в теме
Фильтр = "Документы Excel (*.xls, *.xlsx)|*.xl*";
6. user1004898 28 13.03.19 16:25 Сейчас в теме
(3)
Фильтр = "Документы Excel (*.xls, *.xlsx)|*.xls, *.xl*";


форма открытия файлов вообще не идит.

тут надо так Фильтр = "Документы Excel (*.xls, *.xlsx)|*.xls; *.xl*";

но все равно старый формат не открывает.
7. ranis888 104 13.03.19 16:26 Сейчас в теме
13. antz 13.03.19 17:26 Сейчас в теме
Это диалог открытия? Причем тут ПолучитьИмяВременногоФайла? Можно больше кода?
15. ErgoLaw 25.05.23 08:56 Сейчас в теме
(14) Только что сидел-думал над этим же, получилось реализовать при помощи попытки и исключения, но как-то не нравится совсем это решение))

Попытка

ПутьКФайлуНаСервере = ПолучитьИмяВременногоФайла("xlsx");

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

Исключение

ПутьКФайлуНаСервере = ПолучитьИмяВременногоФайла("xls");

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

КонецПопытки;

До этого так же пытался путем передачи на сервер имени пути файла, а после проверять на последние 3 символа, "xls" и "lsx", соответственно, но то ли что-то сделал неверно, то ли что, но работал всегда только первый вариант из двух, странно...
20. starik-2005 3036 25.05.23 13:46 Сейчас в теме
(15)
но как-то не нравится совсем это решение

  Файло = Новый Файл(ИмяФайла);
  ФайлоНаСерваке(Новый ДвоичныеДанные(ИмяФайла), Файло.Расширение);



...
Функция ФайлоНаСерваке(ДД, Расширение)
  Имя = ПолучитьИмяВременногоФайла(Расширение);
  ДД.Записать(Имя);
  Таб = Новый ТабличныйДокумент;
  Таб.Открыть(Имя);
...
Показать
Как же любят все всё усложнять...
Оставьте свое сообщение

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