Войти

Показать полную графическую версию : проблема программного формирования excel-файла


ae23
31-10-2013, 14:29
Добрый день. Занимаюсь автоматизацией рассылки прайс-листов в формате Excel из среды 1с.
Работали на платформе Windows Server 2003, недавно перешли на Server 2008 и появились проблемы.
В процессе подготовки прайс-листа в 1с создается com-object Excel 2007, заполняются данные по ценам
и добавляются из внешних файлов модули на VBA с помощью конструкции:
excel.VBE.VBProjects(1).VBComponents(2).CodeModule.AddFromFile(файл)

Когда запускаю всю эту процедуру в обычном сеансе 1с, все работает, как часы, никаких сообщений об ошибках не возникает, создаются рабочие книги с модулями.
Если же запускаю ту же самую процедуру в режиме регламентного задания 1с, то есть, когда с com-объектом работает служба агента 1с,
то на строке ....CodeModule.AddFromFile(файл) пишется сообщение, что метод AddFromFile не найден.

Есть три гипотезы, почему так:
1) какие-то ограничения на работу с файлами для службы (вопрос с правами доступа отпадает, так как пробовали запускать службу агента 1с под разными учетками с макс. правами - результат тот же);
2) в Server 2008 какие-то особенности работы с com-объектом Excel в режиме службы,
3) проблема с настройкой безопасности Excel при добавлении модулей на VBA

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

anderson-7
31-10-2013, 15:32
проблема с настройкой безопасности Excel »
Проверьте в настройках безопасности Excel

ae23
31-10-2013, 15:50
Я бы проверил, если бы знать, что :) . Раньше была проблема с установкой разрешения к объектной модели Visual Basic Object Model. Это решается прописыванием в реестре Windows флага AccessVBOM=1. Сделал, чтобы с помощью VBScript этот флаг создавался для того пользователя, от имени которого происходит формирование excel-файла. Может где-то отслеживается в системных логах информация о подобных ошибках?

anderson-7
31-10-2013, 16:05
В самом экселе может в безопасности параметры макросов и актив х блокируются.
А ошибки в журнале системы- ошибки приложений или office

ae23
31-10-2013, 16:12
Возможно, но, если что-то блокируется, это бы не работало в любом случае, а у меня работает, когда запускается из приложения 1с, запущенного от моего имени. А когда запускается из фонового задания - не работает. Думаю, что как-то влияет сам факт запуска из службы, а не из обычного приложения

Petya V4sechkin
31-10-2013, 17:21
как-то влияет сам факт запуска из службы, а не из обычного приложения
Службы выполняются в изолированной сессии 0.
Попробуйте в свойствах включить флажок "Разрешить взаимодействие с рабочим столом".




© OSzone.net 2001-2012