
Днес бих искал да разкажа как да създадете 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?“
Защо трябваше да направим това на ръка?
Тъй като нашият сървър няма графичен интерфейс, не можем да стартираме конфигуратора на него и следователно не можем да извършим публикацията с обичайните средства. Отдалеченият конфигуратор, който е на клиента, не публикува уеб-сервиси на сървъра. Затова трябва да коригираме конфигурацията ръчно по шаблона, описан по-горе.
— благодаря
Източник: habr.com
