Почему 1С не видит веб-сервер при публикации мобильного приложения и как его настроить?

Программист 1С v8.3 (Управляемые формы) IT и автоматизация бизнеса
← На главную

Разработка мобильных приложений на платформе 1С — процесс увлекательный, но часто начинающийся с технических преград. Одной из самых распространенных проблем является ситуация, когда конфигуратор 1С «отказывается» видеть установленный веб-сервер (например, Денвер или XAMPP), из-за чего публикация становится невозможной. В этой статье мы подробно разберем, почему это происходит, как заставить систему работать и как правильно настроить мобильное устройство для связи с сервером.

Выясняем причину: почему 1С не видит Денвер или нестандартный Apache

Проанализируем ситуацию, с которой сталкиваются многие разработчики. Вы установили «Денвер» или аналогичную сборку «все в одном», запустили службы, но в окне публикации 1С список доступных веб-серверов пуст. Рассмотрим подробнее механизмы поиска, которые использует платформа.

Проблема заключается в том, что конфигуратор 1С не сканирует порты компьютера в реальном времени. Вместо этого он обращается к реестру Windows и ищет строго определенные ключи, создаваемые официальными инсталляторами Apache или IIS. Платформа ищет службы с классическими именами, такими как Apache2.2 или Apache2.4. Денвер же использует свои собственные скрипты запуска и часто называет службы иначе или вовсе не регистрирует их стандартным способом. Кроме того, 1С требуется знать путь к конфигурационному файлу httpd.conf, который в нестандартных сборках может находиться в нетипичном месте.

Разберем способы решения этой проблемы:

  1. Использование стандартного дистрибутива: Самый надежный способ — отказаться от Денвера в пользу официального дистрибутива Apache (с сайта Apache Lounge или аналогичных). При установке он пропишет необходимые данные в реестр, и 1С мгновенно «увидит» сервер.
  2. Запуск от имени администратора: Проанализируем важный нюанс — конфигуратор должен иметь права на чтение реестра и запись в системные папки. Всегда запускайте 1С «от имени администратора» при выполнении публикации.
  3. Проверка имен служб: Если вы устанавливали Apache вручную, убедитесь, что имя службы соответствует ожиданиям 1С. Если вы назвали службу, например, MyWebSrv, платформа ее проигнорирует.

Программная публикация через утилиту webinst

Если графический интерфейс конфигуратора все же не находит сервер, мы можем воспользоваться «программным» методом. Выясним, как выполнить публикацию принудительно, используя встроенную утилиту 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"

В данной команде мы принудительно указываем:

Файл публикации .vrd: ручной метод

Иногда полезно понимать, что именно делает 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=&quot;C:\Bases\MobileDB&quot;;">
    <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). Выясним, как создать разрешающее правило:

  1. Откройте «Монитор брандмауэра Windows в режиме повышенной безопасности».
  2. Выберите «Правила для входящих подключений» и нажмите «Создать правило».
  3. Выберите тип «Для порта», укажите протокол TCP и номер порта 80 (или тот, который вы настроили в Apache).
  4. Разрешите подключение и укажите профили сети (лучше ограничиться «Частной», чтобы не открывать доступ в публичных местах).

Тип сети: Проанализируем состояние вашей сети. В настройках Windows сеть должна быть помечена как «Частная» или «Домашняя». Если она определена как «Общедоступная», Windows будет игнорировать многие разрешающие правила из соображений безопасности.

Запуск приложения на мобильном устройстве

Многие новички путают процесс разработки и процесс дистрибуции готового приложения. Рассмотрим подробнее, как увидеть свою конфигурацию на экране смартфона.

Для этапа разработки нам не нужно собирать полноценный .apk файл (это трудоемкий процесс, требующий установки Android SDK и Java). Мы будем использовать мобильную платформу 1С:Предприятие.

Посмотрим на алгоритм действий:

  1. В дистрибутиве мобильной платформы, скачанном с сайта 1С, найдите папку Android. Там лежат файлы типа 1cem-arm.apk (для большинства смартфонов) или 1cem-x86.apk (для эмуляторов).
  2. Перенесите нужный .apk на телефон и установите его. Это «пустая» оболочка 1С.
  3. Запустите установленное приложение. Вы увидите пустой список информационных баз.
  4. Нажмите кнопку «Добавить».
  5. В поле «Наименование» введите любое название, а в поле «Адрес» — путь к вашей публикации, который мы проверяли ранее (например, http://192.168.1.15/mob_app).
  6. Нажмите «Загрузить». Если все настроено верно, мобильная платформа скачает вашу конфигурацию с сервера и запустит ее.

Преимущество такого способа в том, что при каждом изменении кода в конфигураторе вам достаточно будет просто перезапустить приложение на телефоне, и оно предложит обновиться, подтянув свежие изменения с веб-сервера.

Резюме по устранению неполадок

Если после всех действий приложение не подключается, проанализируем следующие моменты:

Таким образом, мы разобрали полный цикл публикации — от преодоления капризов конфигуратора 1С до настройки сетевого экрана и запуска мобильного клиента. Следуя этим инструкциям, вы сможете сосредоточиться на написании кода, а не на борьбе с сетевыми настройками.

← На главную