
Astăzi aș dori să vă vorbesc despre cum să ridicați un server 1C pe Linux Debian 9 cu publicarea serviciilor web.
Ce sunt serviciile web 1C?
sunt unul dintre mecanismele platformei utilizate pentru integrarea cu alte sisteme informatice. Acesta este un mijloc de susținere a SOA (Service-Oriented Architecture) - arhitectura orientată pe servicii, care este standardul modern pentru integrarea aplicațiilor și sistemelor informaționale. Practic, este posibilitatea de a crea o pagină HTML cu date, la care apoi se poate accesa din orice altă aplicație pentru a le lua.
Avantaje - funcționează rapid (chiar și cu un volum destul de mare de date), relativ convenabil.
Dezavantaje - programatorul dumneavoastră 1C va fi foarte nerăbdător și va avea mult de comentat în timp ce scrie serviciul web pentru baza dumneavoastră. Este un lucru foarte specific în ceea ce privește scrierea.
Nu voi explica cum să scriu … voi explica cum să-l publicați pe Linux din consola serverului, precum și câteva informații despre instalarea serverului 1C pe Linux.
Așadar, avem Debian 9 netinst, să începem:
Instalăm PostgresPro (Vă rog să observați că nu este gratuit și se distribuie doar în cadrul familiarizării cu funcționalitățile):
# 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 'ВашПароль';"Să spunem că PostgreSQL ascultă pe toate adresele, nu doar pe localhost.
# nano /var/lib/pgpro/std-11/data/postgresql.confDezcomentăm și schimbăm ce adrese să asculte:
…
#listen_addresses = ‘localhost’
…
Pe
…
listen_addresses = '*'
…
Apoi, vom permite utilizatorilor din rețeaua noastră să se autentifice.
# nano /var/lib/pgpro/std-11/data/pg_hba.confSchimbăm:
# IPv4 local connections:
host all all 127.0.0.1/32 md5
pe
host all all 192.168.188.0/24 md5
host all all 127.0.0.1/32 md5
Mai multe detalii despre diferitele instalări Postgres pentru 1C pot fi citite. .
Apoi, instalăm serverul 1C.
Încărcăm pe server arhiva descărcată de pe site-ul 1C (în cazul meu deb64_8_3_15_1534.tar.gz)
# tar -xzf deb64_8_3_15_1534.tar.gz
# dpkg -i *.debîncă câteva detalii:
# apt install imagemagick unixodbc libgsf-binAcum instalăm Apache2.
# apt install apache2Prin consola de administrare sau prin clientul 1C, creăm baza de date și încărcăm configurația noastră...
Acum publicăm baza de date:
trecem în folderul cu 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.confIntrăm în var/www/test/ și vedem ce a apărut.
# cd /var/www/test# nano default.vrd«
<?xml version=«1.0» encoding=«UTF-8»?>
v8.1c.ro/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"/>
«
Acestea sunt schemele necesare pentru a lansa clientul web 1C… acum putem accesa baza noastră de test din browser la adresa „http ://AdresăServer/Test” (case sensitive! este Linux) sau putem specifica în client „tipul locației bazei” adresa „http ://AdresăServer/Test”, iar clientul va funcționa cu baza publicată.
DAR
Și ce se întâmplă cu serviciile web? (în configurația mea de test, sunt două: WebBuh pentru schimbul de date cu contabilitatea și toplog integrarea cu sistemul wms cu același nume al companiei).
Ei bine, să adăugăm câteva rânduri în fișierul nostru vrd…
<?xml version=«1.0» encoding=«UTF-8»?>
v8.1c.ro/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" # Numele serviciului web în configurator
alias="Web_buh.1cws" # Web_buh.1cws - aliasul serviciului web în browser
enable="true" # cred că liniile de mai sus sunt clare
reuseSessions="autouse"
sessionMaxAge="20"
poolSize="10"
poolTimeout="5"/>
<point name="TopLog" # al doilea serviciu web
alias="toplog.1cws" # toplog.1cws
enable="true"
reuseSessions="autouse"
sessionMaxAge="20"
poolSize="10"
poolTimeout="5"/>
să salvăm.
Și acum serviciul nostru web este disponibil la adresa „http ://AdresăServer/Test/Web_buh.1cws?”
De ce a fost necesar să facem asta manual?
Deoarece serverul nostru nu are interfață grafică, nu putem lansa configuratorul pe el, și prin urmare nu putem publica folosind uneltele standard. Configuratorul de la distanță, care este pe client, nu publică serviciile web pe server. Prin urmare, suntem nevoiți să modificăm manual configurația conform șablonului descris mai sus.
— mulțumesc
Sursa: habr.com
