We zetten de 1C-server op met publicatie van de database en webservices op Linux.

We zetten de 1C-server op met publicatie van de database en webservices op Linux.

Vandaag wil ik graag uitleggen hoe je een 1C-server opzet op Linux Debian 9 met publicatie van webservices.

Wat zijn 1C-webservices?

Webservices zijn een van de mechanismen van het platform, gebruikt voor integratie met andere informatiesystemen. Het is een middel ter ondersteuning van SOA (Service-Oriented Architecture) — service-georiënteerde architectuur, die de moderne standaard voor applicatie- en informatiesysteemintegratie is. In wezen is het de mogelijkheid om een HTML-pagina met gegevens te creëren, die later door andere applicaties kan worden benaderd om die gegevens op te halen.

Pluspunten — het werkt snel (zelfs bij een redelijk groot volume aan gegevens), en is relatief gemakkelijk.

Minpunten — je 1C-programmeur zal vaak en lang over je zeuren, terwijl hij de webservice voor jouw database schrijft. Het schrijven ervan is behoorlijk speciaal.

Ik zal niet uitleggen hoe je een webserviceschrijft, maar ik zal uitleggen hoe je deze publiceert op Linux vanuit de serverconsole, en ook iets over de installatie van de 1C-server op Linux.

Dus, we hebben Debian 9 netinst en beginnen:

We installeren PostgresPro (let op dat het niet gratis is en alleen verspreid wordt in het kader van een kennismaking met de mogelijkheden):

# 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 'ВашПароль';"

Laten we zeggen dat PostgreSQL naar alle adressen moet luisteren en niet alleen naar localhost.

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

We verwijderen de commentaar en veranderen welke adressen er geluisterd wordt:

…
#listen_addresses = ‘localhost’
…

Op

…
listen_addresses = '*'
…

Verder zullen we gebruikers uit ons netwerk toegang verlenen.

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

We wijzigen:

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

en een werkende opdracht krijgen.

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

Meer gedetailleerde informatie over verschillende installaties van Postgres voor 1C kan worden gelezen. here.

Vervolgens installeren we de 1C-server.

We uploaden het archief dat we van de 1C-website hebben gedownload (in mijn geval deb64_8_3_15_1534.tar.gz).


# tar -xzf deb64_8_3_15_1534.tar.gz

# dpkg -i *.deb

Nog een paar kleine dingen:

# apt install imagemagick unixodbc libgsf-bin

Laten we nu Apache2 installeren.

# apt install apache2

Via de administratieconsole of via de 1C-client maken we een database en uploaden onze configuratie...

Nu publiceren we de database:

we gaan naar de map met 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

We gaan naar var/www/test/ en kijken wat er is verschenen.

# 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"/>

«

Dit zijn de schema's die nodig zijn voor het starten van de web-client 1C... nu kan er vanuit de browser worden ingelogd op onze testdatabase via het adres ‘http://ServerAdres/Test’ (hoofdlettergebruik is belangrijk! dit is immers Linux) of geef in de client het ‘type database-locatie’ het adres ‘http://ServerAdres/Test’ op en de client zal met de gepubliceerde database werken.

JA

Maar wat betreft webservices? (In mijn testconfiguratie zijn er twee: WebBuh voor gegevensuitwisseling met de administratie en toplog integratie met het WMS-systeem van hetzelfde bedrijf).

Laten we een paar regels toevoegen aan ons vrd-bestand…

<?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_adres;Ref=TestWebServ'>
<standardOdata enable="false"
reuseSessions="autouse"
sessionMaxAge="20"
poolSize="10"
poolTimeout="5"/>

# Вот тут начинается код который публикует веб-сервисы
<point name="WebBuh" # Naam van de webservice in de configurator
alias="Web_buh.1cws" # Web_buh.1cws - alias van de webservice in de browser
enable="true" # verder denk ik dat de regels duidelijk zijn
reuseSessions="autouse"
sessionMaxAge="20"
poolSize="10"
poolTimeout="5"/>
<point name="TopLog" # tweede webservice
alias="toplog.1cws" # toplog.1cws
enable="true"
reuseSessions="autouse"
sessionMaxAge="20"
poolSize="10"
poolTimeout="5"/>

laten we het opslaan.

En nu is onze webservice beschikbaar op het adres ‘http://ServerAdres/Test/Web_buh.1cws?’

Waarom moest dit handmatig worden gedaan?

Aangezien onze server zonder grafische interface is, kunnen we de configurator daar niet draaien, en kunnen we dus de publicatie niet met de standaardtools uitvoeren. De externe configurator, die op de client staat, publiceert geen webservices op de server. Daarom moeten we de configuratie handmatig aanpassen volgens het hierboven beschreven sjabloon.

Script voor het genereren van .vrd — bedankt TihonV

Bron: habr.com

Koop betrouwbare webhosting met bescherming tegen DDoS, VPS VDS servers 🔥 Koop betrouwbare webhosting met bescherming tegen DDoS, VPS VDS servers | ProHoster