Автоматическое удаление данных из РегистраСведений после успешной отправки письма!
Добрый день!
1С 8.2; УПП 1.3; Режим:серверный.
Есть документ с вкладкой согласования, после согласования(сохранения или записи документа) данные поступают в РегистрСведений, из регистра происходит отправка письма на почту следующему согласованту.
От меня требуют автоматически удалять или очищать данные из регистра после успешной отправки письма.
Подскажите как это прописать в коде?
p.s. Ниже представлен код из модуля объекта документа и изображение регистра.
1С 8.2; УПП 1.3; Режим:серверный.
Есть документ с вкладкой согласования, после согласования(сохранения или записи документа) данные поступают в РегистрСведений, из регистра происходит отправка письма на почту следующему согласованту.
От меня требуют автоматически удалять или очищать данные из регистра после успешной отправки письма.
Подскажите как это прописать в коде?
p.s. Ниже представлен код из модуля объекта документа и изображение регистра.
Процедура ОбработкаПроведения (Отказ,РежимПроведения)
МенеджерЗаписи = РегистрыСведений.ОтправкаУведомлений.СоздатьМенеджерЗаписи();
МенеджерЗаписи.Период = ТекущаяДата();
МенеджерЗаписи.Почта = ТекущийСогласовант;
МенеджерЗаписи.ТемаПисьма = "Согласование ""Акта простоя оборудования""";
МенеджерЗаписи.ТекстПисьма = "Вам назначено согласование документа ""Акт простоя оборудования""";
МенеджерЗаписи.Записать(Ложь);
Сообщить("Я добавил новое значение в регистр");
КонецПроцедуры;
ПоказатьПрикрепленные файлы:


Ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
(3) Отправка писем происходить через ОбщийМодуль ОтправкаПочты, а именно ОтправкаПочты.ОтправкаПисьма. Вот что в нем хранится, здесь нужно прописывать на удаление после отправки из регистра или нет?
Функция РазбитьСтроку(ИсходнаяСтрока,Разделитель) //Переводит строку в массив по разделителю
Рез = Новый Массив;
Строки = СтрЗаменить(ИсходнаяСтрока,Разделитель,Символы.ПС);
Для Ном = 1 По СтрЧислоСтрок(Строки) Цикл
Рез.Добавить(СокрЛП(СтрПолучитьСтроку(Строки,Ном)));
КонецЦикла;
Возврат Рез;
КонецФункции
[1C-CODE]
[1C-CODE]
Процедура ОтправкаПисьма(Строка,Почты, Тема, Вложение) Экспорт
Почта = Новый ИнтернетПочта;
Попытка
Почта.Подключиться(ПолучитьПрофиль());
Исключение
Сообщить(ОписаниеОшибки());
Возврат;
КонецПопытки;
МойАдрес = "1crobot@damar.com"; // адрес отправителя
Сообщение = Новый ИнтернетПочтовоеСообщение;
Сообщение.Отправитель = МойАдрес;
Сообщение.ИмяОтправителя = "АвтоПисьмо";
ПочтовыеАдреса = Сообщение.Получатели;
ПочтовыйАдрес = ПочтовыеАдреса.Добавить();
Сообщение.Тема = Тема;
МассивАдресов=РазбитьСтроку(Почты,",");
ИнтернетТекстПочтовогоСообщения = Сообщение.Тексты.Добавить();
ИнтернетТекстПочтовогоСообщения.Текст = Строка;
ИнтернетТекстПочтовогоСообщения.ТипТекста = ТипТекстаПочтовогоСообщения.ПростойТекст;
Для каждого Элемент из МассивАдресов цикл
ПочтовыйАдрес.Адрес =Элемент;
Попытка
// Пытаемся послать письмо
Почта.Послать(Сообщение);
Сообщить("Письмо отправлено на почту: "+Элемент);
Исключение
Сообщить("Письмо на почту с адресом """ +Элемент+""" не отправлено по причине:");
Сообщить(ОписаниеОшибки());
Возврат;
КонецПопытки;
КонецЦикла;
// отключение
Почта.Отключиться();
КонецПроцедуры
[1C-CODE]
[1C-CODE]
Функция ПолучитьПрофиль()
МойАдрес = "1crobot@damar.com"; // адрес отправителя
// Время ожидания выполнения операции в секундах
Профиль = Новый ИнтернетПочтовыйПрофиль;
Профиль.АдресСервераSMTP = "mail.damar.ru";
Профиль.Пользователь = МойАдрес;
Профиль.ИспользоватьSSLIMAP = Истина;
Профиль.ВремяОжидания = 50;
Возврат Профиль;
КонецФункции
Показать
(5) А где нужно прописать в процедуре ОтправкаПисьма или нужно создать новую процедуру/функцию. И я так поняла нужно прописать вот это или нет?
Пока Выборка.Следующий() Цикл
МенеджерЗаписи = Выборка.ПолучитьМенеджерЗаписи();
МенеджерЗаписи.Прочитать();
МенеджерЗаписи.Период = ТекущаяДата();
МенеджерЗаписи.Почта = ТекущийСогласовант;
МенеджерЗаписи.ТемаПисьма = "Согласование ""Акта простоя оборудования""";
МенеджерЗаписи.ТекстПисьма = "Вам назначенно согласование документа ""Акт простоя обрудования""";
МенеджерЗаписи.Записать();
МенеджерЗаписи.Удалить();
КонецЦикла;
ПоказатьВалюта = Справочники.Валюты.НайтиПоНаименованию("EUR");
Отбор = Новый Структура("Валюта");
Отбор.Валюта = Валюта;
Выборка = РегистрыСведений.КурсыВалют.Выбрать(,,Отбор);
Пока Выборка.Следующий() Цикл
МенеджерЗаписи = Выборка.ПолучитьМенеджерЗаписи();
МенеджерЗаписи.Прочитать();
//Изменить существующую запись
МенеджерЗаписи.Валюта = Валюта;
МенеджерЗаписи.Период = ТекущаяДата();
МенеджерЗаписи.Курс = 10.00;
МенеджерЗаписи.Записать();
//Удалить существующую запись
МенеджерЗаписи.Удалить();
КонецЦикла;
Показать
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот