Публикуем базу 1С в браузер: IIS, права, пул и проверка

· 9 мин

Содержание

Чтобы выгрузить веб-версию 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. Сообщение об ошибке при этом бывает невнятным, поэтому проще сразу запускать с повышенными правами.

Публикация в Конфигураторе: пошагово

Это основной способ, если публикуете одну-две базы вручную.

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

Проверка: откройте в браузере на самом сервере 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 .NETv4.0«Без управляемого кода» — 1С не использует .NET
Тайм-аут простоя (мин)200, чтобы пул не выгружался ночью
Регулярный интервал времени (мин)17400 или перезапуск по расписанию в нерабочее время

Последние две строки — приём, о котором часто забывают. По умолчанию IIS раз в 29 часов перезапускает пул. Пользователь веб-клиента в этот момент теряет сеанс и несохранённый документ. Жалоба выглядит так: «каждый день в разное время выкидывает из 1С». Поставьте перезапуск по расписанию, например на 03:00.

Перезапуск пула или iisreset обрывают все сеансы веб-клиента и тонкого клиента по HTTP. Делайте это вне рабочего времени или предупредите пользователей.

Права доступа и безопасность веб-публикации

Здесь ломается большинство файловых публикаций. IIS обращается к базе не от имени того, кто сидит за браузером, а от служебной учётной записи пула: IIS AppPool\1C_pool (или IIS AppPool\DefaultAppPool), а для анонимного доступа — IUSR. Группа, куда они входят, — IIS_IUSRS.

Какие права выдать

КаталогКомуПрава
Каталог платформы …\1cv8\8.3.x.x\binIIS_IUSRSЧтение и выполнение
Каталог публикации C:\inetpub\wwwroot\buhIIS_IUSRS, IUSRЧтение
Каталог файловой базы D:\Bases\BuhIIS_IUSRSИзменение
Папка программных лицензий C:\ProgramData\1C\licensesIIS_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С в браузере

Веб-клиент работает медленнее тонкого: каждая форма строится в браузере, и на слабом канале это заметно. Что реально помогает:

  1. Клиент-серверный вариант для командной работы. Файловая база через IIS подходит для пары пользователей. Когда одновременно работают человек пять-десять и больше, ожидание блокировок становится заметным — переводите базу на сервер 1С и СУБД.
  2. Тонкий клиент вместо браузера. Опубликованную базу можно добавить в список баз тонкого клиента с типом «На веб-сервере» и адресом https://сервер/buh. Интерфейс тот же, но формы не перерисовываются браузером, и работать заметно комфортнее.
  3. Сжатие в IIS. Включите «Сжатие» для статического и динамического содержимого на уровне сайта: экономит трафик на удалённых точках.
  4. Современный браузер. Веб-клиент поддерживает актуальные версии Chrome, Edge, Firefox, Яндекс Браузера и Safari. Блокировщики рекламы и всплывающих окон отключайте для адреса базы: 1С открывает отчёты и печатные формы в отдельных окнах.
  5. Пул без лишних перезапусков. Настройки из раздела про пул избавляют от потери сеансов и холодного старта по утрам.
  6. Ресурсы сервера. Процесс IIS для файловой базы держит в памяти данные всех сеансов. На сервере, где работают и IIS, и база, держите запас памяти и быстрый диск под каталогом базы.

Быстрая проверка, кто тормозит — сеть или сервер: откройте ту же публикацию браузером на самом сервере. Если там быстро, а у пользователя медленно, ищите проблему в канале.

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

Нужна ли отдельная лицензия для веб-клиента?
Отдельной нет. Веб-клиент и тонкий клиент по HTTP занимают обычные клиентские лицензии 1С, как и толстый клиент.
Можно ли опубликовать базу на Apache вместо IIS?
Да. В Конфигураторе выберите Apache нужной версии, а в webinst — ключ -apache24 или аналогичный. Принцип тот же: модуль расширения 1С, строка подключения и права на каталоги.
Как снять публикацию базы?
В том же окне «Публикация на веб-сервере» нажмите «Отключить» или выполните webinst с ключом -delete и теми же -wsdir и -dir. Сама база при этом не удаляется.
Как открыть веб-версию 1С с телефона?
Через браузер по адресу публикации или через мобильный клиент 1С, указав тот же адрес. Для доступа извне нужен внешний IP или домен и HTTPS.
Почему после обновления платформы база в браузере перестала открываться?
Публикация ссылается на модуль wsisapi.dll конкретной версии. Если её удалили, переопубликуйте базу из новой версии платформы.