Nous mettons en place un serveur 1C avec la publication de la base de données et des services Web sur Linux

Nous mettons en place un serveur 1C avec la publication de la base de données et des services Web sur Linux

Aujourd'hui, je voudrais vous expliquer comment déployer un serveur 1C sur Linux Debian 9 avec la publication de services web.

Qu'est-ce que les services web 1C ?

Services Web — sont l'un des mécanismes de la plateforme utilisés pour l'intégration avec d'autres systèmes d'information. Ils constituent un moyen de supporter l’architecture orientée services (SOA), qui est la norme moderne d'intégration des applications et des systèmes d'information. En substance, c'est la possibilité de créer une page HTML avec des données, à laquelle d'autres applications peuvent ensuite accéder pour les récupérer.

Avantages — fonctionne rapidement (même avec un volume de données relativement important), assez pratique.

Inconvénients — votre développeur 1C va beaucoup râler pendant qu'il écrira le service web pour votre base. C'est une matière très particulière à programmer.

Je ne vais pas expliquer comment écrire un service web… je vais vous montrer comment le publier sur Linux depuis la console du serveur, ainsi que quelques détails sur l’installation du serveur 1C sur Linux.

Ainsi, nous avons Debian 9 netinst, commençons :

Installons PostgresPro (je souligne qu'il n'est pas gratuit et est distribué uniquement dans le cadre d'une évaluation des fonctionnalités) :

# apt-get update -y

# apt-get install -y wget gnupg2 || apt-get install -y gnupg

# wget -O - http://repo.postgrespro.ru/keys/GPG-KEY-POSTGRESPRO | apt-key add -

# echo deb http://repo.postgrespro.ru/pgpro-archive/pgpro-11.4.1/debian stretch main > /etc/apt/sources.list.d/postgrespro-std.list

# apt-get update -y
# apt-get install -y postgrespro-std-11-server
# /opt/pgpro/std-11/bin/pg-setup initdb
# /opt/pgpro/std-11/bin/pg-setup service enable
# service postgrespro-std-11 start
# su - postgres
# /opt/pgpro/std-11/bin/psql -U postgres -c "alter user postgres with password 'ВашПароль';"

Disons que PostgreSQL écoute toutes les adresses, pas seulement localhost.

# nano /var/lib/pgpro/std-11/data/postgresql.conf

Décommentons et modifions les adresses à écouter :

…
#listen_addresses = ‘localhost’
…

Sur

…
listen_addresses = ‘*’
…

Ensuite, permettons aux utilisateurs de notre réseau de s'authentifier.

# nano /var/lib/pgpro/std-11/data/pg_hba.conf

Modifions :

# IPv4 local connections:
host all all 127.0.0.1/32 md5

sur

host all all 192.168.188.0/24 md5
host all all 127.0.0.1/32 md5

Vous pouvez lire en détail sur les diverses installations de Postgres pour 1C ici.

Ensuite, installons le serveur 1C.

Transférons sur le serveur l'archive téléchargée depuis le site 1C (dans mon cas deb64_8_3_15_1534.tar.gz)


# tar -xzf deb64_8_3_15_1534.tar.gz

# dpkg -i *.deb

Encore quelques détails :

# apt install imagemagick unixodbc libgsf-bin

Maintenant, installons Apache2.

# apt install apache2

Via la console d'administration ou le client 1C, créons une base et téléchargeons notre configuration…

Maintenant, publions la base :

passons dans le dossier contenant 1C.

# cd /opt/1C/v8.3/x86_64/

. /webinst -publish -apache24 -wsdir Test -dir /var/www/test/ -connstr "Srvr=10.7.12.108;Ref=test;" -confPath /etc/apache2/apache2.conf

Regardons dans var/www/test/ et voyons ce qui est apparu.

# cd /var/www/test
# nano default.vrd

«
<?xml version=«1.0» encoding=«UTF-8»?>
v8.1c.ru/8.2/virtual-resource-system
href="http://www.w3.org/2001/XMLSchema">www.w3.org/2001/XMLSchema
href="http://www.w3.org/2001/XMLSchema-instance">www.w3.org/2001/XMLSchema-instance
base="/Test"
ib="Srvr=192.168.188.150;Ref=Test;">
<standardOdata enable="false"
reuseSessions="autouse"
sessionMaxAge="20"
poolSize="10"
poolTimeout="5"/>

«

Ce sont les schémas nécessaires pour lancer le client web 1C… maintenant, on peut accéder à notre base de test via le navigateur à l'adresse «http ://AdresseServeur/Test» (la casse est importante ! c'est Linux) ou spécifier dans le client «type d'emplacement de la base» l'adresse «http ://AdresseServeur/Test», et le client fonctionnera avec la base publiée.

MAIS

Qu'en est-il des services web ? (dans ma configuration de test, il y en a deux : WebBuh pour l'échange de données avec la comptabilité et toplog intégration avec le système WMS de la société éponyme).

Eh bien, ajoutons quelques lignes dans notre fichier vrd…

<?xml version=«1.0» encoding=«UTF-8»?>
v8.1c.ru/8.2/virtual-resource-system
href="http://www.w3.org/2001/XMLSchema">www.w3.org/2001/XMLSchema
href="http://www.w3.org/2001/XMLSchema-instance">www.w3.org/2001/XMLSchema-instance
base=»/TestWeb»
ib=«Srvr=IP_addres;Ref=TestWebServ»>
<standardOdata enable="false"
reuseSessions="autouse"
sessionMaxAge="20"
poolSize="10"
poolTimeout="5"/>

# Вот тут начинается код который публикует веб-сервисы
<point name="WebBuh" # Nom du service web dans le configurateur
alias="Web_buh.1cws" # Web_buh.1cws - alias du service web dans le navigateur
enable="true" # Je pense que les lignes suivantes sont claires
reuseSessions="autouse"
sessionMaxAge="20"
poolSize="10"
poolTimeout="5"/>
<point name="TopLog" # Deuxième service web
alias="toplog.1cws" # toplog.1cws
enable="true"
reuseSessions="autouse"
sessionMaxAge="20"
poolSize="10"
poolTimeout="5"/>

nous allons enregistrer.

Et maintenant notre service web est accessible à l'adresse «http ://AdresseServeur/Test/Web_buh.1cws?»

Pourquoi fallait-il faire cela manuellement ?

Étant donné que notre serveur est sans interface graphique, il n'est pas possible de lancer le configurateur dessus, et par conséquent, d'exécuter la publication avec les moyens standards. Le configurateur à distance, installé sur le client, ne publie pas les services web sur le serveur. C'est pourquoi nous devons modifier la configuration manuellement selon le modèle décrit ci-dessus.

Script pour générer .vrd — merci TihonV

Source : habr.com

Acheter un hébergement fiable pour les sites avec protection DDoS, serveurs VPS VDS 🔥 Acheter un hébergement fiable pour les sites avec protection DDoS, serveurs VPS VDS | ProHoster