![]() |
проблема программного формирования excel-файла
Добрый день. Занимаюсь автоматизацией рассылки прайс-листов в формате 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 Пожалуйста, подскажите, в чем может быть причина? |
Цитата:
|
Я бы проверил, если бы знать, что :) . Раньше была проблема с установкой разрешения к объектной модели Visual Basic Object Model. Это решается прописыванием в реестре Windows флага AccessVBOM=1. Сделал, чтобы с помощью VBScript этот флаг создавался для того пользователя, от имени которого происходит формирование excel-файла. Может где-то отслеживается в системных логах информация о подобных ошибках?
|
В самом экселе может в безопасности параметры макросов и актив х блокируются.
А ошибки в журнале системы- ошибки приложений или office |
Возможно, но, если что-то блокируется, это бы не работало в любом случае, а у меня работает, когда запускается из приложения 1с, запущенного от моего имени. А когда запускается из фонового задания - не работает. Думаю, что как-то влияет сам факт запуска из службы, а не из обычного приложения
|
Цитата:
Попробуйте в свойствах включить флажок "Разрешить взаимодействие с рабочим столом". |
Время: 18:32. |
Время: 18:32.
© OSzone.net 2001-