При администрировании систем на базе 1С:Предприятие одной из наиболее частых задач является публикация информационных баз на веб-сервере для обеспечения удаленного доступа пользователей через тонкий клиент или веб-браузер. Однако после проведения планового обновления платформы (например, при переходе на релиз 8.3.17.1851 или любой другой актуальный релиз ветки 8.3) администраторы часто сталкиваются с неприятной системной ошибкой. При попытке зайти в Конфигуратор и выбрать пункт меню «Администрирование -> Публикация на веб-сервере» система выдает критическое предупреждение: «Веб-серверы не обнаружены», при этом кнопка публикации становится неактивной.
В этой статье мы подробно и пошагово разберем, почему возникает данная неполадка, проанализируем внутренние механизмы взаимодействия Конфигуратора 1С и веб-сервера Apache, а также рассмотрим комплекс практических методов решения этой проблемы.
Для начала давайте разберем физику процесса публикации. Когда мы открываем диалоговое окно публикации в Конфигураторе, 1С не просто проверяет запущенные службы в операционной системе Windows. Она выполняет сканирование системного реестра и стандартных путей файловой системы в поисках установленного программного обеспечения веб-серверов (IIS или Apache). Если пути изменены, файлы конфигурации недоступны для чтения/записи или разрядность компонентов не совпадает, 1С принимает решение, что подходящих веб-серверов в системе нет.
Проанализируем основные факторы, которые приводят к этой ошибке после обновления платформы:
httpd.conf жестко прописывается путь к библиотеке сопряжения 1С (например, wsap22.dll или wsap24.dll), которая лежит внутри бинарного каталога конкретной версии платформы. При установке новой версии старый каталог становится неактуальным, а веб-сервер продолжает ссылаться на него или вовсе перестает запускаться.Ниже мы подробно рассмотрим каждый шаг по устранению этих неисправностей.
Прежде чем приступать к тонкой настройке конфигурационных файлов, давайте убедимся, что на сервере физически присутствуют необходимые компоненты новой платформы. Очень часто в процессе обновления администраторы обновляют только серверную и клиентскую части 1С, забывая про веб-компоненты.
Выполним следующие действия для проверки и исправления:
8.3.17.1851) и нажмем кнопку «Изменить».После этого в каталоге установленной платформы (обычно это C:\Program Files\1cv8\8.3.17.1851\bin\ или C:\Program Files (x86)\1cv8\8.3.17.1851\bin\) должны появиться файлы модулей веб-сервера — wsap22.dll (для Apache 2.2) или wsap24.dll (для Apache 2.4).
Перейдем к самой частой проблеме, с которой столкнулся автор темы на форуме. При установке новой платформы старый путь к библиотеке 1С в файле настроек Apache становится недействительным. Веб-сервер либо запускается с ошибками, либо Конфигуратор новой платформы не может сопоставить запущенную службу со своими внутренними путями.
Давайте пошагово отредактируем конфигурационный файл Apache:
services.msc) или через утилиту управления Apache.C:\Program Files\Apache Software Foundation\Apache2.2\conf\. Для версии 2.4 — C:\Program Files\Apache Software Foundation\Apache2.4\conf\ или ваш кастомный путь (например, C:\Apache24\conf\).httpd.conf с помощью любого текстового редактора (например, Notepad++), обязательно запустив его от имени Администратора.
# Пример старой конфигурации для платформы 8.3.15.1830 и Apache 2.2
LoadModule _1cws_module "C:/Program Files/1cv8/8.3.15.1830/bin/wsap22.dll"
Как мы видим, здесь жестко прописан путь к бинарному файлу старой платформы 1С. Поскольку мы обновились на версию 8.3.17.1851, веб-сервер при попытке обращения к публикациям будет пытаться загрузить библиотеку из несуществующего или неактуального каталога.
Нам необходимо вручную отредактировать эту строку, указав путь к новой платформе. Изменим ее следующим образом:
# Новая конфигурация для платформы 8.3.17.1851 и Apache 2.2
LoadModule _1cws_module "C:/Program Files/1cv8/8.3.17.1851/bin/wsap22.dll"
Важное примечание: Обратите внимание на направление слэшей в пути к файлу. В конфигурационном файле Apache используются прямые слэши (/), в то время как в Windows стандартными являются обратные слэши (\). Не допускайте ошибок при копировании путей из проводника Windows.
Если вы используете веб-сервер Apache версии 2.4, строка подключения модуля должна использовать соответствующую библиотеку сопряжения:
# Конфигурация для платформы 8.3.17.1851 и Apache 2.4
LoadModule _1cws_module "C:/Program Files/1cv8/8.3.17.1851/bin/wsap24.dll"
После внесения изменений сохраним файл httpd.conf и запустим службу Apache заново. Убедимся, что служба перешла в статус «Работает» и не завершается аварийно.
Если вы проделали описанные выше шаги, но Конфигуратор 1С все еще упорно твердит, что «Веб-серверы не обнаружены», давайте проанализируем структуру каталогов самого веб-сервера. Конфигуратор осуществляет автоматический поиск веб-сервера Apache по строго заданным веткам реестра Windows и стандартным путям файловой системы. Чтобы избежать проблем со структурой каталогов на этапе развертывания, можно использовать скрипт автоматической установки Apache на Windows.
Если ваш веб-сервер установлен, к примеру, в корень диска C:\Apache22\ или собран из альтернативных пакетов (XAMPP, WampServer), 1С просто не сможет его локализовать.
Для обхода этого ограничения мы можем применить проверенную хитрость: имитировать стандартную структуру каталогов. Разберем этот алгоритм:
C:\Program Files\Apache Software Foundation\Apache2.2\conf\ (или Apache2.4\conf\ в зависимости от используемой версии).httpd.conf из реального каталога установки Apache в только что созданную папку conf по стандартному пути.httpd.conf из "фейковой" папки обратно в реальный рабочий каталог вашего Apache и перезапустим службу веб-сервера.Давайте рассмотрим влияние механизма контроля учетных записей пользователей (UAC) в ОС Windows Server. Даже если ваша учетная запись входит в группу локальных администраторов сервера, обычный запуск Конфигуратора выполняется с урезанными правами. В этом режиме программа не имеет прав на запись в системные папки (такие как C:\Program Files\) и лишена возможности изменять файлы конфигурации веб-сервера.
В результате этого ограничения Конфигуратор блокирует возможность публикации баз. Решение здесь максимально простое, но критически важное:
Всегда запускайте ярлык 1С:Предприятия или непосредственно Конфигуратор через контекстное меню: правой кнопкой мыши -> «Запуск от имени администратора». Только в этом случае платформа получит полный доступ к сопряженным службам и конфигурационным файлам веб-сервера.
Еще один неочевидный нюанс, который часто упускают при обновлении программного обеспечения — несовпадение архитектуры приложений (32-бит и 64-бит). Давайте проанализируем правила совместимости веб-серверов и компонентов 1С:
Перед началом публикации обязательно сверяйте архитектуру установленного веб-сервера со свойствами запускаемого клиента 1С в диспетчере задач Windows.
Что делать, если все настройки проверены, пути верны, но графический интерфейс Конфигуратора по-прежнему выдает ошибку поиска веб-серверов? Для таких сложных ситуаций разработчики 1С предусмотрели альтернативный и более надежный низкоуровневый инструмент — консольную утилиту webinst. При необходимости также можно использовать внешнюю обработку для публикации информационных баз в обход Конфигуратора.
Эта утилита поставляется вместе с платформой 1С и находится в каталоге bin установленной версии. Преимущество использования утилиты командной строки заключается в том, что мы можем принудительно передать ей точные пути к файлу конфигурации Apache, полностью минуя автоматические алгоритмы поиска Конфигуратора.
Давайте рассмотрим детальный пример использования утилиты webinst для публикации базы данных:
bin установленной версии платформы 1С с помощью команды:
cd "C:\Program Files\1cv8\8.3.17.1851\bin"
Trade_DB, работает в клиент-серверном режиме на сервере 1C-SRV, а конфигурационный файл Apache 2.2 расположен по кастомному пути C:\Apache22\conf\httpd.conf. Команда будет выглядеть следующим образом:
webinst -apache22 -wsdir Trade_DB -dir "C:\inetpub\wwwroot\Trade_DB" -connstr "Srvr=1C-SRV;Ref=Trade_DB;" -confpath "C:\Apache22\conf\httpd.conf"
Давайте подробно разберем ключи, которые мы использовали в этой команде, чтобы вы могли легко адаптировать ее под свои параметры:
-apache22 (или -apache24) — указывает тип и версию целевого веб-сервера.-wsdir — задает имя виртуального каталога, под которым база будет доступна в веб-браузере (например, http://localhost/Trade_DB).-dir — физический путь на жестком диске, где будет создан каталог публикации с файлом описания базы default.vrd.-connstr — строка соединения с информационной базой (для серверной базы указываются параметры Srvr и Ref, для файловой базы — путь к каталогу в формате File="C:\DB\Trade";).-confpath — важнейший параметр, указывающий прямой путь к файлу конфигурации вашего веб-сервера. Именно он позволяет полностью обойти проблему "веб-серверы не обнаружены".После выполнения этой команды утилита самостоятельно пропишет нужные строки подключения модуля 1С в указанный файл httpd.conf, создаст каталог публикации и сгенерирует файл описания default.vrd. Вам останется лишь перезапустить службу Apache.
Мы подробно проанализировали проблему несовместимости версий и путей при публикации баз 1С на веб-сервере после обновления платформы. В заключение давайте составим краткий чеклист, который поможет быстро локализовать и устранить проблему в будущем:
httpd.conf: путь к библиотеке wsap22.dll / wsap24.dll должен указывать на каталог новой версии платформы 1С. Используйте прямые слэши в путях.httpd.conf во временную папку, имитирующую стандартный путь установки, либо воспользуйтесь консольной утилитой публикации webinst.Используя данные методы системного администрирования, вы гарантированно решите проблему доступности веб-серверов и обеспечите бесперебойную работу пользователей с базами 1С через веб-интерфейс.