Сьогодні я хотів би розповісти, як підняти сервер 1с на linux debian 9 з публікацією web-сервісів.
Що таке web-сервіси 1с?
Плюси — працює швидко (навіть за досить великого обсягу даних), відносно зручно.
Мінуси - ваш програміст 1с буде багато і довго на вас бурчати, доки писатиме веб-сервіс для вашої бази. Штука дуже своєрідна у написанні.
Я не розповідатиму як написати
І так, у нас є 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?"
Навіщо треба було це робити руками?
Оскільки наш сервер без графічної оболонки, запустити на ньому конфігуратор — не вийде, і виконати публікацію штатними засобами. Видалений конфігуратор, який стоїть на клієнті не публікує на сервері веб-сервіси. Тому нам доводиться правити конфіг вручну за описаним вище шаблоном.
Джерело: habr.com