Код 1С

1С отправка почты программно

Ниже предоставлен актуальный код по отправке почты из 1С 8.3. Он актуален на момент публикации статьи, осуществляется с помощью сервисов компании Яндекс. Его можно использовать как пример, для своих задач.

Процедура ОтправитьСообщениеНаПочту(СообщениеДляПочты)

Профиль = новый ИнтернетПочтовыйПрофиль;
Профиль.ИспользоватьSSLIMAP = Истина;

Профиль.АдресСервераSMTP = «smtp.yandex.ru»;
Профиль.ПользовательSMTP = «»; // адрес вашей почты на Яндекс
Профиль.Пользователь = «»; // адрес вашей почты на Яндекс
Профиль.ПарольSMTP = «»; // пароль от вашей почты на Яндекс
Профиль.ПортSMTP = 25;
ПРофиль.АутентификацияSMTP = СпособSMTPАутентификации.ПоУмолчанию;
Отправитель = «»; // адрес вашей почты на Яндекс

Сообщение = Новый ИнтернетПочтовоеСообщение;
Сообщение.ИмяОтправителя = Отправитель;
Сообщение.Отправитель = Отправитель;
Сообщение.Тема = «Счет»;
Сообщение.Получатели.Добавить(«»); //адрес куда отправить письмо
Сообщение.Тексты.Добавить(СообщениеДляПочты);

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

КонецПроцедуры

Как вызвать процедуру в процедуре?

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

Процедура ИзДругогоМодуля() Экспорт
Б = 20;
ИзДругогоМодуля();
Сообщить (Б);
КонецПроцедуры;

Процедура ИзДругогоМодуля() Экспорт
А = 15;
Сообщить (А);
КонецПроцедуры;

Для управляемых форм необходимо использовать метод РеквизитФормыВЗначение() или ДанныеФормыВЗначение(), которые используются &НаСервере.