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

· 10 мин

Содержание

Чтобы настроить веб-сервер для 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».

Из компонентов роли нужны:

  1. «Общие функции HTTP» — оставьте отмеченными по умолчанию.
  2. В группе «Разработка приложений» — «Расширения ISAPI» и «Фильтры ISAPI». Без них IIS не запустит модуль wsisapi.dll.
  3. В группе «Безопасность» — «Обычная проверка подлинности» и «Проверка подлинности Windows», если планируете вход по учётной записи домена.
  4. В группе «Средства управления» — «Консоль управления 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. Запустите 1С от имени администратора: правой кнопкой по ярлыку → «Запуск от имени администратора».
  2. Откройте нужную базу в режиме Конфигуратора.
  3. Выберите Администрирование → Публикация на веб-сервере.
  4. В поле «Имя» задайте короткое имя латиницей, например buh. Это часть адреса: http://сервер/buh.
  5. В поле «Веб-сервер» выберите Internet Information Services или нужную версию Apache.
  6. В поле «Каталог» укажите папку публикации, например C:\inetpub\wwwroot\buh.
  7. Отметьте «Публиковать тонкий клиент и веб-клиент». Флажки для OData, веб-сервисов и HTTP-сервисов включайте, только если они реально нужны.
  8. Нажмите «Опубликовать» и согласитесь на перезапуск веб-сервера.

Конфигуратор создаст в каталоге два файла: 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Изменение (чтение и запись)
Каталог публикации в Linuxwww-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=&quot;D:\Bases\Buh&quot;;">
</point>

Атрибут base — путь в адресе, ib — строка соединения. Кавычки внутри неё записаны как &quot;, это требование XML. Для клиент-серверной базы строка выглядит как Srvr=&quot;srv1c&quot;;Ref=&quot;buh&quot;;.

Если базу перенесли в другую папку или на другой сервер 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. Проверка подключения и разбор ошибок

Проверяйте в два этапа.

  1. Откройте в браузере http://сервер/buh. Должно появиться окно входа 1С или сразу рабочий стол.
  2. В тонком клиенте добавьте базу в список: «Добавить» → «Добавление в список существующей информационной базы» → тип расположения «На веб-сервере» → адрес http://сервер/buh.

Если что-то пошло не так, начните с текста ошибки. Подберите свой симптом:

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

Если публикация в Конфигураторе падает с ошибкой записи или доступа, почти всегда причина одна: Конфигуратор запущен без прав администратора. Закройте его и запустите снова через «Запуск от имени администратора».

Дополнительную информацию дают журналы: в IIS — журналы сайта в C:\inetpub\logs\LogFiles, в Apache на Linux — /var/log/apache2/error.log. Код ответа и время запроса из журнала помогают отличить ошибку веб-сервера от ошибки самой 1С.

Шаг 6. Скорость работы и защита веб-публикации

Производительность

  • ⚡ Пул приложений. Отдельный пул под 1С проще перезапускать, не задевая другие сайты на этом IIS. Для перезапуска пула используйте консоль IIS или appcmd recycle apppool.
  • 📦 Клиент-серверный вариант при росте нагрузки. Файловая база через веб-сервер терпима для нескольких одновременных пользователей. Когда их становится больше десятка, база начинает тормозить на блокировках — это повод переходить на сервер 1С.
  • 🌐 Тонкий клиент вместо браузера. Тонкий клиент по веб-адресу обычно работает быстрее веб-клиента и не зависит от особенностей браузера. Веб-клиент оставьте для тех, кому нельзя ставить программу.
  • 🗜️ Сжатие. Динамическое сжатие в IIS (компонент «Сжатие динамического содержимого») уменьшает трафик для удалённых пользователей с медленным каналом.

Безопасность

Опубликованная база — это дверь в учёт. Минимальный набор мер:

  1. HTTPS. Привяжите к сайту сертификат: в IIS — Сайт → Привязки → Добавить → https, в Apache — модуль mod_ssl. Пароли 1С по HTTP идут открытым текстом.
  2. Не публикуйте лишнее. OData, веб-сервисы и HTTP-сервисы включайте, только если они нужны конкретной интеграции.
  3. Пароли у всех пользователей 1С. Пользователь без пароля в опубликованной базе — открытый вход для всех, кто знает адрес.
  4. Ограничение по адресам. Если работают из офиса и с пары известных адресов, ограничьте доступ по IP на уровне брандмауэра или веб-сервера.
  5. VPN для бухгалтерии. Для баз с персональными данными сотрудников надёжнее давать доступ только через VPN, а наружу ничего не публиковать.
  6. Обновления. Ставьте обновления Windows, IIS и Apache. Уязвимость веб-сервера опаснее любой настройки 1С.

Перед тем как открыть публикацию наружу, проверьте её с телефона через мобильный интернет. Так вы увидите то же, что увидит посторонний: какие адреса открываются и где спрашивают пароль.

Нужна ли отдельная лицензия для работы через веб-сервер?
Отдельной «веб-лицензии» нет. Используются те же клиентские лицензии. В файловом варианте их получает компьютер с веб-сервером, в клиент-серверном — сервер 1С.
Можно ли опубликовать несколько баз на одном веб-сервере?
Да. Каждую базу публикуют под своим именем: /buh, /zup, /ut. Модуль в Apache подключается один раз, а в IIS для каждой публикации создаётся своё приложение.
Работает ли веб-клиент на Mac и в Linux?
Да, веб-клиент работает в актуальных версиях популярных браузеров на любой ОС. Для Mac и Linux есть и тонкий клиент, который подключается к той же публикации.
Обязательно ли ставить IIS, если сервер на Windows?
Нет. На Windows можно использовать Apache 2.4. IIS удобнее тем, что входит в систему и проще настраивается вместе с проверкой подлинности Windows.
Как снять публикацию базы?
Откройте в Конфигураторе то же окно Администрирование → Публикация на веб-сервере, выберите публикацию и нажмите «Отключить». Каталог публикации после этого можно удалить вручную.