Веб-сервер для 1С: публикация базы через IIS или Apache
Содержание
Чтобы сделать веб-сервер для 1С, нужны три вещи: установленные на сервере компоненты платформы для веб-доступа, веб-сервер (IIS на Windows или Apache) и опубликованная информационная база. Публикацию делают из Конфигуратора: Администрирование → Публикация на веб-сервере. Вся остальная работа — подготовить окружение и выдать правильные права.
Типичная история: бухгалтер уезжает в командировку, директор хочет смотреть отчёты с телефона, а база живёт на сервере в офисе. Один раз настроенная публикация закрывает все три задачи: открывать базу можно в браузере, без установки клиента. Она же нужна для веб-сервисов, HTTP-сервисов и обмена с внешними системами.
Что выбрать: IIS, Apache или готовый сервер
Веб-сервер для 1С — это не отдельный продукт от 1С. Платформа поставляет только модуль-расширение, который «встраивается» в обычный веб-сервер и передаёт запросы в базу. Выбор зависит от операционной системы и привычек администратора.
| Вариант | Когда подходит | Минусы |
|---|---|---|
| IIS | Сервер на Windows, администратор знает Windows | Нужно включать компоненты вручную, отдельная настройка пула |
| Apache 2.4 | Linux-сервер или 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. Версию, которую платформа не знает, публикация не подхватит. Совместимость смотрите в описании к вашему релизу платформы.
Публикация базы через Конфигуратор
Публикацию проще всего сделать из Конфигуратора. Запустите его от имени администратора, иначе утилита не сможет записать файлы в каталог веб-сервера.
- Откройте нужную базу в Конфигураторе.
- Выберите
Администрирование → Публикация на веб-сервере. - В поле «Имя» введите короткое латинское имя без пробелов, например
buh. Оно попадёт в адрес. - В списке «Веб-сервер» выберите IIS или Apache.
- Проверьте каталог публикации. По умолчанию это папка рядом с корнем сайта, и менять её обычно не нужно.
- Отметьте, нужны ли тонкий клиент, веб-клиент, стандартный интерфейс OData и веб-сервисы.
- Нажмите «Опубликовать».
Если всё прошло, появится сообщение об успешной публикации. База будет доступна по адресу вида 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С, проверьте три параметра:
- Разрядность. Для 64-разрядной платформы параметр «Разрешить 32-разрядные приложения» должен быть выключен.
- Режим управляемого кода. Для модуля 1С он не нужен — выберите «Без управляемого кода».
- Тайм-аут простоя. По умолчанию пул «засыпает» через 20 минут без обращений, и первый пользователь утром ждёт долго. Поставьте 0 или включите периодический «прогрев».
Проверка и первый запуск
Проверьте работу последовательно, от простого к сложному.
- Откройте
http://имя-сервера/buhна самом сервере. - Откройте тот же адрес с другого компьютера в сети.
- Войдите под пользователем базы.
- Откройте любой тяжёлый отчёт и убедитесь, что запрос не обрывается.
- Проверьте вход через тонкий клиент по адресу публикации.
Если на сервере работает, а с другого компьютера нет, причина почти всегда в брандмауэре: порты 80 и 443 закрыты.
Как закрыть публикацию от лишнего доступа
Опубликованная в интернет база — это открытая дверь, на неё сразу начнут стучаться сканеры. Несколько мер, которые закрывают основные риски без больших затрат:
- 🔒 VPN вместо прямого доступа. Если пользователей немного и они известны, пустите их через VPN. Порт веб-сервера тогда наружу не открывается вообще.
- 🔒 Отдельные пользователи для интеграций. Внешней системе выдайте пользователя с минимальным набором прав, а не администратора базы.
- 🔒 Ограничение по адресам. В IIS и Apache можно разрешить обращение к публикации только с нужных IP-адресов, например для веб-сервисов обмена.
- 🔒 Запрет паролей по умолчанию. Пользователь без пароля в базе, которая видна из интернета, — вопрос времени, когда им воспользуются.
- 🔒 Журнал регистрации. Раз в неделю просматривайте неудачные входы: всплеск попыток подбора виден сразу.
Перед любыми изменениями в рабочей публикации сохраните копию каталога публикации и файла default.vrd. Откат тогда занимает минуту.
Какой сценарий у вас: короткая шпаргалка
webinst с параметром -apache24 и путём к конфигурации.Диагностика проблем и ускорение работы
Когда публикация не работает, сначала смотрите, что именно вернул сервер. Код ответа и текст на странице подскажут направление.
default.vrd.bin платформы и настройку 32-разрядных приложений.default.vrd и откройте базу тонким клиентом с теми же параметрами.Если ничего из списка не подошло, включите журнал ошибок веб-сервера: в IIS он лежит в каталоге логов сайта, в Apache — в error.log. Нужную причину обычно видно в одной-двух последних строках.
Что ускоряет веб-клиент
- Сжатие страниц на сервере включить обязательно — трафик падает в разы.
- Для удалённых пользователей поставьте веб-сервер ближе к ним или используйте тонкий клиент, он обычно быстрее браузера.
- Не публикуйте одну базу под несколькими именами без необходимости: каждая публикация держит свои сеансы.
- Следите за лицензиями: каждый веб-сеанс занимает пользовательскую лицензию, как и обычный.
Частые вопросы
Нужна ли отдельная лицензия на веб-сервер?
Можно ли открыть опубликованную базу с телефона?
Нужен ли внешний IP-адрес?
Что делать после обновления платформы?
webinst, чтобы веб-сервер подхватил новый модуль-расширение.