Для работы с 1С можно использовать браузер. Воспользуюсь такой возможностью.
На сайте https://its.1c.ru в разделе документации к серверу 1С:Предприятие 8.3.16, в руководстве администратора, Глава 8. Настройка веб-серверов для работы с «1С:Предприятием», помимо всего прочего, в общих требованиях касаемо ОС Linux сказано:
На компьютере, где выполняется публикация, должен быть установлен и настроен поддерживаемый веб-сервер. Для установки веб-сервера требуются административные привилегии на компьютере, на который будет установлен требуемый веб-сервер.
Публикация может выполняться двумя способами:
- С помощью диалога публикации на веб-сервере, если на компьютере с веб-сервером имеется возможность запустить конфигуратор необходимой разрядности.
- С помощью утилиты webinst.
Для выполнения публикации на веб-серверах необходимы административные привилегии на компьютере, где выполняется публикация:
- Для ОС Linux, чтобы выполнить публикацию, следует получить права суперпользователя (пользователь root) с помощью команды su или запускать приложение, которое выполняет публикацию, с помощью команды sudo.
При попытке выполнить публикацию система проверяет наличие необходимых привилегий для выполнения операции. Если привилегий текущего пользователя недостаточно для выполнения публикации, то:
- При публикации из конфигуратора пользователю задается вопрос о необходимости продолжить публикацию. В диалоге указывается причина возникновения (диалога) и присутствуют рекомендации по тому, как получить необходимые привилегии.
- При публикации с помощью утилиты webinst пользователю выдается диагностическое сообщение, но публикация продолжается.
Публикация возможна только в том случае, если «1С:Предприятие» расположено на компьютере с веб-сервером. Для работы с конфигурацией через веб-сервер конфигурация не должна быть пустой.
Работа через веб-сервер характеризуется определенными особенностями как собственно работы, так и настройки веб-серверов:
- При работе с веб-сервером Apache:
При работе под управлением ОС Linux рекомендуется использовать модуль мультипроцессной обработки worker. Другие доступные модули использовать не рекомендуется.
Подготовка
Необходимо установить веб-сервер 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. пропущена часть пути в строке публикации
вместо -dir /var/www/1c8/$db1c писать -dir /var/www/www1c8/$db1c
2. если сервер 1С находится на этой же машине, вместо айпишника писать localhost
Итоговый вариант файла публикации:
root@sbut-ubuntu:~# cat publish1CBase.sh
#!/bin/sh
for db1c in buh-tzk buh-fzk buh-citadel sbut-1 sbut-2 sbut-3 sbut-4 test-buh-tzk test-buh-fzk test-buh-citadel test-sbut-1 test-sbut-2 test-sbut-3 test-sbut-4;
do echo «Публикация базы [$db1c]»;
/opt/1C/v8.3/x86_64/webinst -publish -apache24 -wsdir $db1c -dir /var/www/www1c8/$db1c -connstr «Srvr=localhost;Ref=$db1c;» -confPath /etc/apache2/sites-available/srv1c8.conf;
done
спасибо за замечание.
исправил, правда в другом месте:
было «mkdir -p /var/www/www1c8/{applesrvltd,busterunltd,buh3rk}»
стало «mkdir -p /var/www/1c8/{applesrvltd,busterunltd,buh3rk}»