Веб-доступ к базе 1С через IIS или Apache: от установки до HTTPS
Содержание
Чтобы настроить веб-сервер для 1С, нужны три вещи: веб-сервер (IIS в Windows или Apache), модули расширения веб-сервера из дистрибутива платформы 1С той же разрядности и публикация базы из Конфигуратора через Администрирование → Публикация на веб-сервере. После публикации база открывается в браузере по адресу вида http://имя-сервера/buh, а тонкий клиент подключается к ней по тому же адресу.
Ниже — порядок для 1С:Предприятия 8.3 на Windows Server 2016 и новее и на Linux. Процедура общая для платформы: не важно, Бухгалтерия у вас, ЗУП или УТ.
Что подготовить перед настройкой веб-сервера
Сначала решите, где будет работать веб-сервер и какую базу он публикует.
- 🖥️ Файловая база. Веб-сервер ставят на тот же компьютер, где лежит каталог базы, или даёт ему доступ к сетевой папке. Лицензию в этом случае забирает компьютер с веб-сервером.
- 🗄️ Клиент-серверная база . Веб-сервер может стоять отдельно от сервера 1С. Он обращается к кластеру как обычный клиент, лицензии получает сервер 1С.
- 🔢 Разрядность. Модуль расширения должен совпадать по разрядности с процессом веб-сервера. 64-битный IIS работает с 64-битной платформой без лишних настроек.
- 🧾 Права. Публикацию выполняют от имени локального администратора. Иначе Конфигуратор не сможет записать файлы в каталог веб-сервера и изменить настройки IIS или Apache.
Для доступа из интернета сразу подумайте о доменном имени и SSL-сертификате. Публикация по голому HTTP наружу — плохая идея, к этому вернёмся в разделе про безопасность.
Шаг 1. Установка IIS или Apache и модулей 1С
IIS в Windows Server
IIS включают через Диспетчер серверов → Управление → Добавить роли и компоненты → Веб-сервер (IIS). В Windows 10 и 11 то же самое находится в окне «Включение или отключение компонентов Windows».
Из компонентов роли нужны:
- «Общие функции HTTP» — оставьте отмеченными по умолчанию.
- В группе «Разработка приложений» — «Расширения ISAPI» и «Фильтры ISAPI». Без них IIS не запустит модуль
wsisapi.dll. - В группе «Безопасность» — «Обычная проверка подлинности» и «Проверка подлинности Windows», если планируете вход по учётной записи домена.
- В группе «Средства управления» — «Консоль управления IIS».
После установки откройте в браузере http://localhost. Стартовая страница IIS означает, что веб-сервер жив.
Модули расширения веб-сервера 1С
Запустите установщик платформы (setup.exe из дистрибутива) и выберите «Изменить». В списке компонентов отметьте «Модули расширения веб-сервера». Если их не поставить, в окне публикации не будет выбора веб-сервера, а сама публикация не заработает.
Конфигуратор для публикации тоже должен быть установлен на этой машине. Если веб-сервер стоит отдельно, удобно поставить туда полный клиент — пригодится и для проверки.
Apache в Windows и Linux
Платформа 8.3 поддерживает Apache 2.2 и 2.4, на практике сейчас используют 2.4. В Linux его ставят из репозитория (apt install apache2 в Debian и Ubuntu), в Windows — из сборки под Windows со службой Apache2.4.
Модуль 1С для Apache 2.4 называется wsap24.dll в Windows и wsap24.so в Linux. Он лежит в каталоге bin установленной платформы.
Шаг 2. Публикация базы на веб-сервере
Самый короткий путь — через Конфигуратор.
- Запустите 1С от имени администратора: правой кнопкой по ярлыку → «Запуск от имени администратора».
- Откройте нужную базу в режиме Конфигуратора.
- Выберите
Администрирование → Публикация на веб-сервере. - В поле «Имя» задайте короткое имя латиницей, например
buh. Это часть адреса:http://сервер/buh. - В поле «Веб-сервер» выберите Internet Information Services или нужную версию Apache.
- В поле «Каталог» укажите папку публикации, например
C:\inetpub\wwwroot\buh. - Отметьте «Публиковать тонкий клиент и веб-клиент». Флажки для OData, веб-сервисов и HTTP-сервисов включайте, только если они реально нужны.
- Нажмите «Опубликовать» и согласитесь на перезапуск веб-сервера.
Конфигуратор создаст в каталоге два файла: default.vrd с описанием публикации и, для IIS, web.config с подключением модуля. В IIS появится приложение с именем buh внутри сайта по умолчанию.
Перезапуск веб-сервера обрывает сеансы всех пользователей, которые сейчас работают через браузер или по веб-адресу. Публикуйте и перепубликовывайте базу вне рабочего времени.
Публикация из командной строки (Linux)
На Linux Конфигуратор с графикой есть не всегда. Для этого случая в каталоге платформы лежит утилита webinst:
sudo /opt/1cv8/x86_64/8.3.xx.xxxx/webinst -apache24 \
-wsdir buh \
-dir /var/www/buh \
-connstr "Srvr=srv1c;Ref=buh;" \
-confpath /etc/apache2/apache2.conf
Здесь -wsdir — имя публикации в адресе, -dir — каталог для default.vrd, -connstr — строка соединения с базой, -confpath — конфигурационный файл Apache, в который утилита допишет нужные строки. После этого перезапустите Apache: sudo systemctl restart apache2.
Каталог /var/www/buh должен быть доступен пользователю, от которого работает Apache (в Debian и Ubuntu это www-data).
Шаг 3. Права на каталоги и способ входа пользователей
Половина проблем после публикации — это права. Веб-сервер работает от служебной учётной записи, и ей нужен доступ к нескольким папкам.
| Что | Кому дать доступ | Какие права |
|---|---|---|
Каталог публикации (C:\inetpub\wwwroot\buh) | IIS_IUSRS | Чтение и выполнение |
Каталог bin платформы | IIS_IUSRS | Чтение и выполнение |
| Каталог файловой базы | IIS_IUSRS и IUSR | Изменение (чтение и запись) |
| Каталог публикации в Linux | www-data | Чтение |
Для файловой базы права на запись обязательны. Платформа создаёт в каталоге базы служебные файлы и пишет в 1Cv8.1CD. Без этого пользователь получит ошибку доступа к файлу сразу при входе.
Для клиент-серверной базы права на каталог базы не нужны: веб-сервер ходит к серверу 1С по сети.
Проверка подлинности: 1С или Windows
- 🔑 Вход по пользователю 1С. В IIS для приложения оставьте включённой «Анонимную проверку подлинности». Окно логина покажет сама 1С.
- 🏢 Вход по учётной записи домена. Включите в IIS «Проверку подлинности Windows». В карточке пользователя 1С отметьте «Аутентификация операционной системы» и укажите пользователя в виде
\\DOMAIN\ivanov.
Оба способа можно совмещать: одним сотрудникам настроить вход по домену, другим оставить логин и пароль 1С. Проверьте оба сценария под реальными учётными записями до того, как раздавать адрес.
В строку соединения в default.vrd можно вписать логин и пароль (Usr=...;Pwd=...), и тогда база откроется без окна входа. Так делают для киосков и обменов, но любой, кто знает адрес, попадёт в базу под этим пользователем. Для публикации в интернет этот приём недопустим.
Шаг 4. Тонкая настройка: default.vrd и web.config
Что лежит в 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="File="D:\Bases\Buh";">
</point>
Атрибут base — путь в адресе, ib — строка соединения. Кавычки внутри неё записаны как ", это требование XML. Для клиент-серверной базы строка выглядит как Srvr="srv1c";Ref="buh";.
Если базу перенесли в другую папку или на другой сервер 1С, достаточно поправить ib и перезапустить пул приложений. Повторная публикация не обязательна.
Сюда же Конфигуратор пишет разделы для веб-сервисов, HTTP-сервисов и OData, если вы отметили их при публикации. Править эти разделы вручную удобнее через повторную публикацию: окно Конфигуратора само соберёт корректный XML.
Что лежит в web.config
Главная строка в web.config — обработчик, который отдаёт все запросы модулю 1С:
<handlers>
<add name="1C Web-service Extension" path="*" verb="*"
modules="IsapiModule"
scriptProcessor="C:\Program Files\1cv8\8.3.xx.xxxx\bin\wsisapi.dll"
resourceType="Unspecified" requireAccess="None" />
</handlers>
В scriptProcessor указан путь к конкретной версии платформы. Это частая ловушка: после обновления платформы и удаления старой версии путь ведёт в пустоту, и публикация перестаёт работать.
💡 После каждого обновления платформы либо перепубликуйте базу из нового Конфигуратора, либо поправьте номер версии в scriptProcessor вручную.
Если пользователи загружают через веб-клиент большие файлы (сканы, выгрузки), IIS может обрезать запрос по размеру. Лимит поднимают стандартной настройкой IIS:
<system.webServer>
<security>
<requestFiltering>
<requestLimits maxAllowedContentLength="104857600" />
</requestFiltering>
</security>
</system.webServer>
Значение задаётся в байтах: 104857600 — это 100 МБ.
Строки для Apache вручную
Если публиковали не через Конфигуратор, в httpd.conf (Windows) или apache2.conf (Linux) нужно добавить:
LoadModule _1cws_module "C:/Program Files/1cv8/8.3.xx.xxxx/bin/wsap24.dll"
Alias "/buh" "C:/www/buh/"
<Directory "C:/www/buh/">
AllowOverride All
Options None
Require all granted
SetHandler 1c-application
ManagedApplicationDescriptor "C:/www/buh/default.vrd"
</Directory>
Строку LoadModule пишут один раз на весь Apache, даже если баз несколько. Блоки Alias и Directory — по одному на каждую публикацию. Путь к модулю тоже привязан к версии платформы, после обновления его нужно поменять.
Шаг 5. Проверка подключения и разбор ошибок
Проверяйте в два этапа.
- Откройте в браузере
http://сервер/buh. Должно появиться окно входа 1С или сразу рабочий стол. - В тонком клиенте добавьте базу в список: «Добавить» → «Добавление в список существующей информационной базы» → тип расположения «На веб-сервере» → адрес
http://сервер/buh.
Если что-то пошло не так, начните с текста ошибки. Подберите свой симптом:
Если публикация в Конфигураторе падает с ошибкой записи или доступа, почти всегда причина одна: Конфигуратор запущен без прав администратора. Закройте его и запустите снова через «Запуск от имени администратора».
Дополнительную информацию дают журналы: в IIS — журналы сайта в C:\inetpub\logs\LogFiles, в Apache на Linux — /var/log/apache2/error.log. Код ответа и время запроса из журнала помогают отличить ошибку веб-сервера от ошибки самой 1С.
Шаг 6. Скорость работы и защита веб-публикации
Производительность
- ⚡ Пул приложений. Отдельный пул под 1С проще перезапускать, не задевая другие сайты на этом IIS. Для перезапуска пула используйте консоль IIS или
appcmd recycle apppool. - 📦 Клиент-серверный вариант при росте нагрузки. Файловая база через веб-сервер терпима для нескольких одновременных пользователей. Когда их становится больше десятка, база начинает тормозить на блокировках — это повод переходить на сервер 1С.
- 🌐 Тонкий клиент вместо браузера. Тонкий клиент по веб-адресу обычно работает быстрее веб-клиента и не зависит от особенностей браузера. Веб-клиент оставьте для тех, кому нельзя ставить программу.
- 🗜️ Сжатие. Динамическое сжатие в IIS (компонент «Сжатие динамического содержимого») уменьшает трафик для удалённых пользователей с медленным каналом.
Безопасность
Опубликованная база — это дверь в учёт. Минимальный набор мер:
- HTTPS. Привяжите к сайту сертификат: в IIS —
Сайт → Привязки → Добавить → https, в Apache — модульmod_ssl. Пароли 1С по HTTP идут открытым текстом. - Не публикуйте лишнее. OData, веб-сервисы и HTTP-сервисы включайте, только если они нужны конкретной интеграции.
- Пароли у всех пользователей 1С. Пользователь без пароля в опубликованной базе — открытый вход для всех, кто знает адрес.
- Ограничение по адресам. Если работают из офиса и с пары известных адресов, ограничьте доступ по IP на уровне брандмауэра или веб-сервера.
- VPN для бухгалтерии. Для баз с персональными данными сотрудников надёжнее давать доступ только через VPN, а наружу ничего не публиковать.
- Обновления. Ставьте обновления Windows, IIS и Apache. Уязвимость веб-сервера опаснее любой настройки 1С.
Перед тем как открыть публикацию наружу, проверьте её с телефона через мобильный интернет. Так вы увидите то же, что увидит посторонний: какие адреса открываются и где спрашивают пароль.
Нужна ли отдельная лицензия для работы через веб-сервер?
Можно ли опубликовать несколько баз на одном веб-сервере?
/buh, /zup, /ut. Модуль в Apache подключается один раз, а в IIS для каждой публикации создаётся своё приложение.Работает ли веб-клиент на Mac и в Linux?
Обязательно ли ставить IIS, если сервер на Windows?
Как снять публикацию базы?
Администрирование → Публикация на веб-сервере, выберите публикацию и нажмите «Отключить». Каталог публикации после этого можно удалить вручную.