
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?
— é 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 … 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.confDescomentamos 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.confAlteramos 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 .
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 *.debmais algumas pequenas coisas:
# apt install imagemagick unixodbc libgsf-binAgora, vamos instalar o Apache2
# apt install apache2Atravé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.confVamos 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.
— obrigado
Fonte: habr.com
