
Heute möchte ich Ihnen zeigen, wie man einen 1C-Server auf Linux Debian 9 mit der Veröffentlichung von Webdiensten einrichtet.
Was sind 1C-Webservices?
sind einer der Mechanismen der Plattform, die für die Integration mit anderen Informationssystemen verwendet werden. Sie unterstützen SOA (Service-Oriented Architecture) – eine serviceorientierte Architektur, die als zeitgemäßer Standard für die Integration von Anwendungen und Informationssystemen gilt. Im Grunde genommen handelt es sich um die Möglichkeit, eine HTML-Seite mit Daten zu erstellen, auf die dann von anderen Anwendungen zugegriffen werden kann.
Vorteile – funktioniert schnell (selbst bei relativ großen Datenmengen) und ist relativ benutzerfreundlich.
Nachteile – Ihr 1C-Programmierer wird viel und lange über Sie nörgeln, während er den Webservice für Ihre Datenbank schreibt. Die Erstellung ist eine sehr besondere Herausforderung.
Ich werde nicht erklären, wie man einen schreibt... Ich werde erklären, wie man ihn aus der Serverkonsole unter Linux veröffentlicht und etwas über die Installation des 1C-Servers auf Linux erzählen.
Also, wir haben Debian 9 netinst, beginnen wir:
Wir installieren PostgresPro (bitte beachten Sie, dass es nicht kostenlos ist und nur im Rahmen einer Testversion verbreitet wird):
# 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 'ВашПароль';"Lassen Sie uns Postgresql so konfigurieren, dass es auf allen Adressen und nicht nur auf localhost hört.
# nano /var/lib/pgpro/std-11/data/postgresql.confWir kommentieren die entsprechenden Zeilen aus und ändern die Adressen, auf denen gehört werden soll:
…
#listen_addresses = ‘localhost’
…
Auf
…
listen_addresses = '*'
…
Als nächstes erlauben wir Benutzern aus unserem Netzwerk die Authentifizierung.
# nano /var/lib/pgpro/std-11/data/pg_hba.confÄndern wir:
# IPv4 local connections:
host all all 127.0.0.1/32 md5
findet man
host all all 192.168.188.0/24 md5
host all all 127.0.0.1/32 md5
Weitere Informationen zu verschiedenen Postgres-Installationen für 1C finden Sie hier. .
Jetzt installieren wir den 1C-Server.
Laden Sie das Archiv von der 1C-Website auf den Server hoch (in meinem Fall deb64_8_3_15_1534.tar.gz).
# tar -xzf deb64_8_3_15_1534.tar.gz
# dpkg -i *.debEinige weitere Kleinigkeiten:
# apt install imagemagick unixodbc libgsf-binJetzt installieren wir Apache2.
# apt install apache2Erstellen Sie über die Verwaltungs-Konsole oder den 1C-Client eine Datenbank und laden Sie unsere Konfiguration hoch…
Jetzt veröffentlichen wir die Datenbank:
Wechseln Sie in das Verzeichnis von 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.confGehen Sie zu var/www/test/ und überprüfen Sie, was dort erstellt wurde.
# cd /var/www/test# nano default.vrd«
<?xml version=«1.0» encoding=«UTF-8»?>
v8.1c.ru/8.2/virtual-resource-system
www.w3.org/2001/XMLSchema
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"/>
«
Dies sind die notwendigen Schemata, um den Web-Client 1C zu starten... Jetzt kann auf unsere Testdatenbank über den Browser unter der Adresse „http://ServerAdresse/Test“ (Groß-/Kleinschreibung ist wichtig! Es ist schließlich Linux) zugegriffen werden, oder man kann im Client im Feld „Standorttyp“ die Adresse „http://ServerAdresse/Test“ angeben, und der Client wird mit der veröffentlichten Datenbank verbunden.
ABER
Was ist mit den Web-Diensten? (In meiner Testkonfiguration gibt es zwei: WebBuh für den Datenaustausch mit der Buchhaltung und die toplog-Integration mit dem gleichnamigen WMS-System).
Nun, fügen wir ein paar Zeilen in unsere vrd-Datei ein…
<?xml version=«1.0» encoding=«UTF-8»?>
v8.1c.ru/8.2/virtual-resource-system
www.w3.org/2001/XMLSchema
www.w3.org/2001/XMLSchema-instance
base="/TestWeb"
ib="Srvr=IP_Adresse;Ref=TestWebServ">
<standardOdata enable="false"
reuseSessions="autouse"
sessionMaxAge="20"
poolSize="10"
poolTimeout="5"/>
# Вот тут начинается код который публикует веб-сервисы
<point name="WebBuh" # Name des Webdienstes im Konfigurator
alias="Web_buh.1cws" # Web_buh.1cws - Alias des Webdienstes im Browser
enable="true" # Ich denke, die folgenden Zeilen sind selbsterklärend
reuseSessions="autouse"
sessionMaxAge="20"
poolSize="10"
poolTimeout="5"/>
<point name="TopLog" # Zweiter Webdienst
alias="toplog.1cws" # toplog.1cws
enable="true"
reuseSessions="autouse"
sessionMaxAge="20"
poolSize="10"
poolTimeout="5"/>
lassen Sie es uns speichern.
Und jetzt ist unser Web-Service unter der Adresse „http://ServerAdresse/Test/Web_buh.1cws“ verfügbar.
Warum musste das manuell gemacht werden?
Da unser Server keine grafische Benutzeroberfläche hat, können wir den Konfigurator nicht darauf starten und somit die Veröffentlichung mit den Standardmitteln nicht durchführen. Der Remote-Konfigurator, der auf dem Client läuft, veröffentlicht keine Web-Dienste auf dem Server. Deshalb müssen wir die Konfiguration manuell nach dem oben beschriebenen Muster bearbeiten.
— Danke
Quelle: habr.com
