Веб-сервер для 1С: публикация базы через IIS или Apache

· 9 мин

Содержание

Чтобы сделать веб-сервер для 1С, нужны три вещи: установленные на сервере компоненты платформы для веб-доступа, веб-сервер (IIS на Windows или Apache) и опубликованная информационная база. Публикацию делают из Конфигуратора: Администрирование → Публикация на веб-сервере. Вся остальная работа — подготовить окружение и выдать правильные права.

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

Что выбрать: IIS, Apache или готовый сервер

Веб-сервер для 1С — это не отдельный продукт от 1С. Платформа поставляет только модуль-расширение, который «встраивается» в обычный веб-сервер и передаёт запросы в базу. Выбор зависит от операционной системы и привычек администратора.

ВариантКогда подходитМинусы
IISСервер на Windows, администратор знает WindowsНужно включать компоненты вручную, отдельная настройка пула
Apache 2.4Linux-сервер или Windows без IISКонфигурация в текстовых файлах, правка при каждой смене версии

Если сервер приложений 1С уже стоит на Windows, проще всего взять IIS: он входит в систему, отдельно ничего скачивать не нужно. Для Linux обычно ставят Apache.

Веб-сервер и сервер 1С:Предприятия не обязаны стоять на одной машине. При большой нагрузке веб-сервер выносят отдельно, а базу публикуют с адресом кластера в строке соединения.

Какие ресурсы нужны

Ориентировочно на 10–15 одновременных веб-пользователей хватает 4 ядер и 8 ГБ памяти, при условии, что база и сервер приложений на другой машине. Если всё на одном сервере, закладывайте память с запасом: веб-клиент нагружает и веб-сервер, и сервер приложений.

Подготовка сервера и установка компонентов

Сначала поставьте на сервер платформу 1С:Предприятие. В установщике отметьте компонент Модули расширения веб-серверов. Если его не отметили, запустите установщик снова и выберите изменение состава компонентов.

Разрядность важна. Для 64-разрядной платформы нужен 64-разрядный веб-сервер. Смешивать нельзя: модуль не загрузится, а в журнале будет невнятная ошибка.

Включаем IIS на Windows Server

Откройте Диспетчер серверов → Добавить роли и компоненты и добавьте роль «Веб-сервер (IIS)». Затем отметьте в разделе «Разработка приложений»:

  • ✅ Расширения ISAPI;
  • ✅ Фильтры ISAPI;
  • ✅ Проверка подлинности Windows в разделе «Безопасность» — если нужна доменная авторизация;
  • ✅ Сжатие статического содержимого — ускоряет загрузку веб-клиента.

После установки откройте адрес http://localhost на самом сервере. Должна появиться стартовая страница IIS. Нет страницы — публиковать пока рано.

Подготовка Apache

На Windows скачайте сборку Apache 2.4, на Linux поставьте пакет из репозитория дистрибутива. Проверьте, что сервер стартует и отдаёт стартовую страницу. Модуль-расширение 1С подключается отдельной строкой в конфигурации, но это сделает утилита публикации — вручную править файл не нужно.

Устанавливайте только поддерживаемую платформой ветку Apache. Версию, которую платформа не знает, публикация не подхватит. Совместимость смотрите в описании к вашему релизу платформы.

Публикация базы через Конфигуратор

Публикацию проще всего сделать из Конфигуратора. Запустите его от имени администратора, иначе утилита не сможет записать файлы в каталог веб-сервера.

  1. Откройте нужную базу в Конфигураторе.
  2. Выберите Администрирование → Публикация на веб-сервере.
  3. В поле «Имя» введите короткое латинское имя без пробелов, например buh. Оно попадёт в адрес.
  4. В списке «Веб-сервер» выберите IIS или Apache.
  5. Проверьте каталог публикации. По умолчанию это папка рядом с корнем сайта, и менять её обычно не нужно.
  6. Отметьте, нужны ли тонкий клиент, веб-клиент, стандартный интерфейс OData и веб-сервисы.
  7. Нажмите «Опубликовать».

Если всё прошло, появится сообщение об успешной публикации. База будет доступна по адресу вида http://имя-сервера/buh.

Публикация из командной строки

Для скриптов и серверов без графики есть утилита webinst. Она лежит в каталоге bin платформы. Пример для IIS:

webinst -publish -iis -wsdir buh -dir C:\inetpub\wwwroot\buh -connstr "Srvr=app01;Ref=buh;"

Для Apache вместо -iis указывают -apache24 и путь к файлу конфигурации:

webinst -publish -apache24 -wsdir buh -dir /var/www/buh -connstr "Srvr=app01;Ref=buh;" -confpath /etc/apache2/apache2.conf

Строка Srvr=…;Ref=…; — для клиент-серверной базы. Для файловой вместо неё пишут File="D:\Bases\buh";.

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

Права доступа и аутентификация

Эта часть чаще всего ломает рабочую публикацию. Веб-сервер запускает 1С не от вашего пользователя, а от учётной записи пула приложений (в IIS) или пользователя службы Apache. И именно ей нужен доступ.

Что выдать учётной записи веб-сервера

  • ✅ Чтение и выполнение в каталоге bin платформы 1С.
  • ✅ Чтение и запись в каталог публикации.
  • ✅ Для файловой базы — запись в каталог с базой.
  • ✅ Доступ к серверу приложений 1С — в клиент-серверном варианте он обеспечивается настройками кластера.

В IIS проще всего назначить пулу отдельную учётную запись и выдать права ей. Не используйте для этого учётную запись администратора домена.

Способы авторизации пользователей

В опубликованной базе пользователь по-прежнему входит под своим пользователем 1С. Дополнительно можно включить вход по доменной учётной записи (аутентификация Windows) — тогда логин и пароль вводить не придётся. Для этого в IIS включают проверку подлинности Windows для приложения, а в карточке пользователя базы отмечают «Аутентификация операционной системы» и указывают домен и имя.

Для внешних систем и мобильных приложений часто нужна простая проверка подлинности по логину и паролю. Её включают осознанно и только вместе с HTTPS: пароль при такой схеме идёт открытым текстом в кодировке base64, а это не шифрование.

HTTPS

Публиковать базу в интернет без шифрования нельзя. Получите сертификат (платный или бесплатный), привяжите его к сайту в IIS в Привязки сайта или к виртуальному хосту Apache и перенаправьте порт 80 на 443. После этого пересоберите публикацию с адресом https://…, если он прописан явно.

Настройка параметров публикации: default.vrd и расширения

Результат публикации — файл default.vrd в каталоге публикации. Это обычный XML. В нём лежат строка соединения и список включённых возможностей. Править его можно вручную, и иногда это единственный способ.

Что обычно настраивают:

  • 🔹 Список HTTP- и веб-сервисов. Каждый сервис включается отдельным элементом, лишние лучше убрать — меньше открытых точек входа.
  • 🔹 Стандартный интерфейс OData. Если интеграции не нужны, не публикуйте.
  • 🔹 Сертификаты и расширения. Расширения конфигурации подключаются как обычно, публикация их не ограничивает.
  • 🔹 Таймауты и лимиты. Время ожидания длинных операций задают в параметрах пула и веб-сервера, а не в базе.

После правки default.vrd перезапуск веб-сервера обычно не нужен, достаточно сбросить пул приложений.

Настройка пула IIS

У пула приложений, под которым работает 1С, проверьте три параметра:

  1. Разрядность. Для 64-разрядной платформы параметр «Разрешить 32-разрядные приложения» должен быть выключен.
  2. Режим управляемого кода. Для модуля 1С он не нужен — выберите «Без управляемого кода».
  3. Тайм-аут простоя. По умолчанию пул «засыпает» через 20 минут без обращений, и первый пользователь утром ждёт долго. Поставьте 0 или включите периодический «прогрев».

Проверка и первый запуск

Проверьте работу последовательно, от простого к сложному.

  1. Откройте http://имя-сервера/buh на самом сервере.
  2. Откройте тот же адрес с другого компьютера в сети.
  3. Войдите под пользователем базы.
  4. Откройте любой тяжёлый отчёт и убедитесь, что запрос не обрывается.
  5. Проверьте вход через тонкий клиент по адресу публикации.

Если на сервере работает, а с другого компьютера нет, причина почти всегда в брандмауэре: порты 80 и 443 закрыты.

Как закрыть публикацию от лишнего доступа

Опубликованная в интернет база — это открытая дверь, на неё сразу начнут стучаться сканеры. Несколько мер, которые закрывают основные риски без больших затрат:

  • 🔒 VPN вместо прямого доступа. Если пользователей немного и они известны, пустите их через VPN. Порт веб-сервера тогда наружу не открывается вообще.
  • 🔒 Отдельные пользователи для интеграций. Внешней системе выдайте пользователя с минимальным набором прав, а не администратора базы.
  • 🔒 Ограничение по адресам. В IIS и Apache можно разрешить обращение к публикации только с нужных IP-адресов, например для веб-сервисов обмена.
  • 🔒 Запрет паролей по умолчанию. Пользователь без пароля в базе, которая видна из интернета, — вопрос времени, когда им воспользуются.
  • 🔒 Журнал регистрации. Раз в неделю просматривайте неудачные входы: всплеск попыток подбора виден сразу.

Перед любыми изменениями в рабочей публикации сохраните копию каталога публикации и файла default.vrd. Откат тогда занимает минуту.

Какой сценарий у вас: короткая шпаргалка

Как опубликовать базу в вашей ситуации?

Диагностика проблем и ускорение работы

Когда публикация не работает, сначала смотрите, что именно вернул сервер. Код ответа и текст на странице подскажут направление.

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

Если ничего из списка не подошло, включите журнал ошибок веб-сервера: в IIS он лежит в каталоге логов сайта, в Apache — в error.log. Нужную причину обычно видно в одной-двух последних строках.

Что ускоряет веб-клиент

  • Сжатие страниц на сервере включить обязательно — трафик падает в разы.
  • Для удалённых пользователей поставьте веб-сервер ближе к ним или используйте тонкий клиент, он обычно быстрее браузера.
  • Не публикуйте одну базу под несколькими именами без необходимости: каждая публикация держит свои сеансы.
  • Следите за лицензиями: каждый веб-сеанс занимает пользовательскую лицензию, как и обычный.

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

Нужна ли отдельная лицензия на веб-сервер?
Сам IIS входит в Windows Server, Apache бесплатный. Для работы пользователей нужны обычные клиентские лицензии 1С, веб-доступ их не заменяет.
Можно ли открыть опубликованную базу с телефона?
Да, через браузер, если адрес доступен из интернета по HTTPS. Для регулярной работы удобнее мобильное приложение или тонкий клиент.
Нужен ли внешний IP-адрес?
Только если пользователи работают не из офисной сети. Для доступа снаружи нужен либо публичный адрес с пробросом портов, либо VPN. Второй вариант безопаснее.
Что делать после обновления платформы?
Публикацию нужно обновить: заново выполните публикацию из Конфигуратора или webinst, чтобы веб-сервер подхватил новый модуль-расширение.
Можно ли опубликовать несколько баз на одном сервере?
Да, у каждой базы своё имя публикации и свой каталог. Один пул приложений можно использовать на все, но при нагрузке лучше разделить.