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

· 9 мин

Содержание

Чтобы опубликовать базу 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 платформы. Она ставится только при выборочной установке.

  1. Запустите setup.exe дистрибутива технологической платформы той же версии, что и у базы (или у сервера 1С).
  2. На шаге выбора компонентов включите Модули расширения веб-сервера.
  3. Если IIS стоит на отдельной машине без клиентов, остальные компоненты можно не ставить, но удобнее оставить и 1С:Предприятие — понадобится Конфигуратор для публикации.
  4. Дождитесь окончания установки. Библиотека появится по пути вида C:\Program Files\1cv8\8.3.xx.xxxx\bin\wsisapi.dll.

Версия платформы на веб-сервере должна совпадать с версией сервера 1С до последней цифры. Иначе при подключении к клиент-серверной базе получите ошибку несовпадения версий клиента и сервера.

Публикация базы 1С на веб-сервере IIS через Конфигуратор

Публиковать можно двумя способами: из окна Конфигуратора или из командной строки утилитой webinst. Результат одинаковый — в IIS появляется приложение, а в его каталоге два файла: default.vrd (настройки публикации и строка подключения к базе) и web.config (привязка обработчика к wsisapi.dll).

Через окно «Публикация на веб-сервере»

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

Через 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. Для одной тестовой базы это допустимо. Для рабочих баз лучше отдельный пул на каждую: падение одной публикации не затронет остальные, а перезапуск пула не оборвёт чужие сеансы.

Как настроить:

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

Права на каталог файловой базы — главный пункт. Без записи 1С не сможет создать файлы блокировок и открыть базу . Выдать права командой:

icacls "D:\Bases\Buh" /grant "IIS_IUSRS:(OI)(CI)M" /grant "IUSR:(OI)(CI)M"

Если база лежит на сетевой папке, локальные учётные записи IIS доступа к ней не получат. Задайте пулу удостоверение — доменную служебную учётную запись — и дайте права ей.

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

Аутентификация пользователей

По умолчанию пользователь видит окно входа 1С и вводит логин и пароль из списка пользователей базы. Для этого в IIS достаточно анонимной проверки подлинности, которая включена с самого начала.

Вход под учётной записью Windows без пароля настраивается так:

  1. В базе откройте карточку пользователя и включите аутентификацию операционной системы, указав \\ДОМЕН\логин.
  2. В IIS выберите приложение buh, откройте Проверка подлинности и включите Проверка подлинности Windows.
  3. Чтобы браузер всегда передавал доменную учётную запись, отключите там же Анонимную проверку подлинности.
  4. Добавьте адрес сервера в зону «Местная интрасеть» браузера, иначе он будет спрашивать пароль.

Если публикация смотрит в интернет, вход только по паролю 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?
Нет. Публикация нужна для веб-клиента, тонкого клиента по HTTP, мобильного клиента и интеграций через OData, веб-сервисы и HTTP-сервисы. При работе по RDP клиент подключается к базе напрямую.
Что выбрать: IIS или Apache?
На Windows-сервере IIS удобнее: он уже входит в систему и настраивается из Конфигуратора. Apache выбирают для Linux или когда он уже обслуживает другие сайты.
Можно ли публиковать базу из Конфигуратора без прав администратора?
Нет. Публикация пишет настройки IIS и создаёт каталог в wwwroot, для этого нужны права локального администратора. Запускайте Конфигуратор или webinst от имени администратора.
Как снять публикацию базы с IIS?
В Конфигураторе откройте то же окно публикации и нажмите «Отключить», либо выполните webinst с ключом -delete. Каталог публикации после этого можно удалить вручную.