
Heute möchte ich darüber sprechen, wie man einen 1C-Server auf Linux Debian 9 mit der Veröffentlichung von Webdiensten einrichtet.
Was sind 1C-Webdienste?
sind eines der Mechanismen der Plattform, die zur Integration mit anderen Informationssystemen verwendet werden. Es ist ein Mittel zur Unterstützung von SOA (Service-Oriented Architecture) – einer serviceorientierten Architektur, die der moderne Standard für die Integration von Anwendungen und Informationssystemen ist. Im Wesentlichen ist es die Möglichkeit, eine HTML-Seite mit Daten zu erstellen, auf die dann jede andere Anwendung zugreifen und diese abrufen kann.
Vorteile – es funktioniert schnell (auch bei relativ großen Datenmengen), ist relativ benutzerfreundlich.
Nachteile – Ihr 1C-Programmierer wird lange und oft über Sie schimpfen, während er den Webdienst für Ihre Datenbank schreibt. Es ist ein sehr spezielles Unterfangen.
Ich werde nicht erklären, wie man einen schreibt … ich werde erklären, wie man ihn auf Linux über die Serverkonsole veröffentlicht, sowie ein wenig über die Installation des 1C-Servers auf Linux.
Also, wir haben Debian 9 Netinst, beginnen wir:
Wir installieren PostgresPro (Ich möchte darauf hinweisen, dass es nicht kostenlos ist und nur im Rahmen einer Einführung in die Möglichkeiten verteilt 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 'ВашПароль';"Nehmen wir an, PostgreSQL soll auf alle Adressen und nicht nur auf localhost hören.
# nano /var/lib/pgpro/std-11/data/postgresql.confWir kommentieren aus und ändern, auf welche Adressen gehört werden soll:
…
#listen_addresses = ‘localhost’
…
Auf
…
listen_addresses = '*'
…
Danach erlauben wir Benutzern aus unserem Netzwerk, sich anzumelden.
# nano /var/lib/pgpro/std-11/data/pg_hba.confWir ändern:
# IPv4 local connections:
host all all 127.0.0.1/32 md5
auf
host all all 192.168.188.0/24 md5
host all all 127.0.0.1/32 md5
Über verschiedene Installationen von Postgres für 1C kann man ausführlicher lesen. .
Danach installieren wir den 1C-Server.
Wir laden das Archiv, das von der 1C-Website heruntergeladen wurde, 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 *.debNoch ein paar Kleinigkeiten:
# apt install imagemagick unixodbc libgsf-binJetzt installieren wir Apache2.
# apt install apache2Über die Administrationskonsole oder den 1C-Client erstellen wir die Datenbank und laden unsere Konfiguration hoch …
Jetzt veröffentlichen wir die Datenbank:
Wir wechseln in den Ordner mit 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.confWir gehen in var/www/test/ und schauen, was dort erschienen ist.
# 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"/>
«
Dies sind die Schemas, die notwendig sind, um den Web-Client von 1C zu starten... jetzt kann man auf unsere Testdatenbank über den Browser unter der Adresse „http://ServerAdresse/Test“ zugreifen (die Groß-/Kleinschreibung ist wichtig! Es handelt sich um Linux) oder im Client „Typ der Datenbankposition“ die Adresse „http://ServerAdresse/Test“ angeben, und der Client wird mit der veröffentlichten Datenbank arbeiten.
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 WMS-System des gleichnamigen Unternehmens).
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
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_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"/>
speichern wir.
Und jetzt ist unser Web-Dienst unter der Adresse „http://ServerAdresse/Test/Web_buh.1cws?“ verfügbar.
Warum musste man das von Hand machen?
Da unser Server ohne grafische Oberfläche ist, kann der Konfigurator nicht gestartet werden, und entsprechend kann die Veröffentlichung mit den Standardmitteln nicht ausgeführt werden. Der entfernte Konfigurator, der auf dem Client steht, veröffentlicht die Web-Dienste jedoch nicht auf dem Server. Deshalb müssen wir die Konfiguration manuell nach dem oben beschriebenen Muster anpassen.
— danke
Quelle: habr.com
