gifts2017

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

Опубликовал rtnm rtnm (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
179
.dt 29,67Kb 179 Скачать

См. также

Подписаться Добавить вознаграждение

Комментарии

1. Александр Медведев (anig99) 04.06.14 12:49
Я правильно понял, что достаточно набрать адрес в браузере?
2. rtnm rtnm (rtnm) 04.06.14 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 (BigB) 06.06.14 13:37
Подскажите, как получать параметры (HTTPЗапрос.ПараметрыЗапроса["name"] перестает получать параметры) если переделать с HTTPМетод="GET" на HTTPМетод="POST"?
4. Евгений К (John_d) 06.06.14 17:21
5. rtnm rtnm (rtnm) 06.06.14 17:30
(3) BigB, а как именно вы поменяли HTTP метод? Конкретно в демонстрационном примере выбран наиболее подходящий метод - GET. Ну а так, могу предположить, что в вашем случае параметры ушли в тело запроса, и тогда их можно получить с помощью HTTPСервисЗапрос.ПолучитьТелоКакСтроку()
6. rtnm rtnm (rtnm) 06.06.14 17:36
(4) John_d, спасибо за позитивный отзыв
7. Константин Яремчук (nucha) 07.06.14 21:28
база должна быть опубликована на сервере?
С андроидным браузером работает?
8. rtnm rtnm (rtnm) 07.06.14 23:29
(7) nucha, HTTP-сервис публикуется стандартными средствами предоставляемыми платформой 1С с использованием веб-сервера IIS или apache. Фреймоврки jQuery и jQuery mobile являются кроссбраузерными, поэтому мобильное веб-приложение должно работать без проблем в большинстве современных мобильных браузеров.
10. Alex Gaiduk (AlexSunS) 09.06.14 03:12
(7) nucha, Андроидный браузер это простите кто ?*
androgin; +1 Ответить
11. Программулькин (Программулькин) 10.06.14 10:39
чета я нифига не понял.
Скачал КонтактыМВП.dt, на компе создал чистую файловую конфу, залил КонтактыМВП.dt, установил апач 2.2 , на диске C создал каталог WWW, в нем папку MVP. Далее открыл базу в режиме конфигуратор, тыкаю администрирование-публиковать на веб-сервере, далее
Имя : MVP
Веб-сервер: Апач 2.2.
Каталог:C:\www\MVP
"Истина" Публиковать тонкий клиент и веб-клиент
"Истина" Публиковать стандартный интерфейс O Data
"Истина" Публиковать Web сервисы по умолчанию
"Истина" Публиковать HTTP сервисы по умолчанию
Имя Контакты
Корневой url contacts

Куда мне нажать и что, где запустить, что бы позвонить, и что я не так сделал? (мобилка галактика 4 s с браузером от яндекса).
12. rtnm rtnm (rtnm) 10.06.14 21:50
(11) Программулькин, если публикация прошла успешно и вы указывали имя MVP, то для запуска мобильного веб-приложения "Контакты" необходимо в браузере телефона перейти по ссылке http://ИмяИлиIPСервера/MVP/hs/contacts/index.html
13. Программулькин (Программулькин) 11.06.14 08:55
спасибо, заработало, кстати если на компе стоит звонилка IP телефонии , то тоже работает.
14. Ruslan (rus128) 11.06.14 11:17
Респект автору за разведку новых технологий и за лаконичную статью!
15. gudun_ku (gudun_ku) 27.06.14 14:59
Если мобильная платформа не будет работать на Windows Embedded, она останется игрушкой для торговых представителей.
С помощью ТСД на Андроид сканировать нормально большие партии товаров невозможно, поэтому ни Моторола, ни Даталоджик,
например, не делают ТСД на Андроид.
16. Марина Чирина (chmv) 01.07.14 10:26
17. Ruslan Edokov (Redokov) 01.07.14 11:40
(15) gudun_ku, сфера мобильных приложений не замкнута на ТСД. Гораздо интереснее делать приложения для бизнеса, интегрирующие функционал ERP-систем. Очень мало директоров и топов предприятия используют платформы, отличные от iOS и Android.
А сканирование штрихкодов - дело времени. Доработают и настроят. А вот завести инфраструктуру приложений, которая сложилась на Андроид и iOS - дело значительно более сложное.
18. Дмитрий Шерстобитов (DitriX) 02.07.14 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.14 20:06
можете подсказать javascript-код, как при открытии веб-приложения в строку поиска подставлялось значение по умолчанию? (например Иванов)
20. Программулькин (Программулькин) 22.09.15 14:12
на платформе 8,3,6 выдаёд ошибку
{Обработка.КонтактыМВП.МодульМенеджера(16,16)}: Тип не определен (HTTPСервисОтвет)
Ответ = Новый <<?>>HTTPСервисОтвет(200); (Проверка: Толстый клиент (обычное приложение))
{Обработка.КонтактыМВП.МодульМенеджера(26,16)}: Тип не определен (HTTPСервисОтвет)
Ответ = Новый <<?>>HTTPСервисОтвет(200); (Проверка: Толстый клиент (обычное приложение))
{Обработка.КонтактыМВП.МодульМенеджера(36,16)}: Тип не определен (HTTPСервисОтвет)
Ответ = Новый <<?>>HTTPСервисОтвет(200); (Проверка: Толстый клиент (обычное приложение))

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

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

Вроде пишешь на русском, а вопрос как от тупого америкакашки.
23. Валерий С. (seva1405) 17.09.16 22:34
Спасбо за статью! Давно ждал подобного от 1с.
Сразу пришла идея сделать что-то похожее на сайт, но с этой идеей меня не поняли бы даже на инфостарте

С удовольствием бы почитал такую статью, надеюсь вы все таки решитесь на нее.
Для написания сообщения необходимо авторизоваться
Прикрепить файл
Дополнительные параметры ответа