&НаСервере
Функция СтруктураВСтрокуJSON(Данные)экспорт
ЗаписьJSON = Новый ЗаписьJSON();
ЗаписьJSON.УстановитьСтроку();
ЗаписатьJSON(ЗаписьJSON, Данные);
ответ=ЗаписьJSON.Закрыть();
// заменим -999999999 на null раз уж 1С это не умеет
ответ=стрЗаменить(ответ,"-999999999","null");
возврат ответ;
КонецФункции
&НаСервере
Функция API_SendSMS(УРЛ,Логин,Пароль,Отправитель,Телефон,ТекстСмс,ВремяЖизни=360)экспорт
Соединение=ПолучитьПараметрыСоединения(УРЛ,Логин,Пароль);
answer=API_getSessionID(Соединение,Логин,Пароль);
если answer.error=true тогда возврат answer;конецесли;
ПОСТ_Структура=Новый Структура("sessionId,sourceAddress,data,destinationAddress,validity");
ПОСТ_Структура.sessionId=answer.result; //идсессии,
ПОСТ_Структура.sourceAddress=Отправитель; //имяотправителя
ПОСТ_Структура.destinationAddress=Телефон; //получатель(номер)
ПОСТ_Структура.data=ТекстСмс; //текст сообщения
ПОСТ_Структура.validity=ВремяЖизни; //время жизни в минутах
Заголовки = Новый Соответствие;
Заголовки["Content-Type"] = "application/json";
Заголовки.Вставить("Connection", "keep-alive");
Заголовки.Вставить("User-Agent","Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko)");
HTTPЗапрос = Новый HTTPЗапрос("/rest/Sms/Send",Заголовки);
HTTPЗапрос.УстановитьТелоИзСтроки(СтруктураВСтрокуJSON(ПОСТ_Структура), КодировкаТекста.UTF8, ИспользованиеByteOrderMark.НеИспользовать);
Результат = Соединение.ВызватьHTTPМетод("POST",HTTPЗапрос);
РезЗапроса=JSONВСтруктуру(Результат.ПолучитьТелоКакСтроку());
если ТипЗнч(РезЗапроса)=Тип("Строка") тогда
answer.error=true;
answer.result=РезЗапроса;
возврат answer;
конецесли;
если ТипЗнч(РезЗапроса)=Тип("Структура") тогда
answer.error=true;
answer.result=РезЗапроса.Desc;
возврат answer;
конецесли;
answer.error=false;
answer.result=РезЗапроса[0];
возврат answer;
КонецФункции