Веб-доступ к 1С через IIS: от установки роли до первого входа

· 9 мин

Содержание

Чтобы опубликовать базу 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 из Конфигуратора

Пошагово через Конфигуратор

  1. Закройте Конфигуратор, если он открыт, и запустите его снова через правый клик → «Запуск от имени администратора». Без повышенных прав запись в C:\inetpub\wwwroot и в настройки IIS не пройдёт.
  2. Откройте Администрирование → Публикация на веб-сервере.
  3. В поле «Имя» задайте псевдоним латиницей без пробелов: buh, zup, ut11. Он станет частью адреса.
  4. Веб-сервер — Internet Information Services.
  5. Каталог — физическая папка публикации, например C:\inetpub\wwwroot\buh. Папку программа создаст сама.
  6. При необходимости отметьте на вкладках: публикацию тонкого и веб-клиента (включена по умолчанию), Web-сервисов, HTTP-сервисов, стандартного интерфейса OData.
  7. Нажмите «Опубликовать».

Программа создаст в каталоге публикации два файла: 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С.

Создаём пул

  1. В Диспетчере служб IIS откройте узел Пулы приложений → «Добавить пул приложений».
  2. Имя — например, 1C. Версия среды CLR .NET — «Без управляемого кода». Режим конвейера — «Встроенный».
  3. Откройте «Дополнительные параметры» пула и проверьте строку «Разрешены 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\buhIIS_IUSRSЧтение и выполнение
Каталог платформы ...\1cv8\<версия>\binIIS_IUSRSЧтение и выполнение
Каталог файловой базы (с файлом 1Cv8.1CD)IIS AppPool\1C или IIS_IUSRSИзменение
Каталог лицензий C:\ProgramData\1C\licensesIIS_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 конкретной версии платформы. Поставили новую версию и удалили старую — публикация ломается: файла по старому пути больше нет.

Порядок при обновлении платформы:

  1. Поставьте новую версию с модулями расширения веб-сервера.
  2. Запустите Конфигуратор новой версии от имени администратора и опубликуйте базу заново с тем же именем и каталогом.
  3. Проверьте путь в 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?
Нет. IIS входит в Windows Server и в Windows 10/11 Pro. Платить нужно только за клиентские лицензии 1С для пользователей веб-доступа.
Можно ли держать публикацию на обычной Windows 10, а не на сервере?
Можно для теста и маленького офиса. Но IIS в настольной Windows ограничивает число одновременных запросов, поэтому при нескольких активных пользователях начнутся задержки. Для рабочей эксплуатации берите Windows Server.
Как опубликовать несколько баз на одном IIS?
Каждую базу публикуют под своим именем и в свой каталог: buh, zup, ut11. Все они могут жить в одном пуле, но отдельный пул на каждую нагруженную базу упрощает перезапуски.
Чем IIS отличается от Apache для 1С?
Функционально публикация одинаковая. IIS удобнее в доменной сети: встроенная проверка подлинности Windows и управление сертификатами в привычной консоли. Apache проще перенести на Linux.
Как снять публикацию?
В Конфигураторе откройте ту же форму публикации и нажмите «Отключить», либо выполните webinst -delete. Каталог публикации после этого можно удалить вручную.