Отправить данные сообщения тех поддержку.
Функция ОтправитьДанныеСообщенияВТехПоддержку(
Тема,
Тело,
Знач Получатель,
Вложения,
НастройкиСоединенияССерверами,
ДопПараметры,
НастройкиПрокси = Неопределено) Экспорт
Результат = Новый Структура;
Результат.Вставить("КодОшибки" , "");
Результат.Вставить("СообщениеОбОшибке" , "");
Результат.Вставить("ТокенДанных" , "");
// Проверка доступности сервиса.
РезультатПроверки = Новый Структура;
РезультатПроверки.Вставить("ИмяОшибки" , "");
РезультатПроверки.Вставить("СообщениеОбОшибке" , "");
РезультатПроверки.Вставить("ИнформацияОбОшибке", "");
СлужебнаяПроверитьURLДоступен(
URLОперацииОтправитьДанныеСообщенияВТехПоддержкуPing(
НастройкиСоединенияССерверами.ДоменРасположенияСерверовИПП),
"HEAD",
РезультатПроверки.ИмяОшибки,
РезультатПроверки.СообщениеОбОшибке,
РезультатПроверки.ИнформацияОбОшибке,
НастройкиПрокси);
Если Не ПустаяСтрока(РезультатПроверки.ИмяОшибки) Тогда
ИнтернетПоддержкаПользователейВызовСервера.ЗаписатьОшибкуВЖурналРегистрации(
СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
НСтр("ru = 'Не удалось отправить данные сообщения в службу технической поддержки.
|Не удалось проверить доступность сервиса отправки сообщений.
|%1'"),
РезультатПроверки.ИнформацияОбОшибке));
Результат.КодОшибки = РезультатПроверки.ИмяОшибки;
Результат.СообщениеОбОшибке =
СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
НСтр("ru = 'Не удалось отправить данные сообщения в службу технической поддержки.
|Не удалось проверить доступность сервиса.
|%1'"),
РезультатПроверки.СообщениеОбОшибке);
Возврат Результат;
КонецЕсли;
// Отправка данных сообщения.
ТелоСообщения = СтрЗаменить(
ДопПараметры.ШаблонТекстаСообщения,
"%msgtxt",
Тело);
ПодготовитьВложенияКОтправке(Вложения, ДопПараметры.Вложения);
ДанныеJSON = ПараметрыSaveTechSupportRequestJSON(
Тема,
ТелоСообщения,
Получатель,
ДопПараметры.Вложения);
Заголовки = Новый Соответствие;
Заголовки.Вставить("Content-Type", "application/json");
ДопПараметрыЗапроса = Новый Структура;
ДопПараметрыЗапроса.Вставить("Метод" , "PUT");
ДопПараметрыЗапроса.Вставить("ФорматОтвета" , 1);
ДопПараметрыЗапроса.Вставить("Заголовки" , Заголовки);
ДопПараметрыЗапроса.Вставить("ДанныеДляОбработки" , ДанныеJSON);
ДопПараметрыЗапроса.Вставить("ФорматДанныхДляОбработки", 1);
ДопПараметрыЗапроса.Вставить("НастройкиПрокси" , НастройкиПрокси);
ДопПараметрыЗапроса.Вставить("Таймаут" , 300);
РезультатОтправки = ЗагрузитьСодержимоеИзИнтернет(
URLОперацииОтправитьДанныеСообщенияВТехПоддержку(
НастройкиСоединенияССерверами.ДоменРасположенияСерверовИПП),
,
,
ДопПараметрыЗапроса);
Если Не ПустаяСтрока(РезультатОтправки.КодОшибки) Тогда
ИнтернетПоддержкаПользователейВызовСервера.ЗаписатьОшибкуВЖурналРегистрации(
СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
НСтр("ru = 'Не удалось отправить данные сообщения в службу технической поддержки.
|%1'"),
РезультатОтправки.ИнформацияОбОшибке));
Результат.КодОшибки = РезультатОтправки.КодОшибки;
Результат.СообщениеОбОшибке = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
НСтр("ru = 'Не удалось отправить данные сообщения в службу технической поддержки.
|%1'"),
РезультатОтправки.СообщениеОбОшибке);
Возврат Результат;
КонецЕсли;
Попытка
РезультатВызова = РезультатSaveTechSupportRequestИзJSON(РезультатОтправки.Содержимое);
Исключение
ИнформацияОбОшибке = ИнформацияОбОшибке();
ИнтернетПоддержкаПользователейВызовСервера.ЗаписатьОшибкуВЖурналРегистрации(
СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
НСтр("ru = 'Не удалось отправить данные сообщения в службу технической поддержки.
|Ошибка при обработке ответа сервиса.
|Некорректный ответ сервиса отправки сообщений.
|%1
|Тело ответа: %2'"),
ПодробноеПредставлениеОшибки(ИнформацияОбОшибке),
Лев(РезультатОтправки.Содержимое, 1024)));
Результат.КодОшибки = РезультатОтправки.КодОшибки;
Результат.СообщениеОбОшибке =
НСтр("ru = 'Не удалось отправить данные сообщения в службу технической поддержки.
|Некорректный ответ сервиса отправки сообщений.'");
Возврат Результат;
КонецПопытки;
Если РезультатВызова.success <> Истина Тогда
ИнтернетПоддержкаПользователейВызовСервера.ЗаписатьОшибкуВЖурналРегистрации(
СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
НСтр("ru = 'Не удалось отправить данные сообщения в службу технической поддержки.
|Ошибка при передаче сообщения в тех. поддержку.
|Сервис сообщил об ошибке.
|Ответ сервиса: %1'"),
Лев(РезультатОтправки.Содержимое, 1024)));
Результат.КодОшибки = "ВозвращенОтказСервиса";
Результат.СообщениеОбОшибке =
НСтр("ru = 'Не удалось отправить данные сообщения в службу технической поддержки.
|Ошибка при передаче сообщения в тех. поддержку.
|Подробнее см. в журнале регистрации.'");
Возврат Результат;
КонецЕсли;
Результат.ТокенДанных = РезультатВызова.uuid;
Возврат Результат;
КонецФункции
///////////////////////////////////////////////////////////////////////////////////////////////////////
// Copyright (c) 2019, ООО 1С-Софт
// Все права защищены. Эта программа и сопроводительные материалы предоставляются
// в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0)
// Текст лицензии доступен по ссылке:
// https://creativecommons.org/licenses/by/4.0/legalcode
///////////////////////////////////////////////////////////////////////////////////////////////////////
ОтправитьДанныеСообщенияВТехПоддержку (БСП)
ПриОшибкеОтправкиДанныхСообщенияВТехПоддержку (БСП)
ОтправитьСообщениеВТехПоддержку (БСП)
ПолучитьИмяФайлаТехническихПараметровДляСообщенияВТехПоддержку (БСП)
ОтправитьСообщениеВСлужбуТехническойПоддержки (БСП)
ШаблонТекстаВТехПоддержку (БСП)
Канал FastCode 1C в Телеграм! Шаблоны кода, статьи, полезные советы, курсы по 1С (8К участников)