Публикация информационной базы 1С на IIS: от установки ролей до входа через тонкий клиент

· 9 мин

Содержание

Чтобы добавить базу 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С:Предприятия → имя сервера → Кластеры → Информационные базы. Нужная база должна быть в списке. Запомните два значения:

  1. Имя сервера кластера (как он виден из сети, например srv1c).
  2. Имя базы в кластере (например 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.

Пошагово

  1. Откройте базу в Конфигураторе под пользователем с правами администратора базы. Монопольный режим для публикации не нужен.
  2. Выберите Администрирование → Публикация на веб-сервере.
  3. В поле «Имя» задайте короткое латинское имя без пробелов, например buh. Оно станет частью адреса: http://server/buh.
  4. В поле «Веб-сервер» выберите «Internet Information Services».
  5. В поле «Каталог» оставьте предложенный путь вида C:\inetpub\wwwroot\buh или укажите свой.
  6. Отметьте «Публиковать доступ для клиентских приложений» — это и есть доступ для тонкого клиента и веб-клиента.
  7. Флажки OData, веб-сервисов и HTTP-сервисов включайте, только если они реально используются.
  8. Нажмите «Опубликовать». 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=&quot;srv1c&quot;;Ref=&quot;buh&quot;;">
</point>

Для файловой базы в атрибуте ib будет File=&quot;C:\Bases\buh&quot;;. Именно сюда смотрят первым делом, если адрес открывает не ту базу.

Публикация без Конфигуратора: утилита 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. В окне запуска 1С нажмите «Добавить».
  2. Выберите «Добавление в список существующей информационной базы».
  3. Укажите имя базы в списке и тип расположения «На веб-сервере».
  4. Введите адрес: 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 открывает базу всем, кто видит адрес. Внутри офиса это нормально. Если база доступна из интернета, нужна защита.

Минимальный набор мер

  1. 🔒 HTTPS. В Диспетчере IIS выберите сайт → «Привязки» → добавьте тип https, порт 443 и сертификат. Без него пароли пользователей 1С идут по сети открытым текстом.
  2. 🚫 Пароли у всех пользователей базы. Пользователь без пароля в опубликованной базе — открытая дверь.
  3. 🌐 Ограничение по IP. Раздел «Ограничения IP-адресов и доменов» в IIS: разрешите только адреса офиса и VPN.
  4. ✂️ Только нужные сервисы. Не публикуйте OData и веб-сервисы «на всякий случай». Каждый лишний сервис — лишняя точка входа.
  5. 📁 Без просмотра каталогов. Параметр «Просмотр каталога» в IIS для каталога публикации должен быть отключён.

Самый простой безопасный вариант для небольшой фирмы — вообще не выставлять IIS в интернет, а пускать сотрудников через VPN. Тогда достаточно HTTPS внутри сети и паролей.

Отдельный пул для каждой важной базы

Если на одном IIS опубликовано несколько баз, вынесите каждую в собственный пул приложений: Пулы приложений → Добавить пул, затем в свойствах приложения базы выберите этот пул. Тогда перезапуск или зависание одной публикации не затронет остальные.

Что влияет на скорость

  • 📶 Для клиент-серверной базы держите IIS в той же сети, что и кластер. Канал до пользователя может быть медленным, а между IIS и кластером он должен быть быстрым.
  • 🧮 Тонкий клиент через HTTP работает медленнее, чем прямое подключение к кластеру по TCP. В локальной сети прямое подключение остаётся предпочтительным, а веб-сервер оставляют для удалённых сотрудников.
  • 🔄 После обновления платформы публикацию обновляйте сразу, до того как пользователи начнут работу.
Перед тем как дать адрес пользователям
Выполнено: 0 / 6

7. Частые вопросы о веб-публикации базы 1С

Можно ли опубликовать файловую базу, а не клиент-серверную?
Да. В диалоге публикации ничего не меняется, в файле default.vrd будет путь к каталогу базы. Главное — дать IIS_IUSRS право «Изменение» на этот каталог.
Нужен ли отдельный сервер под IIS?
Нет. Для небольшого числа пользователей IIS ставят прямо на сервер 1С. Отдельная машина нужна, если веб-сервер выставлен в интернет и его хотят отделить от кластера и СУБД.
Можно ли использовать Apache вместо IIS?
Да, платформа умеет публиковать базы на Apache 2.2 и 2.4, в том числе на Linux. В диалоге публикации выбирается соответствующий веб-сервер, а модуль подключается в конфигурации Apache.
Как опубликовать несколько баз на одном сервере?
Каждую базу публикуют под своим именем: http://server/buh, http://server/zup и так далее. Для надёжности каждой базе стоит выделить свой пул приложений.
Почему после обновления платформы перестала открываться база?
Публикация ссылается на модуль из каталога старой версии, а кластер работает уже на новой. Перепубликуйте базу Конфигуратором новой версии или утилитой webinst из её каталога bin.