eComm+

Модулі для BAS / 1С* - розроблено в Україні!

Инструменты пользователя

Инструменты сайта


small_business_other

Редактирование модуля "Отправка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'"), Элемент)
												+ ": " + Ответ
												+ Символы.ПС;											  
				КонецЕсли;												  
				//--

Метод "СтатусДоставки"

Приведем код к следующему виду:

	|   <soapenv:Body>
	|      <tur:GetMessageStatus>
	|           <!--Optional:-->
	|           <tur:MessageId>" + ИдентификаторСообщения + "</tur:MessageId>
	|      </tur:GetMessageStatus>
	|   </soapenv:Body>
	//++
	//Баланс = ПреобразоватьОтвет(ФайлОтвета, "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

	Результат = СоответствиеСтатусов[СтатусСтрокой];
	Возврат ?(Результат = Неопределено, "Ошибка", Результат);
	
КонецФункции
small_business_other.txt · Последнее изменение: 2025/02/06 20:51 — webmaster