Веб-доступ к базе 1С через IIS: установка, публикация, HTTPS и права
Содержание
Чтобы опубликовать 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С.
Что проверить до установки:
- Разрядность. Ставьте 64-разрядную платформу на 64-разрядный сервер. Разрядность модуля веб-сервера потом должна совпасть с настройкой пула IIS.
- Версия платформы. На машине с IIS нужна ровно та же версия, что и на сервере 1С. Если версии разойдутся, база не откроется.
- Имя сервера. Для HTTPS понадобится DNS-имя (например,
1c.company.ru), которое указывает на внешний IP. По голому IP сертификат Let’s Encrypt не выпустить. - Порты. Наружу открывайте только 443 и на время выпуска сертификата 80. Порты кластера 1С (1540, 1541 и диапазон рабочих процессов) в интернет не выставляйте.
- Учётная запись администратора Windows. Без неё Конфигуратор не сможет записать настройки IIS.
Если нужен только доступ сотрудников из дома, сравните публикацию с VPN плюс обычный тонкий клиент. Публикация удобнее, когда нужен вход из браузера, HTTP-сервисы, OData или мобильные клиенты.
2. Установка платформы и модулей расширения веб-сервера
Модуль, через который IIS разговаривает с 1С, называется wsisapi.dll. Он появляется в папке bin платформы только при установке нужного компонента.
- Запустите
setup.exeиз дистрибутива платформы (технологической или полной — полной, если на этой же машине нужен Конфигуратор). - На шаге выбора компонентов отметьте «Модули расширения веб-сервера».
- Если публикуете из этой же машины, оставьте и «1С:Предприятие» — там Конфигуратор.
- Для клиент-серверной базы на отдельной машине с 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С:
- В консоли IIS откройте «Пулы приложений» → «Добавить пул». Имя, например,
1C, версия CLR — «Без управляемого кода». - В «Дополнительных параметрах» пула найдите «Разрешены 32-разрядные приложения».
- Для 64-разрядной платформы поставьте False, для 32-разрядной — True. Именно несовпадение этого флага с разрядностью
wsisapi.dllчаще всего даёт ошибку 500 сразу после публикации.
Права на папки
Рабочий процесс IIS работает от учётки пула, она входит в группу IIS_IUSRS. Этой группе нужны:
- 📁 Чтение и выполнение на папку
C:\Program Files\1cv8\<версия>\bin. - 📁 Чтение на папку публикации (по умолчанию
C:\inetpub\wwwroot\<имя>). - 📁 Изменение на каталог файловой базы, если база файловая. Без этого веб-клиент не сможет записывать данные и создавать файлы блокировки.
Для клиент-серверной базы права на каталог базы не нужны: IIS подключается к кластеру по сети, как обычный клиент.
4. Публикация базы 1С на веб-сервере
Через Конфигуратор
- Запустите 1С от имени администратора (правая кнопка → «Запуск от имени администратора»). Без этого публикация не сохранится в настройках IIS.
- Откройте базу в режиме Конфигуратора.
- Меню
Администрирование → Публикация на веб-сервере. - Заполните поля:
- Имя — латиницей, без пробелов:
buh,zup. Это часть адреса. - Веб-сервер — Internet Information Services.
- Каталог — физическая папка публикации, например
C:\inetpub\wwwroot\buh.
- Имя — латиницей, без пробелов:
- На вкладках отметьте, что публиковать: тонкий и веб-клиент, веб-сервисы, HTTP-сервисы, стандартный интерфейс OData. Лишнее лучше не включать.
- Нажмите «Опубликовать» и согласитесь на перезапуск веб-сервера.
В папке публикации появятся два файла: 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).
- Убедитесь, что DNS-имя указывает на сервер, а порт 80 открыт снаружи: Let’s Encrypt проверяет домен HTTP-запросом.
- В консоли IIS у сайта откройте «Привязки» и добавьте привязку http с вашим именем узла.
- Скачайте win-acme с официального сайта проекта, распакуйте, запустите
wacs.exeот администратора. - Выберите создание сертификата с настройками по умолчанию, затем сайт IIS и имя узла из списка привязок.
- Утилита выпустит сертификат, сама добавит привязку 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 | Иначе пул засыпает, а первый вход после паузы идёт долго |
| Режим запуска | OnDemand | AlwaysRunning | Пул поднимается вместе с сервером |
Переработку на ночь назначайте с пониманием: в этот момент все открытые веб-сеансы будут прерваны, поэтому выбирайте время, когда в базе никто не работает и не идут регламентные задания.
Ещё несколько приёмов:
- Файловая база через веб. Рабочий процесс IIS открывает файловую базу как ещё один клиент. При 10–15 одновременных пользователях начинаются ожидания на блокировках. Для большего числа людей переводите базу в клиент-серверный вариант.
- Повторное использование сеансов для сервисов. Для веб- и HTTP-сервисов, которые дёргаются часто, в
default.vrdможно включить переиспользование сеансов (атрибутreuseSessions). Тогда каждый запрос не тратит время на вход в базу. - Отладка выключена. В рабочей публикации не держите включённую отладку: она добавляет накладные расходы.
- Сжатие. Включите в IIS сжатие статического содержимого: файлы веб-клиента загрузятся быстрее на медленном канале.
8. Ошибки при публикации 1С на IIS
Если ошибка не из списка, включите в IIS «Трассировку неудачных запросов» для публикации. Журнал покажет, на каком модуле обрывается запрос и с каким подкодом.
Частые вопросы
Можно ли опубликовать несколько баз на одном IIS?
/buh/, /zup/, /ut/. Папки публикации и файлы default.vrd у них разные.Расходует ли веб-клиент лицензию 1С?
Что выбрать: IIS или Apache?
Подойдёт ли IIS на Windows 10 или 11?
Как открыть опубликованную базу в тонком клиенте?
https://1c.company.ru/buh/.