Поднимаем сервер 1с с публикацией базы и веб-сервисов на Linux.

Поднимаем сервер 1с с публикацией базы и веб-сервисов на Linux.

Днес бих искал да разкажа как да създадете 1С сървър на Linux Debian 9 с публикация на уеб услуги.

Какво представляват уеб услугите 1С?

Уеб услуги — това е един от механизмите на платформата, използвани за интеграция с други информационни системи. Той е средство за поддръжка на 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

«
<?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"/>

«

Тези са схемите, необходими за стартирането на уеб-клиента 1C... Сега можем да влезем в нашата тестова база от браузър на адреса „http://АдресСервера/Test“ (регистърът е важен! то е Линукс) или да укажем в клиента „тип на местоположение на базата“ адреса „http://АдресСервера/Test“, и клиентът ще работи с публикуваната база.

НО

А какво ще кажете за уеб-сервисите? (в моята тестова конфигурация има два: WebBuh за обмен на данни с счетоводството и toplog интеграция с системата wms на същата компания).

Както и да е, добавим няколко реда в нашия 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" # Име на уеб услугата в конфигуратора
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?“

Защо трябваше да направим това на ръка?

Тъй като нашият сървър няма графичен интерфейс, не можем да стартираме конфигуратора на него и следователно не можем да извършим публикацията с обичайните средства. Отдалеченият конфигуратор, който е на клиента, не публикува уеб-сервиси на сървъра. Затова трябва да коригираме конфигурацията ръчно по шаблона, описан по-горе.

Скрипт за генериране на .vrd — благодаря TihonV

Източник: habr.com

Купете надежден хостинг за сайтове със защита от DDoS, VPS и VDS сървъри 🔥 Купете надежден хостинг за сайтове със защита от DDoS, VPS и VDS сървъри | ProHoster