Nous élevons un serveur 1c avec la publication d'une base de données et de services Web sous Linux

Nous élevons un serveur 1c avec la publication d'une base de données et de services Web sous Linux

Aujourd'hui, je voudrais vous expliquer comment mettre en place un serveur 1c sur Linux Debian 9 avec la publication de services web.

Que sont les services Web 1C ?

services Web est l'un des mécanismes de plateforme utilisés pour l'intégration avec d'autres systèmes d'information. C'est un moyen de supporter la SOA (Service-Oriented Architecture), une architecture orientée services qui constitue un standard moderne d'intégration d'applications et de systèmes d'information. Il s'agit essentiellement de la possibilité de créer une page HTML avec des données, qui peuvent ensuite être consultées par n'importe quelle autre application et récupérées.

Avantages - cela fonctionne rapidement (même avec une quantité de données assez importante) et est relativement pratique.

Inconvénients - votre programmeur 1C se plaindra beaucoup et pendant longtemps pendant qu'il écrit un service Web pour votre base de données. La chose est très particulière dans l’écriture.

Je ne te dirai pas comment écrire service Web... Je vais vous expliquer comment le publier sous Linux à partir de la console du serveur, et aussi un peu sur l'installation du serveur 1C sous Linux.

Et voilà, nous avons Debian 9 Netinst, commençons :

Installez PostgresPro (Veuillez noter qu'il n'est pas gratuit et qu'il est distribué uniquement dans le cadre de la familiarisation avec les 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 à postgresql d'écouter toutes les adresses et 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 se connecter

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

Changeons:

# Connexions locales IPv4 :
héberger tous tous 127.0.0.1/32 md5

sur

héberger tous tous 192.168.188.0/24 md5
héberger tous tous 127.0.0.1/32 md5

Vous pouvez en savoir plus sur les différentes installations de Postgres pour 1c ici.

Ensuite, nous installons le serveur 1c.

Téléchargez l'archive téléchargée depuis le site Web 1c sur le serveur (dans mon cas, deb64_8_3_15_1534.tar.gz)


# tar -xzf deb64_8_3_15_1534.tar.gz

# dpkg -i *.deb

encore quelques petites choses :

# apt install imagemagick unixodbc libgsf-bin

Maintenant, installons Apache2

# apt install apache2

Via la console d'administration ou via le client 1c, nous créons une base de données et téléchargeons notre configuration...

Maintenant, nous publions la base de données :

allez dans le dossier avec 1s.

# 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

Allons sur var/www/test/ et voyons ce qui y apparaît.

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

«

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 activer="false"
réutilisationSessions="utilisation automatique"
sessionMaxAge="20"
poolSize="10"
poolTimeout="5"/>

«

Ce sont les schémas nécessaires pour lancer le client web 1c... vous pouvez désormais accéder à notre base de données de test depuis un navigateur à l'adresse « http://ServerAddress/Test » (la casse est importante ! c'est Linux) ou préciser dans le client, l'adresse « type d'emplacement de base de données » « http://ServerAddress/Test", et le client travaillera avec la base de données 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 comptabilité et l'intégration de toplog avec le système wms de la société du même nom).

Eh bien, ajoutons quelques lignes à notre fichier VRD...


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=adresse_IP;Ref=TestWebServ">
<standardOdata activer="false"
réutilisationSessions="utilisation automatique"
sessionMaxAge="20"
poolSize="10"
poolTimeout="5"/>

# Вот тут начинается код который публикует веб-сервисы
<point name="WebBuh" # Имя веб-сервиса в конфигураторе
alias="Web_buh.1cws" # Web_buh.1cws - алиас веб-сервиса в браузере
enable="true" # дальше я думаю строки и так понятны
reuseSessions="autouse"
sessionMaxAge="20"
poolSize="10"
poolTimeout="5"/>
<point name="TopLog" # второй веб сервис
alias="toplog.1cws" # toplog.1cws
enable="true"
reuseSessions="autouse"
sessionMaxAge="20"
poolSize="10"
poolTimeout="5"/>

gardons-le.

Et maintenant, notre service Web est disponible sur « http://ServerAddress/Test/Web_buh.1cws ?

Pourquoi as-tu dû le faire à la main ?

Notre serveur ne disposant pas de shell graphique, il ne sera pas possible d'y exécuter le configurateur, et donc de publier par des moyens standards. Le configurateur distant, situé sur le client, ne publie pas de services web sur le serveur. Par conséquent, 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

Ajouter un commentaire