Σήμερα θα ήθελα να σας πω πώς να ρυθμίσετε έναν διακομιστή 1c στο Linux Debian 9 με τη δημοσίευση υπηρεσιών web.
Τι είναι οι υπηρεσίες ιστού 1C;
Πλεονεκτήματα - λειτουργεί γρήγορα (ακόμη και με αρκετά μεγάλο όγκο δεδομένων) και είναι σχετικά βολικό.
Μειονεκτήματα - ο προγραμματιστής σας 1C θα σας γκρινιάζει πολύ και για πολύ ενώ γράφει μια υπηρεσία web για τη βάση δεδομένων σας. Το πράγμα είναι πολύ περίεργο στη γραφή.
Δεν θα σου πω πώς να γράψεις
Και έτσι, έχουμε το debian 9 netinst, ας ξεκινήσουμε:
Εγκαταστήστε το PostgresPro (Λάβετε υπόψη ότι δεν είναι δωρεάν και διανέμεται μόνο ως μέρος της εξοικείωσης με τις δυνατότητες):
# 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 'ВашПароль';"
Ας πούμε στην postgresql να ακούει όλες τις διευθύνσεις και όχι μόνο τον localhost
# nano /var/lib/pgpro/std-11/data/postgresql.conf
Ας αφαιρέσουμε το σχόλιο και ας αλλάξουμε ποιες διευθύνσεις θα ακούσουμε:
...
#listen_addresses = 'localhost'
...
Επί
...
listen_addresses = '*'
...
Στη συνέχεια, ας επιτρέψουμε στους χρήστες από το δίκτυό μας να συνδεθούν
# nano /var/lib/pgpro/std-11/data/pg_hba.conf
Ας αλλάξουμε:
# Τοπικές συνδέσεις IPv4:
φιλοξενεί όλα τα 127.0.0.1/32 md5
επί
φιλοξενεί όλα τα 192.168.188.0/24 md5
φιλοξενεί όλα τα 127.0.0.1/32 md5
Μπορείτε να διαβάσετε περισσότερα για διάφορες εγκαταστάσεις Postgres για 1c
Στη συνέχεια εγκαθιστούμε διακομιστή 1c.
Ανεβάστε το αρχείο που κατεβάσατε από τον ιστότοπο 1c στον διακομιστή (στην περίπτωσή μου deb64_8_3_15_1534.tar.gz)
# tar -xzf deb64_8_3_15_1534.tar.gz
# dpkg -i *.deb
μερικά ακόμη μικρά πράγματα:
# apt install imagemagick unixodbc libgsf-bin
Τώρα ας εγκαταστήσουμε το Apache2
# apt install apache2
Μέσω της κονσόλας διαχείρισης ή μέσω του προγράμματος-πελάτη 1c, δημιουργούμε μια βάση δεδομένων και ανεβάζουμε τη διαμόρφωσή μας...
Τώρα δημοσιεύουμε τη βάση δεδομένων:
μεταβείτε στο φάκελο με 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
Ας πάμε στο var/www/test/ και ας δούμε τι εμφανίζεται εκεί.
# 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”
βάση=”/Δοκιμή”
ib="Srvr=192.168.188.150;Ref=Test;">
<standardOdata enable="false"
reuseSessions="autouse"
sessionMaxAge="20"
poolSize="10"
poolTimeout="5"/>
«
Αυτά είναι τα σχήματα που χρειάζονται για την εκκίνηση του προγράμματος-πελάτη ιστού 1c... τώρα μπορείτε να μεταβείτε στη δοκιμαστική βάση δεδομένων μας από ένα πρόγραμμα περιήγησης στη διεύθυνση "http://ServerAddress/Test" (η περίπτωση είναι σημαντική! αυτό είναι το Linux) ή να καθορίσετε στον υπολογιστή-πελάτη τη διεύθυνση «τύπος τοποθεσίας βάσης δεδομένων» « http://ServerAddress/Test», και ο πελάτης θα συνεργαστεί με τη δημοσιευμένη βάση δεδομένων.
ΑΛΛΑ
Τι γίνεται με τις υπηρεσίες Ιστού; (στη δοκιμαστική μου διαμόρφωση υπάρχουν δύο από αυτά: WebBuh για ανταλλαγή δεδομένων με λογιστική και ενσωμάτωση toplog με το σύστημα wms της ομώνυμης εταιρείας).
Λοιπόν, ας προσθέσουμε μερικές γραμμές στο αρχείο 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="/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"/>
ας το σώσουμε.
Και τώρα η υπηρεσία ιστού μας είναι διαθέσιμη στη διεύθυνση "http://ServerAddress/Test/Web_buh.1cws?"
Γιατί έπρεπε να το κάνεις με το χέρι;
Δεδομένου ότι ο διακομιστής μας δεν διαθέτει γραφικό κέλυφος, δεν θα είναι δυνατή η εκτέλεση του διαμορφωτή σε αυτό και, κατά συνέπεια, η δημοσίευση χρησιμοποιώντας τυπικά μέσα. Ο απομακρυσμένος διαμορφωτής, ο οποίος βρίσκεται στον υπολογιστή-πελάτη, δεν δημοσιεύει υπηρεσίες web στο διακομιστή. Επομένως, πρέπει να επεξεργαστούμε τις ρυθμίσεις με μη αυτόματο τρόπο σύμφωνα με το πρότυπο που περιγράφεται παραπάνω.
Πηγή: www.habr.com