Публикация базы 1С на веб-сервере

Для работы с 1С можно использовать браузер. Воспользуюсь такой возможностью. На сайте https://its.1c.ru в разделе документации к серверу 1С:Предприятие 8.3.16, в руководстве администратора, Глава 8. Настройка веб-серверов для работы с «1С:Предприятием», помимо всего прочего, в общих требованиях касаемо ОС Linux сказано: На компьютере, где выполняется публикация, должен быть установлен и настроен поддерживаемый веб-сервер. Для установки веб-сервера требуются административные привилегии на компьютере, на который будет установлен требуемый веб-сервер. Публикация может выполняться двумя способами:
  1. С помощью диалога публикации на веб-сервере, если на компьютере с веб-сервером имеется возможность запустить конфигуратор необходимой разрядности.
  2. С помощью утилиты webinst.
Для выполнения публикации на веб-серверах необходимы административные привилегии на компьютере, где выполняется публикация:
  • Для ОС Linux, чтобы выполнить публикацию, следует получить права суперпользователя (пользователь root) с помощью команды su или запускать приложение, которое выполняет публикацию, с помощью команды sudo.
При попытке выполнить публикацию система проверяет наличие необходимых привилегий для выполнения операции. Если привилегий текущего пользователя недостаточно для выполнения публикации, то:
  • При публикации из конфигуратора пользователю задается вопрос о необходимости продолжить публикацию. В диалоге указывается причина возникновения (диалога) и присутствуют рекомендации по тому, как получить необходимые привилегии.
  • При публикации с помощью утилиты webinst пользователю выдается диагностическое сообщение, но публикация продолжается.
Публикация возможна только в том случае, если «1С:Предприятие» расположено на компьютере с веб-сервером. Для работы с конфигурацией через веб-сервер конфигурация не должна быть пустой. Работа через веб-сервер характеризуется определенными особенностями как собственно работы, так и настройки веб-серверов:
  • При работе с веб-сервером Apache: При работе под управлением ОС Linux рекомендуется использовать модуль мультипроцессной обработки worker. Другие доступные модули использовать не рекомендуется.
веб-клиент 1С, браузер: Firefox 68.3.0esr (64-битный), операционная система: Debian GNU/Linux 10 (buster)

Подготовка

Необходимо установить веб-сервер Apache
# apt install apache2 -y
Чтение списков пакетов… Готово
Построение дерева зависимостей
Чтение информации о состоянии… Готово
Будут установлены следующие дополнительные пакеты:
apache2-bin apache2-data apache2-utils libapr1 libaprutil1 libaprutil1-dbd-sqlite3 libaprutil1-ldap libbrotli1 libcurl4 liblua5.2-0
Предлагаемые пакеты:
apache2-doc apache2-suexec-pristine | apache2-suexec-custom www-browser
Следующие НОВЫЕ пакеты будут установлены:
apache2 apache2-bin apache2-data apache2-utils libapr1 libaprutil1 libaprutil1-dbd-sqlite3 libaprutil1-ldap libbrotli1 libcurl4 liblua5.2-0
Обновлено 0 пакетов, установлено 11 новых пакетов, для удаления отмечено 0 пакетов, и 0 пакетов не обновлено.
Необходимо скачать 2 900 kB архивов.
После данной операции объём занятого дискового пространства возрастёт на 9 510 kB.
...
создам каталоги для баз (упомянутых здесь)
# mkdir -p /var/www/1c8/{applesrvltd,busterunltd,buh3rk}
Публикация выполняется с помощью команды ./webinst Список доступных ключей (параметров) можно посмотреть выполнив
# /opt/1C/v8.3/x86_64/webinst
1C:Предприятие 8. Утилита публикации веб-клиента
Публикация:
webinst [-publish] websrv -wsdir VirtualDir -dir Dir -connstr connStr [-confPath confPath]
Публикация на основе существующего vrd файла:
webinst [-publish] websrv [-wsdir VirtualDir] -descriptor vrdPath -dir Dir [-connstr connStr] [-confPath confPath]
Удаление публикации:
webinst -delete websrv -wsdir VirtualDir [-dir Dir] [-connstr connStr] [-confPath confPath]
Удаление публикации по существующему vrd файлу:
webinst -delete websrv [-wsdir VirtualDir] -descriptor vrdPath [-dir Dir] [-connstr connStr] [-confPath confPath]
Ключи:
-publish: опубликовать, ключ по умолчанию
-delete: удалить публикацию
websrv
-apache2: публикация Веб-клиента для Apache 2.0
-apache22: публикация Веб-клиента для Apache 2.2
-apache24: публикация Веб-клиента для Apache 2.4
-wsdir VirtualDir: виртуальный каталог
-dir Dir: физический каталог, в который будет отображен виртуальный
-descriptor vrdPath: путь к существующему vrd файлу
-connstr connStr: строка соединения ИБ
-confPath confPath: полный путь к конфигурационному файлу Apach
Также для публикации необходим конфигурационный файл Apache Создам его:
touch /etc/apache2/sites-available/srv1c8.conf

Публикация

Поскольку баз несколько, то сделаю так:
#for db1c in applesrvltd busterunltd buh3rk; do echo "Публикация базы [$db1c]";/opt/1C/v8.3/x86_64/webinst -publish -apache24 -wsdir $db1c -dir /var/www/1c8/$db1c -connstr "Srvr=10.1.2.1;Ref=$db1c;" -confPath /etc/apache2/sites-available/srv1c8.conf;done
Публикация базы [applesrvltd]
Публикация выполнена
Публикация базы [busterunltd]
Публикация выполнена
Публикация базы [buh3rk]
Публикация выполнена
Вот так выглядит файл конфигурации Apache после публикации:
# cat /etc/apache2/sites-available/srv1c8.conf
LoadModule _1cws_module "/opt/1C/v8.3/x86_64/wsap24.so"
# 1c publication
Alias "/applesrvltd" "/var/www/1c8/applesrvltd/"
<Directory "/var/www/1c8/applesrvltd/">
AllowOverride All
Options None
Require all granted
SetHandler 1c-application
ManagedApplicationDescriptor "/var/www/1c8/applsesrvltd/default.vrd"

# 1c publication
Alias "/busterunltd" "/var/www/1c8/busterunltd/"
<Directory "/var/www/1c8/busterunltd/">
AllowOverride All
Options None
Require all granted
SetHandler 1c-application
ManagedApplicationDescriptor "/var/www/1c8/busterunltd/default.vrd"

# 1c publication
Alias "/buh3rk" "/var/www/1c8/buh3rk/"
<Directory "/var/www/1c8/buh3rk/">
AllowOverride All
Options None
Require all granted
SetHandler 1c-application
ManagedApplicationDescriptor "/var/www/1c8/buh3rk/default.vrd"

  Необходимо включить новый файл конфигурации Apache:
# a2ensite srv1c8.conf
Enabling site srv1c8.
To activate the new configuration, you need to run:
systemctl reload apache2
  для того, что бы веб-сервер перечитал настройки, необходимо выполнить следующую команду:
# systemctl reload apache2
  Проверяю, открою в браузере ссылку: http://10.1.2.1/buh3rk — здесь: 10.1.2.1 — адрес сервера 1С8 buh3rk — имя базы. Что бы ссылка выглядела «красивее», во время публикации можно указать любое имя после параметра «-wsdir» Вот и всё!
Рубрики: 1С 8, buster | 2 | 58 933 | Распечатать эту статью