Wir bauen einen 1c-Server mit Veröffentlichung einer Datenbank und Webdiensten unter Linux auf

Wir bauen einen 1c-Server mit Veröffentlichung einer Datenbank und Webdiensten unter Linux auf

Heute möchte ich Ihnen erzählen, wie Sie mit der Veröffentlichung von Webdiensten einen 1c-Server unter Linux Debian 9 einrichten.

Was sind 1C-Webdienste?

Internetdienste ist einer der Plattformmechanismen, die für die Integration mit anderen Informationssystemen verwendet werden. Es ist ein Mittel zur Unterstützung von SOA (Service-Oriented Architecture), einer serviceorientierten Architektur, die einen modernen Standard für die Integration von Anwendungen und Informationssystemen darstellt. Im Wesentlichen handelt es sich dabei um die Möglichkeit, eine HTML-Seite mit Daten zu erstellen, auf die dann jede andere Anwendung zugreifen und sie abrufen kann.

Vorteile – es funktioniert schnell (auch bei einer relativ großen Datenmenge) und ist relativ praktisch.

Nachteile – Ihr 1C-Programmierer wird Sie viel und lange beschimpfen, während er einen Webdienst für Ihre Datenbank schreibt. Beim Schreiben ist die Sache sehr eigenartig.

Ich werde dir nicht sagen, wie man schreibt Internetservice... Ich erkläre Ihnen, wie Sie es über die Serverkonsole unter Linux veröffentlichen und wie Sie den 1C-Server unter Linux installieren.

Und so haben wir Debian 9 Netinst, fangen wir an:

Installieren Sie PostgresPro (Bitte beachten Sie, dass es nicht kostenlos ist und nur verteilt wird, um sich mit den Funktionen vertraut zu machen):

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

Sagen wir postgresql, dass es alle Adressen abhören soll und nicht nur localhost

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

Lassen Sie uns auskommentieren und ändern, welche Adressen angehört werden sollen:

...
#listen_addresses = 'localhost'
...

Auf

...
listen_addresses = '*'
...

Als nächstes erlauben wir Benutzern aus unserem Netzwerk, sich anzumelden

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

Lass uns ändern:

# Lokale IPv4-Verbindungen:
hosten alle alle 127.0.0.1/32 md5

auf

hosten alle alle 192.168.188.0/24 md5
hosten alle alle 127.0.0.1/32 md5

Sie können mehr über verschiedene Postgres-Installationen für 1c lesen hier.

Als nächstes installieren wir den 1c-Server.

Laden Sie das von der 1c-Website heruntergeladene Archiv 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 *.deb

noch ein paar Kleinigkeiten:

# apt install imagemagick unixodbc libgsf-bin

Jetzt installieren wir Apache2

# apt install apache2

Über die Administrationskonsole oder über den 1c-Client erstellen wir eine Datenbank und laden unsere Konfiguration hoch...

Jetzt veröffentlichen wir die Datenbank:

Gehen Sie zum Ordner mit 1s.

# 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

Gehen wir zu var/www/test/ und sehen, was dort erscheint.

# cd /var/www/test
# nano default.vrd

«

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 Schemata, die zum Starten des 1c-Webclients erforderlich sind. Jetzt können Sie über einen Browser unter der Adresse „http://ServerAddress/Test“ (Groß-/Kleinschreibung ist wichtig! Dies ist Linux) zu unserer Testdatenbank gehen oder diese angeben Geben Sie im Client die Adresse „Datenbankstandorttyp“ „http://ServerAddress/Test“ ein und der Client arbeitet mit der veröffentlichten Datenbank.

ABER

Was ist mit Webdiensten? (In meiner Testkonfiguration gibt es zwei davon: WebBuh für den Datenaustausch mit der Buchhaltung und Toplog-Integration mit dem WMS-System der gleichnamigen Firma).

Nun, fügen wir unserer vrd-Datei ein paar Zeilen hinzu ...


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" # Имя веб-сервиса в конфигураторе
alias="Web_buh.1cws" # Web_buh.1cws - алиас веб-сервиса в браузере
enable="true" # дальше я думаю строки и так понятны
reuseSessions="autouse"
sessionMaxAge="20"
poolSize="10"
poolTimeout="5"/>
<point name="TopLog" # второй веб сервис
alias="toplog.1cws" # toplog.1cws
enable="true"
reuseSessions="autouse"
sessionMaxAge="20"
poolSize="10"
poolTimeout="5"/>

lass es uns speichern.

Und jetzt ist unser Webservice unter „http://ServerAddress/Test/Web_buh.1cws“ verfügbar?

Warum musste man das von Hand machen?

Da unser Server über keine grafische Shell verfügt, ist es nicht möglich, den Konfigurator darauf auszuführen und dementsprechend mit Standardmitteln zu veröffentlichen. Der Remote-Konfigurator, der sich auf dem Client befindet, veröffentlicht keine Webdienste auf dem Server. Daher müssen wir die Konfiguration manuell gemäß der oben beschriebenen Vorlage bearbeiten.

Skript zum Generieren von .vrd - Danke TihonV

Source: habr.com

Kommentar hinzufügen