Обработка адаптировалась к собственной конфигурации и не привязана к объектам конкретной конфигурации (хотя оставлен код для примера).
1) Сделан вывод всех входящих и исходящих пакетов
2) Возможность вручную отправить СМС или несколько СМС и увидеть статус доставки
3) Макет соответствия кодов для кодификации русского текста заменен на расчет
Порядок использования для автоматической отправки СМС выполнен следующим образом:
1) СМС-ки на отправку хранятся в отдельном документе.
2) В регламентное задание добавлено задание, которое раз в 3 минуты смотрит дату последнего пакета ящика коротких сообщений. Если эта дата старше 5 минут, процедура принудительно запускает приложение 1С с параметром запуска SMS_SMPP (это происходит на сервере).
Если ВыбЯщик.ПоследнийПакет < ТекущаяДата() - 300 Тогда
СтруктураПараметровБазы = Новый Структура("Srvr, Ref");
СтрокаСоединения = СтрокаСоединенияИнформационнойБазы();
ПараметрыСоединения = РаботаСоСтроками.СтрРазбитьПоРазделителю2(СтрокаСоединения, ";");
Для Каждого ТекПараметр Из ПараметрыСоединения Цикл
Если НЕ ЗначениеЗаполнено(ТекПараметр.Значение) Тогда
Продолжить;
КонецЕсли;
ПозицияРавно = Найти(ТекПараметр.Значение, "=");
СтруктураПараметровБазы.Вставить(Лев(ТекПараметр.Значение, ПозицияРавно-1), СтрЗаменить(Сред(ТекПараметр.Значение, ПозицияРавно+1), """", ""));
КонецЦикла;
СтрокаСоединения = """"+СтруктураПараметровБазы.Srvr+"\"+СтруктураПараметровБазы.Ref+"""";
СтрокаЗапуска = КаталогПрограммы()+"1cv8s.exe ENTERPRISE /S" + СтрокаСоединения + " /N"""+Константы.АдминистраторЛогин.Получить()+""" /P"""+Константы.АдминистраторПароль.Получить()+""" /CSMS_SMPP";
СтрокаЗапуска = СтрЗаменить(СтрокаЗапуска, "\Program Files\", "\Program Files (x86)\");
//ВызватьИсключение СтрокаЗапуска;
ЗапуститьПриложение(СтрокаЗапуска);
КонецЕсли;
3) В модуль обычного приложения в обработчик ПриНачалеРаботыСистемы добавлена обработка специфического параметра запуска. Если получен параметр запуска SMS_SMPP, то открывается указанная обработка, заполняется ящик коротких сообщений и запускается отправка смс в автоматическом режиме. Обмен пакетами обновляет реквизит "дата последнего пакета" для ящика коротких сообщений.
Пример:
НовОбр.Значение = Обработки.ОтправкаКороткихСообщенийSMPP.Создать();
НовОбр.Значение.Ящик = ВыбЯщик.Ссылка;
НовОбр.Значение.ПодключитьSMPPP();
upd: Обновлена обработка: добавлена функция разрезания полученных "склеенных" пакетов