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