Продолжим разбираться с 1с-кой для андроида. Думаю, все согласятся, что версия для андроида разработана для тех случаев, когда нужно заполнять базу данных в отдалении от компьютера с большой 1с-кой, это может быть инвентаризация на складе, переучет товаров и самый распространенный вариант - прием заказов торговыми агентами. Мы с вами попробуем создать простую конфигурацию для торгового агента, он сможет принимать заказы, и отправлять их «Большому брату» для последующей обработки.
Первый вопрос, который возникает, как нам обмениваться данными? В структуре метаданных конфигурации есть такой обьект как «Обмен данными» и в демонстрационной конфигурации он даже работает, но я пока не разобрался что там и как, поэтому буду писать свой собственный велосипед с использованием … почты. Старые добрые письма для перекидки данных нам подойдут как нельзя, кстати, благо работа с ними с мобильного приложения ничуть не отличается от работы с управляемого приложения. Сначала я думал как-то использовать универсальный обмен данными, но прикрутить стандартную обработку не удалось. Будем работать с простым текстом.
Итак, перед нами две задачи принять и отослать письмо с мобильного приложения 1с для андроида, код банальный, но работающий, проверял с настройками mail.ru по умолчанию.
Отправка почты
ПочтовыйПрофиль = Новый ИнтернетПочтовыйПрофиль; ПочтовыйПрофиль.АдресСервераPOP3 = "pop.mail.ru"; ПочтовыйПрофиль.АдресСервераSMTP = "smtp.mail.ru"; ПочтовыйПрофиль.ПортSMTP = 25; ПочтовыйПрофиль.ПортPOP3 = 110; ПочтовыйПрофиль.Пользователь = "пользователь"; ПочтовыйПрофиль.Пароль = "пароль"; ПочтовыйПрофиль.ПользовательSMTP = " пользователь"; ПочтовыйПрофиль.ПарольSMTP = " пароль"; ПочтовыйПрофиль.АутентификацияSMTP = СпособSMTPАутентификации.Login; // соберем Сообщение Сообщение = Новый ИнтернетПочтовоеСообщение; Сообщение.Отправитель = "куда"; Сообщение.ИмяОтправителя = "Печкин"; Сообщение.Получатели.Добавить("кому"); Сообщение.Тема = "тема письма"; Текст = Сообщение.Тексты.Добавить("текст письма"); Текст.ТипТекста = ТипТекстаПочтовогоСообщения.ПростойТекст; Почта = Новый ИнтернетПочта; Попытка //Пытаемся послать письмо Почта.Подключиться(ПочтовыйПрофиль); Сообщить("Подключенено"); Почта.Послать(Сообщение); Сообщить("Письмо отправлено"); Исключение Сообщить(ОписаниеОшибки()); Сообщить("Письмо не отправлено!!!"); Возврат; КонецПопытки; Почта.Отключиться();
И получение почты
СостояниеПриема = "Подключение к серверу"; ИПП = Новый ИнтернетПочтовыйПрофиль; ИПП.АдресСервераPOP3 = "pop.mail.ru"; ИПП.ВремяОжидания = 10; ИПП.Пароль = "пароль"; ИПП.Пользователь = "пользователь"; ИПП.ПортPOP3 = 110; ИПП.АутентификацияPOP3=СпособPOP3Аутентификации.Обычная; Позиция=0; Соединение = Новый ИнтернетПочта; Попытка Соединение.Подключиться(ИПП); Исключение Сообщить("Ошибка подключения к почте",СтатусСообщения.Важное); КонецПопытки; СостояниеПриема = "Получение выборки писем"; Сообщить(СостояниеПриема); Выборка = Соединение.Выбрать(ложь); СостояниеПриема = "Создание документов - писем"; сообщить(СостояниеПриема); КоличествоВВыборке = Выборка.Количество(); Индекс = 1; Для Каждого Письмо Из Выборка Цикл Сообщить(Письмо.Тема); КонецЦикла; Если КоличествоВВыборке=0 тогда Сообщить("Почтовый ящик пуст"); КонецЕсли; Соединение.Отключиться();
Этого в принципе должно хватить для настройки обмена между мобильным приложением и большой 1с-кой. Для перекидки справочников подойдет и текстовый формат с разделителями в виде «;».