Веб-доступ к 1С через IIS: от установки роли до первого входа
Содержание
Чтобы опубликовать базу 1С на веб-сервере IIS, нужно три вещи: включить в Windows роль IIS с компонентом «Расширения ISAPI», поставить платформу 1С с модулями расширения веб-сервера и запустить Конфигуратор от имени администратора → Администрирование → Публикация на веб-сервере. После публикации база открывается в браузере по адресу вида http://имя-сервера/buh.
На практике после этих трёх шагов чаще всего вылезает ошибка 500 или 404, а не окно входа. Причины почти всегда одни и те же: разрядность пула, права на каталог базы и заблокированный раздел handlers. Порядок действий одинаков для платформы 8.3 на Windows Server 2016 и новее; отличия касаются только разрядности и типа базы.
Подготовка сервера: роль IIS и модули 1С
Публикация работает и для файловой, и для клиент-серверной базы. Веб-сервер можно ставить на тот же компьютер, где лежит база, или на отдельный.
Включаем IIS в Windows
На Windows Server: Диспетчер серверов → Управление → Добавить роли и компоненты → Веб-сервер (IIS). На Windows 10/11: Панель управления → Программы → Включение или отключение компонентов Windows → Службы IIS.
Отметьте как минимум:
- ✅ Основные функции HTTP — «Документ по умолчанию», «Статическое содержимое», «Ошибки HTTP»;
- ✅ Компоненты разработки приложений — «Расширения ISAPI» и «Фильтры ISAPI» (без них модуль 1С не загрузится);
- ✅ Средства управления — «Консоль управления IIS»;
- ✅ Безопасность — «Обычная проверка подлинности» и «Проверка подлинности Windows», если планируете вход по учётной записи ОС.
ASP.NET ставить не нужно: модуль 1С — это обычное ISAPI-расширение, .NET он не использует.
Ставим платформу с модулями расширения веб-сервера
Запустите установщик платформы той же версии, что и у клиентов. В списке компонентов включите «Модули расширения веб-сервера». Если платформа уже стоит без них — запустите установку повторно и выберите «Изменить».
Разрядность важна. Ставите 64-разрядную платформу — в каталоге C:\Program Files\1cv8\<версия>\bin\ появится 64-битный wsisapi.dll. Для 32-разрядной платформы файл лежит в C:\Program Files (x86)\1cv8\.... От этого зависит настройка пула (см. ниже).
Для клиент-серверной базы на веб-сервер достаточно клиентской части платформы: сам сервер 1С может стоять на другой машине.
Публикация базы 1С на IIS из Конфигуратора
Пошагово через Конфигуратор
- Закройте Конфигуратор, если он открыт, и запустите его снова через правый клик → «Запуск от имени администратора». Без повышенных прав запись в
C:\inetpub\wwwrootи в настройки IIS не пройдёт. - Откройте
Администрирование → Публикация на веб-сервере. - В поле «Имя» задайте псевдоним латиницей без пробелов:
buh,zup,ut11. Он станет частью адреса. - Веб-сервер —
Internet Information Services. - Каталог — физическая папка публикации, например
C:\inetpub\wwwroot\buh. Папку программа создаст сама. - При необходимости отметьте на вкладках: публикацию тонкого и веб-клиента (включена по умолчанию), Web-сервисов, HTTP-сервисов, стандартного интерфейса OData.
- Нажмите «Опубликовать».
Программа создаст в каталоге публикации два файла: default.vrd (строка подключения к базе и параметры публикации) и web.config (настройки обработчика для IIS). В IIS появится приложение buh внутри Default Web Site.
💡 Проверка сразу после публикации — откройте на сервере http://localhost/buh в браузере. Должно появиться окно выбора пользователя 1С.
Публикация без Конфигуратора: утилита webinst
Утилита webinst.exe лежит в той же папке bin платформы. Она удобна для скриптов и для серверов, где не хочется запускать Конфигуратор. Командная строка — тоже от имени администратора.
Файловая база:
cd "C:\Program Files\1cv8\8.3.25.1374\bin"
webinst -publish -iis -wsdir buh -dir "C:\inetpub\wwwroot\buh" -connstr "File=""D:\Bases\Buh"";"
Клиент-серверная база
(сервер srv1c, база buh_prod):
webinst -publish -iis -wsdir buh -dir "C:\inetpub\wwwroot\buh" -connstr "Srvr=""srv1c"";Ref=""buh_prod"";"
Снять публикацию: webinst -delete -iis -wsdir buh -dir "C:\inetpub\wwwroot\buh". Номер версии в пути подставьте свой.
Пул приложений для 1С: отдельный и правильной разрядности
По умолчанию приложение попадает в DefaultAppPool. Работать это будет, но управлять неудобно: перезапуск пула заденет все сайты на сервере. Лучше завести отдельный пул под 1С.
Создаём пул
- В
Диспетчере служб IISоткройте узелПулы приложений→ «Добавить пул приложений». - Имя — например,
1C. Версия среды CLR .NET — «Без управляемого кода». Режим конвейера — «Встроенный». - Откройте «Дополнительные параметры» пула и проверьте строку «Разрешены 32-разрядные приложения».
| Платформа 1С | «Разрешены 32-разрядные приложения» |
|---|---|
| 64-разрядная | False |
| 32-разрядная | True |
Ошибка в этой строке — самая частая причина ошибки 500 с кодом 0x800700c1 сразу после публикации.
Привязываем приложение к пулу
Разверните Сайты → Default Web Site, выделите приложение buh → справа «Основные настройки» → «Пул приложений» → выберите 1C.
Пару параметров пула стоит поменять под 1С:
- ⏱ «Время простоя (мин.)» — по умолчанию 20. После простоя пул выгружается, и первый вход утром идёт заметно дольше. Для рабочей базы обычно ставят 0 или увеличивают время.
- 🔄 Плановая перезагрузка («Регулярный интервал времени») — по умолчанию 1740 минут (29 часов). Перезапуск пула обрывает сеансы веб-клиентов, поэтому лучше задать перезапуск в конкретное ночное время.
Ручной «Перезапуск» или «Остановка» пула сразу закрывают сеансы всех, кто работает через эту публикацию. Делайте это вне рабочего времени или предупредите пользователей.
Права доступа и безопасность публикации
Процесс IIS работает от учётной записи пула. При настройке «по умолчанию» это IIS AppPool\1C (имя пула). Именно ей нужны права, а не вашему администратору.
Кому какие права выдать
| Каталог | Кому | Права |
|---|---|---|
Каталог публикации C:\inetpub\wwwroot\buh | IIS_IUSRS | Чтение и выполнение |
Каталог платформы ...\1cv8\<версия>\bin | IIS_IUSRS | Чтение и выполнение |
Каталог файловой базы (с файлом 1Cv8.1CD) | IIS AppPool\1C или IIS_IUSRS | Изменение |
Каталог лицензий C:\ProgramData\1C\licenses | IIS_IUSRS | Чтение |
Для файловой базы права на изменение обязательны: платформа создаёт рядом с 1Cv8.1CD служебные файлы блокировок. Только «Чтение» даёт ошибку файловой операции при входе.
Если файловая база лежит на другом компьютере в сетевой папке, встроенная учётная запись пула туда не попадёт. Варианты: перенести базу на веб-сервер или задать пулу доменную учётную запись (Дополнительные параметры → Удостоверение → Особая учётная запись) и дать ей права на общую папку.
Лицензии
Каждый пользователь веб-клиента или тонкого клиента через веб занимает клиентскую лицензию. Для файловой базы лицензию ищет процесс веб-сервера: программная лицензия должна быть активирована на самом веб-сервере, а у пула — доступ к её файлу. В клиент-серверном варианте лицензии может выдавать сервер 1С, если это включено в его настройках.
Проверка подлинности и HTTPS
- 🔐 В IIS у приложения оставьте включённой «Анонимную проверку подлинности» — логин и пароль спрашивает сама 1С.
- 🪪 Нужен вход под учётной записью Windows — включите «Проверку подлинности Windows» и в карточке пользователя 1С отметьте аутентификацию операционной системы.
- 🌐 Публикация смотрит в интернет — только HTTPS. В IIS:
Default Web Site → Привязки → Добавить → https, порт 443, выберите сертификат. Порт 80 наружу лучше не открывать вообще.
Базу на голом HTTP в интернет не выставляйте: логин и пароль пользователей 1С уйдут открытым текстом.
Обработчик wsisapi.dll, ограничения ISAPI и MIME-типы
Весь трафик публикации IIS отдаёт одному обработчику — wsisapi.dll. Конфигуратор прописывает его в web.config. Примерно так выглядит этот файл:
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<system.webServer>
<handlers allowPathInfo="true" accessPolicy="Read, Execute, Script">
<add name="1C Web-service Extension" path="*" verb="*"
modules="IsapiModule"
scriptProcessor="C:\Program Files\1cv8\8.3.25.1374\bin\wsisapi.dll"
resourceType="Unspecified" requireAccess="None" />
</handlers>
</system.webServer>
</configuration>
Обработчик принимает запросы с любым путём (path="*"), поэтому отдельно регистрировать MIME-типы для работы веб-клиента не нужно: статику интерфейса отдаёт сама 1С. Если в IIS появляется ошибка 404.3 про MIME-тип — значит, запрос не дошёл до обработчика. Проверьте в «Сопоставлениях обработчиков» приложения, что строка с wsisapi.dll есть и включена.
Ограничения ISAPI и CGI
На уровне сервера IIS (корневой узел с именем компьютера) есть раздел «Ограничения ISAPI и CGI». Если там не разрешены неуказанные модули, добавьте wsisapi.dll с полным путём и поставьте флажок «Разрешить выполнение». Без этого IIS возвращает 404.2.
Главная ловушка — обновление платформы
В web.config записан путь к wsisapi.dll конкретной версии платформы. Поставили новую версию и удалили старую — публикация ломается: файла по старому пути больше нет.
Порядок при обновлении платформы:
- Поставьте новую версию с модулями расширения веб-сервера.
- Запустите Конфигуратор новой версии от имени администратора и опубликуйте базу заново с тем же именем и каталогом.
- Проверьте путь в
web.configи только потом удаляйте старую платформу.
Если клиенты подключаются тонким клиентом через веб, версия на их компьютерах должна совпадать с версией на веб-сервере — иначе при входе будет предложено обновить клиент .
Подключение к опубликованной базе
Адрес публикации — http://имя-сервера/имя-публикации, например http://srv-web/buh или https://1c.company.ru/buh.
- 🌍 Веб-клиент — просто откройте адрес в браузере. Поддерживаются актуальные Chrome, Edge, Firefox, Яндекс Браузер. Разрешите всплывающие окна для этого адреса.
- 🖥 Тонкий клиент — в окне запуска
Добавить → Добавление в список существующей информационной базы → На веб-сервереи вставьте тот же адрес.
Для доступа из другой сети откройте в брандмауэре Windows входящий порт 80 или 443 и пробросьте его на роутере. Порты кластера 1С (1540, 1541 и диапазон рабочих процессов) наружу открывать не нужно: снаружи работает только HTTP(S) до IIS, а с сервером 1С общается уже веб-сервер.
Ошибки публикации на IIS и как их снять
Код ошибки IIS показывает в браузере, если открыть адрес прямо на сервере (http://localhost/buh): локально выводится подробная страница с номером и подкодом. С клиентского компьютера видна только общая страница — поэтому диагностику начинайте с сервера.
Если ни одно описание не подходит — включите в IIS «Трассировку неудачных запросов» для приложения. В журнале будет видно, на каком модуле запрос споткнулся.
Частые вопросы
Нужно ли платить за IIS?
Можно ли держать публикацию на обычной Windows 10, а не на сервере?
Как опубликовать несколько баз на одном IIS?
buh, zup, ut11. Все они могут жить в одном пуле, но отдельный пул на каждую нагруженную базу упрощает перезапуски.Чем IIS отличается от Apache для 1С?
Как снять публикацию?
webinst -delete. Каталог публикации после этого можно удалить вручную.