Настройваме сървър 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
www.w3.org/2001/XMLSchema
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 файл...

<?xml version=«1.0» encoding=«UTF-8»?>
v8.1c.ru/8.2/virtual-resource-system
www.w3.org/2001/XMLSchema
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