
Oggi vorrei spiegare come installare un server 1C su Linux Debian 9 con la pubblicazione di web service.
Cosa sono i web service 1C?
sono uno dei meccanismi della piattaforma utilizzati per l'integrazione con altri sistemi informativi. Rappresentano un mezzo per supportare l'architettura orientata ai servizi (SOA), che è lo standard moderno per l'integrazione di applicazioni e sistemi informativi. Fondamentalmente, offrono la possibilità di creare una pagina HTML con dati, a cui qualsiasi altra applicazione può accedere per recuperarli.
Vantaggi: funziona rapidamente (anche con un volume considerevole di dati) e relativamente è comodo.
Svantaggi: il tuo programmatore 1C si lamenterà molto e a lungo mentre scrive il web service per la tua base. È una questione molto peculiare in termini di scrittura.
Non racconterò come scrivere … parlerò di come pubblicarlo su Linux tramite la console del server, e darò anche alcune informazioni sull'installazione del server 1C su Linux.
Quindi, abbiamo Debian 9 netinst, cominciamo:
Installiamo PostgresPro (Nota bene: 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 e non solo localhost
# nano /var/lib/pgpro/std-11/data/postgresql.confDecommentiamo e cambiamo quali indirizzi ascoltare:
…
#listen_addresses = ‘localhost’
…
Su
…
listen_addresses = ‘*’
…
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
con
host all all 192.168.188.0/24 md5
host all all 127.0.0.1/32 md5
Puoi leggere maggiori dettagli sulle diverse installazioni di Postgres per 1C .
Dopo di che, installiamo il server 1C.
Carichiamo sul server l'archivio scaricato dal sito 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 apache2Attraverso la console di amministrazione o tramite il client 1C, creiamo una base e carichiamo la nostra configurazione...
Ora pubblichiamo la base:
andiamo nella cartella con 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 lì.
# 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 web client 1C… ora è possibile accedere alla nostra base di test dal browser all'indirizzo "http ://IndirizzoServer/Test" (il registro è importante! è Linux) oppure indicare nel client il "tipo di posizionamento della base" con l'indirizzo "http ://IndirizzoServer/Test", e il client funzionerà con la base pubblicata.
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 compagnia omonima).
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 siano 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 è accessibile all'indirizzo "http ://IndirizzoServer/Test/Web_buh.1cws?"
Perché è stato necessario farlo manualmente?
Poiché il nostro server è senza interfaccia grafica, non è possibile avviare il configuratore su di esso, e di conseguenza pubblicare tramite le normali risorse. Inoltre, il configuratore remoto che si trova sul client non pubblica web services sul server. Pertanto, dobbiamo modificare manualmente il file di configurazione seguendo il modello descritto sopra.
— grazie
Fonte: habr.com
