Имеем:
1С:Предприятие 8.3 (8.3.8.1747)
Бухгалтерия предприятия, редакция 2.0 (2.0.66.26)
MS SQL Server 2008 R2

1C получает почту, сохраняет вложения в папку на сервере. Права к папке в наличии. Далее юзер с помощью обработки открывает нужное ему вложение и делает с ним что хочет.

```1c
    ИмяВременногоФайла=ПолучитьИмяВременногоФайла(".xls");
    КопироватьФайл("\\srv\1Cpost\"+ЭлементыФормы.СписокПисем.ТекущаяСтрока.ИмяВложения,ИмяВременногоФайла);

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

*Копирую файл на всякий случай для избежания проблем с правами

От одного и того-же адресата приходят письма с вложенными файлами .xls
Одно вложение открывается без проблем, другое не открывается с ошибкой:
{ВнешняяОбработка.mail.Форма.Форма.Форма(211)}: Ошибка при вызове метода контекста (Прочитать): Ошибка при выполнении файловой операции 'C:\Users\...\AppData\Local\Temp\3\v8_C8BE_15.xls'

Ветки форума на подобную тему читал, все о чем там говорится пробовал. Может будут еще какие мысли.
---
Когда я выбираю файл через диалог выбора - он помещается в ДвоичныеДанные, оттуда во Временное Хранилище, адрес хранилища передается на сервер, там он забирается из хранилища и записывается через ДвоичныеДанные во временную папку через ПолучитьИмяВременногоФайла. Затем я уже передаю это имя в ТабличныйДокумент, который создаю через оператор Новый, затем вызываю Прочитать() и получаю ошибку. Содержимое временного файла проверял - идентичное с тем, что на клиенте. Тем же самым алгоритмом mxl файлы читаются на ура.
---
UPDATE: поборол таки. Оказывается 1С тупенькая и ей обязательно нужно сообщать расширение файла для того, чтобы она могла понять по какому алгоритму ей грузить документ:

Это:

```1c
    РасположениеКопииФайла = ПолучитьИмяВременногоФайла();
```

Заменяем на это и все работает:

```1c
    РасположениеКопииФайла = ПолучитьИмяВременногоФайла(".xlsx");
```
---
а сам временный файл создается?
Еще может быть, что при копировании файла ничего и не происходит. Т.е. временный не является копией файла из письма.
Права на папку %темп% есть? Можно проверить создав там произвольный файл в этой же процедуре и проверить, что он действительно там создался.
---
Временный файл создается. И от других отправителей временные файлы создавшиеся после копирования их вложений открываются.
---
Можно и не копировать во временный файл, все равно это картины не меняет. Это я на всякий случай попробовал...
---
Сообщение было скрыто модератором.
---
...затем я его вручную сохраняю в формате, который предположительно должен прочитать 1С. Файл не открывается.

Комментарий про лыжи, думаю лишний...
---
Вариант с переносом %temp% в другое место я так понимаю уже пробовали?
---
Пробовал. Но, все вложения открываются, кроме этого вложения, которое приходит от одного адресата.

Т.е. все файлы находятся в одной папке, но от одного адресата вложения не открываются.
---
Юзеры работают на сервере?
---
Юзеры работают: Клиент - Сервер. Но и из терминальной сессии на этом файле проявляется ошибка.
---
В управляемых формах нужно не забывать где выполняется код, если на клиенте то и пути к папкам доступны только клиентские, если на сервере то папки доступны только те что видит пользователь от имени которого запущена служба на сервере с самого сервера. В неуправляемых формах я честно сказать не знаю как с этим, но скорее всего у вас проблема в путях к файлу.
---
Обработка написана на неуправляемой форме.
---
А знак $ только в имени этого файла присутствует?
---
Знак $ убирал из имени файла, файл все равно не открывается.
---
Может адресат присылает xlsx с расширением xls?
---
Попробуйте переименовать в xlsx и открыть еще раз. Попробуйте сделать паузу на 2...3 секунды перед открытием на случай "любопытства" антивируса на сервере.
---
Антивируса на сервере нет, если не считать стандартного WinServer Defender. Переименование не помогло (
---
8.3.9 платформу попробуйте.
---
Попробовал. Ошибка проявилась и в этой версии платформы.
---
Может в этом файле несколько листов?
---
Лист один, проверял эту версию одной из первых (
---
На первый взгляд разница между файлами которые открываются и теми которые не открываются (при одинаковом количестве информации на листе Excel) в размере. Файлы которые не открываются меньше примерно в два раза.
---
а если указать СпособЧтенияЗначенийТабличногоДокумента.Текст, будет какая-либо информация прочитана из файла?
---
Файлы которые не открываются меньше примерно в два раза. Если открыть и сохранить в экселе - тоже?
---
Пробовал, та же ошибка.
---
Когда открываю этот файл (размер 6 кб) и нажимаю "Сохранить как" то выбирается следующее расширение:

Когда сохраняю с расширением:

Получается размер 7кб, но 1С не открывает все равно.
---
выкладывай тогда уж сам файл.
Все возможные предположения либо высказаны, либо ты сам уже попробовал.
---
Попробуйте сохранить его как Лист(книга) эксель 97 или как просто эксель.
---
Немного путаницы
Не открываются файлы от одного отправителя?
или
не открываются некоторые файлы одного отправителя?
или
не открываются некоторые файлы нескольких отправителей?

По комментариям нестыковки.
Если от 1 отправителя ничего не открывается - тогда надо копать исходное письмо.
---
Не открываются файлы от одного отправителя. Именно это утверждается во всех моих сообщениях.
"все файлы находятся в одной папке, но от одного адресата вложения не открываются."
---
тогда копайте в сторону исходного письма и отправителя. Возможно там есть серьезные отличия.
---
возможно он отправляет пдф через 1С, а он бывает битый вот и итог! Так что нудно знать точно что файл не битый и его расширение. Запроси у поставщика инфу и дело в с концом!
---
Возникла та же проблема. Метод Прочитать() табличного документа не работает ни на 8.3.7 ни на 8.3.11 для .xls и .xlsx файлов. Тот же .mxl открывается отлично, лежит рядом с xls, в той же временной папке, также передается через временное хранилище. Дело явно в 1С, т.к. пробовал .xls (97) открывать и .xlsx (2010). При этом в пользовательском режиме на тонком клиенте, через Файл->Открыть отлично открывает, даже там где не установлен офис.
---
UPDATE: похоже что дело во включенном режиме совместимости конфигурации. В моем случае это 8.3.6, поэтому неважно на какой платформе выполняется код...
---
И все-таки нет. Проверил на ERP 2.4, без режима совместимости на 8.3.10. Ошибка везде одна и та же.
---
Была подобная ошибка, когда файл ексель был открыт другим пользователем на другом ПК. Фоновое задание должно было перезаписать данный файл.
---
Когда я выбираю файл через диалог выбора - он помещается в ДвоичныеДанные, оттуда во Временное Хранилище, адрес хранилища передается на сервер, там он забирается из хранилища и записывается через ДвоичныеДанные во временную папку через ПолучитьИмяВременногоФайла. Затем я уже передаю это имя в ТабличныйДокумент, который создаю через оператор Новый, затем вызываю Прочитать() и получаю ошибку. Содержимое временного файла проверял - идентичное с тем, что на клиенте. Тем же самым алгоритмом mxl файлы читаются на ура.
---
UPDATE: поборол таки. Оказывается 1С тупенькая и ей обязательно нужно сообщать расширение файла для того, чтобы она могла понять по какому алгоритму ей грузить документ:

Это:

```1c
    РасположениеКопииФайла = ПолучитьИмяВременногоФайла();
```

Заменяем на это и все работает:

```1c
    РасположениеКопииФайла = ПолучитьИмяВременногоФайла(".xlsx");
```
---
Причем важно указывать верное расширение, если указать ".xls" вместо ".xlsx" (если он действительно там), то метод Прочитать() также перестает работать.
---
.xlsx Вот это прям супер помогло. Спасибо!
---
спасибо, делал загрузку по файлу-примеру в формате ".xls" получал такое же расширение ПолучитьИмяВременногоФайла(xls). Но пользователи решили загрузить отредактированный файл ".xlsx" и появилась ошибка "... доступ к файлу не может быть получен 1с". Пока не нашел эту тему думал, что ошибка в правах на каталог.
---
Поставьте отметку, что это решение, пожалуйста. Это поможет быстрее найти ответ другим участникам
---
Эту отметку может поставить только автор темы.
---
Спасибо!
Тоже сидел голову ломал. Магия какая-то)
---
Оказывается 1С тупенькая
Не всегда она такая плохая...Еще добавлю в копилку знаний. Все операции идут по вашему алгоритму, после записи файла столкнулся с проблемой:

Невозможно прочитать файл "C:\Users\USR1CV8\AppData\Local\Temp\00000001.xls". Ошибка при вызове метода контекста (Прочитать): Ошибка при выполнении файловой операции 'C:\Users\USR1CV8\AppData\Local\Temp\00000001.xls'. Доступ к файлу не может быть получен.

Надо упомянуть, что не все файлы экселя созданы самим экселем! Отсюда (я не знаток структур файлов) предположу, что у файла эксель есть образно говоря какие-то заголовки в которых описаны некие служебные данные. В том числе и какой программой он был создан например. И когда эти заголовки сделаны не правильно - вне зависимости как вы будете менять расширение....1С не сможет прочесть файл, потому что в служебных полях 1С найдет или не найдет описания для подбора алгоритма чтения.

Проверяется легко: копируем содержимое проблемного файла и создаем его настоящим экселем - и вуаля все читается.

Таким образом некие служебные поля файлов должны быть правильно заполнены чтобы 1С смогла их прочесть ...
---
Еще бывает сюрприз, когда создал временный файл - ушел в долгий алгоритм проводящий документы за год, возвращается к временному файлу, а его уже не существует... Платформа сама удаляет временные файлы по прошествии некоего времени, даже если алгоритм не закончил с ним работать...
---
Платформа сама удаляет временные файлы по прошествии некоего времени...даже если алгоритм А вот не надо таки кривые алгоритмы делать.

Оно удаляется через 20 минут после серверного вызова. И это правильно, потому что следующий серверный вызов можт прийти на другой рабочий сервер, на дисковой системе которого тебе никто ничего не обещал.
---
В моем случае помог только перезапуск кластера сервера. Другие методы не помогли.