Имя: Пароль:
1C
1С v8
В регламентном задании выгрузки выдает ошибку метода Excel.Workbooks.Open()
0 Natalika
 
22.10.13
17:51
Написала обработку выгрузки прайс-листа, в которой после формирования табл. документа, записываем этот документ Excel, после этого открываем записанный файл с помощью Excel.Application, вносим изменения, закрываем файл. Если запускать эту обработку вручную - все работает. Добавила в регламентное задание - выдает ошибку на методе Open:

Error calling context method (Open)
reason:
An exception has occurred (Microsoft Office Excel): Нет доступа к файлу 'E:\UT_10\Price.xls'. Это может быть вызвано одной из следующих причин.

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

У папки E:\UT_10\ открыт доступ для всех пользователей, Microsoft Office Excel установлен на сервере, на котором выполняется выгрузка. В чем проблема? Подскажите, пожалуйста. Спасибо.
1 Нуф-Нуф
 
22.10.13
17:52
к папке E:\UT_10\ есть доступ у пользователя-сервера 1с?
2 wade25
 
22.10.13
17:53
Ты на сервере файл открыть хочешь?))) Визуальные функции Exel можно юзать только на клиенте.
3 wade25
 
22.10.13
17:54
+(2) Точнее, что то из визуального на сервере выполняешь при открытии. Точно не помню, но прописать обязательно какие то параметры в false нужно.
4 Нуф-Нуф
 
22.10.13
17:54
а ком уже не вариант?
5 Kreont
 
22.10.13
17:57
(0) "после этого открываем записанный файл с помощью Excel.Application, вносим изменения, закрываем файл" <- это очень надо делать, нету способа по другому обойти?
6 Happy Bear
 
22.10.13
18:06
(0) На сервере, на ком-объект ексель дай права юзеру, от которого работает сервер 1С
7 Natalika
 
22.10.13
18:10
(3) а можно поподробней? Не могу найти, какие параметры нужно установить в false?
8 Happy Bear
 
22.10.13
18:12
(7) Он не знает, о чем говорит
9 Natalika
 
22.10.13
18:14
(1) у всех пользователей есть полный доступ к этой папке
(4) Про какой ком идет речь? Я итак пишу:
Excel = ПолучитьCOMОбъект("", "Excel.Application");        
Книга = Excel.Workbooks.Open("E:\UT_10\Price.xls");
10 Natalika
 
22.10.13
18:15
(6),(8) "На сервере, на ком-объект ексель дай права юзеру, от которого работает сервер 1С" - как это сделать?
11 Happy Bear
 
22.10.13
18:23
(10) Пуск-Выполнить-dcomcnfg
там Компьютеры-Мой компьютер-DCOM Конфигурация-Приложение MS Excel
На закладке свойств Безопасность поставь Использовать по умолчанию
12 Happy Bear
 
22.10.13
18:28
+(11) не по умолчанию, а настроить-изменить и добавить юзера
13 Natalika
 
22.10.13
18:39
(11),(12) Я открыла Настройку DCOM. Там есть MMC Application Class и много Microsoft класов, а MS Excel не нашла. Он так и называется?
14 AdrianBerk
 
22.10.13
18:42
Покажи код которым закрываешь док программно
15 shurikvz
 
22.10.13
23:19
(1) Надо спросить по другому: Natalika - а на сервере диск Е: вообще существует?
Когда выполняется обработка - она выполняется на клиенте, когда выполняется регламентное задание - оно выполняется на сервере. Сервер не знает ничего про файл E:\UT_10\Price.xls на локальном компьютере пользователя.
16 Infsams654
 
23.10.13
08:43
(15)+ это да. Но не суть: интерактивная работа пользователя и регламентное задание - это как такое может быть? "в Excel.Application, вносим изменения", эй, кто-нибудь, на сервере открыт прайс, внесите изменения...
17 dk
 
23.10.13
08:48
(16) какого лешего интерактивные-то? все программно можно сделать без окон
(0) 1. проверить есть ли на сервере 1с диск E и есть ли там файл E:\UT_10\Price.xls
2. Проверить у кого есть виндовые права на чтение и редактирование этого файла
18 Infsams654
 
23.10.13
08:56
(17) какого лешего - так в (0) и написано как работает обработка
Глупец, лишенный способности посмеяться над собой вместе с другими, не сможет долго выносить программирование. Фредерик Брукс-младший