Веб-публикация 1С на Linux — это связка из трёх компонентов: сервер 1С (кластер), СУБД (обычно PostgreSQL в сборке для 1С) и веб-сервер Apache с модулем веб-расширения платформы. Базу публикует утилита webinst: она создаёт файл default.vrd и подключает к Apache модуль wsap24. После этого база открывается в браузере по адресу http://сервер/ИмяПубликации, а заодно становятся доступны HTTP-сервисы, OData и веб-сервисы.
Для разработки и тестирования такой стенд удобно собрать на одной виртуальной машине и запустить с community-лицензией. Ниже порядок, который я использую для тестовых контуров: что поставить, в какой последовательности, какие команды и где обычно ломается.
Что понадобится для стенда
Для тестового контура достаточно одной виртуальной машины:
| Компонент | Что выбрать | Комментарий |
|---|---|---|
| Гипервизор | Hyper-V, VirtualBox, Proxmox | Важна аппаратная виртуализация в BIOS |
| ОС | Debian/Ubuntu или Astra Linux | Для отечественного контура — Astra |
| Ресурсы | от 2 ядер, 4–8 ГБ ОЗУ, 40+ ГБ диска | Под СУБД память лучше не жалеть |
| Платформа | Дистрибутив сервера x86_64 для Linux | Та же версия ставится клиентом на Windows |
| СУБД | PostgreSQL для 1С (Postgres Pro или сборка 1С) | Обычный PostgreSQL без патчей 1С не подойдёт |
| Веб-сервер | Apache 2.4 | Модуль веб-расширения ставится вместе с платформой |
Ещё пригодятся SSH-клиент и WinSCP (или любой SFTP-клиент) для переноса дистрибутивов, а также pgAdmin, если удобнее смотреть базу графически.
Пара практических замечаний по виртуалке. В Hyper-V для Linux второго поколения отключите Secure Boot, иначе многие сборки не загрузятся. При установке ОС сразу отметьте SSH-сервер: дальше всё удобнее делать из терминала, а не из консоли гипервизора.
Установка сервера 1С
Дистрибутив кладём во временный каталог, распаковываем и запускаем установщик. Для стенда ставлю сервер, модули веб-расширения, средства администрирования и клиент (если на машине есть графика):
mkdir -p ~/distrib && cd ~/distrib
tar -xzf server64_8_3_23_1437.tar.gz
sudo ./setup-full-8.3.23.1437-x86_64.run --mode unattended \
--enable-components server,ws,server_admin,client_fullКомпонент ws — это и есть модули веб-расширения для Apache, без него публиковать нечего. Номер версии в командах замените на свой.
Начиная с версий 8.3.21+ платформа поставляет юнит systemd в каталоге установки. Подключаем его и запускаем службу:
VER=8.3.23.1437
sudo systemctl link /opt/1cv8/x86_64/$VER/srv1cv8-$VER@.service
sudo systemctl enable srv1cv8-$VER@default.service
sudo systemctl start srv1cv8-$VER@default.service
systemctl status srv1cv8-$VER@default.serviceВ выводе статуса должно быть active (running). Проверить кластер можно с Windows-машины через консоль администрирования серверов 1С, указав IP виртуалки.
Отладка на сервере
Для тестового стенда отладка нужна почти всегда. Не редактируйте поставочный юнит-файл — его перезапишет следующая установка. Правильнее сделать переопределение:
sudo systemctl edit srv1cv8-$VER@default.serviceВ открывшемся редакторе:
[Service]
Environment=SRV1CV8_DEBUG=-debugЗатем sudo systemctl daemon-reload и перезапуск службы. В systemctl status у процессов rphost должны появиться ключи -debug -tcp. Если конфигуратор видит предметы отладки, но точки останова не срабатывают, проверьте файрвол: порты отладки должны быть открыты с машины разработчика.
PostgreSQL для 1С
Ставим сборку PostgreSQL с патчами для 1С. Для Postgres Pro это делается через их скрипт подключения репозитория и пакет вида postgrespro-1c-15; у сборок от фирмы «1С» свой порядок установки. После установки нужно поправить два файла в каталоге данных.
В postgresql.conf разрешаем внешние подключения и настраиваем память по рекомендациям для 1С:
listen_addresses = '*'В pg_hba.conf добавляем правило доступа. Для изолированного стенда можно открыть подсеть, но с парольной аутентификацией:
host all all 192.168.0.0/16 scram-sha-256Правило 0.0.0.0/0 с паролем из старых инструкций годится только для машины, которая не видна снаружи. Пользователя для 1С создаём в psql:
CREATE USER usr1c WITH SUPERUSER PASSWORD 'надёжный_пароль';После перезапуска службы СУБД создаём информационную базу из консоли администрирования или из окна запуска 1С: тип СУБД PostgreSQL, сервер баз данных localhost, пользователь usr1c.
Веб-публикация 1С через Apache
Теперь основное. Ставим Apache и готовим каталог публикации:
sudo apt install -y apache2
sudo mkdir -p /var/www/1c/demoПубликацию удобно держать в отдельном файле конфигурации, чтобы её легко включать и выключать штатными a2enconf и a2disconf:
sudo touch /etc/apache2/conf-available/1c-demo.conf
cd /opt/1cv8/x86_64/$VER
sudo ./webinst -publish -apache24 -wsdir demo -dir /var/www/1c/demo \
-connstr 'Srvr="localhost";Ref="demo";' \
-confpath /etc/apache2/conf-available/1c-demo.conf
sudo a2enconf 1c-demo
sudo systemctl restart apache2Что делает webinst:
- создаёт в каталоге публикации файл
default.vrdс адресом базы и настройками сервисов; - дописывает в указанный файл
LoadModuleмодуляwsap24нужной версии и блокAlias/Directoryдля имени публикации.
-wsdir — имя публикации в адресе, Ref в строке соединения — имя базы в кластере. Они не обязаны совпадать, но на стенде удобнее называть одинаково.

Проверка: в браузере открываем http://IP-виртуалки/demo. Должен открыться веб-клиент.
Публикация HTTP-сервисов и OData
По умолчанию webinst публикует базу для веб-клиента. Чтобы включить HTTP-сервисы, веб-сервисы и стандартный интерфейс OData, правят default.vrd (или публикуют через конфигуратор на Windows, где это галочки). Типовые элементы файла — <httpServices publishByDefault="true"/>, <standardOdata enable="true" .../>. После правки перезапустите Apache. Подробно про сами сервисы — в статье базы знаний про HTTP-сервисы 1С.
Community-лицензия для тестового стенда
В платформе 8.3.23 появилась community-лицензия для обучения, разработки и тестирования. Она работает и в клиент-серверном варианте, поэтому стенд не требует покупки ключей. Порядок:
- Зарегистрируйтесь на портале для разработчиков developer.1c.ru.
- При первом запуске базы платформа предложит активировать community-лицензию — вводите учётные данные портала.
- Число одновременных активаций на одну учётную запись ограничено, лишние освобождаются через портал.
Для веб-клиента лицензию должен видеть серверный процесс. На практике после активации из клиента файл лицензии копируют в каталог лицензий сервера (например, /var/1C/licenses) и выдают права пользователю usr1cv8. Точное расположение зависит от версии и настроек, поэтому сверяйтесь с документацией на ИТС к вашей платформе.
Важно: community-лицензия не для рабочей эксплуатации. Перенос боевой базы на стенд с такой лицензией — нормально для тестирования, а работа пользователей на нём — нарушение условий.
Типичные ошибки
- Ошибка 500 сразу после публикации. Версия модуля
wsap24не совпадает с версией сервера или в конфигурации Apache остались строки от старой публикации. ПроверьтеLoadModuleи/var/log/apache2/error.log. - 403 Forbidden. У пользователя
www-dataнет прав на каталог публикации или в блокеDirectoryне разрешён доступ. - «Не найдена лицензия» в веб-клиенте. Лицензия активирована для пользователя ОС, а серверный процесс её не видит. Положите файл лицензии туда, где его ищет сервер.
- Не подключается к СУБД. Не исправлен
listen_addresses, нет строки вpg_hba.confили СУБД не перезапущена после правки. - Отладка не работает. Юнит отредактирован, но не выполнен
daemon-reload; или порты отладки закрыты файрволом. - После обновления платформы публикация сломалась. Новая версия ставится в отдельный каталог, а Apache по-прежнему грузит модуль старой. Переопубликуйте базу
webinstиз нового каталога.
Тестовый стенд на Linux собирается за пару часов, если ставить компоненты в правильном порядке: сервер 1С, СУБД, база, Apache, публикация, лицензия.
Если нужен не стенд, а рабочий контур с HTTPS, балансировкой и резервированием, это уже отдельный проект: перевод 1С на Linux и PostgreSQL, настройка веб-доступа к 1С и администрирование сервера 1С.
Коротко
- Веб-публикация 1С на Linux — это сервер 1С, PostgreSQL для 1С и Apache 2.4 с модулем
wsap24. - Ставьте платформу с компонентом
ws, иначе публиковать будет нечем. - Публикуйте через
webinst -publish -apache24в отдельный файл вconf-availableи включайте егоa2enconf. - Отладку включайте переопределением юнита systemd с
SRV1CV8_DEBUG=-debug. - Community-лицензия подходит для разработки и тестов, но не для работы пользователей.




