Имя: Пароль:
1C
1С v8
Запуск обработки с COM - объектом
,
0 ДядяМитяй
 
22.04.14
13:11
Помогите разобраться, добрые люди.

Конфа УТ10,3 безжалостно изуродованная, платформа 8,2

Есть обработка (не внешняя). В обработке такой код:

...
    Попытка
        OurExxel = Новый COMОбъект("Excel.Application");
    Исключение
        Сообщить(ОписаниеОшибки());
        КонецПопытки;
    
Книга = OurExxel.WorkBooks.Add(); // :-(
        
    Лист = Книга.WorkSheets(1);
....

Когда обработка запускается вручную все работает как надо - в экселевский файл выгружается то, что надо.

Попробовал запускать как регламентное задание - выдает в консоли заданий:
{Обработка.ВыгрузкаНомВЕксель(62)}: Значение не является значением объектного типа (WorkBooks) - это как раз про строчку, отмеченную смайлом.

ЧЯДНТ????

Возможно, я криво написал процедурку в модуле регламентных заданий:

  Процедура ВыгрузкаНаФтп() Экспорт
              
ОбрВыгр = Обработки.ВыгрузкаНомВЕксель.Создать();
ОбрВыгр.ВыгрузкаНомВЕксель();
    
КонецПроцедуры

Куда мне рыть?
1 ДенисЧ
 
22.04.14
13:13
на сервере екселя нет, наверное
2 Torquader
 
22.04.14
13:15
(1) Да даже если и есть, он там работать не сможет - профайлы нужно настраивать и разрешения.
Хотя, если COM+ будет, то всё можно, даже если Excel на соседней машине - но это там, где настоящие специалисты работают.
3 ДенисЧ
 
22.04.14
13:16
(2) А если ексель на машине в другом городе? :-)
4 ДядяМитяй
 
22.04.14
13:20
Все крутится на сервере через удаленные раб. столы
5 Torquader
 
22.04.14
13:22
(3) Ну, если VPN для сети, а поверх его DCOM через Tcp-Ip, то почему бы и нет.
Вот на другой планете не получится - время ответа будет больше таймаута.
6 ДядяМитяй
 
22.04.14
13:22
А кроме того, если б оно не находило екселя, вылетало бы на строчку раньше
7 Torquader
 
22.04.14
13:23
(4) Регламентное задание выполняется от имени какого пользователя ? - вот ему нужно дать право на запуск Excel и создать для Excel папки.
(Наиболее удачно сделать один интерактивный вход под этим пользователям и открыть Excel хоть один раз).
8 Torquader
 
22.04.14
13:24
(6) Оно Excel находит, но он не готов к работе, так как не созданы служебные папки и т.п.
9 ДядяМитяй
 
22.04.14
13:24
в процессе отладки пока рег задание выполняется от того же меня, от которого запускается обработка вручную с удачным результатом
10 hhhh
 
22.04.14
13:25
(9) Сообщить() в регламентном задании вы не увидите. Кому вы там его показываете? Пяному админу, который там спит на раскладушке в серверной?
11 ДядяМитяй
 
22.04.14
13:26
а в консоли заданий не увижу?
12 ДенисЧ
 
22.04.14
13:26
(10) А я увижу... :-Ь
13 hhhh
 
22.04.14
13:26
(12) вы - пяный админ?
14 Torquader
 
22.04.14
13:27
(11) Если вместо сообщить поставить Возврат, то будет всё понятно, что Excel - не создалась.
15 ДядяМитяй
 
22.04.14
13:27
да даже если не увижу - исключение-то сработает
16 ДенисЧ
 
22.04.14
13:28
(13) Я трезвый (к сожалению) программист, владеющий инструментом...
17 ДядяМитяй
 
22.04.14
13:29
(15) не считается ))
18 hhhh
 
22.04.14
13:29
(15) исключение отработало и пошло дальше. Следующая команда

Книга = OurExxel.WorkBooks.Add();
19 ДядяМитяй
 
22.04.14
13:32
Регламентное задание можно выполнять от того же пользователя, от которого уже запущен 1С или обязательно робота создавать?
20 Ненавижу 1С
 
гуру
22.04.14
13:34
так Excel стоит на сервере приложений или нет?
21 Ненавижу 1С
 
гуру
22.04.14
13:34
(19) от того пользователся Windows, от которого работает сервер приложений
22 ДядяМитяй
 
22.04.14
13:37
(21) вот это уже пища для размышлений. то есть надо сделать робота с аутентификацией Windows для входа в 1С?
23 Ненавижу 1С
 
гуру
22.04.14
13:38
(22) ты на вопросы отвечаешь? см (20)
24 hhhh
 
22.04.14
13:39
(22) так у вас файловая что ли?
25 Torquader
 
22.04.14
13:42
(24) Судя по всему, у них терминальный сервер и файловая 1С.
26 Ненавижу 1С
 
гуру
22.04.14
13:42
(25) и на терминальном сервере не стоит Excel ))
27 Torquader
 
22.04.14
13:45
(26) Ну и как тогда она локально исполняется на том же терминальном сервере ?
28 Ненавижу 1С
 
гуру
22.04.14
13:47
(27) а тут надо читать локально, как "не в терминале"
вообще ХЗ, что имеет ввиду автор
29 ДядяМитяй
 
22.04.14
14:00
База SQL, но мне никак не дадут доступ ни к SQL серверу, ни к серверу 1С. Поэтому приходится извращаться.
30 Torquader
 
22.04.14
14:01
(29) Тогда - нет доступа - нет и файла.
31 ДядяМитяй
 
22.04.14
14:06
А при ручном доступе почему тогда все работает? И файло создает и на удаленный ftp его закидывает?
32 hhhh
 
22.04.14
14:12
(31) под другим пользователем вручную входишь. Войди под пользователем сервера 1с.
33 Ненавижу 1С
 
гуру
22.04.14
14:15
(31) потому что на клиенте есть Excel, а на сервере приложений 1С его нет, сколько повторять?
34 ДядяМитяй
 
22.04.14
14:24
(32) пользователь сервера 1с это тот, который по умолчанию USR1CV82?
35 Torquader
 
22.04.14
16:16
(34) Да, только у тебя же терминальный сервер (где работают клиенты) и сервер приложений (где работает 1С) разнесены на разные машины.