База знаний Одина — Одинэсника › Форумы › ODIN — Форум по 1С Предприятию › Как создать фоновую обработку для уведомления об окончании договора?
- В этой теме 1 ответ, 2 участника, последнее обновление 7 месяцев, 4 недели назад сделано
Odin — Одинэсник.
-
АвторСообщения
-
-
28 апреля 2025 в 22:45 #32441
пример фоновой обработки для отправки письма если скоро закончиться договор
-
28 апреля 2025 в 22:45 #32442
Привет, Vadym!
Вот пример фоновой обработки для отправки письма, если срок действия договора скоро истекает. В этом примере мы будем проверять все договоры в базе данных и отправлять уведомления за 30 дней до окончания срока действия.
1. Создайте новую обработку в конфигураторе 1С.
2. Добавьте в обработку следующий код:1C &НаСервере Процедура Выполнить(Параметры) // Устанавливаем дату, за сколько дней до окончания договора отправляем уведомление КоличествоДней = 30; ДатаПроверки = ТекущаяДата() + КоличествоДней; // Получаем выборку договоров, срок действия которых истекает Запрос = Новый Запрос; Запрос.Текст = " ВЫБРАТЬ Договоры.Ссылка, Договоры.ДатаОкончания, Договоры.Контрагент ИЗ Документ.Договоры КАК Договоры ГДЕ Договоры.ДатаОкончания = ТекущаяДата()"; Запрос.УстановитьПараметр("ДатаПроверки", ДатаПроверки); Выборка = Запрос.Выполнить().Выбрать(); // Перебираем найденные договоры и отправляем уведомления Пока Выборка.Следующий() Цикл ОтправитьУведомление(Выборка.Контрагент, Выборка.ДатаОкончания); КонецЦикла; КонецПроцедуры &НаСервере Процедура ОтправитьУведомление(Контрагент, ДатаОкончания) // Формируем текст письма Тема = "Уведомление о скором окончании договора"; Текст = "Уважаемый(ая) " + Контрагент.Наименование + ",n" + "Обращаем ваше внимание, что срок действия вашего договора истекает " + Формат(ДатаОкончания, "ДЛФ") + ".n" + "Пожалуйста, свяжитесь с нами для продления."; // Настройки почты Профиль = Новый ИнтернетПочтовыйПрофиль; Профиль.АдресСервераSMTP = "smtp.yandex.ru"; // Замените на ваш SMTP сервер Профиль.ПортSMTP = "465"; Профиль.ПользовательSMTP = "ВАШАПОЧТА@yandex.ru"; // Замените на вашу почту Профиль.ПарольSMTP = "ВАШПАРОЛЬ"; // Замените на ваш пароль Профиль.АутентификацияSMTP = СпособSMTPАутентификации.ПоУмолчанию; Профиль.ИспользоватьSSLSMTP = Истина; // Создаем почтовое сообщение ПочтовоеСообщение = Новый ИнтернетПочтовоеСообщение; ПочтовоеСообщение.Тема = Тема; ПочтовоеСообщение.ИмяОтправителя = "Ваша Компания"; ПочтовоеСообщение.Отправитель = Профиль.ПользовательSMTP; ПочтовоеСообщение.Получатели.Добавить(Контрагент.Email); // Предполагается, что у контрагента есть поле Email ПочтовоеСообщение.Тексты.Добавить(Текст, ТипТекстаПочтовогоСообщения.ПростойТекст); ПочтовоеСообщение.ОбработатьТексты(); // Отправляем письмо Почта = Новый ИнтернетПочта; Почта.Подключиться(Профиль); Почта.Послать(ПочтовоеСообщение); Почта.Отключиться(); КонецПроцедуры### Описание кода:
— В обработке мы создаем запрос для получения всех договоров, срок действия которых истекает в течение 30 дней.
— Для каждого найденного договора вызывается процедура `ОтправитьУведомление`, которая формирует и отправляет письмо контрагенту.
— Важно, чтобы у контрагента было поле `Email`, где хранится адрес электронной почты.### Настройка фоновой обработки:
— Не забудьте настроить расписание выполнения этой обработки, чтобы она запускалась, например, раз в день.Этот код можно адаптировать под ваши нужды, добавив дополнительные проверки или изменив текст уведомления.
-
-
АвторСообщения
- Для ответа в этой теме необходимо авторизоваться.