|
Отослать Через Outlook c хранилищем | ☑ | ||
---|---|---|---|---|
0
Mebius777
07.03.17
✎
15:45
|
Процедура ОтослатьЧерезOutlockНажатие(Элемент)
Если Не ЭтотОбъект.ЭтоНовый() Тогда Запрос = Новый Запрос; Запрос.Текст = "ВЫБРАТЬ | ХранилищеДополнительнойИнформации.Наименование, | ХранилищеДополнительнойИнформации.ВидДанных, | ХранилищеДополнительнойИнформации.ИмяФайла, | ХранилищеДополнительнойИнформации.Объект, | ХранилищеДополнительнойИнформации.Хранилище, | ХранилищеДополнительнойИнформации.ТекстФайла |ИЗ | Справочник.ХранилищеДополнительнойИнформации КАК ХранилищеДополнительнойИнформации | ВНУТРЕННЕЕ СОЕДИНЕНИЕ Документ.рм_обзвон_Задача КАК рм_обзвон_Задача | ПО ХранилищеДополнительнойИнформации.Объект = рм_обзвон_Задача.Ссылка |ГДЕ | ХранилищеДополнительнойИнформации.Объект = &Объект"; Запрос.УстановитьПараметр("Объект", ЭтотОбъект.Ссылка); РезультатВыборкиФайлов = Запрос.Выполнить().Выбрать(); Иначе Сообщить("Документ не сохранен, для правильной работы сохраните документ!"); КонецЕсли; Если СокрЛП(Строка(ЭтотОбъект.ВидЗадачи))=СокрЛП(Строка(Перечисления.ВидыСобытий.ЭлектронноеПисьмо)) Тогда Попытка Outlook = Новый COMОбъект("Outlook.Application"); ЕстьОшибка = 0; Исключение Сообщить("Не удалось создать объект Outlook.Application"); ЕстьОшибка = 1; КонецПопытки; Если ЕстьОшибка = 0 Тогда Письмо = Outlook.CreateItem(0); Если Значениезаполнено(ЭтотОбъект.АдресПочты) Тогда Письмо.Recipients.Add(АдресПочты); КонецЕсли; Письмо.Subject = ЭтотОбъект.Тема; Письмо.Body = ЭтотОбъект.ТелоПисьма; //Для Каждого ЭлементТЧФайлы Из ТЧФайлы Цикл Пока РезультатВыборкиФайлов.Следующий() Цикл ИмяФайла = КаталогВременныхФайлов() + СокрЛП(РезультатВыборкиФайлов.ИмяФайла); Письмо.Attachments.Add(ИмяФайла);//? КонецЦикла; Попытка Письмо.Display(); Исключение КонецПопытки; Попытка Outlook.visible = истина; Исключение КонецПопытки; КонецЕсли; КонецЕсли; КонецПроцедуры |
|||
1
Mebius777
07.03.17
✎
15:46
|
Выдает ошибку: Ошибка при вызове метода контекста (Add)
Письмо.Attachments.Add(ИмяФайла);//? по причине: Произошла исключительная ситуация (Microsoft Outlook): Невозможно найти файл. Проверьте правильность его пути и имени. |
|||
2
Mebius777
07.03.17
✎
15:48
|
Ошибку видите? Если открыть справочник с хранилищем, то файл можно открыть. Т.е. файл существует.
|
|||
3
mexanik_96
07.03.17
✎
15:49
|
контекст какой?
|
|||
4
mexanik_96
07.03.17
✎
15:50
|
в Add серьезно не поток байтов а путь к файлу? мне кажется он там бинарь ждет...
|
|||
5
Mebius777
07.03.17
✎
15:56
|
А разве идет не бинарь?
ИмяФайла = КаталогВременныхФайлов() + СокрЛП(РезультатВыборкиФайлов.ИмяФайла); Вот аналогичный код тоже отправляет бинарь: ИмяФайлаXls= (КаталогВременныхФайлов()+СтрЗаменить(Лев(ЭтаФорма.Заголовок, СтрДлина(ЭтаФорма.Заголовок)-1), ":", "")+".XLSX"); ИмяФайлаXls= СтрЗаменить(ИмяФайлаXls, "Проведен", ""); ИмяФайлаXls= СтрЗаменить(ИмяФайлаXls, """", ""); |
|||
6
mexanik_96
07.03.17
✎
15:58
|
(5) аналогичный код работает? контекст выполнения какой в (0)?
|
|||
7
mexanik_96
07.03.17
✎
16:01
|
https://msdn.microsoft.com/ru-ru/library/office/ff868540.aspx тут вот в сапмле вряд ли путь к файлу стрим байтов как я понял
|
|||
8
Mebius777
07.03.17
✎
16:04
|
Работает.
|
|||
9
Lexey_
07.03.17
✎
16:05
|
(0) СокрЛП(Строка(ЭтотОбъект.ВидЗадачи))=СокрЛП(Строка(Перечисления.ВидыСобытий.ЭлектронноеПисьмо)) вот это, конечно, сильно
|
|||
10
Mebius777
07.03.17
✎
16:05
|
Аналогичный код полностью рабочий.
|
|||
11
Lexey_
07.03.17
✎
16:06
|
(10) отладчик в руки и смотри
|
|||
12
Mebius777
07.03.17
✎
16:10
|
Я два замка в квартиру поставил. А у Вас один? Если дверь поменяю, то два замка пригодятся.
Смотрел отладчик виснит. Выдает ошибку. Елки-палки ерунда какая-то. Ничего не делал. Перезагрузил конфигуратор, выключил outlook. Не пересохранял. Работает. |
|||
13
Mebius777
07.03.17
✎
16:11
|
Перегрелся на солнышке.
|
|||
14
Mebius777
07.03.17
✎
16:13
|
Прав пользователя не хватало. Вот в чем причина с Com/ole работы.
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |