Разработка мобильных приложений на платформе 1С — процесс увлекательный, но часто начинающийся с технических преград. Одной из самых распространенных проблем является ситуация, когда конфигуратор 1С «отказывается» видеть установленный веб-сервер (например, Денвер или XAMPP), из-за чего публикация становится невозможной. В этой статье мы подробно разберем, почему это происходит, как заставить систему работать и как правильно настроить мобильное устройство для связи с сервером.
Проанализируем ситуацию, с которой сталкиваются многие разработчики. Вы установили «Денвер» или аналогичную сборку «все в одном», запустили службы, но в окне публикации 1С список доступных веб-серверов пуст. Рассмотрим подробнее механизмы поиска, которые использует платформа.
Проблема заключается в том, что конфигуратор 1С не сканирует порты компьютера в реальном времени. Вместо этого он обращается к реестру Windows и ищет строго определенные ключи, создаваемые официальными инсталляторами Apache или IIS. Платформа ищет службы с классическими именами, такими как Apache2.2 или Apache2.4. Денвер же использует свои собственные скрипты запуска и часто называет службы иначе или вовсе не регистрирует их стандартным способом. Кроме того, 1С требуется знать путь к конфигурационному файлу httpd.conf, который в нестандартных сборках может находиться в нетипичном месте.
Разберем способы решения этой проблемы:
MyWebSrv, платформа ее проигнорирует.Если графический интерфейс конфигуратора все же не находит сервер, мы можем воспользоваться «программным» методом. Выясним, как выполнить публикацию принудительно, используя встроенную утилиту 1С webinst. Этот способ особенно актуален для систем на базе Linux («Никсы»), но прекрасно работает и в Windows.
Утилита webinst находится в папке bin установленной платформы 1С. Рассмотрим пример команды для публикации мобильного приложения в командной строке:
"C:\Program Files\1cv8\8.3.10.XXXX\bin\webinst.exe" -apache24 -wsdir mob_app -dir "C:\www\mob_app" -connstr "File='C:\1C_Bases\MyBase';" -confPath "C:\Apache24\conf\httpd.conf"
В данной команде мы принудительно указываем:
-apache24 — тип используемого веб-сервера;-wsdir — имя виртуального каталога, который будет доступен в браузере;-dir — физический путь на диске, где будет лежать файл дескриптора;-connstr — строка соединения с вашей информационной базой;-confPath — прямой путь к конфигурационному файлу Apache.Иногда полезно понимать, что именно делает 1С при публикации. Она создает текстовый файл с расширением .vrd (Virtual Resource Descriptor). Это XML-документ, который описывает правила взаимодействия веб-сервера и базы 1С. Если автоматика подводит, мы можем создать или отредактировать этот файл вручную.
Типовое содержимое файла default.vrd для мобильного приложения выглядит примерно так:
<point xmlns="http://v8.1c.ru/8.2/virtual-resource-system"
xmlns:xs="http://www.w3.org/2001/XMLSchema"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
base="/mob_app"
ib="File="C:\Bases\MobileDB";">
<standardOdata enable="false"
publishExtensionsByDefault="true"/>
<mobileApplication>
<available/>
</mobileApplication>
</point>
Обратите внимание на узел mobileApplication — именно он разрешает доступ мобильным устройствам к этой публикации.
Допустим, публикация прошла успешно. Вы заходите с компьютера по адресу http://127.0.0.1/mob_app и видите XML-описание. Однако при попытке зайти с телефона ничего не происходит. Разберем по шагам, почему это случается.
Ошибка с адресом 127.0.0.1: Посмотрим на ситуацию глазами мобильного телефона. Адрес 127.0.0.1 (localhost) — это обращение устройства к самому себе. Чтобы телефон увидел компьютер, нужно использовать локальный IP-адрес компьютера в вашей Wi-Fi сети (например, 192.168.1.15).
Настройка брандмауэра Windows: Даже если адрес указан верно, встроенный защитник Windows часто блокирует входящие соединения на порт 80 (стандартный для HTTP). Выясним, как создать разрешающее правило:
Тип сети: Проанализируем состояние вашей сети. В настройках Windows сеть должна быть помечена как «Частная» или «Домашняя». Если она определена как «Общедоступная», Windows будет игнорировать многие разрешающие правила из соображений безопасности.
Многие новички путают процесс разработки и процесс дистрибуции готового приложения. Рассмотрим подробнее, как увидеть свою конфигурацию на экране смартфона.
Для этапа разработки нам не нужно собирать полноценный .apk файл (это трудоемкий процесс, требующий установки Android SDK и Java). Мы будем использовать мобильную платформу 1С:Предприятие.
Посмотрим на алгоритм действий:
Android. Там лежат файлы типа 1cem-arm.apk (для большинства смартфонов) или 1cem-x86.apk (для эмуляторов)..apk на телефон и установите его. Это «пустая» оболочка 1С.http://192.168.1.15/mob_app).Преимущество такого способа в том, что при каждом изменении кода в конфигураторе вам достаточно будет просто перезапустить приложение на телефоне, и оно предложит обновиться, подтянув свежие изменения с веб-сервера.
Если после всех действий приложение не подключается, проанализируем следующие моменты:
SYSTEM в Windows), имеет права на чтение папки, где лежит база (если она файловая) и файл .vrd.Таким образом, мы разобрали полный цикл публикации — от преодоления капризов конфигуратора 1С до настройки сетевого экрана и запуска мобильного клиента. Следуя этим инструкциям, вы сможете сосредоточиться на написании кода, а не на борьбе с сетевыми настройками.