![]() |
![]() |
|
v8: 1С и Outlook {решен} | ☑ | ||
---|---|---|---|---|
0
Ептель
23.07.07
✎
12:14
|
Ситуация такая:
есть 1С 8.0 и Outlook2003 при формировании сообщения для отправки по почте выдает сообщение "Ошибка при вызове метода контекста (Display): Неизвестная ошибка" но сообщение само выдает и его можно отправить при нажатии кнопки "отправить" до этого стоял 2000 офис и ничего такого не было , т.е. отрабатывал без ошибок, все бы ничего можно было бы забить на эту ошибку так как все равно, так как первоначальный заложенный смысл отрабатывает, но есть обработка которая формирует реестр платежей а потом скопом делает рассылку по контрагентам, так вот происходит следующее : программа формирует 1 письмо и вылетает с данной ошибкой Были проведены след действия по устранению: был еще раз переустановлен офис - не помогло зашел на том же компе под другой учеткой , но с админовскими правами - не помогло накатил обновления на офис - тоже не помогло дал права пользователю админовские - не помогло на своем компе запускаю тоже самое у меня работает ОС на компах пользователей Win2000 офис2003 у меня WinXP офис 2003 1с 8.0 (8.0.13.32) сервер скульный. Что это может быть, ну не может же из ОС такое твориться |
|||
1
ТелепатБот
гуру
23.07.07
✎
12:14
|
||||
2
IceSer1
23.07.07
✎
12:19
|
код в студию
|
|||
3
Ептель
23.07.07
✎
12:21
|
Перем olMailItem;
myOLApp = Новый COMОбъект ("Outlook.Application"); //myOLItem = CreateObject("Outlook.MailItem"); myOLItem = myOLApp.CreateItem(olMailItem); Если Прав(Кому,2)=";" Тогда myOLItem.To = Лев(Кому,СтрДлина(Кому)-2); Иначе myOLItem.To = Кому; КонецЕсли; myOLItem.Subject = "Электронная система согласования документов"; Если Направление="Вперед" Тогда Если ТекДок.Метаданные().Имя="КарточкаПлатежа" Тогда myOLItem.Body = "Прошу согласовать " + ТекДок+ " "+ ТекДок.Контрагент + " на сумму "+ ТекДок.Сумма + " "+ТекДок.ВалютаДокумента; Иначе myOLItem.Body = "Прошу согласовать " + ТекДок+ " "+ ТекДок.Контрагент + " грузополучатель "+ ТекДок.грузополучатель+ " станция назначения "+ТекДок.СтанцияНазначения; КонецЕсли; ИначеЕсли Направление="Справочник" Тогда myOLItem.Body = "Прошу согласовать заявку на изменение справочника № " +ТекДок.Номер+ " от "+ ТекДок.Дата+" "+ ТекДок.НаименованиеСпр; ИначеЕсли Направление="Лимит" Тогда myOLItem.Body = "Превышен лимит бюджета по документу " +ТекДок.Номер+ " от "+ ТекДок.Дата + " Требуется дполнительное согласование!"; ИначеЕсли ТекДок.Метаданные().Имя="КарточкаПлатежа" Тогда myOLItem.Body = " " + ТекДок+ " от "+ ТекДок.Дата+" "+ СОКРЛП(ТекДок.Контрагент.Наименование) + " на сумму "+ ТекДок.Сумма + " "+ТекДок.ВалютаДокумента +" отклонена пользователем "+СОКРЛП(ТекПользователь.Наименование) + " по причине "+ СокрЛП(ТекДок.ПричинаОтказа.Наименование); // Иначе // myOLItem.Body = " " + ТекДок+ " от "+ ТекДок.Дата+" "+ ТекДок.Контрагент +" грузополучатель "+ ТекДок.грузополучатель+ " станция назначения "+ТекДок.СтанцияНазначения +" отклонена пользователем "+глТекущийПользователь + " по причине "+ СокрЛП(ТекДок.ПричинаОтказа.Наименование); // КонецЕсли; КонецЕсли; Попытка myOLItem.Display(); Исключение Сообщить("Письмо не отправлено! " +ОписаниеОшибки()); //myOLItem.Send(); //СтатусВозврата(0); возврат; КонецПопытки; |
|||
4
IceSer1
23.07.07
✎
12:25
|
могу предположить что у юзера нет прав админа(в видовсе), если так то запусти 1 рас из асаунта админа(виндозы)
|
|||
5
Ептель
23.07.07
✎
12:29
|
все это уже было сделано, и его аккаунт в админы добавлял , и ваще под другим заходил - все одно, ошибка вылетает, мне даже посоветовали добавить в коде
Outlook.Application.11 - один фиг вылетает ошибка www.itland.ru/forum/lofiversion/index.php/t16002.html · 5 КБ - вот здесь вроде обсуждалась тема такая но не могу зайти - кричит сервер не найден((( |
|||
6
IceSer1
23.07.07
✎
12:43
|
я заменил Display на send все прошло..
|
|||
7
Ептель
23.07.07
✎
12:45
|
а до этого тоже выдавал ошибку?
|
|||
8
IceSer1
23.07.07
✎
12:49
|
ес
|
|||
9
IceSer1
23.07.07
✎
12:58
|
а эобезательно через оутлоок
|
|||
10
smaharbA
23.07.07
✎
12:59
|
myOLItem.Display(0);
myOLItem.Display(-1); ... (6) и че отправляет без спроса ? (без наличия каспера) |
|||
11
Ептель
23.07.07
✎
13:00
|
(10) а это что за параметры?
|
|||
12
smaharbA
23.07.07
✎
13:01
|
(11)
0 == false -1 == true модальное/немодальное |
|||
13
Ептель
23.07.07
✎
13:02
|
(9) да , так как корпоративный стандарт
|
|||
14
IceSer1
23.07.07
✎
13:05
|
(12) прав мне -1 памог
|
|||
15
Леха Дум
23.07.07
✎
13:26
|
Почта = Новый COMОбъект("Outlook.Application");
Письмо = Почта.CreateItem(0); // создаем сообщение Письмо.Subject = ТемаСообщения; Если ЗапонениеТекстаСообщения = 2 Тогда Письмо.HTMLBody = ТекстСообщенияДляОтправки; Иначе Письмо.Body = ТекстСообщенияДляОтправки; КонецЕсли; Письмо.To = ""; Для Каждого Файл Из СписокФайловВложений Цикл Вложение = Письмо.Attachments.Add(Файл); КонецЦикла; Попытка Письмо.Display(); Исключение КонецПопытки; Это мой код и, как видишь, по тем же самым принципам... Я просто показываю его оператору, но не отправляю, т.к. не стоит задача учета писем. В твоем случае затык идет на myOLItem.Display() - проверено. Будет ли такой же затык на myOLItem.Send() - не пробовал, но точно могу сказать что его для начала нужно вынести из попытки с myOLItem.Display() |
|||
16
Леха Дум
23.07.07
✎
13:27
|
(12) надо будет учесть твои замечания :)
|
|||
17
Ептель
23.07.07
✎
13:45
|
у меня тоже помогло (12)
Спасибо всем)))) |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |