Форум 1С
Программистам, бухгалтерам, администраторам, пользователям
Задай вопрос - получи решение проблемы
14 дек 2024, 10:53

Рассылка писем на почту в определенное время

Автор shadow1337, 17 окт 2019, 20:49

0 Пользователей и 1 гость просматривают эту тему.

shadow1337

У меня есть внешняя обработка, на которой есть кнопка. При нажатии на кнопку "Кнопка1", в регистр ОчередьРегистр с помощью процедуры ПоставитьПисьмоВОчередьНаОтправку заносится информация о том, на какие почтовые адреса должно быть отправлено письмо. И в итоге из самой 1С я отправляю письмо нажатием определенной клавиши. А мне нужно сделать, чтобы письмо рассылалось само каждую пятницу в 08:00. Как я могу это сделать?

Моя внешняя обработка:

&НаСервере
Процедура ОтправкаНапоминаний()
    Получатели = Справочники.Параметры.НайтиПоНаименованию("ПолучателиПланаПроизводства").Строка;
    ТемаПисьма = "НАПОМИНАНИЕ! Сумма плана производства";
    ТекстПисьма = "В течение 3 часов необходимо предоставить Кузнецовой ВМ актуальную информацию по сумме плана производства на ближайшие 4 месяца для формирования отчета ""Загрузка производства СЭТЗ"".";
    РаботаСПочтой.ПоставитьПисьмоВОчередьНаОтправку(Получатели, ТемаПисьма, ТекстПисьма);   
КонецПроцедуры


&НаКлиенте
Процедура Команда1(Команда)

    ОтправкаНапоминаний();

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

LexaK

самое очевидное: Сделайте регламентное задание! (внешнюю обработку тоже можно оформить как Регламентное задание)
У РегЗад есть настройка расписания, настраиваете и все!
если помогло нажмите: Спасибо!

shadow1337

У меня есть регламентное задание "ОтправкаНапоминаний" со следующими свойствами:
http://ipic.su/img/img7/fs/Skrinshot(19.1571433135.jpg

Код самого регламентного задания представлен ниже. Суть в том, что это регламентное задание вызывает метод "ПоставитьПисьмоВОчередьНаОтправку", который записывает в регистр запись об отправке почты, а уже из пользовательского режима нажатием нужной клавиши можно отправить сообщение.

Процедура ОтправкаНапоминаний() Экспорт

Получатели = Справочники.Параметры.НайтиПоНаименованию("ПолучателиПланаПроизводства").Строка;
ТемаПисьма = "НАПОМИНАНИЕ! Сумма плана производства";
ТекстПисьма = "В течение 3 часов необходимо предоставить Кузнецовой ВМ актуальную информацию по сумме плана производства на ближайшие 4 месяца для формирования отчета ""Загрузка производства СЭТЗ"".";
    РаботаСПочтой.ПоставитьПисьмоВОчередьНаОтправку(Получатели, ТемаПисьма, ТекстПисьма);
   

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


Собственно в чем проблема: регламентное задание не работает и непонятно для меня почему. Если я делаю внешнюю обработку, которая вызывает соответственный метод, то записать происходит единоразово, т.е. все работает. Но делать такие записи каждые 3 секунды (к примеру) у меня не получается. Что я делаю не так?

Chgdz

Цитата: shadow1337 от 19 окт 2019, 00:16
У меня есть регламентное задание "ОтправкаНапоминаний" со следующими свойствами:
http://ipic.su/img/img7/fs/Skrinshot(19.1571433135.jpg

Код самого регламентного задания представлен ниже. Суть в том, что это регламентное задание вызывает метод "ПоставитьПисьмоВОчередьНаОтправку", который записывает в регистр запись об отправке почты, а уже из пользовательского режима нажатием нужной клавиши можно отправить сообщение.

Процедура ОтправкаНапоминаний() Экспорт

Получатели = Справочники.Параметры.НайтиПоНаименованию("ПолучателиПланаПроизводства").Строка;
ТемаПисьма = "НАПОМИНАНИЕ! Сумма плана производства";
ТекстПисьма = "В течение 3 часов необходимо предоставить Кузнецовой ВМ актуальную информацию по сумме плана производства на ближайшие 4 месяца для формирования отчета ""Загрузка производства СЭТЗ"".";
    РаботаСПочтой.ПоставитьПисьмоВОчередьНаОтправку(Получатели, ТемаПисьма, ТекстПисьма);
   

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


Собственно в чем проблема: регламентное задание не работает и непонятно для меня почему. Если я делаю внешнюю обработку, которая вызывает соответственный метод, то записать происходит единоразово, т.е. все работает. Но делать такие записи каждые 3 секунды (к примеру) у меня не получается. Что я делаю не так?

Вот моё из подписки, но в принципе вы можете под рег задание сделать, всё работает как часики

Процедура _ПередЗапФизЛицаПередЗаписью(Источник, Отказ) Экспорт
Если Не РольДоступна("_ИзменениеСправочникаФизЛица") Тогда
        Отказ = Истина;


Профиль = Новый ИнтернетПочтовыйПрофиль;
Профиль.АдресСервераSMTP = "smtp.mail.ru";
Профиль.ПортSMTP = 465;
Профиль.Пользователь = "******";
Профиль.Пароль = "*******";
Профиль.ПользовательSMTP = "********";
Профиль.ПарольSMTP = "**********";
Профиль.АутентификацияSMTP = СпособSMTPАутентификации.ПоУмолчанию;
Профиль.ИспользоватьSSLSMTP = Истина;


Почта = Новый ИнтернетПочта;
Письмо = Новый ИнтернетПочтовоеСообщение;
Текст = Письмо.Тексты.Добавить("Попытка изменения справочника физических лиц пользователем.");
Текст.ТипТекста = ТипТекстаПочтовогоСообщения.ПростойТекст;
Письмо.Тема = "Предупреждение 1С Управление Торговлей";
Письмо.Отправитель = "********";
Письмо.ИмяОтправителя = ПользователиИнформационнойБазы.ТекущийПользователь();
Письмо.Получатели.Добавить("*********");


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


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

КонецЕсли;

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

Ну и правильно настройте само задание, в недельном оставьте только пятницу и дневном Время начала Время окончания, Повторять через 0 секунд

Теги:

Похожие темы (5)

Рейтинг@Mail.ru

Поиск