Веб-доступ к 1С через IIS: роли Windows, пул приложений, права и проверка

· 10 мин

Содержание

Чтобы опубликовать базу 1С на IIS, нужны три вещи: роль «Веб-сервер (IIS)» с компонентом «Расширения ISAPI», установленные «Модули расширения веб-сервера» платформы 1С и запуск Конфигуратора от имени администратора с командой Администрирование → Публикация на веб-сервере. После публикации база открывается в браузере по адресу вида http://имя-сервера/buh, а тонкий клиент подключается к ней по тому же адресу.

Основная часть сбоев приходится не на саму публикацию, а на разрядность модуля, пул приложений и права учётной записи IIS на каталог базы. Если настроить их сразу, публикация занимает 15–20 минут. Инструкция подходит для платформы 8.3 и Windows Server 2016 и новее, а также для Windows 10/11, где IIS ставится как компонент системы.

Что подготовить на сервере до публикации

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

Роли и компоненты IIS

На Windows Server роль добавляется через Диспетчер серверов → Управление → Добавить роли и компоненты → Веб-сервер (IIS). В составе роли отметьте:

  • 🧩 Разработка приложений → Расширения ISAPI и Фильтры ISAPI — без них модуль 1С не запустится;
  • 📄 Основные функции HTTP → Статическое содержимое и Документ по умолчанию — веб-клиент отдаёт статические файлы;
  • 🔐 Безопасность → Обычная проверка подлинности и Проверка подлинности Windows — понадобятся, если вход будет по доменной учётке;
  • 🛠 Средства управления → Консоль управления IIS.

То же самое быстрее сделать одной командой PowerShell от имени администратора:

Install-WindowsFeature Web-Server, Web-Static-Content, Web-Default-Doc, Web-ISAPI-Ext, Web-ISAPI-Filter, Web-Basic-Auth, Web-Windows-Auth, Web-Mgmt-Console

На Windows 10/11 то же самое включается в Панель управления → Программы и компоненты → Включение или отключение компонентов Windows → Службы IIS.

Компонент платформы 1С

В установщике платформы есть отдельный пункт «Модули расширения веб-сервера». По умолчанию он не выбран. Если платформа уже стоит, запустите установщик той же версии повторно, выберите «Изменить» и добавьте компонент.

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

Разрядность важна. 64-разрядная платформа ставится в C:\Program Files\1cv8, 32-разрядная — в C:\Program Files (x86)\1cv8. Пул приложений IIS должен работать в той же разрядности, что и модуль. Это главная причина ошибки 500 после «успешной» публикации.

Пул приложений под 1С: отдельный и правильно настроенный

Публикация из Конфигуратора по умолчанию помещает приложение в DefaultAppPool. Работать будет, но держать 1С в общем пуле с другими сайтами неудобно: перезапуск пула ради одного сайта рвёт сеансы всех остальных. Лучше сразу создать отдельный пул.

Создание пула

  1. Откройте Диспетчер служб IIS (команда inetmgr).
  2. В дереве слева выберите Пулы приложений, справа — «Добавить пул приложений».
  3. Имя — например, 1C. Версия среды CLR .NET — «Без управляемого кода»: модулю 1С .NET не нужен.
  4. Режим конвейера — «Встроенный».

Параметры, которые стоит поменять

Откройте у созданного пула «Дополнительные параметры» и проверьте значения из таблицы.

ПараметрЗначениеЗачем
Разрешены 32-разрядные приложенияFalse для 64-битной платформы, True для 32-битнойСовпадение разрядности с wsisapi.dll
УдостоверениеApplicationPoolIdentity или отдельная служебная учёткаОт этой учётки идут обращения к файлам базы
Время простоя (минуты)0Пул не выгружается ночью, первый вход утром не тормозит
Регулярный интервал перезапуска0 или ночное время по расписаниюПо умолчанию пул перезапускается каждые 1740 минут — посреди рабочего дня это обрывает сеансы

Те же настройки через командную строку:

cd %windir%\system32\inetsrv
appcmd add apppool /name:1C /managedRuntimeVersion:""
appcmd set apppool 1C /enable32BitAppOnWin64:false
appcmd set apppool 1C /processModel.idleTimeout:00:00:00

Модуль wsisapi.dll в настройках IIS

При публикации из Конфигуратора платформа сама прописывает обработчик для wsisapi.dll в файле web.config каталога публикации. Но два места стоит проверить руками — особенно после обновления платформы или если на сервере уже публиковали базы.

Ограничения ISAPI и CGI

На уровне сервера (корень дерева в inetmgr) откройте «Ограничения ISAPI и CGI». В списке должна быть строка с путём к wsisapi.dll нужной версии и состоянием «Разрешено». Если строки нет или стоит «Запрещено», IIS вернёт ошибку 404.2.

При необходимости добавьте запись вручную: укажите полный путь, например C:\Program Files\1cv8\8.3.25.1374\bin\wsisapi.dll, и отметьте разрешение выполнения.

Сопоставления обработчиков

На уровне опубликованного приложения откройте «Сопоставления обработчиков». Там должен быть обработчик с модулем IsapiModule и путём к wsisapi.dll. Если путь ведёт в каталог старой версии платформы, которую уже удалили, публикация перестанет работать.

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

Публикуем базу: из Конфигуратора или командой webinst

Через Конфигуратор

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

Перезапуск IIS обрывает все текущие веб-сеансы на этом сервере. Если базы уже опубликованы и с ними работают люди, публикуйте новую в нерабочее время.

Через 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 "Srvr=srv1c;Ref=buh;"

Для файловой базы строка соединения выглядит так: -connstr "File=""D:\Bases\Buh"";". Полный список ключей выводит webinst без параметров.

Перенос приложения в свой пул

После публикации приложение buh окажется в пуле по умолчанию. Переключите его в созданный пул: в inetmgr выберите приложение → «Основные настройки» → «Пул приложений» → 1C. Или командой:

%windir%\system32\inetsrv\appcmd set app "Default Web Site/buh" /applicationPool:1C

Что появляется в каталоге публикации

В папке C:\inetpub\wwwroot\buh создаются два файла:

  • 📄 default.vrd — описание публикации: строка соединения с базой в атрибуте ib, список опубликованных сервисов;
  • 📄 web.config — привязка IIS к модулю wsisapi.dll.

Править default.vrd руками можно, например, чтобы поменять сервер в строке соединения. После правки перезапустите пул приложений.

Права доступа: кто и к чему обращается

Модуль 1С работает внутри рабочего процесса IIS, поэтому к файлам он обращается от имени удостоверения пула. При ApplicationPoolIdentity это виртуальная учётная запись IIS AppPool\1C (по имени пула), которая входит в группу IIS_IUSRS.

ОбъектКому дать праваКакие
Каталог публикации C:\inetpub\wwwroot\buhIIS_IUSRSЧтение
Каталог платформы C:\Program Files\1cv8\<версия>\binIIS_IUSRSЧтение и выполнение
Каталог файловой базыIIS AppPool\1C или IIS_IUSRSИзменение

Для файловой базы права на изменение обязательны: при входе платформа создаёт и меняет служебные файлы рядом с 1Cv8.1CD. Если база лежит в общей папке на другом компьютере, виртуальная учётка пула туда не попадёт. Тогда задайте пулу удостоверение доменной служебной учётки и выдайте права ей — и на общую папку, и на NTFS.

Для клиент-серверной базы файловые права не нужны. Достаточно, чтобы сервер с IIS видел сервер 1С по сети, а в строке соединения был правильный кластер и имя базы.

Не давайте пулу права администратора и не открывайте каталог базы для «Все». Если пул взломают через уязвимость, злоумышленник получит ровно те права, которые есть у пула.

Вход пользователей: пароль 1С, доменная учётка, HTTPS

Два уровня проверки

При веб-доступе работают два независимых слоя:

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

Вход по логину и паролю 1С

Самый простой вариант. В IIS оставляете анонимный доступ, а в самой базе у каждого пользователя задан пароль. Браузер покажет стандартное окно входа 1С.

Вход по доменной учётной записи

  1. В inetmgr у приложения откройте «Проверка подлинности»: включите «Проверка подлинности Windows», отключите анонимную.
  2. В базе откройте карточку пользователя (Администрирование → Пользователи и права в БП 3.0 и ЗУП 3.1 или список пользователей в Конфигураторе) и отметьте вход через аутентификацию операционной системы с пользователем вида DOMAIN\ivanov.
  3. При публикации через webinst для этого сценария предусмотрен ключ -osauth.

Публикация наружу

Если база должна открываться из интернета, не публикуйте её по голому HTTP: пароли и данные пойдут открытым текстом.

  • 🔒 добавьте сайту привязку HTTPS на порту 443 с действующим сертификатом;
  • 🚪 на маршрутизаторе пробрасывайте только 443, а не 80;
  • 👤 запретите вход пользователям без пароля и отключите пользователя с пустым именем;
  • 🧱 по возможности ограничьте доступ VPN или списком IP-адресов в «Ограничениях IP-адресов и доменов» IIS (компонент ставится отдельно).

Лицензии

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

Проверяем результат и подключаем пользователей

  1. Откройте на самом сервере http://localhost/buh — должно появиться окно входа или сразу рабочий стол базы.
  2. Откройте тот же адрес с другого компьютера сети: http://имя-сервера/buh. Если локально работает, а по сети нет — проверьте брандмауэр Windows на порт 80/443.
  3. Для тонкого клиента: в окне запуска 1С нажмите «Добавить» → «Добавление в список существующей информационной базы» → тип расположения «На веб-сервере» и укажите адрес http://имя-сервера/buh.

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

Диагностика: выберите симптом

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

Можно ли опубликовать несколько баз на одном IIS?
Да. Каждой базе даётся своё имя публикации и свой каталог: /buh, /zup, /trade. Пул приложений можно использовать один на все базы одной версии платформы или завести отдельные, чтобы перезапуск одного не задевал остальные.
Нужен ли Windows Server или хватит Windows 10/11?
Для пары пользователей хватит и Windows 10/11: IIS там включается как компонент. Но у клиентской Windows есть ограничение на число одновременных подключений к IIS, поэтому для офиса на 10 и больше человек ставьте серверную ОС.
Чем публикация на IIS отличается от публикации на Apache?
Принцип тот же: модуль платформы встраивается в веб-сервер и отдаёт базу по HTTP. На Windows IIS проще в настройке и не требует отдельной установки. Apache выбирают, когда сервер на Linux или нужна одинаковая схема на разных ОС.
Как снять публикацию базы?
В Конфигураторе той же базы откройте Администрирование → Публикация на веб-сервере и нажмите «Отключить». Командой: webinst -delete -iis -wsdir buh -dir "C:\inetpub\wwwroot\buh". Сам каталог с файлами базы при этом не трогается.
Почему веб-клиент работает медленнее тонкого?
Браузер выполняет клиентский код через интерпретацию в JavaScript и не кэширует метаданные так же, как тонкий клиент. Для ежедневной работы бухгалтеров тонкий клиент через веб-сервер обычно заметно отзывчивее.