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

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

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

Шаг 1: Проверка доступности Apache на уровне сетевых портов

Первым делом нам необходимо убедиться, что веб-сервер действительно занимает нужный порт (по умолчанию 80-й) и готов принимать входящие соединения. Для этого воспользуемся системной утилитой netstat. Запустим командную строку от имени администратора и выполним следующую команду:

netstat -anbp tcp

Проанализируем полученный список. Нас интересует строка, где в колонке «Локальный адрес» указано 0.0.0.0:80 (или другой порт, если вы меняли его в httpd.conf), а в состоянии стоит LISTENING. В квадратных скобках под этой строкой должен быть указан процесс httpd.exe. Если процесса нет или порт занят другим приложением (например, Skype или IIS), 1С не сможет взаимодействовать с Apache.

Если мы видим, что httpd.exe слушает порт, проверим его работоспособность через обычный браузер. Введем в адресную строку:

http://localhost

Если сервер настроен верно, мы должны увидеть либо стандартную надпись «It works!», либо список файлов (Index of /). Если браузер выдает ошибку «Страница недоступна», значит, проблема в самом Apache, и 1С тут ни при чем — нужно проверять конфигурационный файл httpd.conf на наличие ошибок.

Шаг 2: Проверка установленных компонентов 1С

Одной из самых частых причин, почему кнопка «Опубликовать» не срабатывает, является отсутствие необходимых модулей в самой платформе 1С. Разберем, как это проверить. Перейдем в Панель управления -> Программы и компоненты, найдем нашу платформу 1С:Предприятие и выберем пункт «Изменить».

В открывшемся дереве компонентов убедимся, что установлен флажок напротив пункта «Модули расширения веб-сервера». Без этого компонента Конфигуратор даже не будет пытаться искать установленные веб-серверы, так как у него просто нет инструментов (библиотек wsap24.dll и других) для взаимодействия с ними.

Шаг 3: Права доступа и запуск от имени администратора

Проанализируем ситуацию с правами. Публикация базы — это процесс записи данных в системные папки (в каталог Apache) и внесения изменений в конфигурационные файлы веб-сервера. Если Конфигуратор запущен от имени обычного пользователя, операционная система может заблокировать попытку поиска служб или чтения реестра.

Всегда запускайте 1С:Предприятие от имени администратора перед тем, как открыть окно публикации. Также проверим права доступа к папке, где установлен Apache (обычно C:\Apache24). На вкладке «Безопасность» у группы «Администраторы» и у пользователя, под которым работает служба Apache, должны быть полные права на чтение и запись в папку conf.

Шаг 4: Имя службы и системный реестр

Платформа 1С ищет веб-сервер не просто по наличию файлов на диске, а по зарегистрированным службам в реестре Windows. Рассмотрим, как это работает. 1С ищет службы с именами типа Apache2.4 или Apache2.2. Если при установке веб-сервера вы вручную переименовали службу (например, в MyWebSrv), 1С может её проигнорировать.

Проверим имя службы через PowerShell:

Get-Service "*apache*"

Если имя службы отличается от стандартного, рекомендуется переустановить службу с правильным именем. Для этого в папке bin веб-сервера выполним команды:


httpd.exe -k uninstall
httpd.exe -k install -n "Apache2.4"

Шаг 5: Проблема разрядности (32 vs 64 бит)

Это критический момент. Выясним, совпадает ли разрядность установленного Apache и модулей расширения 1С. Если вы установили 64-битный Apache, но при установке 1С выбрали 32-битные модули расширения (или наоборот), публикация может завершиться ошибкой или сервер просто «не найдется».

Важное правило: разрядность веб-сервера должна строго соответствовать разрядности установленных модулей расширения 1С. Проверьте путь к библиотеке в httpd.conf после ручной правки (если она была) — он должен вести в папку соответствующей разрядности (например, C:\Program Files\1cv8\... для 64-бит и C:\Program Files (x86)\1cv8\... для 32-бит).

Шаг 6: Альтернативный метод публикации через утилиту webinst

Если графический интерфейс Конфигуратора по-прежнему не видит сервер, мы можем воспользоваться «силовым» методом — утилитой командной строки webinst.exe, которая входит в комплект поставки платформы. Она позволяет выполнить публикацию, явно указав путь к конфигурационному файлу Apache.

Рассмотрим пример команды для публикации:


"C:\Program Files\1cv8\8.3.XX.XXXX\bin\webinst.exe" -publish -apache24 -wsdir MyBase -dir "C:\www\MyBase" -connstr "Srvr=Server1C;Ref=MyBase;" -confpath "C:\Apache24\conf\httpd.conf"

В этой команде мы принудительно указываем ключ -confpath, что позволяет обойти механизмы автоматического поиска веб-сервера. После выполнения этой команды необходимо перезапустить службу Apache вручную через оснастку services.msc.

Шаг 7: Влияние защитного ПО

Проанализируем логи netstat из исходной темы. Мы видим активный процесс dwnetfilter.exe. Это сетевой фильтр антивируса (в данном случае Dr.Web). Подобные программы могут блокировать внутренние запросы платформы 1С к службам системы. Попробуйте временно отключить самозащиту антивируса и сетевой экран, чтобы исключить вероятность блокировки сканирования веб-серверов.

Подведем итог: если 1С не видит Apache, это чаще всего связано либо с отсутствием установленного компонента «Модули расширения веб-сервера», либо с нехваткой прав администратора, либо с нестандартным именем службы Apache в реестре Windows. Последовательная проверка этих факторов позволяет решить проблему в 99% случаев.

← На главную