Піднімаємо сервер 1с з публікацією бази та веб-сервісів на Linux

Піднімаємо сервер 1с з публікацією бази та веб-сервісів на Linux

Сьогодні я хотів би розповісти, як підняти сервер 1с на linux debian 9 з публікацією web-сервісів.

Що таке web-сервіси 1с?

Web-сервіси — це один із механізмів платформи, які використовуються для інтеграції з іншими інформаційними системами. Він є засобом підтримки SOA (Service-Oriented Architecture) - сервіс-орієнтованої архітектури, яка є сучасним стандартом інтеграції додатків та інформаційних систем. По суті - це можливість створити html сторінку з даними, до якої потім можна звернутися будь-яким іншим додатком і забрати їх.

Плюси — працює швидко (навіть за досить великого обсягу даних), відносно зручно.

Мінуси - ваш програміст 1с буде багато і довго на вас бурчати, доки писатиме веб-сервіс для вашої бази. Штука дуже своєрідна у написанні.

Я не розповідатиму як написати веб-сервіс… я розповім як його опублікувати на Linux з консолі сервера, а також трохи про встановлення 1с сервера на Linux.

І так, у нас є 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 local connections:
host all all 127.0.0.1/32 md5

на

host all all 192.168.188.0/24 md5
host all all 127.0.0.1/32 md5

Детальніше про різні установки Postgres для 1с можна почитати тут.

Далі ставимо 1с сервер.

Заливаємо на сервер архів завантажений із сайту 1с (у моєму випадку 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

Через консоль адміністрування або через клієнт 1с створюємо базу та заливаємо нашу конфігурацію.

Тепер публікуємо базу:

переходимо до папки з 1с.

# 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»
base="/Test"
ib=«Srvr=192.168.188.150;Ref=Test;»>
<standardOdata enable=«false»
reuseSessions=«autouse»
sessionMaxAge=«20»
poolSize=«10»
poolTimeout=«5»/>

«

Це схеми, які потрібні для запуску веб-клієнта 1с… тепер до нашої тестової бази можна зайти з браузера за адресою «http://АдресСервера/Test» (реєстр важливий! це ж лінукс) або вказати в клієнті «тип розташування бази» адресу « http://АдресСервера/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://АдресСервера/Test/Web_buh.1cws?"

Навіщо треба було це робити руками?

Оскільки наш сервер без графічної оболонки, запустити на ньому конфігуратор — не вийде, і виконати публікацію штатними засобами. Видалений конфігуратор, який стоїть на клієнті не публікує на сервері веб-сервіси. Тому нам доводиться правити конфіг вручну за описаним вище шаблоном.

Скрипт для генерації. - Дякую TihonV

Джерело: habr.com

Додати коментар або відгук