К статье
Практический материал

Администрирование · 13 мин

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

Как обновить модули расширения веб-сервера 1С (ISAPI, Apache) после обновления платформы: переустановка компонентов, перепубликация базы, проверка и типичные ошибки.

Модули расширения веб-сервера 1С — это компоненты, которые связывают IIS или Apache с платформой «1С:Предприятие»: они принимают HTTP-запросы, передают их рабочим процессам сервера 1С или файловой базе и возвращают ответ клиенту. Каждая версия платформы поставляет свои версии этих модулей, и после обновления платформы старые бинарные файлы на веб-сервере остаются прежними, пока их не заменить вручную.

Несовпадение версий — типичная причина ошибок вида «HTTP 500», «Ошибка загрузки компоненты» или ситуации, когда тонкий клиент через веб-сервер внезапно перестаёт подключаться после обновления кластера. Проблема решается не настройкой конфигурации, а заменой самих модулей расширения и перепубликацией информационной базы.

Обновление состоит из трёх обязательных шагов: установка новых компонентов платформы на компьютер с веб-сервером, перепубликация базы утилитой webinst или через конфигуратор и проверка работоспособности публикации. Ниже разобран каждый шаг для IIS и Apache, а также типичные ошибки и способы проверки результата.

Что именно нужно обновлять и когда

Под модулями расширения веб-сервера понимаются бинарные файлы, которые поставляются в составе дистрибутива платформы: для IIS это ISAPI-модуль wsisapi.dll, для Apache — библиотека wsap24.dll (Windows) или mod_1cws.so (Linux). Именно эти файлы загружаются веб-сервером и обращаются к платформе 1С.

Обновление требуется в трёх ситуациях: после установки новой версии платформы на сервере 1С, при переносе публикации на другой веб-сервер и при появлении ошибок загрузки модуля в журнале веб-сервера. Если версия платформы не менялась, трогать модули не нужно — перепубликация без изменения версии ничего не даст.

Важно понимать, что модули живут на машине с веб-сервером, а не на сервере 1С. Если веб-сервер и кластер 1С разнесены на разные компьютеры, обновлять компоненты нужно именно там, где работает IIS или Apache, — иначе несовпадение версий сохранится.

Подготовка: резервная копия и проверка версий

Перед любыми действиями зафиксируйте текущее состояние. Сохраните каталог публикации (там лежат default.vrd и, возможно, пользовательские настройки), конфигурационные файлы веб-сервера — httpd.conf для Apache или настройки сайта и пулов приложений для IIS. Это позволит быстро откатиться, если новая версия модуля окажется несовместимой с окружением.

Затем сверьте версии. Версию платформы сервера 1С видно в консоли кластера, версию модуля на веб-сервере — в свойствах файла wsisapi.dll или wsap24.dll в каталоге публикации. Если они различаются — обновление необходимо. Заодно уточните разрядность: 64-разрядный веб-сервер требует 64-разрядных модулей, смешивание разрядности — частая причина сбоев.

Запланируйте работы на время минимальной нагрузки: во время перепубликации и перезапуска веб-сервера пользователи, работающие через веб-клиент или веб-сервисы, будут отключены. Активные сеансы через веб-доступ завершатся аварийно.

Шаг 1. Установка компонентов новой версии платформы на веб-сервер

Запустите установщик платформы 1С той же версии, что работает на сервере 1С, на компьютере с веб-сервером. В списке компонентов отметьте «Модули расширения веб-сервера» (в новых версиях установщика пункт может называться «Расширение для веб-сервера»). Остальные компоненты — сервер, толстый клиент — на веб-сервере не обязательны, но установщик сам не удалит уже стоящее.

После установки новые файлы модулей появятся в каталоге bin соответствующей версии платформы, например C:\Program Files\1cv8\<версия>\bin\. Старые версии платформы при этом не удаляются — это нормально и даже полезно для отката.

Убедитесь, что установленная разрядность совпадает с разрядностью веб-сервера: для 64-разрядного IIS с включённым 64-битным режимом пула приложений нужен 64-разрядный модуль. Проверить режим пула можно в диспетчере IIS, в дополнительных параметрах пула приложений (параметр «Разрешить 32-разрядные приложения»).

Шаг 2. Перепубликация базы утилитой webinst

Самый надёжный способ обновить модули — перепубликовать базу: при публикации платформа копирует актуальные файлы модуля в каталог публикации и прописывает корректные настройки. Основной инструмент — утилита командной строки webinst, которая лежит в каталоге bin нужной версии платформы.

Для Apache на Windows команда публикации выглядит примерно так (путь к утилите и имена замените на свои):

bash
"C:\Program Files\1cv8\8.3.24.1467\bin\webinst.exe" -publish -apache24 -wsdir trade -dir "C:\www\trade" -connstr "Srvr=srv1c;Ref=trade;" -confpath "C:\Apache24\conf\httpd.conf"

Ключ -publish выполняет публикацию, -apache24 указывает тип веб-сервера, -wsdir — имя виртуального каталога, -dir — физический каталог публикации, -connstr — строка соединения с базой, -confpath — путь к конфигурации Apache. Для IIS используется ключ -iis вместо -apache24, а -confpath не нужен.

После успешной публикации в каталоге -dir появится свежий default.vrd, а модуль веб-сервера будет зарегистрирован заново. Если публикация завершилась ошибкой доступа — запустите командную строку от имени администратора и проверьте права на каталог публикации и на конфигурационный файл Apache.

Порядок обновления модулей
  1. 1
    Сохраните каталог публикации и конфигурацию веб-сервера
  2. 2
    Установите компонент «Модули расширения веб-сервера» новой версии платформы на машину с веб-сервером
  3. 3
    Перепубликуйте базу через webinst или конфигуратор
  4. 4
    Перезапустите веб-сервер (iisreset или restart Apache)
  5. 5
    Проверьте версию модуля в каталоге публикации и работу веб-клиента

Шаг 3. Альтернатива: публикация через конфигуратор

Если командная строка неудобна, перепубликацию можно выполнить из конфигуратора: меню «Администрирование» → «Публикация на веб-сервере». В диалоге укажите имя публикации, тип веб-сервера (IIS или Apache), каталог и при необходимости отметьте публикуемые сервисы — веб-клиент, HTTP-сервисы, веб-сервисы.

Конфигуратор при публикации использует ту же механику, что и webinst, и обновляет файлы модуля в каталоге публикации. Ограничение способа: конфигуратор должен быть запущен на машине с веб-сервером (или публикация должна выполняться локально), а пользователь — иметь административные права на веб-сервер. Для удалённого веб-сервера удобнее webinst.

Ручная замена файлов модуля — когда без перепубликации не обойтись

Иногда администраторы просто копируют новый wsisapi.dll или wsap24.dll поверх старого в каталоге публикации. Такой приём работает, только если структура публикации не менялась и настройки в default.vrd остались актуальными. Однако при смене версии платформы перепубликация надёжнее: она заодно обновляет регистрацию модуля в веб-сервере. Ручную замену используйте как временную меру, а не как стандартную практику.

Способы обновления модулей

Утилита webinst

Подходит для автоматизации и удалённых серверов; требует точного знания параметров командной строки и запуска от администратора.

Публикация из конфигуратора

Наглядный диалог, меньше риска ошибиться в параметрах; работает только локально на машине с веб-сервером.

Ручная замена DLL

Быстро, но не обновляет регистрацию модуля и настройки; годится только как временный обходной путь.

Шаг 4. Перезапуск веб-сервера и проверка результата

Веб-сервер держит загруженный модуль в памяти, поэтому после замены файлов его нужно перезапустить. Для IIS выполните в командной строке от администратора iisreset или перезапустите конкретный пул приложений — это мягче и не затрагивает другие сайты. Для Apache — перезапустите службу через services.msc или командой httpd -k restart.

После перезапуска откройте в браузере адрес публикации, например http://server/trade. Признаки успеха: загружается веб-клиент, тонкий клиент подключается по URL без ошибок, веб-сервисы отвечают на запросы. Дополнительно сверьте версию файла модуля в каталоге публикации с версией платформы сервера.

Если вместо клиента приходит ошибка — смотрите журналы. Для IIS это журнал событий Windows и логи сайта, для Apache — error.log. Типичные записи: «не удаётся загрузить модуль» (разрядность или отсутствие зависимых библиотек), «отказано в доступе» (права на каталог), ошибки соединения с сервером 1С (неверная строка соединения в default.vrd).

Контрольные точки

Как проверить результат

Версия файла wsisapi.dll / wsap24.dll в каталоге публикации
Норма

Совпадает с версией платформы сервера 1С

Тревожный признак

Осталась версия старой платформы — модуль не обновлён

Открытие веб-клиента в браузере
Норма

Страница входа загружается, сеанс стартует

Тревожный признак

HTTP 500, 503 или ошибка загрузки компоненты

Журнал ошибок веб-сервера
Норма

Нет новых ошибок загрузки модуля после перезапуска

Тревожный признак

Записи о невозможности загрузить модуль или отказе в доступе

Типичные ошибки при обновлении модулей

Большинство проблем после обновления связано не с самой процедурой, а с окружением. Ниже — ошибки, которые встречаются чаще всего.

Типичные ошибки
01
Обновили платформу на сервере 1С, но забыли про машину с веб-сервером — модули остались старыми, веб-клиент перестал работать.
02
Смешали разрядность: 32-разрядный модуль на 64-разрядном пуле IIS не загружается, в журнале ошибка загрузки ISAPI.
03
Перепубликовали базу, но не перезапустили веб-сервер — в памяти остался старый модуль, ошибка воспроизводится.
04
Потеряли настройки публикации: при перепубликации не отметили нужные сервисы, и HTTP-сервисы перестали отвечать.
05
Запускали webinst без прав администратора — публикация завершилась ошибкой доступа, но сообщение проигнорировали.

Отдельно отметим ситуацию с несколькими публикациями на одном веб-сервере. Если базы опубликованы под разные версии платформы, обновлять модули нужно для каждой публикации отдельно и только той версией, под которой работает конкретная база. Одна команда webinst обновляет одну публикацию.

Удобно вести текстовый файл с готовыми командами webinst для каждой публикации: при очередном обновлении платформы достаточно заменить номер версии в пути и выполнить команды по списку. Это сокращает время простоя и исключает опечатки в параметрах.
ПЗ
Практическое замечание

Ограничения и когда нужна помощь специалиста

Самостоятельное обновление оправдано, когда есть административный доступ к веб-серверу, резервная копия публикаций и возможность кратковременного простоя. Если веб-сервер обслуживает внешние сервисы для клиентов, работает в связке с балансировщиком или на нём настроена нестандартная аутентификация (например, через прокси или SSO), сначала протестируйте обновление на копии окружения.

Обратитесь к специалисту по инфраструктуре 1С, если после перепубликации ошибки загрузки модуля сохраняются, если веб-сервер работает на Linux с нестандартной сборкой Apache или если требуется обновление без простоя — это решается выводом узла из балансировки и требует опыта. Не пытайтесь «подогнать» несовпадающие версии правкой конфигурации: модуль и платформа должны совпадать по версии, других поддерживаемых вариантов нет.

Итог

Что важно запомнить

Модули расширения веб-сервера обновляются вместе с платформой: установите компоненты новой версии на машину с веб-сервером, перепубликуйте базу через webinst или конфигуратор, перезапустите веб-сервер и проверьте версию файла модуля и работу веб-клиента. Следите за совпадением версий и разрядности и сохраняйте копию публикации перед изменениями.

Частые вопросы

Обязательно ли перепубликовывать базу после каждого обновления платформы?

Если обновление меняет версию платформы сервера 1С — да. Модули расширения веб-сервера поставляются с конкретной версией платформы, и старый модуль с новым сервером может работать нестабильно или не загружаться вовсе. При обновлении только конфигурации без смены платформы перепубликация не нужна.

Где взять утилиту webinst?

Она входит в состав платформы и находится в каталоге bin установленной версии, например C:\Program Files\1cv8\<номер версии>\bin\webinst.exe. Запускать её нужно той версии, под которую публикуется база, и от имени администратора.

Веб-клиент выдаёт HTTP 500 после обновления — с чего начать?

Проверьте три вещи: совпадает ли версия файла модуля в каталоге публикации с версией сервера 1С, совпадает ли разрядность модуля с режимом пула IIS или сборкой Apache, перезапускался ли веб-сервер после замены файлов. Детали ошибки смотрите в журнале событий Windows или error.log Apache.

Можно ли обновить модули без остановки работы пользователей?

Полностью без простоя — только если публикации продублированы на двух веб-серверах за балансировщиком: узлы обновляются по очереди. На одиночном веб-сервере короткий перерыв неизбежен, поэтому работы планируют на нерабочее время.

На одном веб-сервере опубликованы базы под разные версии платформы — как обновлять?

Каждую публикацию обновляйте отдельно утилитой webinst той версии платформы, под которой работает конкретная база. Универсальной команды «обновить всё» нет: модуль в каждом каталоге публикации должен соответствовать своей версии сервера.

Что делать, если webinst завершается с ошибкой доступа?

Запустите командную строку от имени администратора и проверьте права: учётная запись должна иметь запись в каталог публикации и в конфигурационный файл Apache (для IIS — права на изменение конфигурации сайта). Также убедитесь, что файлы публикации не открыты другими процессами и не заблокированы антивирусом.