Модуль расширения веб-сервера 1С — это библиотека, которая встраивается в Apache или IIS и связывает веб-сервер с кластером 1С:Предприятие. Без этого модуля веб-сервер не понимает запросы к информационным базам. С ним — браузер, тонкий клиент, мобильное приложение, HTTP-сервисы и REST API работают через HTTP/HTTPS.

Модуль поставляется в отдельном пакете платформы 1С. На Linux это wsap24.so (для Apache 2.4), на Windows — wsapISAPI.dll (для IIS) и wsap24.dll (для Apache под Windows). Название расшифровывается как «web server apache 2.4» — цифра 24 указывает на совместимость с конкретной версией Apache.

В этой статье: как устроен модуль, установка на Apache (Linux) и IIS (Windows), публикация информационной базы, пошаговая инструкция и типичные ошибки с решениями. Если вы уже настроили Apache и нужен только модуль — переходите сразу к разделу установки.

Что такое модуль расширения веб-сервера 1С

Модуль расширения — это разделяемая библиотека (shared library), которая загружается в адресное пространство веб-сервера. При каждом HTTP-запросе к опубликованной базе модуль открывает TCP-соединение к серверу приложений 1С (ragent → rmngr → rphost), передаёт данные и возвращает ответ в браузер.

Модуль не является самостоятельным приложением. Он работает только внутри веб-сервера — Apache или IIS. Без веб-сервера модулю негде запуститься. Без модуля веб-сервер не знает протокол 1С.

Варианты модуля для разных платформ

ФайлВеб-серверОСПакет
wsap24.soApache 2.4Linux1c-enterprise83-ws (.deb / .rpm)
wsap24.dllApache 2.4WindowsУстановщик платформы 1С (компонент «Модули расширения веб-сервера»)
wsapISAPI.dllIIS 8.5+WindowsУстановщик платформы 1С (компонент «Модули расширения веб-сервера»)

Разрядность модуля должна совпадать с разрядностью веб-сервера. 64-битный Apache требует 64-битный wsap24.so. Это частая причина ошибок — подробности в разделе «Типичные ошибки».

Цепочка обработки запроса

Каждый запрос от браузера до базы данных проходит четыре звена. Обрыв на любом из них приводит к ошибке — ошибке HTTP или коду 500.

ЗвеноКомпонентПортРоль
1Веб-сервер (Apache / IIS)80 / 443Принимает HTTP/HTTPS-запросы от браузера
2Модуль 1С (wsap24 / wsapISAPI)Преобразует HTTP-запрос в вызов кластера 1С
3Сервер приложений (ragent / rmngr / rphost)1540, 1541, 1560+Обрабатывает бизнес-логику 1С
4СУБД (MS SQL / PostgreSQL)1433 / 5432Хранение и выдача данных

Модуль работает в том же процессе, что и веб-сервер. Это значит: если модуль «упадёт», упадёт и рабочий процесс Apache/IIS. На практике это случается редко, но при диагностике учитывайте — ошибки модуля попадают в логи веб-сервера, а не в журнал регистрации 1С.

Установка модуля расширения на Apache (Linux)

Apache 2.4 — стандартный выбор для Linux-серверов 1С. Перед установкой модуля убедитесь, что Apache установлен и запущен, а кластер серверов 1С настроен и работает.

Установка пакета 1c-enterprise83-ws

Модуль поставляется в пакете 1c-enterprise83-ws. Скачайте его с releases.1c.ru вместе с серверными компонентами. Порядок установки важен: common → server → ws.

# Ubuntu / Debian
sudo dpkg -i 1c-enterprise83-common_8.3.*.deb
sudo dpkg -i 1c-enterprise83-server_8.3.*.deb
sudo dpkg -i 1c-enterprise83-ws_8.3.*.deb

# Если ошибка зависимостей:
sudo apt install -f

# RHEL / CentOS / AlmaLinux
sudo rpm -ivh 1c-enterprise83-common-8.3.*.rpm
sudo rpm -ivh 1c-enterprise83-server-8.3.*.rpm
sudo rpm -ivh 1c-enterprise83-ws-8.3.*.rpm

Если пакеты common и server уже установлены — ставьте только ws. Пакет ws содержит модуль wsap24.so и утилиту webinst для публикации баз.

Расположение модуля после установки

# Найти wsap24.so
find /opt/1cv8 -name "wsap24.so"
# /opt/1cv8/x86_64/8.3.25.1257/wsap24.so

Путь включает номер версии платформы. При обновлении 1С каталог изменится — модуль нужно будет переподключить в конфигурации Apache.

Подключение модуля к Apache

Модуль подключается директивой LoadModule. Способ зависит от дистрибутива.

Ubuntu / Debian:

# Создать файл модуля
sudo tee /etc/apache2/mods-available/1c.load <<'EOF'
LoadModule _1cws_module "/opt/1cv8/x86_64/8.3.25.1257/wsap24.so"
EOF

# Включить модуль
sudo a2enmod 1c

# Проверить конфигурацию
apache2ctl configtest
# Syntax OK

# Перезапустить Apache
sudo systemctl restart apache2

RHEL / CentOS / AlmaLinux:

# Создать файл модуля
sudo tee /etc/httpd/conf.modules.d/1c.conf <<'EOF'
LoadModule _1cws_module "/opt/1cv8/x86_64/8.3.25.1257/wsap24.so"
EOF

# Проверить конфигурацию
httpd -t
# Syntax OK

# Перезапустить
sudo systemctl restart httpd

Замените 8.3.25.1257 на вашу версию платформы. Узнать точную версию: ls /opt/1cv8/x86_64/.

Проверка загрузки модуля

# Проверить, что модуль загружен
apache2ctl -M | grep 1cws
# _1cws_module (shared)

# Если модуль не в списке — смотрите error.log:
sudo tail -20 /var/log/apache2/error.log   # Ubuntu
sudo tail -20 /var/log/httpd/error_log      # RHEL

Если модуль загружен — Apache готов принимать запросы к информационным базам. Осталось опубликовать базу.

Установка модуля расширения на IIS (Windows)

На Windows Server модуль расширения работает через IIS как ISAPI-расширение. IIS — штатный веб-сервер Windows, предустановлен в серверных редакциях.

Подготовка IIS

Если роль Web Server (IIS) не установлена — добавьте через Server Manager или PowerShell:

# PowerShell (от имени администратора)
Install-WindowsFeature -Name Web-Server -IncludeManagementTools
Install-WindowsFeature -Name Web-ISAPI-Ext, Web-ISAPI-Filter

Компоненты Web-ISAPI-Ext и Web-ISAPI-Filter обязательны — без них IIS не загрузит модуль 1С. Проверьте: откройте http://localhost на сервере — должна отобразиться стартовая страница IIS.

Установка модуля 1С

Модуль устанавливается вместе с платформой 1С:Предприятие. В установщике выберите компонент «Модули расширения веб-сервера».

После установки модуль находится в каталоге платформы:

C:\Program Files\1cv8\8.3.25.1257\bin\wsapISAPI.dll

Файл wsapISAPI.dll — ISAPI-расширение для IIS. Файл wsap24.dll — для Apache под Windows (используется редко).

Настройка пула приложений IIS

Создайте отдельный пул приложений для 1С. Это изолирует рабочие процессы 1С от остальных сайтов IIS.

# PowerShell
# Создать пул приложений
New-WebAppPool -Name "1CPool"

# Настроить пул
Set-ItemProperty "IIS:\AppPools\1CPool" -Name "enable32BitAppOnWin64" -Value $false
Set-ItemProperty "IIS:\AppPools\1CPool" -Name "managedRuntimeVersion" -Value ""
Set-ItemProperty "IIS:\AppPools\1CPool" -Name "processModel.identityType" -Value "LocalSystem"

Параметры пула:

Регистрация ISAPI-расширения

Добавьте wsapISAPI.dll как разрешённое ISAPI-расширение в IIS:

Без этого шага IIS заблокирует загрузку модуля и вернёт ошибку 404.2 или 403.1.

Через PowerShell:

# Разрешить ISAPI-расширение
Add-WebConfiguration "/system.webServer/security/isapiCgiRestriction" -PSPath "MACHINE/WEBROOT/APPHOST" -Value @{
    path = "C:\Program Files\1cv8\8.3.25.1257\bin\wsapISAPI.dll"
    allowed = "true"
    description = "1C Enterprise 8.3 Web Extension"
}

Публикация информационной базы через веб

Публикация — привязка URL-адреса к информационной базе в кластере 1С. После публикации по адресу http://сервер/имя-базы откроется веб-клиент 1С.

Одна база — одна публикация. На одном веб-сервере можно опубликовать несколько баз с разными URL.

Три способа публикации: утилита webinst (командная строка), Конфигуратор (графический интерфейс), ручная настройка (default.vrd + конфиг веб-сервера).

Через утилиту webinst (Linux)

webinst — штатная утилита 1С для управления публикациями. Работает из командной строки, не требует GUI. Основной способ для Linux-серверов.

# Создать каталог публикации
sudo mkdir -p /var/www/1c/accounting
sudo chown www-data:www-data /var/www/1c/accounting

# Опубликовать базу
sudo /opt/1cv8/x86_64/8.3.25.1257/webinst \
  -apache24 \
  -wsdir accounting \
  -dir /var/www/1c/accounting \
  -connstr "Srvr=localhost;Ref=accounting;" \
  -confpath /etc/apache2/apache2.conf

# Перезапустить Apache
sudo systemctl restart apache2

Параметры webinst:

Для RHEL/CentOS: замените -confpath на /etc/httpd/conf/httpd.conf, владельца каталога — на apache:apache.

Через Конфигуратор (Windows/Linux с GUI)

Если на сервере есть графическая среда:

Конфигуратор создаст default.vrd, пропишет настройки в конфигурации веб-сервера и перезапустит его. На Windows это самый простой способ — Конфигуратор автоматически находит IIS и создаёт виртуальный каталог.

Ручная настройка (default.vrd)

Ручная настройка нужна для нестандартных случаев: отдельный виртуальный хост, дополнительные параметры .vrd, когда webinst недоступен.

Публикация состоит из двух компонентов: файл default.vrd (описание подключения к базе) и конфигурация веб-сервера (маршрутизация URL к модулю 1С).

Файл default.vrd:

<?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="/accounting"
  ib="Srvr=localhost;Ref=accounting;">
</point>

Параметр base — URL-путь публикации. Параметр ib — строка подключения к базе. Для HTTP-сервисов и REST API в default.vrd добавляются дополнительные элементы — <httpServices> и <ws>.

Конфигурация Apache:

Alias "/accounting" "/var/www/1c/accounting/"
<Directory "/var/www/1c/accounting/">
    AllowOverride All
    Options None
    Require all granted
    SetHandler 1c-application
    ManagedApplicationDescriptor "/var/www/1c/accounting/default.vrd"
</Directory>

Директива SetHandler 1c-application указывает Apache, что запросы обрабатывает модуль wsap24. Без Require all granted Apache 2.4 запретит доступ.

Подробная инструкция по настройке Apache для 1С — в отдельной статье.

Пошаговая инструкция

Типичные ошибки модуля расширения веб-сервера 1С

Пять ошибок, с которыми сталкиваются при установке и работе модуля. Для каждой — причина и решение.

Модуль не загружается: wrong ELF class (Linux)

В error.log Apache:

Cannot load /opt/1cv8/.../wsap24.so into server:
  /opt/1cv8/.../wsap24.so: wrong ELF class: ELFCLASS32

Причина: разрядность модуля и Apache не совпадают. 32-битный модуль в 64-битный Apache не загрузится.

Решение: проверьте разрядность обоих:

# Разрядность Apache
file $(which apache2 || which httpd)
# .../apache2: ELF 64-bit LSB ...

# Разрядность модуля
file /opt/1cv8/x86_64/8.3.25.1257/wsap24.so
# .../wsap24.so: ELF 64-bit LSB ...

Оба должны быть одинаковой разрядности. Скачайте правильную версию пакета 1c-enterprise83-ws с releases.1c.ru. Каталог x86_64 — 64-битные файлы, i386 — 32-битные.

Ошибка 500 при обращении к опубликованной базе

Модуль загружен, но при открытии URL базы — ошибка 500 (Internal Server Error).

Причина: модуль не может подключиться к кластеру 1С. Либо служба 1С не запущена, либо порты заблокированы, либо строка подключения в default.vrd некорректна.

Решение: проверяйте по цепочке:

Ошибка 503 Service Unavailable

Причина: кластер 1С перегружен — нет свободных рабочих процессов. Все rphost заняты. Модуль подключается к кластеру, но кластер не может назначить обработчик.

Решение:

Ошибка 403 Forbidden — права доступа

Причина: веб-сервер не имеет прав на каталог публикации или файл default.vrd.

Решение для Linux:

# Проверить владельца
ls -la /var/www/1c/accounting/

# Исправить (Ubuntu)
sudo chown -R www-data:www-data /var/www/1c/accounting/

# Исправить (RHEL)
sudo chown -R apache:apache /var/www/1c/accounting/

# Разрешения
sudo chmod 755 /var/www/1c/accounting/
sudo chmod 644 /var/www/1c/accounting/default.vrd

Также проверьте директиву Require all granted в блоке <Directory>. Без неё Apache 2.4 запрещает доступ по умолчанию.

Решение для Windows/IIS: учётная запись пула приложений (по умолчанию ApplicationPoolIdentity) должна иметь права Read & Execute на каталог публикации. Проверьте через вкладку Security в свойствах папки.

SELinux блокирует модуль (RHEL/CentOS)

Причина: SELinux запрещает Apache загружать модуль из /opt/1cv8/ или устанавливать TCP-соединения к портам кластера.

Решение:

# Разрешить Apache сетевые подключения
sudo setsebool -P httpd_can_network_connect 1

# Установить контекст для модуля
sudo chcon -t httpd_modules_t /opt/1cv8/x86_64/8.3.25.1257/wsap24.so

# Контекст для каталога публикации
sudo chcon -R -t httpd_sys_content_t /var/www/1c/

Диагностика: sudo ausearch -m avc --start recent. Не отключайте SELinux на продуктивном сервере — настройте контексты.

Вопросы и ответы

Чем отличается wsap24.so от wsapISAPI.dll?

wsap24.so — модуль для Apache 2.4, работает на Linux и Windows. wsapISAPI.dll — ISAPI-расширение для IIS, работает только на Windows. Оба модуля выполняют одну функцию: связывают веб-сервер с кластером 1С:Предприятие. Выбор зависит от ОС и веб-сервера: Linux → Apache + wsap24.so, Windows → IIS + wsapISAPI.dll.

Нужно ли переустанавливать модуль после обновления платформы 1С?

Да. Модуль привязан к конкретной версии платформы. После обновления 1С:Предприятие путь к модулю меняется (новый номер версии в каталоге). Обновите путь в LoadModule для Apache или переопубликуйте базу через Конфигуратор для IIS. Без этого веб-сервер будет использовать старый модуль, который может быть несовместим с новой версией сервера.

Можно ли установить только модуль расширения без сервера 1С?

На Linux: пакет 1c-enterprise83-ws зависит от common, но можно установить без server — если сервер 1С на другой машине. На машине с веб-сервером нужен только модуль wsap24.so. В строке подключения default.vrd укажите IP сервера 1С вместо localhost. На Windows: при установке платформы отметьте только «Модули расширения веб-сервера».

Как проверить, загружен ли модуль 1С в Apache?

Выполните команду: apache2ctl -M | grep 1cws (Ubuntu) или httpd -M | grep 1cws (RHEL). Если модуль загружен, вы увидите строку _1cws_module (shared). Если модуль не в списке — проверьте error.log веб-сервера на ошибки загрузки. Частые причины: неправильный путь в LoadModule или несовпадение разрядности.

Какой веб-сервер лучше для 1С — Apache или IIS?

По производительности для 1С они одинаковы — узкое место не веб-сервер, а сервер приложений и СУБД. Apache работает на Linux и Windows, IIS — только на Windows. Для Linux Apache — единственный вариант. Для Windows выбирают IIS, если инфраструктура целиком на Windows Server. Важнее правильно настроить кластер 1С и СУБД, чем выбирать между Apache и IIS.

Почему после публикации 1С открывается пустая страница?

Модуль загружен, но не может подключиться к кластеру 1С. Проверьте: служба srv1cv83 запущена, порты 1540-1541 слушаются, строка подключения в default.vrd корректна (Srvr и Ref совпадают с кластером). На RHEL/CentOS дополнительно: sudo setsebool -P httpd_can_network_connect 1. Подробнее — в статье про ошибку HTTP при обращении к серверу 1С.

Как опубликовать несколько баз 1С на одном веб-сервере?

Каждая база публикуется с уникальным именем: /accounting, /zup, /ut. Для каждой создаётся свой каталог с default.vrd и отдельная секция в конфигурации веб-сервера. Одного модуля wsap24.so (или wsapISAPI.dll) достаточно для всех публикаций. На Linux повторите webinst с другим -wsdir. На Windows — повторите публикацию через Конфигуратор для каждой базы.

Итог

Модуль расширения веб-сервера 1С — обязательный компонент для веб-доступа к информационным базам. На Linux это wsap24.so для Apache, на Windows — wsapISAPI.dll для IIS. Установка занимает 10-15 минут: поставить пакет, подключить модуль к веб-серверу, опубликовать базу через webinst или Конфигуратор.

Основные грабли: несовпадение разрядности модуля и веб-сервера, права на каталог публикации, SELinux на RHEL/CentOS, незапущенная служба кластера 1С. Каждую ошибку можно диагностировать одной командой — все описаны выше.

Для более детальной настройки Apache — инструкция по настройке веб-сервера 1С на Apache. Если при работе через веб возникает ошибка HTTP — разбор причин и решений. Ошибка 500 в веб-сервисе — отдельная статья. Производительность веб-клиента зависит от сервера приложений — подберите правильную конфигурацию на странице подбора сервера.

apache iis webinst wsap24 wsapisapi веб-сервер гайд модуль-расширения настройка