![]() |
![]() |
![]() |
|
Проблема с выгрузкой в Excel в регламентном задании ₽ |
☑ | ||
---|---|---|---|---|
0
Vladuha
12.10.10
✎
18:46
|
Нужно сделать регламентное задание, которое будет формировать некий файл в формате xls. Написал процедуру, когда запускаю на клиенте обработкой, то все ок, регламентное задание отваливается с ошибкой:
Ошибка при вызове метода контекста (SaveAs): Произошла исключительная ситуация (Microsoft Excel): Метод SaveAs из класса Workbook завершен неверно. Код выглядит так: Эксель = Новый COMОбъект("Excel.Application"); Книга = Эксель.Workbooks.Add(); ... Эксель.DisplayAlerts = 0; ПутьКФайлу = КаталогВременныхФайлов(); ПолноеИмяФайла = ПутьКФайлу+"ПросроченныеЗаявки.xls"; Эксель.ActiveWorkbook.SaveAs(ПолноеИмяФайла, -4143); Книга.Close(); Эксель.DisplayAlerts = 1; Эксель.Application.Quit(); PS: Win 2008 R2 x64, 1С 8.1.15.14 (сервер x64), MS Excel 2010 x64 |
|||
1
sapphire
12.10.10
✎
18:47
|
(0) Читать документацию надо внимательно:
нельзя сохранить макет в формате xls в серверном режиме. |
|||
2
Vladuha
13.10.10
✎
09:41
|
(1) читать надо внимательнее вопрос, макетов здесь нет, есть создание документа в excel через com-объект.
|
|||
3
shuhard
13.10.10
✎
10:38
|
(2) а права у учетной записи, от которой запущен сервер 1С на ПутьКФайлу какие ?
|
|||
4
Vladuha
13.10.10
✎
11:18
|
(3) полные
|
|||
5
Dmitry77
13.10.10
✎
12:06
|
Скорее всего файл кем-то используется. Перед тем как выгружать сначала проверить есть ли он. И в попытке удалить. Не используйте длинных путей с пробелами и русскими буквами.
|
|||
6
Dmitry77
13.10.10
✎
12:08
|
Эксель.DisplayAlerts = 1;
и вот эту строку в самое начало. |
|||
7
Dmitry77
13.10.10
✎
12:09
|
(6) сори не надо этого.
|
|||
8
Vladuha
13.10.10
✎
18:07
|
(5) файл новый создается, в каталоге времнных файлов вообще нет экселевских файлов.
Еще заметил, что фоновое задание отваливается с ошибкой через пару секунд после запуска, а чтобы дойти до этого места в коде нужно секунд 10-15. |
|||
9
Invaa
13.10.10
✎
18:09
|
(0) грабли платформы... выбери формат txt или mxl и будет тебе счастье.
|
|||
10
Invaa
13.10.10
✎
18:12
|
(9) пардон, тоже недочитал про ком...
|
|||
11
Irken_1
13.10.10
✎
18:12
|
у меня конечно не создание нового файла, а открытие существующего, заполнение данных и его запись...
но я использовала Эксель.Save(); Эксель.Quit(); |
|||
12
Irken_1
13.10.10
✎
18:14
|
до этого
Эксель = Новый COMОбъект("Excel.Application"); Эксель.Visible = 0; Эксель.DisplayAlerts = False; Эксель.Workbooks.Open(ИмяФайла); |
|||
13
Dmitry77
13.10.10
✎
18:14
|
(8) а если запустить из под обычного пользователя. Все нормально отрабатывает? и вываливает ли при таком запуске excel предупреждения? У меня платформа таже только 32 и офис 2003 и все нормально работает.
|
|||
14
Vladuha
14.10.10
✎
09:48
|
(13) запускал из-под своего пользователя - все ОК, сегодня попробую запустить из-под учетки, на которой сервер предприятия крутится. Если будет все тоже самое, то попрошу админов эксель 2003 поставить.
|
|||
15
Vladuha
14.10.10
✎
09:54
|
(12) тоже вариант, попробую шаблон на шару закинуть, лист буду чистить от данных, заполнять новыми и сохранять
|
|||
16
Леха Дум
14.10.10
✎
09:58
|
(0) Смотри права на ком excel для учетной записи сервера 1С. Сталкивались с таким для IE. Если кластер, то такое придется сделать на всех серверах кластера
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |