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

· 9 мин

Содержание

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

Порядок одинаков для файловой и клиент-серверной базы, разница только в строке соединения и правах на папки. Инструкция написана для платформы 8.3.2x и Windows Server 2016–2022. На Windows 10 и 11 шаги те же, но для рабочей нагрузки на десятки пользователей лучше серверная ОС.

1. Подготовка сервера к публикации 1С

Решите заранее, где будет стоять IIS. Есть два типичных варианта:

  • 🖥️ IIS на том же сервере, что и 1С. Проще всего: одна машина, нет сетевых задержек между веб-сервером и кластером.
  • 🌐 IIS на отдельной машине. Удобно, если веб-доступ смотрит в интернет, а сервер 1С нужно спрятать во внутреннюю сеть. Модули веб-сервера ставятся на машину с IIS, а не на сервер 1С.

Что проверить до установки:

  1. Разрядность. Ставьте 64-разрядную платформу на 64-разрядный сервер. Разрядность модуля веб-сервера потом должна совпасть с настройкой пула IIS.
  2. Версия платформы. На машине с IIS нужна ровно та же версия, что и на сервере 1С. Если версии разойдутся, база не откроется.
  3. Имя сервера. Для HTTPS понадобится DNS-имя (например, 1c.company.ru), которое указывает на внешний IP. По голому IP сертификат Let’s Encrypt не выпустить.
  4. Порты. Наружу открывайте только 443 и на время выпуска сертификата 80. Порты кластера 1С (1540, 1541 и диапазон рабочих процессов) в интернет не выставляйте.
  5. Учётная запись администратора Windows. Без неё Конфигуратор не сможет записать настройки IIS.

Если нужен только доступ сотрудников из дома, сравните публикацию с VPN плюс обычный тонкий клиент. Публикация удобнее, когда нужен вход из браузера, HTTP-сервисы, OData или мобильные клиенты.

2. Установка платформы и модулей расширения веб-сервера

Модуль, через который IIS разговаривает с 1С, называется wsisapi.dll. Он появляется в папке bin платформы только при установке нужного компонента.

  1. Запустите setup.exe из дистрибутива платформы (технологической или полной — полной, если на этой же машине нужен Конфигуратор).
  2. На шаге выбора компонентов отметьте «Модули расширения веб-сервера».
  3. Если публикуете из этой же машины, оставьте и «1С:Предприятие» — там Конфигуратор.
  4. Для клиент-серверной базы на отдельной машине с IIS «Сервер 1С:Предприятия» ставить не нужно.

После установки проверьте, что файл есть:

dir "C:\Program Files\1cv8\8.3.25.1374\bin\wsisapi.dll"

Номер версии в пути подставьте свой. Если файла нет, запустите установку повторно, выберите «Изменить» и добавьте компонент.

Если IIS ставили уже после платформы, это не мешает. Модули расширения не зависят от порядка установки, важно лишь, чтобы к моменту публикации оба компонента были на месте.

3. Настройка IIS для публикации 1С

Роли и компоненты Windows Server

В «Диспетчере серверов» откройте Управление → Добавить роли и компоненты и выберите роль «Веб-сервер (IIS)». В службах роли отметьте:

КомпонентГде в спискеЗачем
Расширения ISAPIРазработка приложенийЗапуск wsisapi.dll
Фильтры ISAPIРазработка приложенийОбработка запросов к публикации
Проверка подлинности WindowsБезопасностьТолько если нужен вход по доменной учётке
Консоль управления IISСредства управленияРучная настройка пула и привязок

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

Install-WindowsFeature Web-Server, Web-ISAPI-Ext, Web-ISAPI-Filter, Web-Windows-Auth, Web-Mgmt-Console

Пул приложений

Конфигуратор по умолчанию кладёт публикацию в Default Web Site и пул DefaultAppPool. Для порядка лучше завести отдельный пул под 1С:

  1. В консоли IIS откройте «Пулы приложений» → «Добавить пул». Имя, например, 1C, версия CLR — «Без управляемого кода».
  2. В «Дополнительных параметрах» пула найдите «Разрешены 32-разрядные приложения».
  3. Для 64-разрядной платформы поставьте False, для 32-разрядной — True. Именно несовпадение этого флага с разрядностью wsisapi.dll чаще всего даёт ошибку 500 сразу после публикации.

Права на папки

Рабочий процесс IIS работает от учётки пула, она входит в группу IIS_IUSRS. Этой группе нужны:

  • 📁 Чтение и выполнение на папку C:\Program Files\1cv8\<версия>\bin.
  • 📁 Чтение на папку публикации (по умолчанию C:\inetpub\wwwroot\<имя>).
  • 📁 Изменение на каталог файловой базы, если база файловая. Без этого веб-клиент не сможет записывать данные и создавать файлы блокировки.

Для клиент-серверной базы права на каталог базы не нужны: IIS подключается к кластеру по сети, как обычный клиент.

4. Публикация базы 1С на веб-сервере

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

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

В папке публикации появятся два файла: default.vrd с параметрами базы и web.config с обработчиком, который ссылается на wsisapi.dll конкретной версии.

Через 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;" -confpath "C:\inetpub\wwwroot\buh\default.vrd"

Для файловой базы строка соединения выглядит так: File=D:\Bases\buh;. Удалить публикацию можно ключом -delete с тем же -wsdir. Полный список ключей выводит webinst.exe -help.

Проверка

  • В браузере откройте http://localhost/buh/ — должна появиться форма входа в 1С.
  • В тонком клиенте нажмите «Добавить» в списке баз, выберите вариант «на веб-сервере» и укажите адрес http://server/buh/.

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

5. HTTPS для публикации 1С через Let’s Encrypt

Без HTTPS логин и пароль 1С уходят по сети открытым текстом. Для доступа из интернета шифрование обязательно. На Windows бесплатный сертификат Let’s Encrypt удобнее всего выпускать утилитой win-acme (wacs.exe).

  1. Убедитесь, что DNS-имя указывает на сервер, а порт 80 открыт снаружи: Let’s Encrypt проверяет домен HTTP-запросом.
  2. В консоли IIS у сайта откройте «Привязки» и добавьте привязку http с вашим именем узла.
  3. Скачайте win-acme с официального сайта проекта, распакуйте, запустите wacs.exe от администратора.
  4. Выберите создание сертификата с настройками по умолчанию, затем сайт IIS и имя узла из списка привязок.
  5. Утилита выпустит сертификат, сама добавит привязку https на порт 443 и создаст задачу в Планировщике для продления. Сертификат живёт 90 дней, задача продлевает его заранее.

После этого база открывается по https://1c.company.ru/buh/. Чтобы пользователи не заходили по http, настройте перенаправление на https через модуль URL Rewrite (ставится отдельно) или просто уберите http-привязку, оставив 80-й порт только для продления.

Публикация в интернет без HTTPS и без сложных паролей у пользователей 1С — открытая дверь в учётную базу. Проверьте, что у пользователя «Администратор» задан пароль, а пустые учётки удалены.

6. Аутентификация и права доступа к опубликованной базе

Варианты входа в опубликованную базу:

СпособКак настроитьКогда подходит
Логин и пароль 1СНичего дополнительно, это поведение по умолчаниюДоступ из интернета, пользователи вне домена
Аутентификация WindowsВ IIS у публикации включить «Проверка подлинности Windows», отключить анонимную; в карточке пользователя 1С отметить аутентификацию ОС и указать \\DOMAIN\userВнутренняя сеть с доменом
Автовход под одной учёткойАтрибуты usr и pwd в элементе point файла default.vrdТолько для служебных HTTP-сервисов и интеграций

Что стоит сделать в любом варианте:

  • 🔒 Включите в 1С защиту от подбора паролей и требования к сложности, если ваша конфигурация это позволяет.
  • 🔒 Не публикуйте OData и веб-сервисы, которыми никто не пользуется: каждый лишний сервис — ещё одна точка входа.
  • 🔒 Для интеграций заведите отдельного пользователя 1С с ролью только на нужные объекты.
  • 🔒 Ограничьте доступ по IP через компонент IIS «Ограничения IP-адресов и доменов», если подключения идут из известных офисов.

Пароль в default.vrd хранится открытым текстом. Используйте автовход только для технических учёток с минимальными правами и закройте папку публикации от чтения посторонними пользователями Windows.

7. Скорость и стабильность веб-доступа

Большинство жалоб «1С через браузер вылетает» связано не с 1С, а с настройками пула IIS по умолчанию. Их стоит поменять сразу:

Параметр пулаПо умолчаниюРекомендацияПочему
Определённый интервал времени (переработка)1740 минут0 или ночное время в «Определённое время»Переработка пула обрывает сеансы посреди работы
Время простоя20 минут0Иначе пул засыпает, а первый вход после паузы идёт долго
Режим запускаOnDemandAlwaysRunningПул поднимается вместе с сервером

Переработку на ночь назначайте с пониманием: в этот момент все открытые веб-сеансы будут прерваны, поэтому выбирайте время, когда в базе никто не работает и не идут регламентные задания.

Ещё несколько приёмов:

  1. Файловая база через веб. Рабочий процесс IIS открывает файловую базу как ещё один клиент. При 10–15 одновременных пользователях начинаются ожидания на блокировках. Для большего числа людей переводите базу в клиент-серверный вариант.
  2. Повторное использование сеансов для сервисов. Для веб- и HTTP-сервисов, которые дёргаются часто, в default.vrd можно включить переиспользование сеансов (атрибут reuseSessions). Тогда каждый запрос не тратит время на вход в базу.
  3. Отладка выключена. В рабочей публикации не держите включённую отладку: она добавляет накладные расходы.
  4. Сжатие. Включите в IIS сжатие статического содержимого: файлы веб-клиента загрузятся быстрее на медленном канале.

8. Ошибки при публикации 1С на IIS

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

Если ошибка не из списка, включите в IIS «Трассировку неудачных запросов» для публикации. Журнал покажет, на каком модуле обрывается запрос и с каким подкодом.

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

Можно ли опубликовать несколько баз на одном IIS?
Да. Каждая база публикуется под своим именем: /buh/, /zup/, /ut/. Папки публикации и файлы default.vrd у них разные.
Расходует ли веб-клиент лицензию 1С?
Да. Сеанс веб-клиента занимает клиентскую лицензию так же, как тонкий клиент. Отдельной лицензии на сам IIS не нужно.
Что выбрать: IIS или Apache?
На Windows Server проще IIS: он встроен в систему и Конфигуратор настраивает его сам. Apache выбирают, когда сервер на Linux или уже есть опыт с ним.
Подойдёт ли IIS на Windows 10 или 11?
Для теста и пары пользователей подойдёт. В клиентских версиях Windows IIS ограничивает число одновременных запросов, поэтому для рабочей публикации нужен Windows Server.
Как открыть опубликованную базу в тонком клиенте?
В окне запуска нажмите «Добавить», выберите добавление существующей базы, тип расположения «на веб-сервере» и укажите адрес публикации, например https://1c.company.ru/buh/.