
Dziś chciałbym opowiedzieć, jak uruchomić serwer 1C na Linux Debian 9 z publikacją usług webowych.
Czym są usługi webowe 1C?
są jednym z mechanizmów platformy, używanych do integracji z innymi systemami informacyjnymi. Stanowią środek wsparcia dla SOA (Architektura Zorientowana na Usługi) — nowoczesnego standardu integracji aplikacji i systemów informacyjnych. W zasadzie jest to możliwość utworzenia strony HTML z danymi, która później może być wywołana przez inne aplikacje w celu ich pobrania.
Zalety — działa szybko (nawet przy stosunkowo dużych ilościach danych), jest stosunkowo wygodne.
Wady — twój programista 1C będzie narzekał przez długi czas podczas pisania usługi webowej dla twojej bazy. To bardzo specyficzna kwestia.
Nie będę mówił, jak napisać ... opowiem jak ją opublikować na Linuxie z konsoli serwera oraz trochę o instalacji serwera 1C na Linuxie.
A więc, mamy Debian 9 netinst, przystępujemy do działania:
Instalujemy PostgresPro (proszę zauważyć, że nie jest darmowy i udostępniany jest jedynie w ramach zapoznania się z możliwościami):
# 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 'ВашПароль';"Załóżmy, że PostgreSQL nasłuchuje na wszystkich adresach, a nie tylko na localhost.
# nano /var/lib/pgpro/std-11/data/postgresql.confOdkomentujemy i zmienimy, na jakie adresy nasłuchujemy:
…
#listen_addresses = ‘localhost’
…
Na
…
listen_addresses = '*'
…
Następnie zezwalamy użytkownikom z naszej sieci na autoryzację
# nano /var/lib/pgpro/std-11/data/pg_hba.confZmienić na:
# IPv4 local connections:
host all all 127.0.0.1/32 md5
na
host all all 192.168.188.0/24 md5
host all all 127.0.0.1/32 md5
Więcej informacji o różnych instalacjach Postgres dla 1C można znaleźć .
Następnie instalujemy serwer 1C.
Przekazujemy na serwer archiwum pobrane ze strony 1C (w moim przypadku deb64_8_3_15_1534.tar.gz)
# tar -xzf deb64_8_3_15_1534.tar.gz
# dpkg -i *.debjeszcze kilka drobnych spraw:
# apt install imagemagick unixodbc libgsf-binTeraz instalujemy Apache2
# apt install apache2Za pomocą konsoli administracyjnej lub przez klienta 1C tworzymy bazę i wgrywamy naszą konfigurację…
Teraz publikujemy bazę:
przechodzimy do folderu z 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.confWchodzimy do var/www/test/ i sprawdzamy, co tam się pojawiło.
# 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»/>
«
To jest schematy potrzebne do uruchomienia klienta internetowego 1C… teraz można uzyskać dostęp do naszej bazy testowej za pomocą przeglądarki pod adresem „http://AdresSerwera/Test” (ważna jest wielkość liter! to przecież Linux) lub wskazać w kliencie „typ lokalizacji bazy” adres „http://AdresSerwera/Test”, a klient będzie pracował z opublikowaną bazą.
NIE
A co z usługami internetowymi? (w mojej testowej konfiguracji są dwie: WebBuh do wymiany danych z księgowością oraz toplog integracja z systemem WMS tej samej firmy).
Cóż, dodamy kilka wierszy do naszego pliku 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="/TestWeb"
ib=«Srvr=IP_addres;Ref=TestWebServ»>
<standardOdata enable=«false»
reuseSessions=«autouse»
sessionMaxAge=«20»
poolSize=«10»
poolTimeout=«5»/>
# Вот тут начинается код который публикует веб-сервисы
<point name="WebBuh" # Nazwa usługi web w konfiguratorze
alias="Web_buh.1cws" # Web_buh.1cws - alias usługi web w przeglądarce
enable="true" # dalej myślę, że linie są zrozumiałe
reuseSessions="autouse"
sessionMaxAge="20"
poolSize="10"
poolTimeout="5"/>
<point name="TopLog" # drugi serwis web
alias="toplog.1cws" # toplog.1cws
enable="true"
reuseSessions="autouse"
sessionMaxAge="20"
poolSize="10"
poolTimeout="5"/>
zapiszmy.
A teraz nasza usługa internetowa jest dostępna pod adresem „http://AdresSerwera/Test/Web_buh.1cws?”
Dlaczego było to konieczne robić ręcznie?
Ponieważ nasz serwer nie ma graficznego interfejsu, uruchomienie na nim konfiguratora – nie jest możliwe, a tym samym wykonanie publikacji standardowymi środkami. Zdalny konfigurator, który działa na kliencie, nie publikuje na serwerze usług internetowych. Dlatego musimy edytować konfigurację ręcznie według wzoru opisanego powyżej.
– dziękuję
Źródło: habr.com
