|
|
|
Как добавить из 1С подпись в письмо в MS Outlook | ☑ | ||
|---|---|---|---|---|
|
0
NikVars
27.08.08
✎
13:10
|
Создаю письмо в 1С 7.7 так, как предложено в http://www.sinor.ru/~my1c/knowhow/sm_mol.html
Процедура ПереброскаВПочтовика() myOlApp = CreateObject("Outlook.Application"); myItem = myOlApp.CreateItem(0); //olMailItem=0 //Адрес myRecipient = myItem.Recipients.Add("axm2000@mail.ru"); myRecipient.Type=1; //Тема myItem.Subject = "Счет № "+НомерДок+" от "+ДатаДок; //Тело myItem.Body ="Счет находится в прикрепленном файле" //Аттачменты myAttachments = myItem.Attachments(); myAttachments.Add( "C:\\1cFiletmp.xls", 1, 1, "Счет № "+НомерДок+" от "+ДатаДок); ФС.УдалитьФайл("C:\\1cFiletmp.xls"); //myItem.Display(); myItem.Send(); КонецПроцедуры Теперь возникла необходимость подставить в сформированное письмо подпись, которая уже введена в MS Outlook в Сервис-Параметры-Сообщения-Подписи. Как это сделать из 1С? Заранее благодарю за ответ. |
|||
|
1
ТелепатБот
гуру
27.08.08
✎
13:10
|
||||
|
2
dk
27.08.08
✎
13:20
|
а что с макросами? Проблема записать и поглядеть где эта подпись хранится?
|
|||
|
3
NikVars
27.08.08
✎
13:38
|
(2) Хорошая идея однако!
|
|||
|
4
smaharbA
27.08.08
✎
13:39
|
(2) нету вроде записи макросов в оутлуке
(0) а если просто создать два профиля оутлука и у одного выставить - подписывать при отправке (или как там) |
|||
|
5
Rovan
гуру
27.08.08
✎
13:39
|
(0) Письмо.Body = "Тест тела письма";
|
|||
|
6
NikVars
27.08.08
✎
13:42
|
(2) Подскажи где в MS Outlook 2003 запись макроса?
|
|||
|
7
Rovan
гуру
27.08.08
✎
13:43
|
(+5) не то !
|
|||
|
8
NikVars
27.08.08
✎
13:46
|
(4) Оутлук подпись сразу подставляет. Создаешь письмо, а подпись уже торчит.
(5) Это тоже вариант, об этом я думал, но это не гибкий вариант. Толкая эту тему нужно будет анализировать пользователей и хранить список е-майлов в обработке, что не очень хорошо... |
|||
|
9
lexa
27.08.08
✎
13:49
|
посмотри что у тебя в myItem.Body перед myItem.Body ="Счет находится в прикрепленном файле"
|
|||
|
10
smaharbA
27.08.08
✎
13:49
|
(8) 2-профиля
|
|||
|
11
Rovan
гуру
27.08.08
✎
13:51
|
(+7) нашел http://forum.sources.ru/index.php?showtopic=215643
Файлы с подписями находятся в %USERPROFILE%\Application Data\Microsoft\Signatures Может выташить файл оттуда и вставить его в письмо |
|||
|
12
NikVars
27.08.08
✎
13:52
|
(9) Это у меня формирование темы письма.
|
|||
|
13
NikVars
27.08.08
✎
13:55
|
(11) Точно!!!! Спасибо!!!!!!!!! Она там лежит в 3-х видах. Буду цеплять!
(10) Не совсем понял идею... |
|||
|
14
Filin396
27.08.08
✎
14:03
|
(12) Это у тебя формирование тела письма. lexa предположил, что после
myItem = myOlApp.CreateItem(0); у тебя в myItem.Body уже лежит твоя подпись, а ты ее затираеш попробуй myItem.Body ="Счет находится в прикрепленном файле"+myItem.Body |
|||
|
15
NikVars
27.08.08
✎
14:16
|
(13) Понял. Попробовал. Даже через сообщить вывел в окно сообщений. Глухо - тело письма пустое!
Делал так: myItem = myOlApp.CreateItem(0); ПодписьМоя=СокрЛП(myItem.Body); Сообщить("ПодписьМоя="+ПодписьМоя); ПодписьМоя - пустая!!! |
|||
|
16
Filin396
27.08.08
✎
14:33
|
А к чему в Оутлуке привязана подпись? У тебя там несколько пользователей? Подпись своя у каждого?
|
|||
|
17
NikVars
27.08.08
✎
14:35
|
Под моим профилем я вижу подпись только свою! Смотри (11). Я вижу в этой папке только свою подпись.
|
|||
|
18
NikVars
27.08.08
✎
14:37
|
+(17) Учетных записей в Оутлуке нет, у нас тут домен, как админ этим рулит - не представляю.
|
|||
|
19
Filin396
27.08.08
✎
14:37
|
Ну возможно надо после создания объекта выбирать профиль?
|
|||
|
20
smaharbA
27.08.08
✎
14:37
|
(10) Иде я -
Панель управления - Почта - Конфигурации Код |
|||
|
21
Filin396
27.08.08
✎
14:40
|
(20)Вот-вот, и я про это -же. Подписи у разных пользователей разные.
|
|||
|
22
smaharbA
27.08.08
✎
14:40
|
да просит меня Иде я
за упоминания в суе ))) |
|||
|
23
NikVars
27.08.08
✎
14:49
|
(20) У меня в Панель управления - Почта- Конфигурации указано использовать конфигурацию Outlook. Других конфигураций нет, эта конфигурация с подписью.
К чему все оставльное пока не дошел... |
|||
|
24
Filin396
27.08.08
✎
15:04
|
Попробуй так:
myOlApp = CreateObject("Outlook.Application"); myNameSpase = myOlApp.GetNamespace("MAPI"); myNameSpase.Logon('ТвойЛогинВОутлуке','ТвойПарольВОутлуке', 0, 0); myItem = myNameSpase.CreateItem(0); вожможно, чтобы появилась подпись, необходимо выбрать профиль пользователя, того, чья это подпись. |
|||
|
25
smaharbA
27.08.08
✎
15:10
|
(23) добавь еще и выбери опцию Выбирать конфигурацию
зайдешь в одну укажешь что подставлять автоматом зайдешь в другую и отменишь... все на каждой конфигурации будет по своему, и учетные записи будут разные (если надо) (24) не совсем так... логин в оутлуке тут непричем... |
|||
|
26
NikVars
27.08.08
✎
15:39
|
Ребята, СПАСИБО! Буду пробовать! Как только будет инфо, выложу в эту ветку.
|
|||
|
27
NikVars
27.08.08
✎
17:00
|
(24) Попробовал
myItem = myNameSpase.CreateItem(0); {}: Поле агрегатного объекта не обнаружено (CreateItem) Похоже, что это метод только Application, а не GetNamespace |
|||
|
28
Filin396
27.08.08
✎
18:49
|
В оутлуке в хелпе должна быть объектная модель. Поройся там, может чего найдеш.
|
|||
|
29
smaharbA
28.08.08
✎
06:11
|
(27) все верно, и делай от апп
|
|||
|
30
NikVars
28.08.08
✎
17:09
|
Так как время поджимало, то решил проблему с подстановкой подписи читая файл подписи, как указал (11). Rovan - СПАСИБО!!! Правда пришлось повыпендриваться, так как в 1С команда Текст.Открыть(ВременныйФайл) не понимает путь с переменной %USERPROFILE%.
Вот код: Процедура ПереброскаВПочтовика() ПутьДляФайловПодписи="%USERPROFILE%\Application Data\Microsoft\Signatures\"; myOlApp = CreateObject("Outlook.Application"); myItem = myOlApp.CreateItem(0); //olMailItem=0 ВременныйФайл=КаталогВременныхФайлов()+"111.tmp"; //выводим список имен файлов во временный файл КомандаСистемы("dir "+""""+ПутьДляФайловПодписи+"*.*"" /b >"+ВременныйФайл); Текст=СоздатьОбъект("Текст"); Если ФС.СуществуетФайл(ВременныйФайл) = 1 Тогда //Открываем файл и со списком подписей и ищем текстовый!!! Текст.КодоваяСтраница(1); Текст.Открыть(ВременныйФайл); Для Н=1 По Текст.КоличествоСтрок() Цикл Стр0=СокрЛП(Текст.ПолучитьСтроку(Н)); Если Найти(Стр0,".txt")=СтрДлина(Стр0)-3 Тогда ИмяФайлаПодписи=Стр0;Прервать; КонецЕсли; КонецЦикла;//Н=1 КонецЕсли; //Перебрасываем подпись по временный файл временного каталога. //Приходится так делать, так как Текст.Открыть(ВременныйФайл) не понимает путь с переменной %USERPROFILE% КомандаСистемы("type "+""""+ПутьДляФайловПодписи+ИмяФайлаПодписи+""" >"+ВременныйФайл); //Адрес myRecipient = myItem.Recipients.Add("axm2000@mail.ru"); myRecipient.Type=1; //Тема myItem.Subject = "Счет № ….."; //Тело myItem.Body ="Счет находится в прикрепленном файле…"; //Добавляем подпись!!!! Если ФС.СуществуетФайл(ВременныйФайл) = 1 Тогда Текст.Открыть(ВременныйФайл); Для Н=1 По Текст.КоличествоСтрок() Цикл Стр0=СокрЛП(Текст.ПолучитьСтроку(Н)); myItem.Body=myItem.Body+Стр0; КонецЦикла;//Н=1 КонецЕсли; //Аттачменты myAttachments = myItem.Attachments(); myAttachments.Add( "C:\\1cFiletmp.xls", 1, 1, "Счет № ..."); ФС.УдалитьФайл("C:\\1cFiletmp.xls"); ФС.УдалитьФайл(ВременныйФайл ); //myItem.Display(); myItem.Send(); КонецПроцедуры |
| Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |