Приветствую, Форумчане!
1с8.3.6, самопис, БСП, УФ
Имеется регламентное задание, которе раз в сутки из регистра сведений отправляет адресатам СМС соощения:
Процедура ОтправитьСМССообщенияИзОчереди() Экспорт
Запрос = Новый Запрос(
"ВЫБРАТЬ
| СМСДляОтправления.Период КАК Период,
| СМСДляОтправления.Регистратор,
| СМСДляОтправления.Телефон,
| ВЫРАЗИТЬ(СМСДляОтправления.Сообщение КАК СТРОКА(500)) КАК Сообщение
|ИЗ
| РегистрСведений.СМСДляОтправления КАК СМСДляОтправления
|ГДЕ
| НЕ СМСДляОтправления.Телефон = """"
| И НЕ (ВЫРАЗИТЬ(СМСДляОтправления.Сообщение КАК СТРОКА(100))) = """"
| И НЕ СМСДляОтправления.Отправлено
|
|УПОРЯДОЧИТЬ ПО
| Период" );
Выборка = Запрос.Выполнить().Выбрать();
Пока Выборка.Следующий() Цикл
//Владимир 2019_06_19
НомераПолучателей = Новый Массив;
НомераПолучателей.Добавить(Выборка.Телефон);
ТекстСообщения = Выборка.Сообщение;
// отправка
РезультатОтправки = ОтправкаSMS.ОтправитьSMS(НомераПолучателей, ТекстСообщения);
// проверка доставки для первого получателя
Если РезультатОтправки.ОтправленныеСообщения.Количество() > 0 Тогда
ИдентификаторСообщения = РезультатОтправки.ОтправленныеСообщения[0].ИдентификаторСообщения;
КонецЕсли;
// вывод идентификаторов отправленных SMS
Для Каждого ОтправленноеСообщение Из РезультатОтправки.ОтправленныеСообщения Цикл
КомментарийОтправки = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(НСтр("ru = 'Номер: %1, ID: %2'"),
ОтправленноеСообщение.НомерПолучателя, ОтправленноеСообщение.ИдентификаторСообщения);
ЗаписьЖурналаРегистрации("ОповещениеОбОплатеКлиентов", УровеньЖурналаРегистрации.Информация,,, КомментарийОтправки);
КонецЦикла;
// вывод информации об ошибках в процессе отправки
Если НЕ ПустаяСтрока(РезультатОтправки.ОписаниеОшибки) Тогда
ЗаписьЖурналаРегистрации("ОповещениеОбОплатеКлиентов", УровеньЖурналаРегистрации.Ошибка,,, РезультатОтправки.ОписаниеОшибки);
Иначе
МенЗаписи = РегистрыСведений.СМСДляОтправления.СоздатьМенеджерЗаписи();
ЗаполнитьЗначенияСвойств( МенЗаписи, Выборка );
МенЗаписи.Отправлено = Истина;
МенЗаписи.Записать( Истина );
КонецЕсли;
КонецЦикла;
КонецПроцедуры
МенЗаписи = РегистрыСведений.СМСДляОтправления.СоздатьМенеджерЗаписи();
ЗаполнитьЗначенияСвойств( МенЗаписи, Выборка );
Украинский 1С форум: всё про 1С 8.3, 1С 8.2, 1С 8.1, 1С 8.0, 1С 7.7
https://pro1c.org.ua