Введение
В новой версии платформы 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 (//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)
Заключение
Надеюсь материал статьи будет вам полезен.
Спасибо за внимание.