Далее необходимо создать внешнюю обработку, загрузить в базу Итилиум и установить расписание выполнения.
Обработка находит сформированные уведомления, обрабатывает их, при успешном отправлении смс устанавливает признак отправления.
В коде обработки необходимо указать порт подключенного модема/телефона к серверу (Панель управления -> Телефон и модем -> Модемы).
А так же путь к распакованной программе cmd2phone (ссылка в конце статьи).
Функция ОтправитьУведомления() Экспорт
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
| СообщенияИУведомления.Документ.Ответственный КАК ДокументОтветственный,
| КонтактнаяИнформация.Представление КАК НомерТелефона,
| СообщенияИУведомления.Заголовок КАК Заголовок,
| СообщенияИУведомления.Текст КАК Текст,
| СообщенияИУведомления.Документ КАК Документ,
| СообщенияИУведомления.ДатаРегистрации КАК ДатаРегистрации
|ИЗ
| РегистрСведений.СообщенияИУведомления КАК СообщенияИУведомления
| ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.КонтактнаяИнформация КАК КонтактнаяИнформация
| ПО СообщенияИУведомления.Документ.Ответственный.ФизЛицо = КонтактнаяИнформация.Объект
|ГДЕ
| НЕ СообщенияИУведомления.Отправлено
| И СообщенияИУведомления.Заголовок ПОДОБНО ""%#sms#%""
| И КонтактнаяИнформация.Тип = &Тип
| И КонтактнаяИнформация.Вид = &Вид";
Запрос.УстановитьПараметр("Вид", Справочники.ВидыКонтактнойИнформации.НайтиПоКоду("000000001")); // Вид: Мобильный телефон
Запрос.УстановитьПараметр("Тип", Перечисления.ТипыКонтактнойИнформации.Телефон);
РезультатЗапроса = Запрос.Выполнить();
ВыборкаДетальныеЗаписи = РезультатЗапроса.Выбрать();
Пока ВыборкаДетальныеЗаписи.Следующий() Цикл
НомерТелефона = ВыборкаДетальныеЗаписи.НомерТелефона;
ЗаписьРС = РегистрыСведений.СообщенияИУведомления.СоздатьНаборЗаписей();
ЗаписьРС.Отбор.Документ.Установить(ВыборкаДетальныеЗаписи.Документ);
ЗаписьРС.Прочитать();
Для Счетчик = 0 По ЗаписьРС.Количество() - 1 Цикл
Если ЗаписьРС[Счетчик].ДатаРегистрации = ВыборкаДетальныеЗаписи.ДатаРегистрации И
ЗаписьРС[Счетчик].ТипПисьма = Перечисления.ТипОтправляемогоСообщения.МобильныйТелефон И
СтрНайти(ЗаписьРС[Счетчик].Заголовок, "#sms#") <> 0 И
НЕ ЗаписьРС[Счетчик].Отправлено Тогда
ЗаписьРС[Счетчик].Отправлено = Истина;
ЗаписьРС[Счетчик].Получатель = Строка(ВыборкаДетальныеЗаписи.ДокументОтветственный) + ", " + Строка(НомерТелефона);
Если СтрНачинаетсяС(НомерТелефона,"9") И СтрДлина(НомерТелефона) = 10 Тогда
ТекстСообщения = ЗаписьРС[Счетчик].Текст;
Если ОтправитьСМС(ТекстСообщения,НомерТелефона) Тогда
ЗаписьРС[Счетчик].Статус = "[" + ТекущаяДата() + "] " + "Сообщение отправлено. (Обработка отправки смс)";
Иначе
ЗаписьРС[Счетчик].Статус = "[" + ТекущаяДата() + "] " + "Ошибка модема. Сообщение не отправлено. (Обработка отправки смс)";
ЗаписьРС[Счетчик].Отправлено = Ложь;
КонецЕсли;
Иначе
ЗаписьРС[Счетчик].Статус = "[" + ТекущаяДата() + "] " + "Неверный формат номера. Сообщение не отправлено. (Обработка отправки смс)";
КонецЕсли;
ЗаписьРС.Записать();
КонецЕсли;
КонецЦикла;
КонецЦикла;
КонецФункции
Функция ОтправитьСМС(Текст,НомерТелефона) Экспорт
ИмяФайла = ИспользуемоеИмяФайла;
Ф = Новый Файл(ИспользуемоеИмяФайла);
ТекКаталог = Ф.Путь;
КодВозврата = 0;
//Вместо "C:\CMD2PHONE\" указываете путь к программе на вашем сервере
Каталог = "C:\CMD2PHONE\";
ОпцияРежимЭмуляции = " -E " + ВКавычки(Каталог + "Emul.txt");
//Вместо COM3 указываете порт вашего устройства
ВыбОпции = " -P COM3 -D -Q -L -LF " + ВКавычки(Каталог + "Log.txt"); //
ТекНомер = "+7" + НомерТелефона;
ТекстСообщения = Текст;
Команда = "C:\CMD2PHONE\cmd2phone.exe " + ВыбОпции + " " + ТекНомер + " " + ВКавычки(ТекстСообщения);
ЗапуститьПриложение(Команда,,Истина,КодВозврата);
Если КодВозврата = 200 Тогда
Возврат Истина;
Иначе
Возврат Ложь;
КонецЕсли;
КонецФункции