Многие специалисты сталкиваются с ситуацией, когда стандартный метод публикации через меню «Администрирование — Публикация на веб-сервере» в Конфигураторе недоступен или неудобен. Это может быть связано с необходимостью автоматизации развертывания (CI/CD), работой в операционных системах семейства Linux без графического интерфейса или специфическими требованиями к безопасности. В данной статье мы подробно разберем, как осуществить публикацию полностью вручную или с помощью инструментов командной строки, а также выясним, почему могут возникать ошибки типа 404 Not Found.
Прежде всего, проанализируем опасения пользователей о том, что нажатие кнопки «Опубликовать» в Конфигураторе делает некие скрытые записи внутри самой информационной базы (флаги «база опубликована» и т.д.). Важно понимать: никаких внутренних изменений в базе данных при публикации не происходит. Процесс публикации — это исключительно взаимодействие платформы с внешним веб-сервером (Apache или IIS) и создание файла описания виртуального ресурса default.vrd. Следовательно, ручная настройка абсолютно эквивалентна штатной процедуре, если выполнены все требования к конфигурационным файлам.
Рассмотрим наиболее надежный способ автоматизации — использование штатной утилиты webinst. Она входит в состав дистрибутива платформы 1С и находится в каталоге bin установленной версии. Эта утилита позволяет прописать все необходимые параметры в конфигурацию веб-сервера одной командой.
Разберем пример команды для веб-сервера Apache 2.4:
webinst -apache24 -wsdir MyBase -dir "C:\inetpub\wwwroot\MyBase" -connstr "Srvr=ServerName;Ref=BaseName;" -confPath "C:\Program Files\Apache24\conf\httpd.conf"
Проанализируем используемые параметры:
-apache24 — указывает тип и версию используемого веб-сервера.-wsdir — определяет имя виртуального каталога, по которому база будет доступна в браузере (например, http://server/MyBase).-dir — физический путь на диске, где будет лежать файл default.vrd.-connstr — строка соединения с информационной базой (для клиент-серверного или файлового варианта).-confPath — путь к основному конфигурационному файлу веб-сервера, в который утилита внесет изменения.Если мы решим настраивать сервер полностью «руками», нам необходимо выполнить два основных действия: отредактировать httpd.conf и создать файл default.vrd. Выясним, какие именно записи должны появиться в конфиге Apache.
В файл httpd.conf необходимо добавить загрузку модуля расширения 1С и описание виртуального каталога. Пример типичной записи:
LoadModule _1cws_module "C:/Program Files/1cv8/8.3.23.1865/bin/wsap24.dll"
Alias "/MyBase" "C:/inetpub/wwwroot/MyBase/"
<Directory "C:/inetpub/wwwroot/MyBase/">
AllowOverride None
Options None
Require all granted
SetHandler 1c-application
ManagedApplicationDescriptor "C:/inetpub/wwwroot/MyBase/default.vrd"
</Directory>
Важный момент: обратите внимание на пути. Одной из самых коварных ошибок является использование разных раскладок для визуально похожих символов. Например, латинская c и кириллическая с в путях или именах директорий гарантированно приведут к ошибке 404, которую крайне сложно заметить при беглом осмотре текста.
Файл default.vrd представляет собой XML-документ, описывающий параметры подключения к базе и доступные сервисы. Рассмотрим пример его содержания для клиент-серверной базы:
<?xml version="1.0" encoding="UTF-8"?>
<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="/MyBase"
ib="Srvr=ServerName;Ref=BaseName;">
<standardOdata enable="true"
publishRootReadOnly="false"
setFullMetadataComposition="true"/>
<debug enable="false" url="tcp://localhost"/>
</point>
В этом файле мы можем тонко настраивать работу системы:
ib содержит строку соединения. Убедитесь, что она в точности совпадает с той, что используется в тонком клиенте.standardOdata управляет доступом к автоматическому REST-интерфейсу 1С.debug позволяет включить возможность отладки кода прямо на веб-сервере.poolSize и poolTimeout) помогают оптимизировать работу под высокой нагрузкой.При работе с Linux-серверами ручная настройка часто становится основным методом. Проанализируем специфические нюансы этой ОС:
/var/www/mybase и /var/www/MyBase — это разные каталоги. Ошибка в регистре в файле httpd.conf — самая частая причина 404.www-data или apache), обязан иметь права на чтение каталога с файлом default.vrd и права на выполнение для библиотек 1С (файлы .so в каталоге платформы)..dll файлов в конфигурации httpd.conf должны быть указаны соответствующие .so модули (например, wsap24.so).Выясним еще одну скрытую причину неудач при публикации. Разрядность веб-сервера и установленной платформы 1С должна совпадать. Если вы используете 64-битную версию платформы 1С, вам необходимо установить 64-битную версию Apache или IIS. Если в httpd.conf указать путь к 64-битной библиотеке wsap24.dll внутри 32-битного Apache, сервер либо не запустится, либо будет выдавать ошибки при попытке обращения к модулю расширения.
Если после всех манипуляций вы все равно получаете ошибку, проанализируем следующие шаги отладки:
error.log). Там будут зафиксированы ошибки инициализации модуля 1С, если они возникли.libxml2 или специфические версии системных библиотек в Linux.default.vrd до минимума, оставив только базовое описание точки подключения.Таким образом, мы видим, что ручная публикация — это прозрачный и контролируемый процесс. Главное — проявлять внимательность к деталям конфигурации, следить за корректностью путей и соблюдать требования к разрядности ПО.