При работе с веб-публикацией баз данных 1С системные администраторы часто сталкиваются с ситуацией, когда сама информационная база через браузер или тонкий клиент открывается корректно, но при попытке автоматического обновления платформы возникает Ошибка 404 (Not Found). Особенно часто эта проблема проявляется при использовании готовых сборок типа XAMPP, где настройки Apache могут отличаться от стандартных. В этой статье мы подробно разберем, как правильно настроить веб-сервер для публикации дистрибутивов и почему возникают ошибки при получении файлов .zip.
Рассмотрим типичную ситуацию: в конфигураторе 1С выполнена публикация базы на веб-сервере. В окне публикации на закладке "Дополнительно" установлена галочка "Публиковать дистрибутив тонкого клиента" и указаны пути к файлам. Однако при запуске пользователем программы появляется сообщение: "Во время получения обновления программы произошла ошибка. Код ошибки: 404".
Проанализируем причины. Код 404 означает, что веб-сервер Apache получил запрос, но не смог сопоставить URL запроса с физическим файлом на диске. Это может происходить из-за неправильной настройки директивы Alias, отсутствия прав доступа к папке с дистрибутивами или ограничений безопасности внутри самого XAMPP.
Прежде всего, проверим, как сформирован файл публикации. Для этого запустим 1С:Предприятие в режиме Конфигуратор от имени Администратора. Это критически важно, так как для записи изменений в файлы веб-сервера требуются повышенные привилегии.
Apache 2.4.http://135.181.82.57:8080/platform/setuptc64_8_3_23_1865.zip.После нажатия кнопки "Опубликовать", система обновит файл 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="/ar_ttest"
ib="Srvr="serverf";Ref="ar_ttest";"
pubdstwin64="http://135.181.82.57:8080/platform/setuptc64_8_3_23_1865.zip">
<standardOdata enable="false" reuseSessions="autouse" sessionMaxAge="20" poolSize="10" poolTimeout="5"/>
</point>
Обратим внимание на параметр pubdstwin64. Ссылка в нем должна вести на виртуальный каталог /platform, который нам необходимо настроить в самом Apache.
Поскольку файлы дистрибутивов обычно хранятся вне папки htdocs (корневой папки веб-сервера), нам нужно создать Alias (псевдоним), чтобы Apache понимал, где их искать физически. Откроем файл конфигурации httpd.conf (в XAMPP он обычно находится по пути C:\xampp\apache\conf\httpd.conf) и добавим в конец следующие строки:
# Настройка доступа к дистрибутивам платформы 1С
Alias "/platform" "C:/WWW/platform/"
<Directory "C:/WWW/platform">
AllowOverride All
Options Indexes Includes
Require all granted
</Directory>
Разберем, что мы здесь прописали:
Alias "/platform" — указывает серверу, что любой запрос, начинающийся с этого пути, нужно перенаправлять в физическую папку на диске.Require all granted — разрешает всем пользователям доступ к содержимому этой папки. Без этой строки Apache может выдать 403 (Forbidden) или 404 ошибку./ в путях, даже если вы работаете в Windows.В сборках XAMPP часто включены дополнительные настройки безопасности, которые могут блокировать доступ к файлам. Рассмотрим дополнительные шаги для устранения ошибки 404.
Проверка MIME-типов: Если Apache не знает, как обрабатывать файлы с расширением .zip, он может отказаться их отдавать. Проанализируем файл mime.types или добавим в httpd.conf строку:
AddType application/zip .zip
Права доступа к файловой системе: Убедимся, что служба Apache (в XAMPP это обычно xampp\apache\bin\httpd.exe) запущена от имени учетной записи, которая имеет права на чтение папки C:\WWW\platform\. Если служба запущена от LocalSystem, обычно проблем нет, но при запуске от ограниченного пользователя доступ может быть закрыт.
Настройки httpd-xampp.conf: В папке conf/extra/ проверьте файл httpd-xampp.conf. Иногда там прописаны глобальные запреты на доступ к ресурсам вне htdocs. Если вы видите директивы <LocationMatch ...> Deny from all </LocationMatch>, они могут перехватывать ваш запрос.
Если после всех настроек и обязательного перезапуска службы Apache ошибка 404 сохраняется, выясним истинную причину через логи. В папке xampp\apache\logs\ найдите файл error.log.
Посмотрим на типичную запись об ошибке:
[error] [client 192.168.1.1] File does not exist: C:/xampp/htdocs/platform/setuptc64_8_3_23_1865.zip
Эта запись говорит нам о том, что наш Alias не сработал, и сервер ищет файл в корневой папке htdocs вместо C:/WWW/platform. В этом случае нужно перепроверить синтаксис Alias и убедиться, что он прописан вне других блоков <Directory> или <VirtualHost>, которые могут его перекрывать.
Проанализируем ситуацию, когда сам zip-файл доступен, но 1С все равно выдает ошибку. При публикации платформы 1С создает не только архив, но и вспомогательные файлы. Убедитесь, что в папке C:/WWW/platform/ находятся:
setuptc64_8_3_23_1865.zip).Помните, что имена файлов чувствительны к регистру, если в настройках Apache включены определенные модули. Рекомендуется всегда использовать нижний регистр в названиях файлов и ссылках.
Подведем итог. Для успешного исправления ошибки 404 выполним следующие действия:
default.vrd.Alias в httpd.conf с разрешением доступа Require all granted.Apache корректно распознает MIME-типы для zip-архивов.Apache через панель управления XAMPP.В некоторых случаях, если XAMPP продолжает конфликтовать с модулями 1С (например, из-за несовместимости версий библиотек OpenSSL), специалисты рекомендуют использовать "чистый" дистрибутив Apache, скачанный с официального сайта, вместо готовых сборок. Это позволяет более гибко управлять модулями и избегать лишних надстроек безопасности, специфичных для XAMPP.