Hoje gostaria de contar como criar um servidor 1c no linux debian 9 com a publicação de serviços web.
O que são serviços web 1c?
Prós - funciona rapidamente (mesmo com uma quantidade bastante grande de dados), relativamente conveniente.
Contras - seu programador 1c irá reclamar de você por um longo tempo enquanto escreve um serviço web para seu banco de dados. A coisa é muito peculiar por escrito.
Eu não vou te dizer como escrever
E então, temos o debian 9 netinst, vamos começar:
Instale o PostgresPro (observe que não é gratuito e é distribuído apenas como parte da familiarização com as possibilidades):
# 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 ao postgresql para ouvir todos os endereços e não apenas o localhost
# nano /var/lib/pgpro/std-11/data/postgresql.conf
Remova o comentário e altere quais endereços ouvir:
...
#listen_addresses = 'localhost'
...
На
...
listen_addresses = '*'
...
A seguir, vamos permitir que usuários de nossa rede façam login
# nano /var/lib/pgpro/std-11/data/pg_hba.conf
Vamos mudar:
# Conexões locais IPv4:
hospedar todos os 127.0.0.1/32 md5
em
hospedar todos os 192.168.188.0/24 md5
hospedar todos os 127.0.0.1/32 md5
Você pode ler mais sobre as várias instalações do Postgres para 1s
Além disso, colocamos 1s no servidor.
Carregue o arquivo baixado do site 1c para o servidor (no meu caso, deb64_8_3_15_1534.tar.gz)
# tar -xzf deb64_8_3_15_1534.tar.gz
# dpkg -i *.deb
mais algumas coisinhas:
# apt install imagemagick unixodbc libgsf-bin
Agora vamos instalar o Apache2
# apt install apache2
Através do console de administração ou do cliente 1c, criamos um banco de dados e preenchemos nossa configuração ...
Agora publicamos o banco de dados:
vá para a pasta com 1s.
# 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
Subimos em var/www/test/ e vemos o que apareceu lá.
# cd /var/www/test
# nano default.vrd
«
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="/Teste"
ib="Srvr=192.168.188.150;Ref=Teste;">
<standardOdata enable=«false»
reuseSessions="autouse"
sessãoMaxAge="20"
poolSize="10"
poolTimeout="5"/>
«
Estes são os esquemas necessários para iniciar o cliente web 1c... agora você pode acessar nosso banco de dados de teste a partir do navegador no endereço “http://ServerAddress/Test” (o caso é importante! Este é Linux) ou especificar o endereço “tipo de localização base” no cliente http://ServerAddress/Test" e o cliente trabalhará com o banco de dados publicado.
MAS
Mas e os serviços web? (na minha configuração de teste existem dois deles: WebBuh para troca de dados com contabilidade e integração de toplog com o sistema wms da empresa de mesmo nome).
Bem, vamos adicionar algumas linhas ao nosso arquivo vrd...
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=endereço_IP;Ref=TestWebServ">
<standardOdata enable=«false»
reuseSessions="autouse"
sessãoMaxAge="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"/>
salvar.
E agora nosso serviço web está disponível em "http://ServerAddress/Test/Web_buh.1cws?"
Por que você teve que fazer isso manualmente?
Como nosso servidor não possui shell gráfico, não funcionará executar o configurador nele e, consequentemente, publicá-lo por meios regulares. O configurador remoto instalado no cliente não publica serviços web no servidor. Portanto, temos que editar a configuração manualmente de acordo com o modelo descrito acima.
Fonte: habr.com