Управление кампаниями с помощью xls xlsx при обработке файла обнаружены ошибки

Обновлено: 02.07.2024

Подскажите пожалуйста, в чем может быть ошибка, открытия .xls листа?

Попытка
Excel = Новый COMОбъект("Excel.Application");
Excel.WorkBooks.Open(Файл);
Исключение
Сообщить("Ошибка при открытии файла с помощью Excel! Загрузка не будет произведена!");
Сообщить(ОписаниеОшибки());
Возврат 0;
КонецПопытки;

Ошибка при открытии файла с помощью Excel! Загрузка не будет произведена!
: Ошибка при вызове конструктора (COMОбъект): -2147220994(0x800401FE): Приложение было запущено, но оно не зарегистрировало фабрику классов

Может что известное. Хотел узнать.
Пока работаю под другим конфигуратором.
(0)
1. Если все расположено на клиентской машине - нужно установить нормальный Excel.
2. Если на сервере - п. 1 и проверить права пользователя ОС на создание COM объектов.

(3) (4) Дело в том что не работает на одной из версий платформы. На которой я начал делать.
Вот и не понял. Открыл другую, так как не давно пробовал делать тоже самое. и там так же.

В начале же нужно прочитать с Эксель. Вот с него не читалось.

(5) Ты вообще понял, что написано в (4)?

Читай через табличный документ,а не ком-объект. И будет тебе счастье.

(0) База какая SQL или файловая и где выполняется >>Excel = Новый COMОбъект("Excel.Application"); в процедуре
&НаКлиенте или &НаСервере ?
(4) Да как то привык так вот эксель открывать при загрузке с него.
А не копировать и вставлять в табличный документ.

(8) На сервере конечно, как обычно.

(12) Попробуйте создать процедуру &НаКлиенте и в процедуре открыть файл . Кстати Ексель стоит на компе, где пытаетесь файл считать.

(15) Тут вопрос был, почему под одной платформой не работает.
Идет ошибка что в (0). А под другой работает.

Я этого не мог понять. Может что с платформой.

Попробую ваш совет.

А ещё на сервере такой метод может не сработать, вроде как была как то у меня информация. Там как то иначе нужно.

Может это вот этот ваш совет про это. Я там встретился с тем что на сервере. делают копированием в табличный документ.

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

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

От одного и того-же адресата приходят письма с вложенными файлами .xls
Одно вложение открывается без проблем, другое не открывается с ошибкой:

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

Ветки форума на подобную тему читал, все о чем там говорится пробовал. Может будут еще какие мысли.

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

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

(1) а сам временный файл создается?
Еще может быть, что при копировании файла ничего и не происходит. Т.е. временный не является копией файла из письма.
Права на папку %темп% есть? Можно проверить создав там произвольный файл в этой же процедуре и проверить, что он действительно там создался. (15) Временный файл создается. И от других отправителей временные файлы создавшиеся после копирования их вложений открываются. (15) Можно и не копировать во временный файл, все равно это картины не меняет. Это я на всякий случай попробовал.

(27) . затем я его вручную сохраняю в формате, который предположительно должен прочитать 1С. Файл не открывается.

Комментарий про лыжи, думаю лишний.

Вариант с переносом %temp% в другое место я так понимаю уже пробовали?

(2) Пробовал. Но, все вложения открываются, кроме этого вложения, которое приходит от одного адресата.


Т.е. все файлы находятся в одной папке, но от одного адресата вложения не открываются.

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


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

Получается размер 7кб, но 1С не открывает все равно.

(24) выкладывай тогда уж сам файл.
Все возможные предположения либо высказаны, либо ты сам уже попробовал. (24) Попробуйте сохранить его как Лист(книга) эксель 97 или как просто эксель.

Немного путаницы
Не открываются файлы от одного отправителя?
или
не открываются некоторые файлы одного отправителя?
или
не открываются некоторые файлы нескольких отправителей?

По комментариям нестыковки.
Если от 1 отправителя ничего не открывается - тогда надо копать исходное письмо.

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

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

Office 365 ProPlus переименован в Майкрософт 365 корпоративные приложения. Для получения дополнительной информации об этом изменении прочитайте этот блог.

Симптомы

Решение

Для решения этой проблемы воспользуйтесь приведенными ниже способами в указанном порядке.

Способ 1. Игнорировать DDE

Чтобы изменить этот параметр, выполните приведенные ниже действия:

Эта проблема может возникнуть, если в параметрах Excel установлен флажок Игнорировать другие приложения, использующие динамический обмен данными (DDE).

Дополнительные сведения об отключении DDE см. в следующей статье базы знаний Майкрософт:

Если устранить проблему с помощью этих действий не удалось, перейдите к способу 2.

Способ 2. Восстановление виртуализации взаимодействия с пользователем (UE-V)

Если вы используете обновление пользовательского опыта виртуализации (UE-V), установите Hotfix Package 1 для Microsoft User Experience Virtualization 2.0 (KB2927019).

Если вы не уверены, используете ли вы UE-V, просмотрите список программ в Программы и компоненты на панели управления. Запись для «Центра параметров компании» указывает на то, что вы используете UE-V.

Если устранить проблему с помощью этих действий не удалось, перейдите к способу 3.

Способ 3. Сброс сопоставления файлов

Чтобы проверить, правильно ли работают сопоставления файлов в системе, сбросите сопоставления файлов Excel на настройки по умолчанию. Для этого выполните описанные ниже действия в зависимости от установленной операционной системы. Windows 10

Windows 8

  1. На начальном экране введите «Панель управления».
  2. Выберите Панель управления.
  3. Выберите Программы по умолчанию > Задание программ по умолчанию.
  4. Выберите Excel > Выберите по умолчанию для этой программы.
  5. На экране Сопоставление программ выберите Выбрать все > Сохранить.

Windows 7

  1. Выберите Пуск > Панель управления.
  2. Выберите Программы по умолчанию.
  3. Выберите Сопоставление типов файлов или протоколов с конкретными программами.
  4. Выберите Лист Microsoft Excel, затем выберите "Изменить программу".
  5. В разделе Рекомендуемые программы выберите Microsoft Excel.
  6. Если Excel не отображается в этом списке, выберите Обзор, найдите папку установки Excel, выберите Excel.exe > Excel.

Если устранить проблему с помощью этих действий не удалось, перейдите к способу 4.

Способ 4. Восстановление Office

Возможно, требуется восстановить программы Office. Для этого следуйте инструкциям для вашего типа установки и операционной системы.

Для Office 365, установленной по технологии "нажми и работай"

  1. В поле поиска введите Панель управления, а затем выберите Панель управления в результатах поиска.
  2. В разделе Программы выберите Удаление программы.
  3. Нажмите Microsoft Office 365 > Изменить.
  4. Нажмите Восстановление по сети > Восстановить.

После завершения восстановления может потребоваться перезагрузить компьютер. Windows 8

  1. На начальном экране введите «Панель управления».
  2. Выберите Панель управления.
  3. В разделе Программы выберите Удаление программы.
  4. Выберите Microsoft Office 365 > Изменить.
  5. Выберите Восстановление по сети > Восстановить.

После завершения восстановления может потребоваться перезагрузить компьютер.

  1. Выберите Пуск >Панель управления.
  2. Дважды щелкните Программы и компоненты.
  3. Выберите Microsoft Office 365 > Изменить.
  4. Выберите Восстановление по сети > Восстановить.

После завершения восстановления может потребоваться перезагрузить компьютер.

Для восстановления Office выберите параметр «Восстановление по сети».

Для установки Office 2016, 2013, Office 2010 или Office 2007

Для восстановления Office 2013, Office 2010 или Office 2007, следуйте шагам в следующей теме веб-сайта Office:

Если устранить проблему с помощью этих действий не удалось, перейдите к способу 5.

Способ 5. Выключите надстройки

Надстройки Excel и COM также могут вызывать эту проблему. Эти два вида надстроек расположены в разных папках. Для тестирования отключите и изолируйте конфликт, отключив каждую надстройку по одному. Для этого выполните следующие действия:

  1. В меню Файл выберите пункт Параметры > Надстройки.
  2. В списке Управление в нижней части экрана выберите элемент Надстройки COM > Перейти.
  3. Удалите одну из надстроек в списке, затем выберите OK.
  4. Перезапустите Excel, дважды щелкнув значок или имя файла для книги, которую вы пытаетесь открыть.
  5. Если проблема сохраняется, повторите шаги 1-4, за исключением выбора другой надстройки в шаге 3.
  6. Если проблема сохраняется после того, как вы очистите все надстройки COM, повторите шаги 1-4, за исключением выбора Надстройки Excel в шаге 2, затем попробуйте каждую из надстроек Excel по одному на шаге 3.

Если Excel загружает файл, надстройка, которую вы выключили в последний раз, вызывает проблему. В этом случае мы рекомендуем вам посетить веб-сайт производителя надстройки, чтобы узнать, доступна ли обновленная версия надстройки. Если новая версия надстройки недоступна или вам не нужно использовать надстройку, вы можете оставить ее выключенной.

Если Excel не открывает файл после выключения всех надстроек, проблема имеет другую причину.

Если устранить проблему с помощью этих действий не удалось, перейдите к способу 6.

Способ 6. Отключите аппаратное ускорение

Чтобы решить эту проблему, отключите аппаратное ускорение до тех пор, пока производитель видеокарт не выпустит исправление. Регулярно проверяйте обновления для драйвера видеокарты.

Порядок отключения аппаратного ускорения:

Запустите любую программу Office 2013.

На вкладке Файл выберите пункт Параметры.

В диалоговом окне Параметры выберите категорию Дополнительно.

В списке доступных параметров, установите флажок в поле Выключить аппаратное ускорение обработки изображений.

Следующий снимок экрана показывает эту опцию в Excel.

Выберите параметр «Выключить аппаратное ускорение обработки изображений», чтобы отключить аппаратное ускорение для продуктов Office.

Нажмите OK.

Если устранить проблему с помощью этих действий не удалось, перейдите к способу 7.

Способ 7. Проверка наличия или установка последних обновлений

Возможно, вам придется настроить Центр обновления Windows для автоматической загрузки и установки рекомендуемых обновлений. Установка важных, рекомендуемых и необязательных обновлений зачастую может решить проблемы за счет замены устаревших файлов и устранения уязвимостей.

Для получения дополнительных сведений об обновлениях Office щелкните следующий номер статьи, чтобы перейти к статье в базе знаний Майкрософт.

Дополнительная информация

Существует множество возможных причин, которые могут привести к этой ошибке.

Дополнительные сведения об этой проблеме и дополнительные действия по устранению неполадок см. в следующих статьях базы знаний Майкрософт.

Это не самая распространенная проблема при использовании Microsoft Excel, но потеря ценных данных, хранящихся в рабочем файле, не будет приятным событием. Поэтому заранее удобно знать несколько методов, как открывать поврежденные документы Excel.


Вариант 1: Откройте поврежденный документ в Microsoft Excel

Вы можете использовать инструмент, включенный в саму программу, чтобы попытаться открыть поврежденный документ Excel. Это самый простой способ восстановить поврежденные таблицы. Для этого вы должны:

  1. Запустить Microsoft Excel
  2. Перейти в меню и нажмите пункт «Файл»
  3. Выбрать пункт «Открыть».
  4. Когда появится форма открытия файлов, то выберите некорректный файл.
  5. Перейти в нижнюю часть формы и рядом со вкладкой «Инструменты» и выбрать пункт «Открыть и Восстановить», а не пункт «Открыть».


С помощью этого альтернативного инструмента Excel представляет возможность для ремонта документа или извлечения содержимого таблиц из файла. Однако мы должны уточнить, что этот метод не гарантирует полного восстановления документа, поэтому желательно попробовать и другие из предлагаемых ниже вариантов.

Вариант 2: Откройте поврежденный документ в Microsoft Excel: метод 2

Если вам не удалось открыть и восстановить файл с таблицами Excel предыдущим способом, то вы можете попытаться восстановить документ с помощью функции вычисления, так же включенной в Microsoft Excel. Для этого необходимо:

  1. Открыть пустой документ Excel
  2. Открыть меню «Файл»
  3. Выбрать пункт «Параметры»
  4. Выбрать пункт «Формулы»
  5. Выберите значение «Ручной» пункта «Параметры расчета»


Причина внесения изменений в параметры расчет документа Excel заключается в том, что благодаря перерасчету вручную Excel иногда может открывать документы с некорректными данными.

Вариант 3: Откройте поврежденный документ в OpenOffice

Вариант 4: Восстановление поврежденного документа сторонними утилитами

В случае, если проблема с поврежденным документом Excel по-прежнему сохраняется, то остается возможность использовать сторонние инструменты для восстановления файлов. Эти программы от различных разработчиков могут быть особенно полезны, если вы регулярно используете Excel в своей работе или обслуживаете компанию как системный администратор. Однако необходимо сказать, что инструменты, которые работают лучше всего в этих ситуациях, обычно платные. Эффективность этих инструментов замечательна, но требуется тестировать их ДЕМО версии, которые позволяют вам оценить возможности утилиты.

Recovery Toolbox for Excel


Recovery Toolbox for Excel пытается восстановить всю возможную информацию, а затем сохранить ее в новом файле. Вы можете восстановить содержимое своих файлов, включая таблицы, макеты, стили шрифтов и многое другое. Просто укажите поврежденные документы, чтобы программа попыталась их отремонтировать. Ограничением ДЕМО версии является невозможность сохранения восстановленных таблиц.

Следует отметить, что помимо Recovery Toolbox for Excel у компании есть инструменты, которые могут быть полезны для разрешения конфликтов с другими типами файлов, таких как Access, Word, Outlook и другие. Все программы от Recovery Toolbox работают только под ОС Windows.

Вариант 5: Восстановление поврежденного документа онлайн-сервисами



Использовать онлайн-сервисы можно с любых устройств (ПК, планшет, телефон) и под любой операционной системой (Windows, Android, MacOS, iOS). Сервисы также являются платными, но стоимость восстановления за один файл намного меньше стоимости Лицензии на покупку программы и составляет 5–10 долларов за файл.

Читайте также: