==== Редактирование модуля "ОтправкаSMSЧерезTURBO" для конфигураций УНФ, Управление швейным предприятием, BAS for small company версии до 1.6.21.3 ==== === Метод "ОтправитьSMS" === Приведем код к следующему виду: Ответ = ПреобразоватьОтвет(ФайлОтвета, "ns1:ResultArray"); //ИдентификаторСообщения = Ответ.id; //++ //Результат.ОтправленныеСообщения.Добавить(Новый Структура("НомерПолучателя,ИдентификаторСообщения", // НомерПолучателя)); // //Если ЗначениеЗаполнено(Ответ) Тогда // Результат.ОписаниеОшибки = Результат.ОписаниеОшибки // + СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(НСтр("ru='SMS на номер %1';uk='SMS на номер %1'"), Элемент) // + ": " + Ответ // + Символы.ПС; //КонецЕсли; Попытка ИдентификаторСообщения = Новый УникальныйИдентификатор(Ответ); УспешноОтправлено = Истина; Исключение УспешноОтправлено = Ложь; КонецПопытки; Если УспешноОтправлено Тогда Результат.ОтправленныеСообщения.Добавить(Новый Структура("НомерПолучателя,ИдентификаторСообщения", Элемент, Ответ)); Иначе Результат.ОписаниеОшибки = Результат.ОписаниеОшибки + СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(НСтр("ru='SMS на номер %1';uk='SMS на номер %1'"), Элемент) + ": " + Ответ + Символы.ПС; КонецЕсли; //-- === Метод "СтатусДоставки" === Приведем код к следующему виду: | | | | " + ИдентификаторСообщения + " | | //++ //Баланс = ПреобразоватьОтвет(ФайлОтвета, "ns1:GetCreditBalanceResult"); //УдалитьФайлы(ФайлОтвета); //Ответ = Неопределено; //Запрос = Неопределено; //Соединение = Неопределено; //Возврат Баланс; СтатусДоставки = ПреобразоватьОтвет(ФайлОтвета, "ns1:GetMessageStatusResult"); УдалитьФайлы(ФайлОтвета); Возврат СтатусДоставкиSMS(СтатусДоставки); //-- === Метод "ПреобразоватьОтвет" === Приведем код к следующему виду: Если СокрЛП(ЧтениеХМЛ.Имя) <> Тег и ЧтениеХМЛ.ТипУзла <> ТипУзлаXML.Текст Тогда Продолжить; ИначеЕсли ЧтениеХМЛ.ТипУзла = ТипУзлаXML.Текст и СокрЛП(ЧтениеХМЛ.Имя) = "#text" Тогда //++ //ЗначениеВозврата = СокрЛП(ЧтениеХМЛ.Значение); //Прервать; Если ЧтениеХМЛ.Значение = "Сообщения успешно отправлены" Тогда Продолжить; Иначе ЗначениеВозврата = СокрЛП(ЧтениеХМЛ.Значение); Прервать; КонецЕсли; //-- КонецЕсли; === Добавим метод "СтатусДоставкиSMS" в конце модуля === Функция СтатусДоставкиSMS(СтатусСтрокой) //Сообщение с ID X не найдено //Не достаточно параметров для выполнения функции //Вы не авторизированы //Отправлено //В очереди //Сообщение передано в мобильную сеть //Сообщение доставлено получателю //Истек срок сообщения //Удалено оператором //Не доставлено //Сообщение доставлено на сервер //Отклонено оператором //Неизвестный статус //Ошибка, сообщение не отправлено //Не достаточно кредитов на счете //Отправка отменена //Отправка приостановлена //Удалено пользователем СоответствиеСтатусов = Новый Соответствие; СоответствиеСтатусов.Вставить("" , "НеОтправлялось"); СоответствиеСтатусов.Вставить("Отправка приостановлена" , "НеОтправлялось"); // SCHEDULED СоответствиеСтатусов.Вставить("В очереди" , "Отправляется"); // ENROUTE СоответствиеСтатусов.Вставить("Сообщение передано в мобильную сеть" , "Отправляется"); // ENROUTE СоответствиеСтатусов.Вставить("Сообщение доставлено на сервер" , "Отправляется"); // ENROUTE СоответствиеСтатусов.Вставить("Сообщение доставлено получателю" , "Доставлено"); // DELIVERED СоответствиеСтатусов.Вставить("Истек срок сообщения" , "НеДоставлено"); // EXPIRED СоответствиеСтатусов.Вставить("Отправка отменена" , "НеДоставлено"); // DELETED СоответствиеСтатусов.Вставить("Удалено пользователем" , "НеДоставлено"); // DELETED СоответствиеСтатусов.Вставить("Ошибка, сообщение не отправлено" , "НеДоставлено"); // UNDELIVERABLE СоответствиеСтатусов.Вставить("Отправлено" , "Отправлено"); // ACCEPTED СоответствиеСтатусов.Вставить("Неизвестный статус" , "Ошибка"); // UNKNOWN СоответствиеСтатусов.Вставить("Отклонено оператором" , "НеОпознаноПровайдером"); // REJECTED СоответствиеСтатусов.Вставить("Удалено оператором" , "НеОпознаноПровайдером"); // DISCARDED СоответствиеСтатусов.Вставить("Не доставлено" , "НеДоставлено"); // SENDING СоответствиеСтатусов.Вставить("Не достаточно кредитов на счете" , "НеДоставлено"); // NOT_SUPPORTED СоответствиеСтатусов.Вставить("Вы не авторизированы" , "НеДоставлено"); // WRONG_ALPHANAME СоответствиеСтатусов.Вставить("Не достаточно параметров для выполнения функции", "НеДоставлено"); // WRONG_ALPHANAME_RETURNED Результат = СоответствиеСтатусов[СтатусСтрокой]; Возврат ?(Результат = Неопределено, "Ошибка", Результат); КонецФункции