Как сделать простое мобильное веб-приложение в 1С

Опубликовал rtnm в раздел Программирование - Практика программирования

В статье показан пример разработки простого мобильного веб-приложения "Контакты" с помощью функционала HTTP-сервисов появившегося в новой версии платформы 1С (8.3.5). Данное демонстрационное мобильное веб-приложение предоставляет доступ к телефонам и электронной почте контрагентов хранящихся в базе 1С, позволяет совершать звонки и писать электронные письма.

Введение

В новой версии платформы 1С (8.3.5) появилось много нового функционала. Кстати, для тех кто не знает, есть ресурс "Заметки из зазеркалья", на котором разработчики 1С описывают появляющиеся новшества в платформе. Одним из таких является механизм HTTP-сервисов. Он привлек мое внимание, захотелось что-то реализовать for fun. Сразу пришла идея сделать что-то похожее на сайт, но с этой идеей меня не поняли бы даже на инфостарте, поэтому я выкинул ее из головы. Казалось, что выкинул, но идея трансформировалась в нечто не такое маштабное, что-то такое, что может найти реальное применение в жизни - мобильное веб-приложение.
Я считаю, что малонагруженное и простое мобильное веб-приложение, для ограниченного количества пользователей, например, сотрудников, может быть реализовано в 1С с помощью HTTP-сервисов.

Мобильное веб-приложение "Контакты"

Начну с результата. Мобильное веб-приложение "Контакты" выглядит просто, собственно таковым и является. В начале вы видите только поле для поиска контакта.
Мобильное веб-приложение


Поищем кого-нибудь (для того чтобы поиск начался нужно ввести не меньше 3 символов). Кто-то нашелся.
Мобильное веб-приложение Мобильное веб-приложение


Позвоним Алексею.
Мобильное веб-приложение Мобильное веб-приложение


Напишем письмо Тимофею.
Мобильное веб-приложение Мобильное веб-приложение

Вот и всё мобильное веб-приложение.

Кстати, его очень просто адаптировать под любую конфигурацию.

Немного о реализации

Используемые средства:
- Механизм HTTP-сервисов платформы 1С (начиная с версии 8.3.5)
- JavaScript библиотека jQuery (http://jquery.com)
- JavaScript библиотека jQuery mobile (http://jquerymobile.com)
- 1С:JSON (http://infostart.ru/public/119601)

HTTP-сервис "Конткаты" принимает все запросы и передает их в обработку "КонтактыМВП". В обработке "КонтактыМВП" сосредоточена вся логика мобильного веб-приложения.

Мобильное веб-приложение

Так выглядит обработка запроса.

Функция ОбработатьЗапрос(Запрос) Экспорт
	
	Если СоответствуетРесурсу(Запрос, "/index.html") Тогда
		Возврат ПолучитьРесурсIndexHTML();
	ИначеЕсли СоответствуетРесурсу(Запрос,"/application.js") Тогда
		Возврат ПолучитьРесурсApplicationJS();
	ИначеЕсли СоответствуетРесурсу(Запрос,"/contacts.json") Тогда
		Возврат ПолучитьРесурсContactsJSON(Запрос);
	КонецЕсли;	
		
КонецФункции

А так, например, выглядит возврат страницы index.html.

Функция ПолучитьРесурсIndexHTML()
	
	Ответ = Новый HTTPСервисОтвет(200);	
	Текст = ПолучитьМакет("IndexHTML").ПолучитьТекст();
	Ответ.УстановитьТелоИзСтроки(Текст);
	Ответ.Заголовки.Вставить("Content-Type", "text/html");	
	Возврат Ответ;		
	
КонецФункции

Ничего сложного. Более детально вы можете изучить механизм загрузив КонтактыМВП.dt


Особенности публикации

При публикации HTTP-сервиса возникли небольшие сложности, чтобы вам было проще изложу некоторые замечания:
- В официальной документации есть достаточно подробные описания о публикации - читайте внимательнее.
- Не забывайте перед публикацией запустить конфигуратор от имени администратора.
- Запустить HTTP-сервис удалось только с файловой версией, с клиент-серверной возникала какая-то ошибка.
- Для того чтобы мобильное веб-приложение работало без запроса авторизации, если в базе есть заведенные пользователи, то после публикации, в файле default.vrd в строку подключения (point.ib) необходимо добавить параметры Usr и Pwd.

Если все опубликовано правильно, то перейти к мобильному веб-приложению вы сможете по ссылке http://localhost/demobase/hs/contacts/index.html (если при публикации вы в качестве имени указали demobase)

Заключение

Надеюсь материал статьи будет вам полезен.

Спасибо за внимание.

Файлы

Наименование Файл Версия Размер Кол. Скачив.
КонтактыМВП.dt
.dt 29,67Kb
03.06.14
169
.dt 29,67Kb 169 Скачать

См. также

Лучшие комментарии

10. AlexSunS 09.06.2014 03:12
(7) nucha, Андроидный браузер это простите кто ?*
+ 1 [ androgin; ]
# Ответить

Комментарии

1. anig99 (файл скачал) 04.06.2014 12:49
Я правильно понял, что достаточно набрать адрес в браузере?
Ответили: (2)
# Ответить
2. rtnm 04.06.2014 13:13
(1) anig99, да, вы поняли все правильно, после публикации HTTP-сервиса "Контакты" базы КонтактыМВП.dt, достаточно просто перейти по ссылке http://localhost/demobase/hs/contacts/index.html. Для тестирования на мобильном устройстве я переходил по ссылке http://192.168.0.104/demobase/hs/contacts/index.html - это видно на скриншотах.
# Ответить
3. BigB (файл скачал) 06.06.2014 13:37
Подскажите, как получать параметры (HTTPЗапрос.ПараметрыЗапроса["name"] перестает получать параметры) если переделать с HTTPМетод="GET" на HTTPМетод="POST"?
Ответили: (5)
# Ответить
4. John_d (файл скачал) 06.06.2014 17:21
интересно. Зачет)
Ответили: (6)
# Ответить
5. rtnm 06.06.2014 17:30
(3) BigB, а как именно вы поменяли HTTP метод? Конкретно в демонстрационном примере выбран наиболее подходящий метод - GET. Ну а так, могу предположить, что в вашем случае параметры ушли в тело запроса, и тогда их можно получить с помощью HTTPСервисЗапрос.ПолучитьТелоКакСтроку()
# Ответить
6. rtnm 06.06.2014 17:36
(4) John_d, спасибо за позитивный отзыв
# Ответить
7. nucha 07.06.2014 21:28
база должна быть опубликована на сервере?
С андроидным браузером работает?
Ответили: (8) (10)
# Ответить
8. rtnm 07.06.2014 23:29
(7) nucha, HTTP-сервис публикуется стандартными средствами предоставляемыми платформой 1С с использованием веб-сервера IIS или apache. Фреймоврки jQuery и jQuery mobile являются кроссбраузерными, поэтому мобильное веб-приложение должно работать без проблем в большинстве современных мобильных браузеров.
# Ответить
10. AlexSunS 09.06.2014 03:12
(7) nucha, Андроидный браузер это простите кто ?*
+ 1 [ androgin; ]
# Ответить
11. Программулькин (файл скачал) 10.06.2014 10:39
чета я нифига не понял.
Скачал КонтактыМВП.dt, на компе создал чистую файловую конфу, залил КонтактыМВП.dt, установил апач 2.2 , на диске C создал каталог WWW, в нем папку MVP. Далее открыл базу в режиме конфигуратор, тыкаю администрирование-публиковать на веб-сервере, далее
Имя : MVP
Веб-сервер: Апач 2.2.
Каталог:C:\www\MVP
"Истина" Публиковать тонкий клиент и веб-клиент
"Истина" Публиковать стандартный интерфейс O Data
"Истина" Публиковать Web сервисы по умолчанию
"Истина" Публиковать HTTP сервисы по умолчанию
Имя Контакты
Корневой url contacts

Куда мне нажать и что, где запустить, что бы позвонить, и что я не так сделал? (мобилка галактика 4 s с браузером от яндекса).
Ответили: (12)
# Ответить
12. rtnm 10.06.2014 21:50
(11) Программулькин, если публикация прошла успешно и вы указывали имя MVP, то для запуска мобильного веб-приложения "Контакты" необходимо в браузере телефона перейти по ссылке http://ИмяИлиIPСервера/MVP/hs/contacts/index.html
# Ответить
13. Программулькин (файл скачал) 11.06.2014 08:55
спасибо, заработало, кстати если на компе стоит звонилка IP телефонии , то тоже работает.
# Ответить
14. rus128 11.06.2014 11:17
Респект автору за разведку новых технологий и за лаконичную статью!
# Ответить
15. gudun_ku 27.06.2014 14:59
Если мобильная платформа не будет работать на Windows Embedded, она останется игрушкой для торговых представителей.
С помощью ТСД на Андроид сканировать нормально большие партии товаров невозможно, поэтому ни Моторола, ни Даталоджик,
например, не делают ТСД на Андроид.
Ответили: (17) (18)
# Ответить
16. chmv 01.07.2014 10:26
Очень интересно
# Ответить
17. Redokov 01.07.2014 11:40
(15) gudun_ku, сфера мобильных приложений не замкнута на ТСД. Гораздо интереснее делать приложения для бизнеса, интегрирующие функционал ERP-систем. Очень мало директоров и топов предприятия используют платформы, отличные от iOS и Android.
А сканирование штрихкодов - дело времени. Доработают и настроят. А вот завести инфраструктуру приложений, которая сложилась на Андроид и iOS - дело значительно более сложное.
Ответили: (18)
# Ответить
18. DitriX (файл скачал) 02.07.2014 11:45
(15) winCE - устарела давно. И моторола уже давно выпускает тсд на андроид.
http://www.motorolasolutions.com/US-EN/Business+Product+and+Services/Mobile+Computers/Handheld+C­omputers

(17) уже все давно работает и все с этим работают.:)
# Ответить
19. John_d (файл скачал) 15.07.2014 20:06
можете подсказать javascript-код, как при открытии веб-приложения в строку поиска подставлялось значение по умолчанию? (например Иванов)
# Ответить
20. Программулькин (файл скачал) 22.09.2015 14:12
на платформе 8,3,6 выдаёд ошибку
{Обработка.КонтактыМВП.МодульМенеджера(16,16)}: Тип не определен (HTTPСервисОтвет)
Ответ = Новый <<?>>HTTPСервисОтвет(200); (Проверка: Толстый клиент (обычное приложение))
{Обработка.КонтактыМВП.МодульМенеджера(26,16)}: Тип не определен (HTTPСервисОтвет)
Ответ = Новый <<?>>HTTPСервисОтвет(200); (Проверка: Толстый клиент (обычное приложение))
{Обработка.КонтактыМВП.МодульМенеджера(36,16)}: Тип не определен (HTTPСервисОтвет)
Ответ = Новый <<?>>HTTPСервисОтвет(200); (Проверка: Толстый клиент (обычное приложение))

Как победить?
Ответили: (21) (22)
# Ответить
21. rtnm 22.09.2015 15:46
(20) Программулькин, проверить, что действительно используется платформа 8.3.6 и не используется режим совместимости, других идей нет
# Ответить
22. Steelvan (файл скачал) 06.03.2016 13:19
(20) Программулькин,

Читать внимательно "Проверка: Толстый клиент (обычное приложение"
Настраивать в Сервис / Параметры / Модули / Проверка.

Вроде пишешь на русском, а вопрос как от тупого америкакашки.
# Ответить
Внимание! За постинг в данном форуме $m не начисляются.
Внимание! Для написания сообщения необходимо авторизоваться
Текст сообщения*
Прикрепить файл






IE 2016