Заказы на доработку 1С (сервис удаленной работы)

Хранилище

База знаний
Неназначенных незавершенных заказов: 5, свеженьких 1
Бесплатные отчеты, обработки, конфигурации, внешние компоненты для 1С Статьи, описание работы, методики по работе с 1С

Здравствуйте, гость ( Вход | Зарегистрироваться )

> Работа с Почтой в 1С 8 , пример отправки почты          
Vofka Подменю пользователя
сообщение 07.02.13, 13:42
Сообщение #1

У нас здесь своя атмосфера...
***********
Группа: Основатель
Сообщений: 13151
Из: Киев
Спасибо сказали: 3995 раз
Рейтинг: 3127.7

У разработчиков на платформе 1С иногда возникает задача по взаимодействию системы 1С: Предприятие с различными почтовыми программами и протоколами. 1С Предприятие 8 имеет довольно удобные средства для отправки сообщений, импорта писем из почтового клиента в справочник или другой объект конфигурации, работы с MAPI, SMTP или POP3.

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

объект "Почта" и объект "Интернет почта", каждый из объектов имеет свои достоинства.

Почта - предоставляет доступ к почте через встроенный почтовый клиент, работает по технологии MAPI.

Интернет почта - объект открывает возможности по доступу непосредственно к почтовым ящикам и учетным записям находящимися на почтовом сервере, использование и работа данного объекта не зависит от установленных в системе почтовых клиентов, даже если почтовый клиент установлен в системе "ИнтернетПочта" будет работать параллельно с ним, объект использует интернет-протоколы SMTP, POP3.

1.Получение сообщений объектом "Почта".

Для работы с объектом Почта необходимо наличие установленного на компьютере почтового клиента с описанными учетными записями.

Для подключения к почтовому клиенту у объекта есть метод "Подключиться".

Почта = Новый Почта;
Почта.Подключиться(,);


Первый параметр - имя профиля, к примеру, если в системе установлен MS Outlook, то как правило его профиль называется Outlook. Следовательно при подключении строка выглядела бы так:

Почта.Подключиться("Outlook");


Второй параметр отвечает за пароль к учетной записи.

Далее необходимо произвести выбор необходимых нам писем, для этой цели объект Почта имеет метод "Выбрать". У метода два параметра, первый отвечает за выбор непрочитанных писем - Истина (при Ложь будут выбраны все письма, находящиеся в папке "Входящие" почтового клиента), второй отвечает за выборку вложений, при Ложь, вложения выбираются.

//Выбираем все письма, со всеми вложениями.
Сообщения = Почта.Выбрать(Ложь,Ложь);


(иногда при взаимодействии с Outlook 2003 возникает проблема, при которой 1С 8 просто аварийно завершает работу с ошибкой, именно на данной строке кода, это лечится установкой пакета обновления SP2 для MS Office 2003).

Далее после выборки сообщений необходимо перебрать их в цикле и сохранить, на форме необходимо добавить ТабличноеПоле1 куда будут сохраняться входящие письма.

Для каждого Сообщение Из Сообщения Цикл
    //Добавляем строку в табличную часть
    СтрокаТП = ТабличноеПоле1.Добавить();

    // Перебираем коллекцию получателей сообщения
    Для каждого Получатель Из Письмо.Получатели Цикл
        Получатели = Получатели + Получатель.Пользователь + " <" + Получатель.Адрес + "> ";
    КонецЦикла;

    СтрокаТП.Кому = Получатели;
    Попытка
        СтрокаТП.ОтКого= Сообщение.Отправитель.Адрес;
    Исключение
        СтрокаТП.ОтКого= Сообщение.Отправитель;
    КонецПопытки;

    СтрокаТП.Тема = Сообщение.Тема;
    СтрокаТП.Текст = Сообщение.Текст;
    СтрокаТП.Дата = Сообщение.ДатаПолучения;

    // Перебираем вложения письма
    Для каждого Вложение Из Сообщение.Вложения Цикл
        Вложение.Данные.Записать(Вложение.Наименование);
        //Запоминаем имена вложение прикрепленных к данному письму, и сохраним в ТабличноеПоле1
        Влож=Влож+Вложение.Наименование+",";
    КонецЦикла;

    СтрокаТП.ПутьВложения=Влож;
КонецЦикла;

//отключение
Почта.Отключиться();


Все реквизиты входящих писем сохраняются в соответствующие поля табличного поля, вложения сохраняются в каталог временных файлов, а имена вложений в реквизит табличного поля. Для более удобного хранения вложений писем, 1С 8 имеет тип "Хранилище значения", который позволяет хранить двоичные данные, далее при получении сообщений объектом ИнтернетПочта рассмотрим возможность хранения в "Хранилище значения".

2.Отправка сообщений объектом "Почта"

При отправке сообщения, подключение к почтовому клиенту производится точно так же, как и при получении, перед отправкой необходимо подготовить письмо.

Сообщение = Новый ПочтовоеСообщение;
Сообщение.Текст = "текст сообщения";
Сообщение.Отправитель = "petya@pupkin.com";
Сообщение.Тема ="Тема сообщения";
Сообщение.Получатели.Добавить("vasya@pupkin.com");
Сообщение.Вложения.Добавить(Новый ДвоичныеДанные("C:\file.jpg"),"file.jpg");

Почта = Новый Почта;

//подключаемся без параметров, к клиенту установленному по умолчанию в системе
Почта.Подключиться(,);

Попытка
    //Пытаемся послать письмо
    Почта.Послать(Сообщение,Истина);
Исключение
    Сообщить(ОписаниеОшибки());
    Возврат;
КонецПопытки;

//отключение
Почта.Отключиться();


В методе Почта.Послать(Сообщение,Истина) два параметра, первый принимает ссылку на почтовое сообщение, второй параметр определяет, требуется ли запрос на подтверждение о получении письма адресатом (Истина - запрос включен). После этих операций письмо попадает в папку "Исходящие" почтового клиента, и в зависимости от настроек клиента отправляется сразу или по команде пользователя.

В MS Outlook встроена защита от несанкционированного доступа к адресной книге и базе почтовых сообщений, и защита от несанкционированной отправки электронных писем через службы Outlook. В Outlook 2003 система безопасности срабатывает не только при попытке получить адрес отправителя письма, но даже при попытке получить его текст. В действительности защита выражается в показываемом пользователю окне системы безопасности при обращении к некоторым объектам и свойствам объектов Outlook и предлагает открыть доступ на определенное время, следует разрешить доступ.



3.Получение сообщений объектом "ИнтернетПочта".

Перед подключением к почтовому серверу, для объекта ИнтернетПочта необходимо заполнить данные Профиля учетной записи, и затем передать эти данные в метод "Подключиться".

Функция ПолучитьПрофиль()

    Профиль = Новый ИнтернетПочтовыйПрофиль;

    // SMTP сервер
    Профиль.АдресСервераSMTP = "smtp.pupkin.com";

    // Порт SMTP сервера
    Профиль.ПортSMTP = 25;

    // POP3 сервер
    Профиль.АдресСервераPOP3 = "pop.pupkin.com";

    // Порт POP3 сервера
    Профиль.ПортPOP3 = 110;

    // Пароль к почтовому ящику
    Профиль.Пароль = "pass";

    // Пароль пользователя для SMTP сервера
    Профиль.ПарольSMTP = "pass";

    // Логин пользователя
    Профиль.Пользователь = "vasya";

    // Логин пользователя для SMTP сервера
    Профиль.ПользовательSMTP = "vasya";

    // Время ожидания выполнения операции в секундах

    Профиль.ВремяОжидания = 50;
    Возврат Профиль;

КонецФункции


Почта = Новый ИнтернетПочта;

Попытка
    Почта.Подключиться(ПолучитьПрофиль());
Исключение
    Сообщить(ОписаниеОшибки());
    Возврат;
КонецПопытки;

Заголовки=Почта.ПолучитьЗаголовки()
Если Заголовки.Количество()=0 Тогда
    Предупреждение("В почтовом ящике нет входящих сообщений!", ,"Нет сообщений");
КонецЕсли;

// Загрузка сообщений в массив
Сообщения = Почта.Выбрать(Истина,Заголовки);

Для каждого Сообщение Из Сообщения Цикл
    СтрокаТП = ТабличноеПолеИнтернетПочта.Добавить();
    СтрокаТП.Дата = Сообщение.ДатаОтправления;
    СтрокаТП.ОтКого = Сообщение.Отправитель.Пользователь + " <" + Сообщение.Отправитель.Адрес + "> ";
    СтрокаТП.Тема = Сообщение.Тема;

    // Перебираем получателей сообщения
    Для каждого Получатель Из Сообщение.Получатели Цикл
        КомуВходящие = КомуВходящие + Получатель.Пользователь + " <" + Получатель.Адрес + "> ";
    КонецЦикла;
    СтрокаТП.Кому = КомуВходящие;

    // Перебираем тексты сообщения
    Для каждого ТекстСообщения Из Сообщение.Тексты Цикл
        ТекстВходящие = ТекстВходящие + ТекстСообщения.Текст;
    КонецЦикла;
    СтрокаТП.Текст = ТекстВходящие;

    // Перебираем вложения письма
    Для каждого Вложение Из Сообщение.Вложения Цикл
        Вложение.Данные.Записать(Вложение.Name);
        СправочникВложения.РеквизитВложение = новый ХранилищеЗначения(Новый ДвоичныеДанные(Вложение.Name));
        СправочникВложения.ИмяВложения=Вложение.Name;
    КонецЦикла;
КонецЦикла;

// отключение
Почта.Отключиться();


Метод Почта.Выбрать(Истина,Заголовки); имеет два параметра, первый отвечает за удаление писем с сервера (при Истина-удалять), второй параметр отвечает за массив сообщений для выборки (т.е. закачки на компьютер клиента с сервера), если параметр пуст, то выбираются все сообщения находящиеся на сервере.

При переборе вложений, данные полученные из письма сохраняются в реквизит типа ХранилищеЗначения, заранее созданного справочника "СправочникВложения" в конфигураторе, т.к. данные первоначально сохраняются на диск, а затем загружаются в справочник, то, после загрузки в соответствующий реквизит справочника данные можно удалить. Не рекомендуется хранить данные типа ХранилищеЗначения в Табличных частях справочников, т.к. при больших объемах данных это затормаживает работу конфигурации.

4.Отправка сообщений объектом "ИнтернетПочта".

При отправке сообщения используется Функция ПолучитьПрофиль().

Почта = Новый ИнтернетПочта;
Попытка
    Почта.Подключиться(ПолучитьПрофиль());
Исключение
    Сообщить(ОписаниеОшибки());
    Возврат;
КонецПопытки;
Сообщение = Новый ИнтернетПочтовоеСообщение;

Сообщение.Вложения.Добавить(Новый ДвоичныеДанные("C:\file.jpg"),"file.jpg");

Сообщение.Отправитель = "vasya@pupkin.com";
Сообщение.ИмяОтправителя = "Вася";
ПочтовыеАдреса = Сообщение.Получатели;
ПочтовыйАдрес = ПочтовыеАдреса.Добавить();
ПочтовыйАдрес.Адрес = "petya@pupkin.com";
Сообщение.Тема ="Тема сообщения";

ИнтернетТекстПочтовогоСообщения = Сообщение.Тексты.Добавить();
ИнтернетТекстПочтовогоСообщения.Текст = "Текст сообщения";
ИнтернетТекстПочтовогоСообщения.ТипТекста = ТипТекстаПочтовогоСообщения.ПростойТекст;

Попытка
    // Пытаемся послать письмо
    Почта.Послать(Сообщение);
Исключение
    Сообщить(ОписаниеОшибки());
    Возврат;
КонецПопытки;
// отключение
Почта.Отключиться();


Удобно подключить автополучение/автоотправку почты командой "ПодключитьОбработчикОжидания(,)". Первый параметр в команде отвечает за наименование вызываемой процедуры, и второй, период ожидания процедуры в секундах, обычно обработчик ожидания вставляется в глобальный модуль системы (например, в процедуру ПриНачалеРаботыСистемы()) и указывает на процедуру с пометкой Экспорт.

Например, можно создать процедуру ПроверитьПочту, в которую вставить загрузку писем из почтового ящика и вставить ее в следующую строку:

ПодключитьОбработчикОжидания("ПроверитьПочту",60)

Также для обработки и просмотра сообщений в формате HTML удобно пользоваться компонентом "Поле HTML документа", для загрузки HTML текста в компонент используется метод ПолеHTMLдокумента.УстановитьТекст(Html), где Html-это документа полученный из текста сообщения. Есть вариант загрузки HTML с диска (если это вложение), ПолеHTMLдокумента.Перейти("file:\\C:\File.html").

После использования нескольких или сразу всех способов работы с электронной почтой, образуется полноценный почтовый клиент с возможностью хранения и обработки писем с вложениями на базе 1С предприятие 8.

Сообщение отредактировал Vofka - 27.01.14, 14:22

kosalex Подменю пользователя
сообщение 09.07.13, 14:23
Сообщение #2

Ветеран
*******
Группа: Пользователи
Сообщений: 804
Спасибо сказали: 10 раз
Рейтинг: 10.9

написать процедуру отправки сообщения в общем модуле можно?
Пишу так:
Процедура УведомлениеПоПочте()  ЭКСПОРТ
Сообщение = Новый ПочтовоеСообщение;
Сообщение.Текст = "У Вас есть новая задача!";
Сообщение.Отправитель = "1С Документооборот";
Сообщение.Тема ="Новая задача!";
Сообщение.Получатели.Добавить("kos.dn@mail.ru");
//Сообщение.Вложения.Добавить(Новый ДвоичныеДанные("C:\file.jpg"),"file.jpg");

Почта = Новый Почта;

//подключаемся без параметров, к клиенту установленному по умолчанию в системе
Почта.Подключиться(,);

Попытка
    //Пытаемся послать письмо
    Почта.Послать(Сообщение,Истина);
Исключение
    Сообщить(ОписаниеОшибки());
    Возврат;
КонецПопытки;

//отключение
Почта.Отключиться();
КонецПроцедуры


Ошибка:
{ОбщийМодуль.ОповещениеПользователей.Модуль(33,19)}: Тип не определен (ПочтовоеСообщение)
Сообщение = Новый <<?>>ПочтовоеСообщение; (Проверка: Сервер)
{ОбщийМодуль.ОповещениеПользователей.Модуль(40,15)}: Тип не определен (Почта)
Почта = Новый <<?>>Почта; (Проверка: Сервер)

Vofka Подменю пользователя
сообщение 09.07.13, 14:30
Сообщение #3

У нас здесь своя атмосфера...
***********
Группа: Основатель
Сообщений: 13151
Из: Киев
Спасибо сказали: 3995 раз
Рейтинг: 3127.7

kosalex, вы опять, наверно, хотите набить 30 постов, прежде чем скажете, что пишите это в серверном модуле и выяснится, что там это писать нельзя.

logist Подменю пользователя
сообщение 09.07.13, 14:32
Сообщение #4

Про1С-ник
Иконка группы
Квалифицированный бухгалтерГений телепатии и социального моделированияЗа заслуги на форуме в 2010 годуМодератору Про1С (за заслуги в 2011 году)
Группа: Mecтный
Сообщений: 9334
Из: Харьков
Спасибо сказали: 2460 раз
Рейтинг: 0

Цитата(kosalex @ 09.07.13, 15:23) *
(Проверка: Сервер)

Ни о чем не говорит? У модуля должно быть свойство "Клиент".
Вы синтаксис-помощник хоть раз открывали?

ПочтовоеСообщение и Почта в управляемом работают только на клиенте.


Signature
Весь комплекс услуг по 1С 8.х. От консультаций до внедрения. ИТС. 1С-Звіт. Интеграция IP-телефонии. Написание конфигураций под требования заказчика, доработка типовых решений. Переход с 7.7 на 8.х.
Пишите в ЛС. Звоните +380 (44) 2227507, (57) 7547700, (98) 5147778, (50) 7147778, (93) 2147778 (участник "САБ")

kosalex Подменю пользователя
сообщение 09.07.13, 14:36
Сообщение #5

Ветеран
*******
Группа: Пользователи
Сообщений: 804
Спасибо сказали: 10 раз
Рейтинг: 10.9

говорит.

я не такой великий спец в 1С как Вы.

в синтаксис помощник смотрю.


logist Подменю пользователя
сообщение 09.07.13, 14:45
Сообщение #6

Про1С-ник
Иконка группы
Квалифицированный бухгалтерГений телепатии и социального моделированияЗа заслуги на форуме в 2010 годуМодератору Про1С (за заслуги в 2011 году)
Группа: Mecтный
Сообщений: 9334
Из: Харьков
Спасибо сказали: 2460 раз
Рейтинг: 0

Цитата(kosalex @ 09.07.13, 15:36) *
я не такой великий спец в 1С как Вы.

Я не такой великий как кажется.
Просто для себя усвойте - получили ошибку, смотрим в помощник, если все сделали правильно а не работает тогда уже кричим help на форуме. Это не потому, что тут кому-то лень отвечать, это для Вас лучше - быстрее научитесь анализировать самостоятельно.


Signature
Весь комплекс услуг по 1С 8.х. От консультаций до внедрения. ИТС. 1С-Звіт. Интеграция IP-телефонии. Написание конфигураций под требования заказчика, доработка типовых решений. Переход с 7.7 на 8.х.
Пишите в ЛС. Звоните +380 (44) 2227507, (57) 7547700, (98) 5147778, (50) 7147778, (93) 2147778 (участник "САБ")

kosalex Подменю пользователя
сообщение 09.07.13, 14:54
Сообщение #7

Ветеран
*******
Группа: Пользователи
Сообщений: 804
Спасибо сказали: 10 раз
Рейтинг: 10.9

вот у меня вроде ошибки нет, а не работает. письмо на почту не приходит.


Функция ПолучитьПрофиль()

    Профиль = Новый ИнтернетПочтовыйПрофиль;

    // SMTP сервер
    Профиль.АдресСервераSMTP = "smtp.mail.ru";

    // Порт SMTP сервера
    Профиль.ПортSMTP = 25;

    // POP3 сервер
    Профиль.АдресСервераPOP3 = "pop.mail.ru";

    // Порт POP3 сервера
    Профиль.ПортPOP3 = 110;

    // Пароль к почтовому ящику
    Профиль.Пароль = "******";

    // Пароль пользователя для SMTP сервера
    Профиль.ПарольSMTP = "******";

    // Логин пользователя
    Профиль.Пользователь = "kos.dn";

    // Логин пользователя для SMTP сервера
    Профиль.ПользовательSMTP = "kos.dn";

    // Время ожидания выполнения операции в секундах

    Профиль.ВремяОжидания = 50;
    Возврат Профиль;

КонецФункции


Процедура УведомлениеПоПочте()  ЭКСПОРТ
Почта = Новый ИнтернетПочта;
Попытка
    Почта.Подключиться(ПолучитьПрофиль());
Исключение
    Сообщить(ОписаниеОшибки());
    Возврат;
КонецПопытки;
Сообщение = Новый ИнтернетПочтовоеСообщение;

//Сообщение.Вложения.Добавить(Новый ДвоичныеДанные("C:\file.jpg"),"file.jpg");

Сообщение.Отправитель = "1С Документооборот";
//Сообщение.ИмяОтправителя = "Вася";
ПочтовыеАдреса = Сообщение.Получатели;
ПочтовыйАдрес = ПочтовыеАдреса.Добавить();
ПочтовыйАдрес.Адрес = "kos.dn@mail.ru";
Сообщение.Тема ="Новая задача!";

ИнтернетТекстПочтовогоСообщения = Сообщение.Тексты.Добавить();
ИнтернетТекстПочтовогоСообщения.Текст = "У Вас есть новая задача!";
ИнтернетТекстПочтовогоСообщения.ТипТекста = ТипТекстаПочтовогоСообщения.ПростойТекст;

Попытка
    // Пытаемся послать письмо
    Почта.Послать(Сообщение);
Исключение
    Сообщить(ОписаниеОшибки());
    Возврат;
КонецПопытки;
// отключение
Почта.Отключиться();
КонецПроцедуры



Срабатывает ИСКЛЮЧЕНИЕ, но ничего не выводиться. Вот как понять что к чему?

logist Подменю пользователя
сообщение 09.07.13, 15:14
Сообщение #8

Про1С-ник
Иконка группы
Квалифицированный бухгалтерГений телепатии и социального моделированияЗа заслуги на форуме в 2010 годуМодератору Про1С (за заслуги в 2011 году)
Группа: Mecтный
Сообщений: 9334
Из: Харьков
Спасибо сказали: 2460 раз
Рейтинг: 0

Цитата(kosalex @ 09.07.13, 15:54) *
но ничего не выводиться

Так не бывает.

Если ошибка программная, то она может быть в Журнале регистрации. Либо
Сообщить(ОписаниеОшибки());

Заменить на
ОбщегоНазначенияКлиентСервер.СообщитьПользователю(ОписаниеОшибки());


Signature
Весь комплекс услуг по 1С 8.х. От консультаций до внедрения. ИТС. 1С-Звіт. Интеграция IP-телефонии. Написание конфигураций под требования заказчика, доработка типовых решений. Переход с 7.7 на 8.х.
Пишите в ЛС. Звоните +380 (44) 2227507, (57) 7547700, (98) 5147778, (50) 7147778, (93) 2147778 (участник "САБ")

kosalex Подменю пользователя
сообщение 10.07.13, 7:21
Сообщение #9

Ветеран
*******
Группа: Пользователи
Сообщений: 804
Спасибо сказали: 10 раз
Рейтинг: 10.9

Доброе утро.

Ошибка:
{ОбщийМодуль.УведомитьПоПочте.Модуль(40)}: Ошибка при вызове метода контекста (Подключиться): Ошибка при попытке соединения с сервером "smtp.mail.ru:25" (10065)

В функции ПолучитьПрофиль() все данные по моему введены корректно. Что то не дописал или переписал?)

logist Подменю пользователя
сообщение 10.07.13, 8:30
Сообщение #10

Про1С-ник
Иконка группы
Квалифицированный бухгалтерГений телепатии и социального моделированияЗа заслуги на форуме в 2010 годуМодератору Про1С (за заслуги в 2011 году)
Группа: Mecтный
Сообщений: 9334
Из: Харьков
Спасибо сказали: 2460 раз
Рейтинг: 0

Цитата(kosalex @ 10.07.13, 8:21) *
Ошибка при попытке соединения с сервером "smtp.mail.ru:25" (10065)

Где-то нет возможности соединения, 1С возможно не причем, брандмауэры и т.п. Хотя может быть еще проблема с SMTP аутентификацией (см. ИнтернетПочтовыйПрофиль.АутентификацияSMTP)


Signature
Весь комплекс услуг по 1С 8.х. От консультаций до внедрения. ИТС. 1С-Звіт. Интеграция IP-телефонии. Написание конфигураций под требования заказчика, доработка типовых решений. Переход с 7.7 на 8.х.
Пишите в ЛС. Звоните +380 (44) 2227507, (57) 7547700, (98) 5147778, (50) 7147778, (93) 2147778 (участник "САБ")

kosalex Подменю пользователя
сообщение 10.07.13, 11:40
Сообщение #11

Ветеран
*******
Группа: Пользователи
Сообщений: 804
Спасибо сказали: 10 раз
Рейтинг: 10.9

Подумал,поискал, и нашёл страндартный общий модуль в типовой конф Документооборот в котором уже реализовано отправления сообщения.

Код:
Функция ОтправитьСообщение(знач УчетнаяЗапись, знач ПараметрыПисьма) Экспорт
    
    Возврат ЭлектроннаяПочта.ОтправитьПочтовоеСообщение(УчетнаяЗапись, ПараметрыПисьма);
    
КонецФункции


Функция ОтправитьПочтовоеСообщение(знач УчетнаяЗапись,
                                   знач ПараметрыПисьма) Экспорт
    
    Если ТипЗнч(УчетнаяЗапись) <> Тип("СправочникСсылка.УчетныеЗаписиЭлектроннойПочты")
       ИЛИ НЕ ЗначениеЗаполнено(УчетнаяЗапись) Тогда
        ВызватьИсключение НСтр("ru = 'Учетная запись не заполнена или заполнена не правильно'");
    КонецЕсли;
    
    Если ПараметрыПисьма = Неопределено Тогда
        ВызватьИсключение НСтр("ru = 'Не заданы параметры отправки.'");
    КонецЕсли;
    
    Кому = "";
    Если ПараметрыПисьма.Свойство("Кому", Кому) Тогда
        Если ТипЗнч(Кому) = Тип("Строка") Тогда
            ПараметрыПисьма.Кому = ОбщегоНазначенияКлиентСервер.РазобратьСтрокуСПочтовымиАдресами(Кому);
        КонецЕсли;
    Иначе
        ВызватьИсключение НСтр("ru = 'Не указан ни один получатель письма.'");
    КонецЕсли;
    
    Копии = "";
    Если ПараметрыПисьма.Свойство("Копии", Копии) Тогда
        Если ТипЗнч(Копии) = Тип("Строка") Тогда
            ПараметрыПисьма.Копии = ОбщегоНазначенияКлиентСервер.РазобратьСтрокуСПочтовымиАдресами(Копии);
        КонецЕсли;
    КонецЕсли;
    
    СлепыеКопии = "";
    Если ПараметрыПисьма.Свойство("СлепыеКопии", СлепыеКопии) Тогда
        Если ТипЗнч(СлепыеКопии) = Тип("Строка") Тогда
            ПараметрыПисьма.СлепыеКопии = ОбщегоНазначенияКлиентСервер.РазобратьСтрокуСПочтовымиАдресами(СлепыеКопии);
        КонецЕсли;
    КонецЕсли;
    
    АдресОтвета = Неопределено;
    
    // проверяем правильную заполненность АдресаОтвета
    Если ПараметрыПисьма.Свойство("АдресОтвета", АдресОтвета) Тогда
        ПараметрыПисьма.АдресОтвета = ОбщегоНазначенияКлиентСервер.РазобратьСтрокуСПочтовымиАдресами(АдресОтвета);
    КонецЕсли;
    
    Вложения = Неопределено;
    
    Если ПараметрыПисьма.Свойство("Вложения", Вложения) Тогда
        Для Каждого Вложение Из Вложения Цикл
            Если ТипЗнч(Вложение.Значение) = Тип("Строка") Тогда
                Если ЭтоАдресВременногоХранилища(Вложение.Значение) Тогда
                    Вложения.Вставить(Вложение.Ключ, ПолучитьИзВременногоХранилища(Вложение.Значение));
                КонецЕсли;
            КонецЕсли;
        КонецЦикла;
        ПараметрыПисьма.Вложения = Вложения;
    КонецЕсли;
    
    Возврат ОтправитьСообщение(УчетнаяЗапись, ПараметрыПисьма);
    
КонецФункции



Как в функцию ОтправитьСообщение передать значения параметров учётная запись?
Задача моя следующая, при формировании какого нибудь БП уведомлять пользователя по электронке,для которого была сформирована задача.

Vofka Подменю пользователя
сообщение 10.07.13, 11:48
Сообщение #12

У нас здесь своя атмосфера...
***********
Группа: Основатель
Сообщений: 13151
Из: Киев
Спасибо сказали: 3995 раз
Рейтинг: 3127.7

kosalex, если вопросов по конкретно этой теме нету - создавайте новую тему и там спрашивайте!

Trintintin Подменю пользователя
сообщение 03.09.19, 9:53
Сообщение #13

Общительный
**
Группа: Пользователи
Сообщений: 45
Спасибо сказали: 28 раз
Рейтинг: 28.3

А как именно imap позволяет обмениваться исходящими сообщениями?
т.е. какая должна быть команда?
imap хавает только последнее отправленное сообщение или он синхронизирует все, что было уже отправлено? (где он тогда видит, что уже было отправлено)...
Есть ли команды, которые позволяют просмотреть, прошел ли обмен? Прошла ли синхронизация?
Конкретно сейчас грабли с [необходимо зарегистрироваться для просмотра ссылки] . Знаю, что оногда поддержку imap необходимо отдельно включаться. Где включать - не нашел...
Спасибо!

Trintintin Подменю пользователя
сообщение 03.09.19, 12:29
Сообщение #14

Общительный
**
Группа: Пользователи
Сообщений: 45
Спасибо сказали: 28 раз
Рейтинг: 28.3

Разобрались:
Почта = Новый ИнтернетПочта;
Почта.Послать(... , ...., ПротоколИнтернетПочты.IMAP); // отаке мусить бути...


Сообщение отредактировал Vofka - 03.09.19, 13:04

Спасибо сказали: Vofka,

Не нашли ответа на свой вопрос?
Зарегистрируйтесь и задайте новый вопрос.


Ответить Новая тема
2 чел. читают эту тему (гостей: 2, скрытых пользователей: 0)
Пользователей: 0

 

RSS Текстовая версия Сейчас: 22.11.19, 18:02
1С Предприятие 8.3, 1С Предприятие 8.2, 1С Предприятие 8.1, 1С Предприятие 8.0, 1С Предприятие 7.7, Литература 1С, Общие вопросы по администрированию 1С, Методическая поддержка 1С - всё в одном месте: на Украинском 1С форуме!