Configurando o servidor 1C com publicação de banco de dados e serviços web no Linux

Configurando o servidor 1C com publicação de banco de dados e serviços web no Linux

Hoje, gostaria de falar sobre como configurar um servidor 1C no Linux Debian 9 com a publicação de web services.

O que são web services 1C?

Web Services — é um dos mecanismos da plataforma, usado para integração com outros sistemas de informação. É um meio de suportar a SOA (Arquitetura Orientada a Serviços) — arquitetura orientada a serviços, que é o padrão moderno para integração de aplicativos e sistemas de informação. Basicamente, é a possibilidade de criar uma página HTML com dados, a qual pode ser acessada por qualquer outro aplicativo para recuperá-los.

Vantagens — funciona rapidamente (mesmo com um volume considerável de dados), relativamente conveniente.

Desvantagens — seu programador 1C vai reclamar bastante enquanto escreve o web service para seu banco de dados. A coisa é bastante peculiar de se escrever.

Não vou falar sobre como escrever um web service… eu vou falar sobre como publicá-lo no Linux a partir do console do servidor e também um pouco sobre a instalação do servidor 1C no Linux.

Então, temos o Debian 9 netinst, vamos começar:

Instalamos o PostgresPro (Por favor, note que não é gratuito, e é distribuído apenas dentro da limitação de teste de suas funcionalidades):

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

Vamos dizer que o postgresql escute todos os endereços e não apenas o localhost

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

Descomentamos e mudamos quais endereços escutar:

…
#listen_addresses = ‘localhost’
…

Sobre

…
listen_addresses = ‘*’
…

Em seguida, permitimos que usuários da nossa rede se autentiquem

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

Alteramos para:

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

para

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

Você pode ler mais sobre as diferentes configurações do Postgres para 1C aqui.

Em seguida, instalamos o servidor 1C.

Fazemos o upload do arquivo compactado baixado do site 1C (no meu caso deb64_8_3_15_1534.tar.gz)


# tar -xzf deb64_8_3_15_1534.tar.gz

# dpkg -i *.deb

mais algumas pequenas coisas:

# apt install imagemagick unixodbc libgsf-bin

Agora, vamos instalar o Apache2

# apt install apache2

Através do console administrativo ou pelo cliente 1C, criamos um banco e carregamos nossa configuração…

Agora vamos publicar o banco:

navegamos até a pasta do 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 em var/www/test/ e vemos o que foi criado lá.

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

«

Esses são os esquemas necessários para iniciar o cliente web 1C… agora podemos acessar nossa base de teste pelo navegador no endereço "http://EndereçoDoServidor/Test" (a caixa alta é importante! é Linux) ou especificar no cliente o "tipo de localização da base" como "http://EndereçoDoServidor/Test", e o cliente funcionará com a base publicada.

MAS

E quanto aos serviços web? (na minha configuração de teste, há dois: WebBuh para troca de dados com a contabilidade e a integração toplog com o sistema WMS da mesma empresa).

Bem, vamos adicionar algumas linhas ao nosso arquivo 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_endereço;Ref=TestWebServ">
<standardOdata enable="false"
reuseSessions="autouse"
sessionMaxAge="20"
poolSize="10"
poolTimeout="5"/>

# Вот тут начинается код который публикует веб-сервисы
<point name="WebBuh" # Nome do serviço web no configurador
alias="Web_buh.1cws" # Web_buh.1cws - alias do serviço web no navegador
enable="true" # a partir daqui, as linhas são entendíveis
reuseSessions="autouse"
sessionMaxAge="20"
poolSize="10"
poolTimeout="5"/>
<point name="TopLog" # segundo serviço web
alias="toplog.1cws" # toplog.1cws
enable="true"
reuseSessions="autouse"
sessionMaxAge="20"
poolSize="10"
poolTimeout="5"/>

vamos salvar.

E agora, nosso serviço web está disponível no endereço "http://EndereçoDoServidor/Test/Web_buh.1cws?"

Por que isso tinha que ser feito manualmente?

Como nosso servidor não possui uma interface gráfica, não será possível executar o configurador nele, e, consequentemente, publicar com os meios padrão. O configurador remoto, que está no cliente, também não publica os serviços web no servidor. Portanto, temos que editar a configuração manualmente com o modelo descrito acima.

Script para geração de .vrd — obrigado TihonV

Fonte: habr.com

Compre hospedagem confiável para sites com proteção contra DDoS, servidores VPS VDS 🔥 Compre hospedagem confiável para sites com proteção contra DDoS, servidores VPS VDS | ProHoster