Имя: Пароль:
1C
1С v8
работа c COM-объектами в фоновом задании(клиент-сервер)
0 xantimans
 
14.08.14
13:56
MSWord = Новый COMОбъект("Word.Application");
        Шаблон = ПолучитьОбщийМакет("кор_УведомлениеОтпуск");
        ИмяФайла = ПолучитьИмяВременногоФайла(".doc");
        Шаблон.Записать(ИмяФайла);        
        Документ = MSWord.Documents.Open(ИмяФайла);
                Документ.SaveAs("C:\temp\УведомлениеОбОтпуске.doc");

регламентное задание вываливается на ошибке: "Значение не является значением объектного типа (SaveAs)"

Понимаю что проблема скорее всего с правами, но смущает факт того что  следующий код при этом выполняется на ура в этом же регламентном задании:

    КомандаАДО = Новый COMОбъект("ADODB.Command");
    СоединениеАДО = Новый COMОбъект("ADODB.Connection");
    СоединениеАДО.Provider = "ADsDSOObject";
    СоединениеАДО.Open("Active Directory Provider");
    КомандаАДО.ActiveConnection = СоединениеАДО;
    
    Попытка    
        RootDSE = ПолучитьCOMОбъект("LDAP://RootDSE");    
        НашДомен = RootDSE.Get("defaultNamingContext");
        База = "<LDAP://" + НашДомен + ">";
    Исключение
        Сообщить("Не удалось подключиться к домену :( ");
    КонецПопытки;    
    тСтрокаПоиска = СтрЗаменить(СокрЛП(Наставник), " ", "
    |");
    
    СтрокаФильтра = "";
    Для инд = 1 по СтрЧислоСтрок(тСтрокаПоиска) Цикл
        СтрокаФильтра = СтрокаФильтра + "(extensionAttribute4=*"+СтрПолучитьСтроку(тСтрокаПоиска, инд)+"*)";
    КонецЦикла;

    
    Фильтр = "(&(objectCategory=person)(objectClass=user)"+СтрокаФильтра+")";
    
    ТекстЗапроса = База + ";" + Фильтр + ";mail;subtree";
    КомандаАДО.CommandText = ТекстЗапроса;
    КомандаАДО.Properties("Page Size").Value = 100;
    КомандаАДО.Properties("Timeout").Value = 30;
    КомандаАДО.Properties("Cache Results").Value = Ложь;
    
    
    ВыборкаАДО = КомандаАДО.Execute();
    Пока НЕ ВыборкаАДО.EOF Цикл
        Email = СокрЛП(ВыборкаАДО.Fields("mail").Value);
        ВыборкаАДО.MoveNext();
    КонецЦикла;
    ВыборкаАДО.Close();    
    СоединениеАДО.Close();
    Возврат Email;

Есть у кого идеи как победить сей недуг?
1 hhhh
 
14.08.14
14:22
(0) ну дать права на папку C:\temp сервера пользователю usr1crихренегознаетещечеготамr. Уже сто раз обсуждалось.
2 Apokalipsec
 
14.08.14
14:33
(1) Щито? У человека в предыдущей строке получается неопределено, а у неопределено нет метода сейв эз.))
Смотри, что вы там пытаетесь открыть.)
3 xantimans
 
14.08.14
16:45
(2) блииинн, подкинь идею как  на сервере Active document обработать, а то очень надо письмо с вложением отправить :)
4 hhhh
 
14.08.14
16:51
(3) если срочно, то зачем в эти дебри влезать. Сделайте на клиенте. Можно даже на толстом.
5 xantimans
 
14.08.14
16:54
(4) на клиенте и так все работает, хочу в фоновое задание повесить.
6 Serginio1
 
14.08.14
17:11
7 xantimans
 
14.08.14
18:07
(6) в (2) уже выяснили что проблем с открытием COM у меня нет, есть проблема с использованием методов, которые на сервере не работают)))
8 Serginio1
 
14.08.14
18:44
У тебя проблема с настройками DCOM
9 Serginio1
 
14.08.14
18:47
Плюс в настройках в ворде посмотри в центре безопасности надежные рсположения.