Публикация информационной базы 1С на IIS: от установки ролей до входа через тонкий клиент
Содержание
Чтобы добавить базу 1С на веб-сервер, нужны три вещи: IIS с расширениями ISAPI, платформа 1С с компонентом «Модули расширения веб-сервера» той же версии, что и сервер 1С, и публикация из Конфигуратора, запущенного от имени администратора: Администрирование → Публикация на веб-сервере. После этого база открывается в тонком клиенте по адресу вида http://server/buh.
Чаще всего публикация «не взлетает» из-за мелочей: разрядность модуля не совпала с пулом приложений, у пользователя IIS нет прав на каталог, версия модуля отличается от версии кластера. Ниже порядок действий для платформы 8.3 и Windows Server 2016 и новее, с разбором этих ловушек.
1. Что подготовить на сервере перед публикацией базы
Публикацию делают на той машине, где работает IIS. Это может быть сам сервер 1С или отдельный сервер в той же сети.
Установка ролей IIS
Откройте Диспетчер серверов → Управление → Добавить роли и компоненты, отметьте роль «Веб-сервер (IIS)». На шаге служб ролей проверьте состав:
- ✅ «Общие функции HTTP» → «Статическое содержимое», «Документ по умолчанию»;
- ✅ «Разработка приложений» → «Расширения ISAPI» и «Фильтры ISAPI» (без них модуль 1С не загрузится);
- ✅ «Безопасность» → «Обычная проверка подлинности» и, если нужен вход по учётной записи Windows, «Проверка подлинности Windows»;
- ✅ «Безопасность» → «Ограничения IP-адресов и доменов» — пригодится, если база будет смотреть наружу;
- ✅ «Средства управления» → «Консоль управления IIS».
После установки откройте в браузере на сервере http://localhost. Стартовая страница IIS означает, что веб-сервер жив.
Установка платформы с модулями веб-сервера
Запустите установщик платформы 1С:Предприятие 8.3 и в списке компонентов включите «Модули расширения веб-сервера». Обычно рядом ставят «1С:Предприятие» и «Администрирование сервера 1С:Предприятия», чтобы публиковать и проверять базу с той же машины.
| Что проверить | Требование |
|---|---|
| Версия модуля | Совпадает с версией кластера серверов 1С до последней цифры |
| Разрядность модуля | Совпадает с настройкой пула приложений IIS |
| Права установки | Установщик запущен от администратора |
Если на сервере стоят две платформы, x86 и x64, публикуйте Конфигуратором той разрядности, которую хотите использовать в IIS. Модуль wsisapi.dll берётся из каталога bin именно этой платформы.
2. Настройка кластера серверов 1С для веб-доступа
Для файловой базы этот раздел пропустите. Для клиент-серверной базы веб-сервер подключается к кластеру как обычный клиент, поэтому кластер должен быть готов принять подключение.
Проверьте, что база зарегистрирована в кластере
Откройте консоль «Администрирование серверов 1С Предприятия», разверните Центральные серверы 1С:Предприятия → имя сервера → Кластеры → Информационные базы. Нужная база должна быть в списке. Запомните два значения:
- Имя сервера кластера (как он виден из сети, например
srv1c). - Имя базы в кластере (например
buh). Это не имя базы в СУБД, а имя в консоли 1С.
В свойствах базы проверьте флажок «Разрешить выдачу лицензий сервером 1С:Предприятия». Если он снят, тонкий клиент через веб-сервер будет искать лицензию на рабочем месте пользователя.
Порты между веб-сервером и кластером
Если IIS и сервер 1С на разных машинах, между ними должны быть открыты порты:
| Порт | Кто слушает | Зачем |
|---|---|---|
| 1540 | Агент сервера (ragent) | Первичное обращение клиента и консоли |
| 1541 | Менеджер кластера (rmngr) | Работа с кластером |
| 1560–1591 | Рабочие процессы (rphost) | Сеансы пользователей; диапазон задаётся в свойствах рабочего сервера |
Быстрая проверка с веб-сервера в PowerShell:
Test-NetConnection srv1c -Port 1540
Test-NetConnection srv1c -Port 1541
TcpTestSucceeded : True по обоим портам означает, что брандмауэр не мешает.
Версия платформы на веб-сервере обязана совпадать с версией сервера 1С. При обновлении кластера на новый релиз обновите платформу на веб-сервере и перепубликуйте базу, иначе пользователи получат ошибку несовпадения версий.
3. Публикация базы 1С на веб-сервере IIS через Конфигуратор
Это основной шаг. Конфигуратор запускайте правой кнопкой → «Запуск от имени администратора», иначе 1С не сможет записать файлы в C:\inetpub\wwwroot и изменить настройки IIS.
Пошагово
- Откройте базу в Конфигураторе под пользователем с правами администратора базы. Монопольный режим для публикации не нужен.
- Выберите
Администрирование → Публикация на веб-сервере. - В поле «Имя» задайте короткое латинское имя без пробелов, например
buh. Оно станет частью адреса:http://server/buh. - В поле «Веб-сервер» выберите «Internet Information Services».
- В поле «Каталог» оставьте предложенный путь вида
C:\inetpub\wwwroot\buhили укажите свой. - Отметьте «Публиковать доступ для клиентских приложений» — это и есть доступ для тонкого клиента и веб-клиента.
- Флажки OData, веб-сервисов и HTTP-сервисов включайте, только если они реально используются.
- Нажмите «Опубликовать». 1С предложит перезапустить веб-сервер : соглашайтесь.
Что появится после публикации
В каталоге публикации будет файл default.vrd — описание того, какую базу обслуживает адрес. Для клиент-серверной базы он выглядит примерно так:
<?xml version="1.0" encoding="UTF-8"?>
<point xmlns="http://v8.1c.ru/8.2/virtual-resource-system"
xmlns:xs="http://www.w3.org/2001/XMLSchema"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
base="/buh"
ib="Srvr="srv1c";Ref="buh";">
</point>
Для файловой базы в атрибуте ib будет File="C:\Bases\buh";. Именно сюда смотрят первым делом, если адрес открывает не ту базу.
Публикация без Конфигуратора: утилита webinst
Когда баз много или публикацию нужно повторять после каждого обновления платформы, удобнее утилита webinst.exe из каталога bin платформы. Запуск из командной строки от администратора:
cd "C:\Program Files\1cv8\8.3.25.1374\bin"
webinst.exe -publish -iis -wsdir buh -dir "C:\inetpub\wwwroot\buh" -connstr "Srvr=srv1c;Ref=buh;"
Номер версии в пути подставьте свой. Удалить публикацию можно той же утилитой с ключом -delete. Полный список параметров выводит запуск webinst.exe без аргументов.
Как подключить опубликованную базу в тонком клиенте
На рабочем месте пользователя:
- В окне запуска 1С нажмите «Добавить».
- Выберите «Добавление в список существующей информационной базы».
- Укажите имя базы в списке и тип расположения «На веб-сервере».
- Введите адрес:
http://server/buh(илиhttps://…, если настроен сертификат).
Скачать недостающую платформу с веб-сервера тонкий клиент сам не сможет, пока это не настроено отдельно: на рабочем месте должна стоять платформа той же версии, что и на сервере, либо настроен каталог обновления клиентов.
4. Права доступа и аутентификация пользователей
Здесь ломается больше всего публикаций. Проблема в том, что модуль 1С работает от имени учётной записи пула приложений IIS, а не от имени пользователя, который открыл браузер.
Права на каталоги
| Каталог | Кому | Права |
|---|---|---|
Каталог публикации (C:\inetpub\wwwroot\buh) | IIS_IUSRS | Чтение и выполнение |
Каталог bin платформы | IIS_IUSRS | Чтение и выполнение |
Каталог файловой базы (C:\Bases\buh) | IIS_IUSRS | Изменение |
Для файловой базы право «Изменение» обязательно: платформа создаёт и удаляет в каталоге базы служебные файлы. С правами только на чтение база не откроется.
Если файловая база лежит на сетевом ресурсе, IIS_IUSRS до него не дотянется. Либо переносите базу на локальный диск веб-сервера, либо задавайте пулу приложений доменную учётную запись с правами на этот ресурс.
Разрядность пула приложений
Откройте Диспетчер IIS → Пулы приложений, выберите пул, в котором работает публикация (обычно DefaultAppPool), → «Дополнительные параметры». Параметр «Разрешены 32-разрядные приложения»:
- платформа x64 →
False; - платформа x86 →
True.
Несовпадение даёт ошибку 500 при первом же обращении к адресу.
Аутентификация
Возможны два варианта входа, и их можно совмещать:
- 🔑 Аутентификация 1С (логин и пароль пользователя базы). Работает по умолчанию, ничего дополнительно включать не нужно. Пароль передаётся в открытом виде, если нет HTTPS.
- 🪟 Аутентификация операционной системы. В диалоге публикации отметьте флажок про аутентификацию операционной системы, в IIS для каталога публикации включите «Проверка подлинности Windows». У пользователя базы в Конфигураторе (
Администрирование → Пользователи) должна быть указана его доменная учётная запись.
Проверка: войдите через тонкий клиент под обычным пользователем, не администратором. Если вход прошёл, а документы открываются — права выданы верно.
5. Ошибки при публикации и их диагностика
Лог IIS лежит в C:\inetpub\logs\LogFiles, журнал событий Windows — в разделе «Приложение». Код ответа HTTP почти всегда сразу указывает направление.
После любых изменений в IIS перезапустите пул приложений или выполните iisreset из командной строки.
iisreset перезапускает все сайты на сервере и обрывает сеансы всех пользователей, работающих через веб-сервер. Делайте это вне рабочего времени или предупредите людей заранее. Перезапуск отдельного пула затрагивает только базы этого пула.
6. Защита и скорость работы базы через веб-сервер
Публикация на IIS открывает базу всем, кто видит адрес. Внутри офиса это нормально. Если база доступна из интернета, нужна защита.
Минимальный набор мер
- 🔒 HTTPS. В Диспетчере IIS выберите сайт → «Привязки» → добавьте тип
https, порт 443 и сертификат. Без него пароли пользователей 1С идут по сети открытым текстом. - 🚫 Пароли у всех пользователей базы. Пользователь без пароля в опубликованной базе — открытая дверь.
- 🌐 Ограничение по IP. Раздел «Ограничения IP-адресов и доменов» в IIS: разрешите только адреса офиса и VPN.
- ✂️ Только нужные сервисы. Не публикуйте OData и веб-сервисы «на всякий случай». Каждый лишний сервис — лишняя точка входа.
- 📁 Без просмотра каталогов. Параметр «Просмотр каталога» в IIS для каталога публикации должен быть отключён.
Самый простой безопасный вариант для небольшой фирмы — вообще не выставлять IIS в интернет, а пускать сотрудников через VPN. Тогда достаточно HTTPS внутри сети и паролей.
Отдельный пул для каждой важной базы
Если на одном IIS опубликовано несколько баз, вынесите каждую в собственный пул приложений: Пулы приложений → Добавить пул, затем в свойствах приложения базы выберите этот пул. Тогда перезапуск или зависание одной публикации не затронет остальные.
Что влияет на скорость
- 📶 Для клиент-серверной базы держите IIS в той же сети, что и кластер. Канал до пользователя может быть медленным, а между IIS и кластером он должен быть быстрым.
- 🧮 Тонкий клиент через HTTP работает медленнее, чем прямое подключение к кластеру по TCP. В локальной сети прямое подключение остаётся предпочтительным, а веб-сервер оставляют для удалённых сотрудников.
- 🔄 После обновления платформы публикацию обновляйте сразу, до того как пользователи начнут работу.