Публикуем базу 1С в браузер: IIS, права, пул и проверка
Содержание
Чтобы выгрузить веб-версию 1С, базу публикуют на веб-сервере: в Конфигураторе Администрирование → Публикация на веб-сервере или консольной утилитой webinst. После этого база открывается в браузере по адресу вида http://сервер/buh, а тонкий клиент может подключаться к ней по HTTP.
Сама база никуда не копируется. Публикация создаёт на веб-сервере каталог с файлом default.vrd, где записана строка подключения к вашей информационной базе. Дальше всё решают три вещи: правильный модуль веб-расширения, совпадение разрядности с пулом IIS и права учётной записи, от имени которой работает IIS. Порядок ниже — для платформы 8.3 и Windows Server 2016 и новее (на Windows 10/11 всё то же самое).
Что подготовить на сервере перед публикацией базы
Публикация падает чаще всего не на самом шаге «Опубликовать», а из-за того, что на сервере чего-то не хватает. Проверьте четыре пункта.
1. Компоненты IIS
Откройте Диспетчер серверов → Добавить роли и компоненты (на рабочей станции — «Включение или отключение компонентов Windows») и включите:
- 🌐 роль «Веб-сервер (IIS)»;
- ⚙️ в разделе «Разработка приложений» — «Расширения ISAPI» и «Фильтры ISAPI»;
- 🛠 «Консоль управления IIS» в средствах управления;
- 🔐 «Обычная проверка подлинности» и «Проверка подлинности Windows» — если планируете вход по учётной записи Windows.
Без расширений ISAPI модуль 1С просто нечем загрузить, и вы получите ошибку 404.2 или 404.3.
2. Модули расширения веб-сервера 1С
При установке платформы в списке компонентов есть пункт «Модули расширения веб-сервера». По умолчанию он выключен. Если платформа уже стоит, запустите установщик повторно, выберите «Изменить» и добавьте компонент.
Признак, что он установлен: в каталоге платформы, например C:\Program Files\1cv8\8.3.24.1548\bin, лежит wsisapi.dll.
3. Разрядность
Модуль веб-расширения должен совпадать по разрядности с пулом приложений IIS:
| Платформа на сервере | Где лежит | Настройка пула |
|---|---|---|
| 64-разрядная | C:\Program Files\1cv8\… | «Разрешены 32-разрядные приложения» = False |
| 32-разрядная | C:\Program Files (x86)\1cv8\… | «Разрешены 32-разрядные приложения» = True |
Если на сервере стоят обе, публикуйте из той, разрядность которой выберете для пула, и не смешивайте.
4. Права администратора
Конфигуратор для публикации запускайте через «Запуск от имени администратора». Иначе он не сможет создать каталог в C:\inetpub\wwwroot и прописать настройки в IIS. Сообщение об ошибке при этом бывает невнятным, поэтому проще сразу запускать с повышенными правами.
Публикация в Конфигураторе: пошагово
Это основной способ, если публикуете одну-две базы вручную.
- Запустите Конфигуратор нужной базы от имени администратора.
- Откройте
Администрирование → Публикация на веб-сервере. - В поле «Имя» укажите короткое латинское имя без пробелов, например
buh. Оно станет частью адреса. - В поле «Веб-сервер» выберите Internet Information Services.
- В поле «Каталог» оставьте предложенный путь
C:\inetpub\wwwroot\buhили задайте свой. - Флажок «Публиковать доступ для клиентских приложений» оставьте включённым — он и даёт веб-клиент и подключение тонкого клиента по HTTP.
- Флажки OData, веб-сервисов и HTTP-сервисов включайте, только если они вам нужны. Каждый лишний интерфейс — дополнительная точка входа снаружи.
- Нажмите «Опубликовать». Конфигуратор предложит перезапустить веб-сервер — соглашайтесь.
Проверка: откройте в браузере на самом сервере http://localhost/buh. Должно появиться окно входа 1С или сразу рабочий стол, если пользователей в базе нет.
Проверка с другого компьютера
Если на сервере база открывается, а с рабочего места нет, дело почти всегда в сети, а не в 1С:
- 🧱 в брандмауэре Windows на сервере должно быть разрешено входящее подключение на порт 80 (или 443 для HTTPS);
- 🏷 адрес пишите по имени сервера или IP, а не
localhost:http://srv-web/buh; - 📶 проверьте, что имя сервера разрешается в DNS, — откройте в браузере просто
http://srv-web, должна показаться стартовая страница IIS.
Если имя публикации содержит кириллицу, часть браузеров и мобильный клиент работают с ней нестабильно. Латиница снимает этот вопрос заранее.
Публикация базы через консольную утилиту webinst
Когда баз много, их публикуют скриптом. Утилита webinst.exe лежит в каталоге bin установленной платформы. Запускать её нужно из командной строки, открытой от имени администратора.
Клиент-серверная база
(сервер 1С srv1c, база в кластере buh):
cd "C:\Program Files\1cv8\8.3.24.1548\bin"
webinst -publish -iis -wsdir buh -dir "C:\inetpub\wwwroot\buh" -connstr "Srvr=srv1c;Ref=buh;"
Файловая база в каталоге D:\Bases\Buh — путь берётся в двойные кавычки внутри строки, поэтому кавычки удваиваются:
webinst -publish -iis -wsdir buh -dir "C:\inetpub\wwwroot\buh" -connstr "File=""D:\Bases\Buh"";"
Что означают ключи:
-publish/-delete— опубликовать или снять публикацию;-iis— тип веб-сервера (для Apache —-apache24и аналоги);-wsdir— имя виртуального каталога, то есть часть адреса;-dir— физическая папка, куда ляжетdefault.vrd;-connstr— строка подключения к базе;-osauth— включить вход по учётной записи Windows.
Остальные параметры смотрите в выводе webinst без ключей: утилита печатает справку по своей версии.
Номер платформы в пути должен совпадать с тем, что реально стоит на сервере. После обновления платформы публикация продолжает ссылаться на wsisapi.dll старой версии. Если старую версию удалить, все веб-базы перестанут открываться — переопубликуйте их новой утилитой.
Пул приложений IIS: настройки для 1С
Публикация попадает в пул по умолчанию (DefaultAppPool). Для одной тестовой базы этого хватит. Для рабочей лучше создать отдельный пул, например 1C_pool, и перевести в него приложение buh.
Откройте Диспетчер служб IIS → Пулы приложений → 1C_pool → Дополнительные параметры и проверьте:
| Параметр | Значение по умолчанию | Что поставить для 1С |
|---|---|---|
| Разрешены 32-разрядные приложения | False | По разрядности платформы (таблица выше) |
| Версия среды CLR .NET | v4.0 | «Без управляемого кода» — 1С не использует .NET |
| Тайм-аут простоя (мин) | 20 | 0, чтобы пул не выгружался ночью |
| Регулярный интервал времени (мин) | 1740 | 0 или перезапуск по расписанию в нерабочее время |
Последние две строки — приём, о котором часто забывают. По умолчанию IIS раз в 29 часов перезапускает пул. Пользователь веб-клиента в этот момент теряет сеанс и несохранённый документ. Жалоба выглядит так: «каждый день в разное время выкидывает из 1С». Поставьте перезапуск по расписанию, например на 03:00.
Перезапуск пула или iisreset обрывают все сеансы веб-клиента и тонкого клиента по HTTP. Делайте это вне рабочего времени или предупредите пользователей.
Права доступа и безопасность веб-публикации
Здесь ломается большинство файловых публикаций. IIS обращается к базе не от имени того, кто сидит за браузером, а от служебной учётной записи пула: IIS AppPool\1C_pool (или IIS AppPool\DefaultAppPool), а для анонимного доступа — IUSR. Группа, куда они входят, — IIS_IUSRS.
Какие права выдать
| Каталог | Кому | Права |
|---|---|---|
Каталог платформы …\1cv8\8.3.x.x\bin | IIS_IUSRS | Чтение и выполнение |
Каталог публикации C:\inetpub\wwwroot\buh | IIS_IUSRS, IUSR | Чтение |
Каталог файловой базы D:\Bases\Buh | IIS_IUSRS | Изменение |
Папка программных лицензий C:\ProgramData\1C\licenses | IIS_IUSRS | Чтение |
Для клиент-серверной базы третья строка не нужна: к данным обращается сервер 1С от своей учётной записи.
Четвёртая строка — второй частый промах. Для файловой базы лицензию проверяет процесс IIS. Если он не видит файл программной лицензии, пользователи получают сообщение о том, что лицензия не обнаружена, хотя из обычного клиента всё работает. Без лицензии база не запустится, исключение — учебная версия платформы.
Безопасность при доступе из интернета
- 🔒 Включите HTTPS: в IIS
Сайты → Default Web Site → Привязки → Добавить, тип https, порт 443, сертификат. Логин и пароль 1С по голому HTTP идут открытым текстом. - 👤 В базе должны быть пользователи с паролями. Публикация базы без пользователей в интернет — это открытая дверь в вашу бухгалтерию.
- 🚪 Не пробрасывайте порт 80 наружу «временно для проверки». Если нужен доступ только сотрудникам, лучше поставить веб-сервер за VPN.
- 🧹 Снимите флажки OData и веб-сервисов, если их никто не использует.
- 🧾 Ведите журнал IIS: по нему видно, кто и откуда пытался войти.
Перед публикацией рабочей базы в интернет сделайте выгрузку в .dt и проверьте, что у всех пользователей заданы пароли.
Диагностика ошибок при открытии опубликованной базы
Ошибки IIS удобно читать прямо на сервере: при запросе с localhost IIS показывает подробную страницу с кодом и модулем. Снаружи видно только «500 — Internal Server Error».
Если ни один вариант не подошёл, загляните в журнал событий Windows (Журналы Windows → Приложение) и в журнал IIS в C:\inetpub\logs\LogFiles. В строке запроса есть код состояния и подкод, например 500 0 или 404 2, — этого обычно хватает, чтобы понять, куда смотреть.
Как ускорить работу 1С в браузере
Веб-клиент работает медленнее тонкого: каждая форма строится в браузере, и на слабом канале это заметно. Что реально помогает:
- Клиент-серверный вариант для командной работы. Файловая база через IIS подходит для пары пользователей. Когда одновременно работают человек пять-десять и больше, ожидание блокировок становится заметным — переводите базу на сервер 1С и СУБД.
- Тонкий клиент вместо браузера. Опубликованную базу можно добавить в список баз тонкого клиента с типом «На веб-сервере» и адресом
https://сервер/buh. Интерфейс тот же, но формы не перерисовываются браузером, и работать заметно комфортнее. - Сжатие в IIS. Включите «Сжатие» для статического и динамического содержимого на уровне сайта: экономит трафик на удалённых точках.
- Современный браузер. Веб-клиент поддерживает актуальные версии Chrome, Edge, Firefox, Яндекс Браузера и Safari. Блокировщики рекламы и всплывающих окон отключайте для адреса базы: 1С открывает отчёты и печатные формы в отдельных окнах.
- Пул без лишних перезапусков. Настройки из раздела про пул избавляют от потери сеансов и холодного старта по утрам.
- Ресурсы сервера. Процесс IIS для файловой базы держит в памяти данные всех сеансов. На сервере, где работают и IIS, и база, держите запас памяти и быстрый диск под каталогом базы.
Быстрая проверка, кто тормозит — сеть или сервер: откройте ту же публикацию браузером на самом сервере. Если там быстро, а у пользователя медленно, ищите проблему в канале.