Levantamos el servidor 1C con la publicación de la base de datos y servicios web en Linux

Levantamos el servidor 1C con la publicación de la base de datos y servicios web en Linux

Hoy me gustaría hablar sobre cómo levantar un servidor 1C en Linux Debian 9 con la publicación de servicios web.

¿Qué son los servicios web 1C?

Servicios Web son uno de los mecanismos de la plataforma utilizados para la integración con otros sistemas de información. Es un medio para soportar SOA (Arquitectura Orientada a Servicios), que es el estándar moderno para la integración de aplicaciones y sistemas de información. En esencia, es la posibilidad de crear una página HTML con datos a los que luego se puede acceder desde cualquier otra aplicación y obtenerlos.

Pros: funciona rápido (incluso con un volumen de datos bastante grande), relativamente conveniente.

Contras: tu programador 1C se quejará mucho y durante un tiempo mientras escribe el servicio web para tu base de datos. Es algo muy peculiar de programar.

No voy a explicar cómo escribir un servicio web… voy a explicar cómo publicarlo en Linux desde la consola del servidor, así como un poco sobre la instalación del servidor 1C en Linux.

Así que tenemos Debian 9 netinst, empecemos:

Instalamos PostgresPro (Cabe señalar que no es gratuito y se distribuye solo dentro del marco de la familiarización con las capacidades):

# 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 'ВашПароль';"

Digamos que postgresql escuche todas las direcciones y no solo localhost.

# nano /var/lib/pgpro/std-11/data/postgresql.conf

Descomentamos y cambiamos qué direcciones debe escuchar:

…
#listen_addresses = ‘localhost’
…

En

…
listen_addresses = '*'
…

A continuación, permitimos que los usuarios se autentiquen desde nuestra red.

# nano /var/lib/pgpro/std-11/data/pg_hba.conf

Cambiamos:

# IPv4 local connections:
host all all 127.0.0.1/32 md5

en

host all all 192.168.188.0/24 md5
host all all 127.0.0.1/32 md5

Se puede leer más sobre las diversas instalaciones de Postgres para 1C. aquí.

A continuación, instalamos el servidor 1C.

Cargamos en el servidor el archivo descargado desde el sitio web de 1C (en mi caso deb64_8_3_15_1534.tar.gz).


# tar -xzf deb64_8_3_15_1534.tar.gz

# dpkg -i *.deb

Un par de detalles más:

# apt install imagemagick unixodbc libgsf-bin

Ahora instalamos Apache2.

# apt install apache2

A través de la consola de administración o a través del cliente 1C creamos la base y subimos nuestra configuración…

Ahora publicamos la base:

entramos en la carpeta con 1C.

# 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

Vamos a var/www/test/ y vemos qué ha aparecido allí.

# 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"/>

«

Estos son los esquemas necesarios para lanzar el cliente web de 1C… ahora se puede acceder a nuestra base de pruebas desde el navegador a la dirección «http ://DirecciónDelServidor/Test» (¡la capitalización es importante! es Linux) o indicar en el cliente «tipo de ubicación de la base» la dirección «http ://DirecciónDelServidor/Test», y el cliente funcionará con la base publicada.

PERO

¿Y qué hay de los servicios web? (en mi configuración de prueba hay dos: WebBuh para el intercambio de datos con la contabilidad y toplog para la integración con el sistema wms de la misma compañía).

Bien, añadiremos un par de líneas a nuestro archivo 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_dirección;Ref=TestWebServ»>
<standardOdata enable="false"
reuseSessions="autouse"
sessionMaxAge="20"
poolSize="10"
poolTimeout="5"/>

# Вот тут начинается код который публикует веб-сервисы
<point name="WebBuh" # Nombre del servicio web en el configurador
alias="Web_buh.1cws" # Web_buh.1cws - alias del servicio web en el navegador
enable="true" # creo que las siguientes líneas son claras
reuseSessions="autouse"
sessionMaxAge="20"
poolSize="10"
poolTimeout="5"/>
<point name="TopLog" # segundo servicio web
alias="toplog.1cws" # toplog.1cws
enable="true"
reuseSessions="autouse"
sessionMaxAge="20"
poolSize="10"
poolTimeout="5"/>

guardamos.

Y ahora nuestro servicio web está disponible en «http ://DirecciónDelServidor/Test/Web_buh.1cws?»

¿Por qué hubo que hacer esto manualmente?

Dado que nuestro servidor no tiene interfaz gráfica, no se puede iniciar el configurador en él, y, por lo tanto, no se puede realizar la publicación utilizando los medios convencionales. El configurador remoto, que se encuentra en el cliente, no publica servicios web en el servidor. Por eso, tenemos que editar la configuración manualmente según la plantilla descrita anteriormente.

Script para generar .vrd — gracias TihonV

Fuente: habr.com

Compra un hosting fiable para sitios web con protección contra DDoS, servidores VPS VDS 🔥 Compra un hosting fiable para sitios web con protección contra DDoS, servidores VPS VDS | ProHoster