IIS (Internet Information Services) — штатный веб-сервер Windows Server. Если инфраструктура компании построена на Windows, публикация 1С через IIS логична: не нужен отдельный Linux-сервер, настройка через привычную графическую консоль, интеграция с Active Directory из коробки.
Через веб-сервер 1С работает в браузере — веб-клиент. Помимо веб-клиента, IIS нужен для HTTP-сервисов 1С (интеграции), REST API и мобильного приложения. Если вы уже перешли на клиент-серверный режим, публикация на веб-сервере — следующий шаг.
В этой статье: установка IIS на Windows Server, подключение модуля расширения 1С (wsapISAPI.dll), публикация информационной базы, настройка аутентификации и диагностика ошибок. Параллельная статья для Linux — настройка веб-сервера 1С на Apache.
Что потребуется
Перед настройкой подготовьте сервер и программное обеспечение. Кластер серверов 1С должен быть установлен и работать — инструкция по настройке кластера.
| Компонент | Требование | Примечание |
|---|---|---|
| ОС | Windows Server 2016 / 2019 / 2022 | Desktop Experience не обязателен — Server Core тоже подходит |
| IIS | 10.0 (входит в Windows Server) | Устанавливается как роль сервера |
| Платформа 1С | 1С:Предприятие 8.3.20+ | Серверные компоненты + модуль расширения веб-сервера |
| Модуль 1С | wsapISAPI.dll (устанавливается с платформой) | Разрядность должна совпадать с пулом приложений (64-бит) |
| СУБД | MS SQL Server или PostgreSQL | Сравнение SQL vs PostgreSQL для 1С |
| Кластер 1С | ragent + rmngr + rphost запущены | Порты 1540, 1541, 1560+ слушаются |
| Права | Локальный администратор | Для установки ролей IIS и публикации |
Минимальные требования к оборудованию зависят от числа пользователей — подробности в требованиях к серверу для 1С. Веб-сервер создаёт дополнительную нагрузку: закладывайте +20% по RAM и CPU.
Установка и настройка IIS
IIS не установлен по умолчанию — его нужно добавить как роль Windows Server. Два способа: через Server Manager (GUI) или PowerShell.
Через Server Manager
- Откройте Server Manager → Add Roles and Features
- Выберите Web Server (IIS)
- В разделе Role Services отметьте: ISAPI Extensions, ISAPI Filters, Windows Authentication (если нужна сквозная авторизация)
- Нажмите Install, дождитесь завершения
Через PowerShell
# Установка IIS с нужными компонентами
Install-WindowsFeature Web-Server `
-IncludeSubFeature `
-IncludeManagementTools
# Дополнительные компоненты для 1С
Install-WindowsFeature Web-ISAPI-Ext, Web-ISAPI-Filter, Web-Windows-Auth
После установки проверьте: откройте в браузере http://localhost. Должна отобразиться стандартная страница IIS. Если страница не открывается — убедитесь, что служба W3SVC запущена: Get-Service W3SVC.
Обязательные компоненты IIS
Модуль расширения 1С (wsapISAPI.dll) — это ISAPI-расширение. Без компонентов ISAPI Extensions и ISAPI Filters публикация не заработает. Проверьте, что они установлены:
# Проверить установленные компоненты IIS
Get-WindowsFeature Web-ISAPI-Ext, Web-ISAPI-Filter | Format-Table Name, Installed
# Должно быть:
# Name Installed
# ---- ---------
# Web-ISAPI-Ext True
# Web-ISAPI-Filter True
Установка модуля расширения веб-сервера 1С
Модуль wsapISAPI.dll — динамическая библиотека, которая встраивается в IIS и связывает HTTP-запросы с кластером 1С. Аналог wsap24.so для Apache — только для Windows.
Модуль устанавливается автоматически вместе с платформой 1С, если выбран компонент «Модули расширения веб-сервера». Подробнее о модулях расширения — в отдельной статье.
Проверка установки
После установки платформы 1С модуль находится в каталоге:
# Типичный путь
C:\Program Files\1cv8\8.3.25.1257\bin\wsapISAPI.dll
# Найти модуль на диске
Get-ChildItem -Path "C:\Program Files\1cv8" -Recurse -Filter "wsapISAPI.dll"
Если файла нет — переустановите платформу 1С с компонентом «Модули расширения веб-сервера». В установщике это отдельный чекбокс. Запомните полный путь к DLL — он понадобится при регистрации в IIS.
Регистрация ISAPI-расширения в IIS
IIS по умолчанию блокирует неизвестные ISAPI-расширения. Нужно явно разрешить wsapISAPI.dll в ограничениях ISAPI и CGI:
- Откройте IIS Manager → выберите имя сервера (корневой узел)
- Откройте ISAPI and CGI Restrictions
- Нажмите Add
- ISAPI or CGI path:
C:\Program Files\1cv8\8.3.25.1257\bin\wsapISAPI.dll - Description:
1C Enterprise 8.3 - Установите флаг Allow extension path to execute
Через PowerShell:
# Разрешить ISAPI-расширение 1С
Add-WebConfiguration "/system.webServer/security/isapiCgiRestriction" -PSPath "IIS:\" `
-Value @{
path = "C:\Program Files\1cv8\8.3.25.1257\bin\wsapISAPI.dll"
allowed = "true"
description = "1C Enterprise 8.3"
}
Без этого шага при обращении к опубликованной базе IIS вернёт ошибку 404.2 — «ISAPI module not allowed».
Настройка пула приложений
Для публикации 1С создайте отдельный пул приложений. Отдельный пул изолирует процесс 1С от остальных сайтов на сервере и позволяет задать нужные параметры.
- Откройте IIS Manager → Application Pools
- Нажмите Add Application Pool
- Name:
1CAppPool - .NET CLR version: No Managed Code (1С не использует .NET)
- Managed pipeline mode: Classic (ISAPI требует Classic, не Integrated)
Дополнительные настройки пула (правый клик → Advanced Settings):
| Параметр | Значение | Зачем |
|---|---|---|
| Enable 32-Bit Applications | False | Платформа 1С 64-бит — пул тоже должен быть 64-бит |
| Identity | LocalSystem или выделенная учётная запись | Пул должен иметь доступ к каталогам платформы 1С |
| Idle Time-out (minutes) | 0 | Не останавливать пул при простое — первый запрос после остановки будет медленным |
| Regular Time Interval (minutes) | 0 | Отключить периодическую перезагрузку — обрывает активные сеансы 1С |
Режим Classic обязателен. В режиме Integrated модуль wsapISAPI.dll не загружается — IIS вернёт ошибку 500 при обращении к базе. Это частая ошибка при настройке.
Публикация информационной базы
Публикация — привязка URL к информационной базе в кластере 1С. После публикации по адресу http://сервер/имя-базы откроется веб-клиент. Два способа: через Конфигуратор 1С (графический) и через утилиту webinst (командная строка).
Через Конфигуратор 1С
Самый простой способ на Windows — Конфигуратор делает всё автоматически.
- Откройте Конфигуратор нужной информационной базы
- Администрирование → Публикация на веб-сервере
- Веб-сервер: Internet Information Services
- Имя:
accounting(станет частью URL:/accounting) - Каталог:
C:\inetpub\wwwroot\accounting - Нажмите Опубликовать
Конфигуратор создаст виртуальный каталог в IIS, файл default.vrd с параметрами подключения и назначит обработчик wsapISAPI.dll. Перезапуск IIS не требуется — публикация применяется сразу.
Через утилиту webinst
Командная строка полезна на Server Core (без GUI), при автоматизации или когда Конфигуратор недоступен.
REM Создать каталог публикации
mkdir C:\inetpub\wwwroot\accounting
REM Публикация базы на IIS
"C:\Program Files\1cv8\8.3.25.1257\bin\webinst.exe" ^
-iis ^
-wsdir accounting ^
-dir "C:\inetpub\wwwroot\accounting" ^
-connstr "Srvr=localhost;Ref=accounting;"
Параметры:
- -iis — тип веб-сервера (Internet Information Services)
- -wsdir accounting — имя публикации, станет URL-путём
/accounting - -dir — каталог для файла default.vrd
- -connstr — строка подключения к базе в кластере 1С
webinst создаст виртуальный каталог в Default Web Site, файл default.vrd и назначит обработчик wsapISAPI.dll. Убедитесь, что ISAPI-расширение разрешено (предыдущий раздел) — без этого публикация не заработает.
Ручная настройка (default.vrd + IIS Manager)
Когда webinst и Конфигуратор недоступны или нужна нестандартная конфигурация.
Шаг 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>
Сохраните как C:\inetpub\wwwroot\accounting\default.vrd.
Шаг 2. Создайте виртуальный каталог в IIS:
- IIS Manager → Default Web Site → правый клик → Add Virtual Directory
- Alias:
accounting - Physical path:
C:\inetpub\wwwroot\accounting - Правый клик на созданном каталоге → Convert to Application
- Application Pool:
1CAppPool
Шаг 3. Добавьте обработчик ISAPI:
- Выберите приложение accounting → Handler Mappings
- Add Script Map
- Request path:
* - Executable:
C:\Program Files\1cv8\8.3.25.1257\bin\wsapISAPI.dll - Name:
1C Enterprise
Настройка аутентификации
IIS поддерживает несколько способов аутентификации для публикаций 1С. Выбор зависит от сценария доступа.
| Способ | Когда использовать | Настройка в IIS |
|---|---|---|
| Анонимная | Веб-клиент, мобильное приложение, HTTP-сервисы — аутентификация на уровне 1С | Включить Anonymous Authentication, отключить остальные |
| Windows (NTLM/Kerberos) | Сквозная авторизация через Active Directory — пользователь входит в 1С без ввода логина/пароля | Включить Windows Authentication, отключить Anonymous |
| Анонимная + Windows | Комбинированный режим — 1С пробует Windows-авторизацию, при неудаче запрашивает логин/пароль | Включить оба варианта |
Анонимная аутентификация (стандартный вариант)
При анонимной аутентификации IIS не проверяет учётные данные — пропускает все запросы. Аутентификацию выполняет сама 1С: пользователь вводит логин и пароль на странице входа в веб-клиенте.
Это стандартный вариант для веб-клиента, HTTP-сервисов и мобильного приложения. Настраивается по умолчанию при публикации через Конфигуратор.
Windows-аутентификация (SSO через Active Directory)
Пользователь открывает 1С в браузере и входит автоматически — без ввода логина и пароля. IIS проверяет учётные данные через Active Directory (NTLM или Kerberos). Для этого в справочнике пользователей 1С должна быть привязка к доменной учётной записи.
Настройка:
- IIS Manager → приложение accounting → Authentication
- Отключите Anonymous Authentication
- Включите Windows Authentication
- В свойствах 1С: у каждого пользователя заполните поле «Аутентификация операционной системы» — укажите доменную учётную запись в формате
DOMAIN\user
Для работы Kerberos (предпочтительнее NTLM по безопасности и производительности) зарегистрируйте SPN:
REM Регистрация SPN для Kerberos
setspn -S HTTP/server-name DOMAIN\ServiceAccount
setspn -S HTTP/server-name.domain.local DOMAIN\ServiceAccount
Где ServiceAccount — учётная запись, под которой работает пул приложений 1CAppPool.
Проверка работоспособности
После публикации проверьте доступ к базе через браузер. Откройте http://localhost/accounting — должна загрузиться страница входа в веб-клиент 1С.
Если страница входа открылась
Публикация работает. Проверьте дополнительно:
- Вход с логином и паролем пользователя 1С
- Открытие формы документа, отчёта — убедитесь, что данные загружаются
- Доступ с другой машины по IP или имени сервера:
http://server-name/accounting
Если страница не открылась
Диагностика по шагам:
- IIS запущен? —
Get-Service W3SVC— статус должен быть Running - Пул приложений запущен? — IIS Manager → Application Pools → 1CAppPool → Status: Started
- ISAPI разрешён? — проверьте ISAPI and CGI Restrictions на уровне сервера
- Служба 1С запущена? —
Get-Service "1C:Enterprise 8.3 Server Agent" - Порты 1С слушаются? —
netstat -an | findstr "1540 1541" - Лог IIS —
C:\inetpub\logs\LogFiles\W3SVC1\— ищите строку с кодом ошибки - Лог событий — Event Viewer → Windows Logs → Application — ошибки от W3SVC и 1CV8
Подробнее о диагностике ошибок HTTP — в статье Ошибка HTTP при обращении к серверу 1С. О проблемах с кодом 500 — в отдельном разборе.
Пошаговая инструкция настройки IIS для 1С
Типичные ошибки при настройке IIS для 1С
403 Forbidden — ISAPI не разрешён
IIS возвращает 403.1 или 404.2. Причина: wsapISAPI.dll не добавлен в ISAPI and CGI Restrictions или не отмечен флаг «Allow execution». Решение — добавьте расширение в ограничениях ISAPI на уровне сервера (не сайта).
500 Internal Server Error
Модуль загрузился, но не может подключиться к кластеру 1С. Частые причины:
- Служба «Агент сервера 1С» не запущена —
Get-Service "1C:Enterprise 8.3 Server Agent" - Строка подключения в default.vrd некорректна — проверьте Srvr и Ref
- Пул приложений работает в режиме Integrated вместо Classic — переключите на Classic
- Пул приложений не имеет прав на каталог платформы 1С — назначьте права на
C:\Program Files\1cv8\
Подробнее — в статье Код ответа 500 в веб-сервисе 1С.
Модуль wsapISAPI.dll не загружается
В Event Viewer ошибка «The Module DLL could not be loaded». Причины:
- Несовпадение разрядности — пул приложений 32-битный (Enable 32-Bit Applications = True), а DLL 64-битная. Установите Enable 32-Bit Applications = False
- Отсутствуют зависимости — wsapISAPI.dll зависит от других библиотек платформы 1С. Убедитесь, что Visual C++ Redistributable установлен (обычно ставится с платформой)
- Путь неверный — после обновления платформы 1С каталог меняется. Обновите путь в ISAPI Restrictions и Handler Mappings
Пул приложений останавливается
Пул 1CAppPool самопроизвольно переходит в состояние Stopped. В Event Viewer — ошибка от W3SVC. Причины:
- Rapid-Fail Protection — после нескольких сбоев подряд IIS останавливает пул. Увеличьте Failure Interval или отключите Rapid-Fail Protection в Advanced Settings пула
- Нехватка памяти — модуль 1С потребляет много RAM при большом числе активных сеансов. Увеличьте память сервера
- Idle Time-out — пул останавливается после простоя. Установите Idle Time-out = 0
Проблемы с запуском агента сервера 1С разобраны в отдельной статье — Агент сервера 1С запускается и останавливается.
Вопросы и ответы
Какой веб-сервер лучше для 1С — IIS или Apache?
IIS работает только на Windows, Apache — на Linux и Windows. По производительности для 1С они одинаковы: узкое место — сервер приложений и СУБД. Если инфраструктура на Windows Server — используйте IIS: встроенная интеграция с Active Directory, управление через привычные инструменты. Для Linux — Apache единственный поддерживаемый вариант. Подробнее — в статье о настройке Apache для 1С.
Можно ли опубликовать несколько баз 1С на одном IIS?
Да. Каждая база публикуется как отдельное приложение с уникальным именем: /accounting, /zup, /ut. Все приложения могут работать в одном пуле 1CAppPool. Повторите публикацию через Конфигуратор или webinst с другим -wsdir для каждой базы.
Нужно ли переопубликовывать базы после обновления платформы 1С?
Да. Модуль wsapISAPI.dll привязан к конкретной версии платформы. После обновления путь к DLL меняется. Обновите путь в ISAPI and CGI Restrictions, переопубликуйте базы через Конфигуратор или webinst. Без этого IIS будет загружать старый модуль, несовместимый с обновлённым сервером 1С.
Почему пул приложений 1С должен работать в режиме Classic?
Модуль wsapISAPI.dll — это ISAPI-расширение. ISAPI работает только в режиме Classic pipeline. В режиме Integrated модуль не загружается и IIS возвращает ошибку 500. При создании пула выберите Classic, не меняйте на Integrated.
Как настроить HTTPS для 1С на IIS?
Получите SSL-сертификат: корпоративный (от внутреннего CA) или публичный (Let’s Encrypt через win-acme). В IIS Manager: Site Bindings → Add → тип https, выберите сертификат, порт 443. Для перенаправления HTTP → HTTPS установите модуль URL Rewrite и создайте правило редиректа.
IIS и сервер 1С должны быть на одной машине?
Не обязательно. IIS и кластер 1С могут быть на разных серверах. Установите на машину с IIS только компонент «Модули расширения веб-сервера» — серверные компоненты кластера не нужны. В default.vrd укажите IP сервера 1С: Srvr=192.168.1.10;Ref=accounting;. Откройте порты 1540-1541 и 1560-1591 между машинами.
Как проверить, загружен ли модуль 1С в IIS?
Откройте IIS Manager → приложение → Handler Mappings. Должна быть запись с путём к wsapISAPI.dll. Проверьте также ISAPI and CGI Restrictions на уровне сервера — расширение должно иметь статус Allowed. Если модуль не загружается — ищите ошибку в Event Viewer → Windows Logs → Application.
Итог
Настройка IIS для 1С 8.3 — семь шагов. Установить роль IIS с компонентами ISAPI, разрешить модуль wsapISAPI.dll, создать пул приложений в режиме Classic, опубликовать базу, настроить аутентификацию. Конфигуратор 1С делает большую часть автоматически — на Server Core без GUI используйте webinst.
Основные грабли: пул приложений в режиме Integrated вместо Classic, ISAPI-расширение не разрешено в ограничениях, Enable 32-Bit Applications включён для 64-битной платформы. Если после публикации веб-клиент не открывается — проверяйте цепочку: IIS запущен → пул Started → ISAPI разрешён → служба 1С работает → порты открыты → default.vrd корректен.
Если вы работаете на Linux — используйте Apache вместо IIS. Подробнее о модулях расширения веб-сервера для обеих платформ — в отдельной статье.
При ошибках HTTP — разбор в статье Ошибка HTTP при обращении к серверу 1С. При ошибке 500 — диагностика кода 500 в веб-сервисе.
Производительность веб-клиента 1С зависит от сервера приложений и СУБД, а не от IIS. Проверенные конфигурации для разного числа пользователей — на странице подбора сервера.