image_pdfimage_print

Работа с Excel в фоновом задании

Доброго времени суток!

http://infostart.ru/public/196323/

Прямо решение из жизни:

При работе с COM объектом экземляр Excel успешно создавался, но открыть файл не получалось

ExcelApp = Новый COMОбъект(«Excel.Application»);
ФайлExcel = ExcelApp.Workbooks.Open(ИмяФайла); // ОШИБКА!
выводилось сообщение об ошибке

Произошла исключительная ситуация (Microsoft Excel): Приложению Microsoft Excel не удается получить доступ к файлу «C:\xls_test\test.xls». Это может быть вызвано одной из следующих причин.

• Указан несуществующий файл или путь.
• Файл используется другой программой.
• Имя книги, которую вы пытаетесь сохранить, совпадает с именем другой книги, открытой в данный момент.
Попытки подключиться через ADO выдавало все тоже сообщение об отсутствии поставщика.

Поиски в просторах сети были продолжены и решение таки было найдено:

Необходимо создать папку

для Windows Server x64

C:\Windows\SysWOW64\config\systemprofile\Desktop

для Windows Server x86

C:\Windows\System32\config\systemprofile\Desktop
Данное расположение папок указано для Office 2007. Для Office 2010 не зависимо от разрядности платформы необходимо создавать папку C:\Windows\System32\config\systemprofile\Desktop (данный факт так же потратил не мало моего времени). В общем, если создали папку, а ошибки не исчезли, создайте вторую. Так же необходимо дать права на созданную папку пользователю USR1CV82. Практика показала, что достаточно прав, выдаваемых системой по умолчанию.

Жизнь на Марсе и ActiveX в тонком клиенте Windows 1C 8.3.6

Доброго времени суток!

Есть ли жизнь на Марсе, это пусть исследуют ученые, а мы займемся земными вещами и попытаемся ответить на вопрос: Если ActiveX в тонком клиенте Windows?

Ортодоксы 1С сразу приведут ссылку на ITS: http://its.1c.ru/db/metod81#content:3266:1 и будут неправы.

Мы люди недоверчивые, словам не верим. Внутреннее устройство платформы 1С это тайна за семью печатями. Которой получается только пользоваться, но не изучать. Поэтому возьмем ПолеHTML и посмортим есть ли там ActiveX. В Windows это поле основано на технологиях Microsoft IE. И внутри 1С это поле показывает версию IE 7, значит ActiveX есть.

Сейчас глядеть в старые версии IE, уже не модно и не нужно, но историю надо знать. В IE7 мир ActiveX хотели сделать более безопасными и поэтому ввели два понятия:
— «Безопасные ActiveX» — очень безопасные, от известных производителей (см. ниже) работают везде.
— KillBit — установлен для убийственно небезопасных ActiveX (пример — ADODB.Stream). Отключаем по умолчанию.
И в сам движок IE добавили безопасный режим выполнения — http://msdn.microsoft.com/en-us/library/bb250462%28v=vs.85%29.aspx#wpm_fliwl

Вот первый тип ActiveX перешел и работает в тонком клиенте Windows 1С! А вы ожидали webkit или blink. Я вместе с вами.

Приведем список самых популярных безопасных ActiveX:

  • MS Media player 9 — 6BF52A52-394A-11d3-B153-00C04F79FAA6
  • MS Media player 6.4 — 22D6f312-B0F6-11D0-94AB-0080C74C7E95
  • Adobe Player — D27CDB6E-AE6D-11cf-96B8-444553540000
  • Adobe PDF — CA*A9780-280D-11CF-A24D-444553540000

Они у вас включены по умолчанию. Не доверяйте — поверьте.

Если вы не доверяете ActiveX  на своем компьютере, можно их временно отключить http://support.microsoft.com/kb/240797/ru или удалить http://support.microsoft.com/kb/154850/ru

 

Р.S.

1С последнее время упорно лезет в интернет.  Уже предлагая использовать только своего тонкого клиента 1С. А если она такая популярная, то сразу возникает вопрос с безопасностью такой работы. С другой стороны все мы привыкли считать Windows не безопасной системой. А антивирус и другая защита у нас входит в обязательный комплект установки после покупки компьютера. И хотя в плане безопасности Microsoft сделала правильные шаги, но осадочек остался.

Думайте сами и тестируйте безопасность ваших решений!
Для ленивых обработки 1С на infostart.ru http://infostart.ru/public/235751/