Всем привет! В данном уроке я буду интегрировать 1С мобильный клиент с Управлением торговлей 11.4 и использую возможности отправки push уведомлений. Push уведомления я буду отправлять через сервис GCM, а получать данные для работы с сервисом, через ДоставляемыеУведомления. Подписывайтесь на канал, ставьте лайк, подписывайтесь в telegram. Всем удачи и приятного просмотра.
Регистрация аккаунта разработчика Android
1С МОБИЛЬНЫЙ КЛИЕНТ код модулей используемый в видео
PushКлиент
Процедура ПодключитьОбработчикУведомленийИзОбщегоМодуля() Экспорт
#Если МобильныйКлиент Тогда
ОписаниеОповещения = Новый ОписаниеОповещения("ОбрабочикPush", PushКлиент);
ДоставляемыеУведомления.ПодключитьОбработчикУведомлений(ОписаниеОповещения);
#КонецЕсли
КонецПроцедуры
Процедура ОбрабочикPush(Уведомление, Локальное, Показано, ДопПараметр) Экспорт
ОбщегоНазначенияКлиентСервер.СообщитьПользователю(Уведомление.Текст);
ПерейтиПоНавигационнойСсылке(Уведомление.Данные);
КонецПроцедуры
Процедура ОбновитьИдентификаторПодписчика() Экспорт
#Если МобильныйКлиент Тогда
Идентификатор = ДоставляемыеУведомления.ПолучитьИдентификаторПодписчикаУведомлений("100148411085");
PushВызовСервера.ОбновитьИдентификаторПодписчика(Идентификатор);
#КонецЕсли
КонецПроцедуры
PushВызовСервера
Процедура ОбновитьИдентификаторПодписчика(Идентификатор) Экспорт
РегистрыСведений.ПолучателиУведомлений.ДобавитьИдентификатор(Пользователи.ТекущийПользователь(), Идентификатор);
КонецПроцедуры
PushСервер
Процедура ОтправитьУведомление_Android(ТекстСообщения, Данные, ИдентификаторПолучателя) Экспорт
Попытка
Если ТекстСообщения = "" ИЛИ Данные = "" Тогда
Возврат;
КонецЕсли;
СоединениеHTTP = Новый HTTPСоединение("android.googleapis.com",443,,,,, Новый ЗащищенноеСоединениеOpenSSL(,));
СтруктураЗапроса = Новый Соответствие;
СтруктураЗапроса.Вставить("Content-Type", "application/x-www-form-urlencoded;charset=UTF-8");
СтруктураЗапроса.Вставить("Authorization", "key=AIzaSyAykvnMcmrMR8oNRtq_soSWYtzS6ce_jSk");
ЗапросHTTP = Новый HTTPЗапрос("gcm/send", СтруктураЗапроса);
Тело = "registration_id=" + ИдентификаторПолучателя.ИдентификаторУстройства +
"&data.data=" + КодироватьСтроку(Данные, СпособКодированияСтроки.URLВКодировкеURL) +
"&data.text=" + КодироватьСтроку(ТекстСообщения, СпособКодированияСтроки.URLВКодировкеURL) +
"&data.base=" + ИдентификаторПолучателя.ИдентификаторИнформационнойБазы +
"&data.sound=" + "default" +
"&delay_while_idle=" + "true";
ЗапросHTTP.УстановитьТелоИзСтроки(Тело,"UTF-8");
Ответ = СоединениеHTTP.ОтправитьДляОбработки(ЗапросHTTP);
Если НЕ Ответ.КодСостояния = 200 Тогда
ЗаписьЖурналаРегистрации("PUSH",,,, "Ошибка отправки PUSH КодСостояния: " + Ответ.КодСостояния + Символы.ПС + Ответ.ПолучитьТелоКакСтроку());
КонецЕсли;
Исключение
ЗаписьЖурналаРегистрации("PUSH",,,,ОписаниеОшибки());
КонецПопытки;
КонецПроцедуры
Регистр сведений для хранения идентификаторов подписчика

Модуль менеджера регистра сведений
Процедура ДобавитьИдентификатор(Пользователь, Идентификатор) Экспорт
МенеджерЗаписи = РегистрыСведений.ПолучателиУведомлений.СоздатьМенеджерЗаписи();
МенеджерЗаписи.Получатель = Пользователь;
МенеджерЗаписи.ИдентификаторПодписчика = Сериализовать(Идентификатор);
МенеджерЗаписи.Записать();
КонецПроцедуры
Функция ПолучитьИдентификатор(Пользователь) Экспорт
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
| ПолучателиУведомлений.ИдентификаторПодписчика КАК ИдентификаторПодписчика
|ИЗ
| РегистрСведений.ПолучателиУведомлений КАК ПолучателиУведомлений
|ГДЕ
| ПолучателиУведомлений.Получатель = &Получатель";
Запрос.УстановитьПараметр("Получатель", Пользователь);
РезультатЗапроса = Запрос.Выполнить();
Если РезультатЗапроса.Пустой() Тогда
Возврат Неопределено;
КонецЕсли;
Выборка = РезультатЗапроса.Выбрать();
Выборка.Следующий();
Возврат Десериализовать(Выборка.ИдентификаторПодписчика);
КонецФункции
Функция Сериализовать(ОбъектСериализации) Экспорт
ДеревоВОбъектеXDTO = СериализаторXDTO.ЗаписатьXDTO(ОбъектСериализации);
МойXML = Новый ЗаписьXML;
МойXML.УстановитьСтроку();
ПараметрыЗаписиXML = Новый ПараметрыЗаписиXML("UTF-8", "1.0", Ложь);
ФабрикаXDTO.ЗаписатьXML(МойXML, ДеревоВОбъектеXDTO);
Возврат МойXML.Закрыть();
КонецФункции
Функция Десериализовать(XMLСтруктураСериализованногоОбъекта) Экспорт
ЧтениеXMLДанных = Новый ЧтениеXML;
ЧтениеXMLДанных.УстановитьСтроку(XMLСтруктураСериализованногоОбъекта);
ТЗ = СериализаторXDTO.ПрочитатьXML(ЧтениеXMLДанных);
ЧтениеXMLДанных.Закрыть();
Возврат ТЗ;
КонецФункции