|
работа 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
|
Плюс в настройках в ворде посмотри в центре безопасности надежные рсположения.
|
|
Требовать и эффективности, и гибкости от одной и той же программы — все равно, что искать очаровательную и скромную жену... по-видимому, нам следует остановиться на чем-то одном из двух. Фредерик Брукс-младший