Всем привет! В данном уроке я буду интегрировать 1С мобильный клиент с Управлением торговлей 11.4 и использую возможности отправки push уведомлений. Push уведомления я буду отправлять через сервис GCM, а получать данные для работы с сервисом, через ДоставляемыеУведомления. Подписывайтесь на канал, ставьте лайк, вступайте в группу ВКонтакте. Всем удачи и приятного просмотра.
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Данных.Закрыть(); Возврат ТЗ; КонецФункции