Веб-доступ к 1С через IIS: от установки ролей до первого входа из браузера
Содержание
Чтобы опубликовать базу 1С на IIS, нужно включить в Windows роль веб-сервера с расширениями ISAPI, поставить компонент платформы «Модули расширения веб-сервера», а затем запустить Конфигуратор от имени администратора и выполнить Администрирование → Публикация на веб-сервере. После этого база открывается в браузере по адресу вида http://сервер/buh, а тонкий клиент подключается к ней по HTTP.
Обычно на этом пути спотыкаются три раза: пул приложений не той разрядности, у учётной записи IIS нет прав на каталог файловой базы, а после обновления платформы публикация перестаёт открываться. Каждую из этих ловушек разберём отдельно.
Подготовка сервера: роли IIS и выбор разрядности
Публикация работает на Windows Server 2016 и новее, а для теста — и на Windows 10/11. Сервер IIS может стоять на той же машине, что и файловая база или сервер 1С, или отдельно.
Какие компоненты IIS нужны:
- ✅ Веб-сервер (IIS) — сама роль;
- ✅ Расширения ISAPI и Фильтры ISAPI — без них модуль 1С не загрузится;
- ✅ Статическое содержимое, Документ по умолчанию, Ошибки HTTP — базовые компоненты, обычно ставятся с ролью;
- ✅ Консоль управления IIS — чтобы настраивать пулы и права мышкой;
- 🔹 Проверка подлинности Windows — только если пользователи будут входить под доменной учётной записью.
ASP.NET для работы 1С не нужен.
На Windows Server роли добавляют через Диспетчер серверов → Управление → Добавить роли и компоненты. Быстрее — одной командой PowerShell от администратора:
Install-WindowsFeature Web-Server, Web-Static-Content, Web-Default-Doc, Web-Http-Errors, Web-ISAPI-Ext, Web-ISAPI-Filter, Web-Mgmt-Console, Web-Windows-Auth
На Windows 10/11 то же самое включается в Панель управления → Программы → Включение или отключение компонентов Windows: раскройте Службы IIS → Службы Интернета → Компоненты разработки приложений и отметьте расширения и фильтры ISAPI.
Сразу решите вопрос разрядности. Если на сервере стоит 64-разрядная платформа 1С, пул IIS работает в 64-битном режиме по умолчанию. Если 32-разрядная — пулу придётся разрешить 32-битные приложения. Смешать не получится: IIS загружает модуль той разрядности, в которой работает пул.
Модули расширения веб-сервера 1С: установка платформы на машину с IIS
Связь между IIS и базой обеспечивает библиотека wsisapi.dll из каталога bin платформы. Она ставится только при выборочной установке.
- Запустите
setup.exeдистрибутива технологической платформы той же версии, что и у базы (или у сервера 1С). - На шаге выбора компонентов включите Модули расширения веб-сервера.
- Если IIS стоит на отдельной машине без клиентов, остальные компоненты можно не ставить, но удобнее оставить и 1С:Предприятие — понадобится Конфигуратор для публикации.
- Дождитесь окончания установки. Библиотека появится по пути вида
C:\Program Files\1cv8\8.3.xx.xxxx\bin\wsisapi.dll.
Версия платформы на веб-сервере должна совпадать с версией сервера 1С до последней цифры. Иначе при подключении к клиент-серверной базе получите ошибку несовпадения версий клиента и сервера.
Публикация базы 1С на веб-сервере IIS через Конфигуратор
Публиковать можно двумя способами: из окна Конфигуратора или из командной строки утилитой webinst. Результат одинаковый — в IIS появляется приложение, а в его каталоге два файла: default.vrd (настройки публикации и строка подключения к базе) и web.config (привязка обработчика к wsisapi.dll).
Через окно «Публикация на веб-сервере»
- Щёлкните ярлык 1С правой кнопкой и выберите Запуск от имени администратора. Без повышенных прав Конфигуратор не сможет записать настройки IIS.
- В окне запуска выберите базу и нажмите Конфигуратор.
- Откройте
Администрирование → Публикация на веб-сервере. - Заполните поля:
- Имя — короткий псевдоним латиницей без пробелов, например
buh. Он станет частью адреса; - Веб-сервер — Internet Information Services;
- Каталог — по умолчанию
C:\inetpub\wwwroot\buh, менять обычно не нужно.
- Имя — короткий псевдоним латиницей без пробелов, например
- Оставьте отметку публикации доступа для клиентских приложений. Отметки OData, веб-сервисов и HTTP-сервисов включайте, только если они реально нужны интеграциям.
- Нажмите Опубликовать. Конфигуратор предложит перезапустить веб-сервер — согласитесь.
Через webinst без открытия Конфигуратора
Утилита лежит в том же каталоге bin платформы. Удобна для скриптов и для серверов, где базу нельзя занимать даже на минуту.
Файловая база:
cd "C:\Program Files\1cv8\8.3.xx.xxxx\bin"
webinst -publish -iis -wsdir buh -dir "C:\inetpub\wwwroot\buh" -connstr "File=""D:\Bases\Buh"";"
Клиент-серверная база
(сервер srv1c, имя базы в кластере buh):
webinst -publish -iis -wsdir buh -dir "C:\inetpub\wwwroot\buh" -connstr "Srvr=""srv1c"";Ref=""buh"";"
Снять публикацию — тот же вызов с ключом -delete вместо -publish. Командную строку запускайте от имени администратора.
Проверка
Откройте в браузере на самом сервере http://localhost/buh. Должно появиться окно входа 1С. Если вместо него код ошибки HTTP — переходите к разделу про ошибки в конце.
Пул приложений IIS для опубликованной базы 1С
Конфигуратор кладёт приложение в DefaultAppPool. Для одной тестовой базы это допустимо. Для рабочих баз лучше отдельный пул на каждую: падение одной публикации не затронет остальные, а перезапуск пула не оборвёт чужие сеансы.
Как настроить:
- Откройте Диспетчер служб IIS (
inetmgr). - В узле Пулы приложений создайте пул, например
1C-buh. Версия среды CLR — Без управляемого кода: модулю 1С .NET не нужен. - В узле
Сайты → Default Web Siteвыберите приложениеbuh, справа нажмите Основные настройки и укажите новый пул. - Откройте у пула Дополнительные параметры и проверьте поля из таблицы.
| Параметр пула | Что поставить | Зачем |
|---|---|---|
| Разрешены 32-разрядные приложения | True для 32-битной платформы, False для 64-битной | Иначе модуль не загрузится, будет ошибка 500 |
| Максимальное число рабочих процессов | 1 | При нескольких процессах сеанс пользователя может уйти в соседний процесс и оборваться |
| Время простоя (минуты) | 0 или больше рабочего дня | По умолчанию пул засыпает через 20 минут, первый вход после паузы долгий |
| Повторное использование: регулярный интервал | Отключить и задать конкретное время ночью | Перезапуск пула днём выбрасывает всех из веб-клиента |
| Удостоверение | ApplicationPoolIdentity или служебная учётная запись | От неё зависят права на файлы базы |
Разрядность можно переключить и командой:
%windir%\system32\inetsrv\appcmd set apppool "1C-buh" /enable32BitAppOnWin64:true
Перезапуск или переработка пула завершает все сеансы пользователей этой публикации, несохранённые документы теряются. Меняйте параметры пула вне рабочего времени или после того, как все вышли.
Права доступа и аутентификация в опубликованной базе
Права на каталоги
Модуль 1С работает внутри процесса IIS w3wp.exe и обращается к файлам от имени учётных записей IIS. Им нужен доступ:
| Каталог | Кому | Какие права |
|---|---|---|
Каталог публикации C:\inetpub\wwwroot\buh | IIS_IUSRS, IUSR | Чтение |
Каталог платформы C:\Program Files\1cv8\...\bin | IIS_IUSRS | Чтение и выполнение (обычно уже есть через группу «Пользователи») |
| Каталог файловой базы | IIS_IUSRS, IUSR | Изменение |
Каталог лицензий C:\ProgramData\1C\licenses | IIS_IUSRS | Чтение |
Права на каталог файловой базы — главный пункт. Без записи 1С не сможет создать файлы блокировок и открыть базу . Выдать права командой:
icacls "D:\Bases\Buh" /grant "IIS_IUSRS:(OI)(CI)M" /grant "IUSR:(OI)(CI)M"
Если база лежит на сетевой папке, локальные учётные записи IIS доступа к ней не получат. Задайте пулу удостоверение — доменную служебную учётную запись — и дайте права ей.
Для клиент-серверной базы права на файлы не нужны: модуль подключается к кластеру по сети, как обычный клиент. Нужно только, чтобы с веб-сервера был открыт доступ к агенту сервера 1С (порт 1540), менеджеру кластера (1541) и диапазону портов рабочих процессов.
Аутентификация пользователей
По умолчанию пользователь видит окно входа 1С и вводит логин и пароль из списка пользователей базы. Для этого в IIS достаточно анонимной проверки подлинности, которая включена с самого начала.
Вход под учётной записью Windows без пароля настраивается так:
- В базе откройте карточку пользователя и включите аутентификацию операционной системы, указав
\\ДОМЕН\логин. - В IIS выберите приложение
buh, откройте Проверка подлинности и включите Проверка подлинности Windows. - Чтобы браузер всегда передавал доменную учётную запись, отключите там же Анонимную проверку подлинности.
- Добавьте адрес сервера в зону «Местная интрасеть» браузера, иначе он будет спрашивать пароль.
Если публикация смотрит в интернет, вход только по паролю 1С без HTTPS — плохая идея: пароль уйдёт открытым текстом. Сначала сертификат, потом внешний доступ.
Лицензии
Каждый сеанс через веб-клиент или тонкий клиент по HTTP занимает клиентскую лицензию. Для файловой базы лицензию ищет модуль на веб-сервере, поэтому лицензии должны быть активированы на этом компьютере. Для клиент-серверной базы лицензии выдаёт сервер 1С, если они на нём установлены.
Как подключиться к опубликованной базе: браузер, тонкий клиент, HTTPS
После публикации доступны три варианта входа:
- 🌐 Веб-клиент — адрес
http://имя-сервера/buhв браузере. Ничего ставить не нужно; - 🖥️ Тонкий клиент — в окне запуска
Добавить → Добавление в список существующей информационной базы → На веб-сервереи тот же адрес. Работает быстрее браузера и поддерживает больше функций; - 📱 Мобильный клиент — тоже по адресу публикации.
Для работы извне добавьте сайту привязку HTTPS: в IIS выберите Default Web Site, нажмите Привязки, добавьте тип https, порт 443 и сертификат. Адрес станет https://домен/buh. На роутере пробрасывается только порт 443, порты сервера 1С наружу открывать не нужно.
Ошибки при публикации базы 1С на IIS и как их убрать
Сначала посмотрите код ответа: браузер на самом сервере (http://localhost/buh) показывает подробную страницу ошибки IIS с подкодом. Удалённый браузер видит только общий текст.
Публикация сломалась после обновления платформы
Самая частая «внезапная» ошибка. В web.config записан полный путь к wsisapi.dll конкретной версии, например ...\8.3.24.1342\bin\wsisapi.dll. Поставили новую платформу, старую удалили — IIS отдаёт ошибку 500, потому что библиотеки по старому пути нет.
Решение — опубликовать базу заново из Конфигуратора новой версии или командой webinst из нового каталога bin. Можно и вручную поправить путь в web.config, но при следующем обновлении придётся повторять. Поэтому обновление платформы на веб-сервере стоит сразу включать в регламент вместе с переопубликацией всех баз.
Если ничего не помогло
- 🔍 Откройте Журнал событий Windows → Приложение и найдите ошибки источника IIS или 1С в момент обращения.
- 🔍 Включите в IIS Трассировку неудачных запросов для приложения — она покажет, на каком модуле запрос оборвался.
- 🔍 Проверьте, что в
default.vrdстрока подключения указывает на нужную базу: при копировании каталогов публикации её часто забывают поменять. - 🔍 Удалите публикацию и опубликуйте заново — это пересоздаёт и
default.vrd, иweb.config.
Частые вопросы
Можно ли опубликовать несколько баз на одном IIS?
http://сервер/buh, http://сервер/zup. Для рабочих баз лучше дать каждой отдельный пул приложений.Нужен ли IIS, если пользователи работают через RDP?
Что выбрать: IIS или Apache?
Можно ли публиковать базу из Конфигуратора без прав администратора?
wwwroot, для этого нужны права локального администратора. Запускайте Конфигуратор или webinst от имени администратора.Как снять публикацию базы с IIS?
webinst с ключом -delete. Каталог публикации после этого можно удалить вручную.