При настройке веб-сервисов 1С системные администраторы часто сталкиваются с ситуацией, когда после переустановки веб-сервера Apache при попытке открыть http://localhost/ в браузере вместо стандартной страницы отображается ошибка в формате JSON, содержащая ссылку на v8.1c.ru/8.2/virtual-resource-system. Это сигнализирует о том, что веб-сервер работает, но его конфигурация некорректно передает управление модулю расширения 1С. Разберем подробно, почему это происходит и как вернуть работоспособность системы.
Рассмотрим природу возникшей ошибки. Сообщение HTTP: Not found, упакованное в JSON-структуру 1С, означает, что запрос был успешно принят веб-сервером Apache, но затем перенаправлен в модуль wsap24.dll (расширение веб-сервера 1С). Модуль 1С попытался найти в своей структуре опубликованных ресурсов объект index.html и, не обнаружив его, выдал внутреннюю ошибку 404.
Выясним причину такого поведения. Это происходит из-за того, что в конфигурационном файле httpd.conf остались «следы» старых публикаций информационных баз, которые перехватывают все входящие запросы, даже те, которые должны относиться к корню веб-сервера. Проанализируем основные шаги по исправлению ситуации.
Перед тем как приступать к тонкой настройке, необходимо убедиться, что в системе не осталось конфликтующих компонентов. Зачастую деинсталлятор Apache удаляет только исполняемые файлы, оставляя папку conf с измененными настройками. Проделаем следующие действия:
Apache2.4 через консоль управления службами.sc delete Apache2.4
C:\Apache24). Это критически важно, так как именно там хранятся старые файлы httpd.conf и .htaccess.Основная проблема кроется в директивах конфигурации. Откроем файл httpd.conf, расположенный в папке conf вашего веб-сервера, и проанализируем его содержимое. Нам необходимо найти секции, добавленные платформой 1С.
Разберем, какие строки могут вызывать проблему:
LoadModule _1cws_module "C:/Program Files/1cv8/8.3.XX.XXXX/bin/wsap24.dll"
Убедимся, что путь ведет к актуальной версии платформы и соответствует разрядности вашего Apache (64-бит или 32-бит).
Alias "/" "...", это означает, что корень сайта полностью отдан под управление 1С. Изменим алиас на конкретное имя базы, например:
Alias "/mybase" "C:/www/mybase/"
DirectoryIndex. Если он настроен неверно или модуль 1С стоит в приоритете перед обработкой статических файлов, мы получим ошибку. Убедимся, что в начале списка указан index.html:
DirectoryIndex index.html index.php
Вместо ручного редактирования текстовых файлов рекомендуется использовать штатное средство платформы 1С — утилиту webinst. Это позволяет избежать синтаксических ошибок в httpd.conf. Рассмотрим пример корректной публикации базы через командную строку:
"C:\Program Files\1cv8\8.3.XX.XXXX\bin\webinst.exe" -apache24 -wsdir MyService -dir "C:\inetpub\wwwroot\MyService" -connstr "Srvr=ServerName;Ref=BaseName;" -confPath "C:\Apache24\conf\httpd.conf"
Разберем параметры этой команды:
-apache24 — указываем тип используемого веб-сервера.-wsdir — виртуальный каталог, по которому будет доступен веб-сервис.-dir — физический каталог, где будет создан файл default.vrd.-connstr — строка соединения с информационной базой.-confPath — путь к основному конфигурационному файлу Apache, куда утилита внесет изменения.Часто проблема virtual-resource-system возникает при несовпадении разрядности компонентов. Если вы устанавливаете 64-битную версию Apache24, то и модуль wsap24.dll должен браться из 64-битной папки 1С (обычно C:\Program Files\1cv8\...). Если случайно прописать путь к Program Files (x86), модуль может загрузиться некорректно или вызывать ошибки доступа к памяти.
Также проанализируем права доступа. Пользователь, от имени которого запущена служба Apache (обычно SYSTEM или Network Service), должен иметь полные права на чтение и выполнение в каталоге, где опубликована база (там, где лежит файл default.vrd). Выясним, есть ли у службы права на чтение бинарных файлов платформы 1С в bin каталоге.
Каждая публикация 1С создает дескриптор виртуального ресурса — файл default.vrd. Проанализируем его структуру. Если в нем некорректно указан атрибут base или vrs:point, это может приводить к тому, что 1С пытается перехватить запросы, не относящиеся к ней. Типичный заголовок файла должен выглядеть так:
<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="/MyBaseName"
ib="Srvr="Server";Ref="Base";">
Обратим внимание на параметр base. Он должен строго соответствовать Alias, прописанному в httpd.conf. Если после переустановки Apache вы изменили пути, обязательно переопубликуйте базу через конфигуратор или утилиту webinst, чтобы обновить этот файл.
Таким образом, мы рассмотрели комплексный подход к решению проблемы. Главное — это чистота конфигурационных файлов Apache и строгое соответствие путей публикации реальному расположению файлов на диске. После внесения изменений не забывайте перезапускать службу Apache для применения настроек.