Relever le serveur 1c avec la publication de la base de données et des services web sous Linux

image

Aujourd'hui, je voudrais dire comment augmenter le serveur 1c sur Linux Debian 9 avec la publication de services Web.

Que sont les services Web 1s?

Les services Web sont l'un des mécanismes de plate-forme utilisés pour l'intégration avec d'autres systèmes d'information. C'est un moyen de prendre en charge SOA (Service-Oriented Architecture), une architecture orientée services qui est une norme moderne pour l'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, auxquelles vous pouvez ensuite accéder avec n'importe quelle autre application et les récupérer.

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

Inconvénients - votre programmeur 1s se plaindra de vous beaucoup et pendant longtemps en écrivant un service Web pour votre base de données. La chose est très particulière par écrit.

Je ne dirai pas comment écrire un service Web ... Je dirai comment le publier sur Linux à partir de la console du serveur, ainsi qu'un peu d’installation du serveur 1s sur Linux.

Et donc, nous avons debian 9 netinst, procédez comme suit:

Installez PostgresPro (veuillez noter qu'il n'est pas gratuit et n'est distribué que 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 que postgresql écoute toutes les adresses et pas seulement localhost
 # nano /var/lib/pgpro/std-11/data/postgresql.conf 


Décommentez et changez les adresses à écouter:
...
#listen_addresses = 'localhost'
...

Sur
...
listen_addresses = '*'
...


Ensuite, autorisons les utilisateurs de notre réseau
 # nano /var/lib/pgpro/std-11/data/pg_hba.conf 

Changement:
# 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 Postgres pour 1 ici .

Ensuite, nous mettons le serveur 1s.

Nous téléchargeons 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 

quelques petites choses:
 # apt install imagemagick unixodbc libgsf-bin 


Installez maintenant Apache2

 # apt install apache2 


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

Maintenant, nous publions la base:

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 


Nous montons dans var / www / test / et regardons ce qui y est apparu.

 # cd /var/www/test 


 # nano default.vrd 


"
<? xml version = "1.0" encoding = "UTF-8"?>
<point xmlns = " v8.1c.ru/8.2/virtual-resource-system "
xmlns: xs = " www.w3.org/2001/XMLSchema "
xmlns: xsi = " 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 qui sont nécessaires pour démarrer le client Web 1s ... maintenant vous pouvez aller dans notre base de données de test à partir du navigateur à l'adresse "http: // ServerAddress / Test" (le registre est important! C'est Linux) ou spécifiez l'adresse " http: // ServerAddress / Test ”, et le client travaillera avec la base de données publiée.

MAIS

Et qu'en est-il des services Web? (il y en a deux dans ma configuration de test: WebBuh pour l'échange de données avec la comptabilité et l'intégration toplog avec le système wms de la même entreprise).

Eh bien, ajoutez quelques lignes à notre fichier vrd ...

<? xml version = "1.0" encoding = "UTF-8"?>
<point xmlns = " v8.1c.ru/8.2/virtual-resource-system "
xmlns: xs = " www.w3.org/2001/XMLSchema "
xmlns: xsi = " 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" # -
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"/>


enregistrer.

Et maintenant, notre service Web est disponible à l'adresse "http: //AddressServer/Test/Web_buh.1cws?"

Pourquoi avez-vous dû le faire avec vos mains?

Étant donné que notre serveur n'a pas de shell graphique, l'exécution du configurateur sur celui-ci échouera et, par conséquent, la publication à l'aide d'outils standard. Le configurateur distant qui se trouve 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: https://habr.com/ru/post/fr462965/


All Articles