
Oggi vorrei parlare di come avviare un server 1C su Linux Debian 9 con la pubblicazione di servizi web.
Cosa sono i servizi web 1C?
— sono uno dei meccanismi della piattaforma, utilizzati per l'integrazione con altri sistemi informativi. Sono uno strumento di supporto per l'architettura orientata ai servizi (SOA) — un'architettura orientata ai servizi che è uno standard moderno per l'integrazione di applicazioni e sistemi informativi. In sostanza, è la possibilità di creare una pagina HTML con dati, a cui poi è possibile accedere da qualsiasi altra applicazione e recuperarli.
Vantaggi — funziona rapidamente (anche con un volume di dati piuttosto grande), relativamente comodo.
Svantaggi — il tuo programmatore 1C si lamenterà molto e a lungo mentre scrive il servizio web per il tuo database. È una cosa molto particolare da scrivere.
Non parlerò di come scrivere … parlerò di come pubblicarlo su Linux dalla console del server, e anche un po' sull'installazione del server 1C su Linux.
Allora, abbiamo Debian 9 netinst, iniziamo:
Installiamo PostgresPro (Si noti che non è gratuito e viene distribuito solo nell'ambito della familiarizzazione con le funzionalità):
# 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 'ВашПароль';"Diciamo che PostgreSQL ascolti tutti gli indirizzi anziché solo localhost
# nano /var/lib/pgpro/std-11/data/postgresql.confDecommentiamo e cambiamo quali indirizzi ascoltare:
…
#listen_addresses = ‘localhost’
…
A
…
listen_addresses = ‘*’
…
Successivamente, consentiamo agli utenti della nostra rete di autenticarsi
# nano /var/lib/pgpro/std-11/data/pg_hba.confModifichiamo:
# IPv4 local connections:
host all all 127.0.0.1/32 md5
in
host all all 192.168.188.0/24 md5
host all all 127.0.0.1/32 md5
Per ulteriori informazioni sulle diverse installazioni di Postgres per 1C, si può leggere .
Successivamente installiamo il server 1C.
Carichiamo sul server l'archivio scaricato dal sito di 1C (nel mio caso deb64_8_3_15_1534.tar.gz)
# tar -xzf deb64_8_3_15_1534.tar.gz
# dpkg -i *.debancora un paio di dettagli:
# apt install imagemagick unixodbc libgsf-binOra installiamo Apache2
# apt install apache2Dalla console di amministrazione o tramite il client 1C creiamo il database e carichiamo la nostra configurazione…
Ora pubblichiamo il database:
andiamo nella cartella di 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.confAndiamo in var/www/test/ e vediamo cosa è apparso.
# 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"/>
«
Questi sono gli schemi necessari per avviare il client web 1C... ora è possibile accedere al nostro database di test tramite il browser all'indirizzo «http ://IndirizzoServer/Test» (rispettare le maiuscole! è Linux) oppure specificare nel client il «tipo di posizione del database» all'indirizzo «http ://IndirizzoServer/Test», e il client funzionerà con il database pubblicato.
MA
E riguardo ai web service? (nella mia configurazione di test ce ne sono due: WebBuh per lo scambio di dati con la contabilità e toplog integrazione con il sistema wms della stessa azienda).
Bene, aggiungiamo un paio di righe al nostro file 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" # Nome del servizio web nel configuratore
alias="Web_buh.1cws" # Web_buh.1cws - alias del servizio web nel browser
enable="true" # penso che le righe seguenti siano già chiare
reuseSessions="autouse"
sessionMaxAge="20"
poolSize="10"
poolTimeout="5"/>
<point name="TopLog" # secondo servizio web
alias="toplog.1cws" # toplog.1cws
enable="true"
reuseSessions="autouse"
sessionMaxAge="20"
poolSize="10"
poolTimeout="5"/>
salviamo.
E ora il nostro web service è disponibile all'indirizzo «http ://IndirizzoServer/Test/Web_buh.1cws?»
Perché dovevamo farlo manualmente?
Poiché il nostro server non ha un'interfaccia grafica, non è possibile avviare il configuratore su di esso, e di conseguenza eseguire la pubblicazione con i mezzi standard. Il configuratore remoto, che è installato sul client, non pubblica i web service sul server. Pertanto, dobbiamo modificare il config manualmente secondo il modello descritto sopra.
— grazie
Fonte: habr.com
