1c habilita a depuração no servidor. Depurando procedimentos do servidor (1Cv82)

A tarefa de um desenvolvedor 1C não é apenas escrever código, mas também rastrear e corrigir erros, construir um algoritmo ideal de execução de comandos e otimizar a velocidade de trabalho, ou seja, depuração. É difícil fazer isso sem usar a funcionalidade do depurador de procedimentos de servidor integrado.

Inicialmente, o modo de depuração está desabilitado nos servidores 1C, portanto o desenvolvedor terá que fazer manipulações simples nas configurações para poder verificar minuciosamente o código.

Ativando o modo de depuração no servidor para a plataforma 1C versão 8.2 e superior

O algoritmo para habilitar a depuração é bastante simples. Não pressupõe conhecimento profundo da arquitetura do sistema operacional e administração 1C. Porém, você ainda deve ter muito cuidado, pois o trabalho de depuração é realizado diretamente no servidor e com direitos de administrador. Portanto, se você não possui um conhecimento profundo, siga rigorosamente o algoritmo de ações sem improvisações:

  • Pare o serviço 1C:Enterprise Server Agent por meio do Gerenciador do Servidor. Se a configuração ocorrer em um servidor de produção, deve-se tomar cuidado antecipadamente com a ausência de usuários 1C no banco de dados;
  • Inicie o editor de registro do sistema clicando em “Iniciar” - “Executar” ou no atalho de teclado “Win” + “R”. Na janela que se abre, digite a linha “regedit”;
  • No cadastro você precisa encontrar o item;

  • Entre os parâmetros, encontre “ImagePath” e altere-o adicionando “-debug” ao valor existente com um espaço no final;
  • Através do Server Manager, inicie o serviço que foi interrompido - “1C:Enterprise Server Agent”.

Ativando o modo de depuração no servidor para 1C versão 8.1

Se você precisar ativar o modo de depuração na plataforma 8.1, o algoritmo de ações permanecerá praticamente inalterado. A única alteração é a localização do parâmetro de caminho "ImagePath". Na versão 8.1 ele está localizado na seção.

Os desenvolvedores 1C aconselham habilitar o modo de depuração exclusivamente para servidores de teste, onde o código deve ser depurado. O motivo desta recomendação é o impacto no desempenho que ocorre quando a depuração está habilitada no servidor. Se você tem muitos usuários ou a potência do servidor deixa muito a desejar, siga este conselho com atenção para que a depuração não tenha consequências negativas.

Implementado na versão 8.3.7.1759.

Redesenhamos significativamente o mecanismo de depuração. Houve vários motivos para isso. Primeiro, queríamos oferecer a você a capacidade de depurar todos os aplicativos disponíveis atualmente. Em segundo lugar, a arquitetura anterior do depurador exigia mudanças para acompanhar as tendências atuais e acomodar o desenvolvimento futuro. Em terceiro lugar, era necessária uma interface de depuração universal, com a qual não apenas o configurador 1C:Enterprise, mas também o .

Vantagens principais

Para que você possa imaginar o alcance das mudanças que fizemos, listaremos resumidamente as principais vantagens do novo mecanismo.

Depuração HTTP

O mecanismo de depuração anterior baseava-se no fato de que o depurador, implementado no configurador 1C:Enterprise, interagia diretamente com itens de depuração (aplicações cliente e servidor). Essa interação foi realizada utilizando o protocolo TCP/IP.

No entanto, com o lançamento de aplicações 1C:Enterprise na Internet, e especialmente com o advento das aplicações móveis, esta abordagem tornou-se uma fonte de limitações e inconveniências. O protocolo TCP/IP nem sempre permite que o depurador “alcance” os itens que estão sendo depurados. Afinal, eles podem estar localizados fora da rede local em que o depurador está sendo executado.

Portanto, no novo mecanismo, escolhemos o protocolo HTTP mais “onipresente” como protocolo de transporte, que, aliás, também é utilizado por aplicações clientes para conexão com bancos de dados de informações.

Arquitetura de depuração moderna

Uma característica do mecanismo de depuração anterior era a necessidade de se conectar à infobase usando o configurador. Como resultado, o desenvolvedor de depuração teve acesso total a todas as funções administrativas.

O novo mecanismo de depuração não requer mais uma conexão com a infobase que está sendo depurada. A principal coisa que o depurador precisa agora é a mesma configuração que funciona para os clientes. Para obtê-lo, não há necessidade de conectar-se à infobase que está sendo depurada. Você pode carregá-lo, por exemplo, de um arquivo.

Depurando aplicativos móveis

Graças ao uso do protocolo HTTP, tornou-se possível depurar aplicações executadas pela plataforma móvel. Além disso, você pode depurar qualquer contexto: cliente, servidor, bem como trabalhos em segundo plano.

Agora, durante a depuração, você pode alterar os valores de qualquer variável gravável. Para visualizar e alterar rapidamente as variáveis ​​locais, implementamos uma janela separada. E o cálculo das expressões exibidas pelo depurador agora é realizado em modo assíncrono.

Depuração em ferramentas de desenvolvimento

Ao criar um novo mecanismo de depuração, implementamos uma nova interface de software universal para interagir com ele. Esta interface é utilizada pelo configurador 1C:Enterprise, e a mesma interface agora é utilizada pelo novo ambiente de desenvolvimento. Assim, todos os recursos de depuração agora estão disponíveis ao trabalhar no .

Arquitetura do processo de depuração

A nova arquitetura de depuração é assim:

A depuração envolve um depurador, itens de depuração e um novo elemento - servidor de depuração.

Não há transferência direta de informações entre o depurador e os itens de depuração. Toda a interação é organizada através do servidor de depuração. Este é o elemento principal do mecanismo. O servidor de depuração possui uma fila de mensagens por meio da qual o depurador e os itens de depuração passam informações entre si.

Tanto o próprio depurador quanto os itens de depuração se comunicam com o servidor de depuração via HTTP. Então agora não importa onde esses itens de depuração estão localizados.

A interação com o servidor de depuração é iniciada pelo depurador e pelos itens de depuração. Para este propósito, são organizadas conexões adicionais. Seu principal objetivo é descobrir se informações apareceram para eles no servidor de depuração. E se aparecer, obtenha essa informação.

Assim, a interação é unilateral. As informações são constantemente transferidas do servidor de depuração para o depurador e para objetos de depuração.

Identificação de bases de informação

No mecanismo anterior, uma string de conexão foi usada para identificar infobases. Esta solução em alguns casos causou dificuldades na correspondência dos itens de depuração e do configurador. Porque, em primeiro lugar, fazia distinção entre maiúsculas e minúsculas e, em segundo lugar, ao depurar alguns contextos, a plataforma gerava a string de conexão automaticamente. E nem sempre coincidia com o que você especificou ao conectar a infobase no configurador. Encontrar e corrigir tais situações complicou o processo de depuração.

No novo mecanismo, nos livramos da cadeia de conexão. Agora usamos identificador da infobase. Na infobase de arquivos, esse identificador é gerado na primeira vez que uma conexão de cliente é estabelecida. Na infobase do servidor, o identificador de registro da infobase no cluster é usado como tal identificador.

Um ponto adicional interessante aqui é que mantivemos o antigo mecanismo de depuração na plataforma por enquanto (ele pode ser excluído no futuro). E você pode usá-lo se desejar ou se necessário. Portanto, modificamos o mecanismo antigo e agora ele também usa o identificador da infobase, e não a string de conexão.

Cenários típicos de depuração

Do ponto de vista do desenvolvedor de aplicativos, os cenários típicos de depuração não mudaram. A única diferença significativa é que o novo mecanismo de depuração deve estar habilitado. Porque por padrão está desabilitado.

Independentemente disso, faz sentido familiarizar-se com o que acontece agora quando você executa a depuração. Porque pode ser útil para você em alguns cenários de trabalho fora do padrão.

Opção de arquivo

Antes de iniciar a depuração na versão do arquivo, você precisa indicar nas configurações do configurador que deseja utilizar o novo mecanismo de depuração - “ Depuração HTTP».

Neste caso, o configurador solicitará automaticamente que você use um servidor de depuração local. Você precisa concordar com isso e reiniciar o configurador.

O método de depuração definido é salvo entre as sessões do configurador, mas é armazenado no contexto das infobases. Portanto, para outra infobase você precisará habilitá-la novamente.

Agora, ao iniciar o configurador, ou ao reiniciá-lo, a plataforma iniciará automaticamente o servidor de depuração. Este é um aplicativo dbgs.exe separado. Você pode ver isso no gerenciador de tarefas.

O parâmetro ownPID especifica o identificador do aplicativo que possui esse servidor de depuração. Neste caso, este é o configurador 1C:Enterprise.

Agora, se você iniciar uma sessão de depuração 1C:Enterprise a partir do configurador, ele se conectará automaticamente ao servidor de depuração e no configurador você verá os itens de depuração conectados.

Se a sessão 1C:Enterprise foi iniciada sem depuração, então, como antes, você pode conectá-la ao depurador. Só agora você precisa especificar o endereço do servidor de depuração:

Você pode encontrar este endereço nas configurações dos itens de depuração:

Há um ponto incomum associado ao trabalho com vários bancos de dados de arquivos ao mesmo tempo. Na versão arquivo, cada configurador com depuração http habilitada lança sua própria cópia do servidor de depuração em portas diferentes:

Portanto, se você tiver vários configuradores abertos ao mesmo tempo, para conectar o aplicativo cliente ao depurador você precisa selecionar o correto.

Opção cliente-servidor

Antes de iniciar a depuração na versão cliente-servidor, você precisa, como antes, iniciar o servidor 1C:Enterprise no modo de depuração, mas especificar que o novo mecanismo HTTP será usado para depuração. Por exemplo, assim:

ragent.exe -debug -http

Quando o servidor for iniciado desta forma, o servidor de depuração também será iniciado.

O parâmetro proprietárioPID indicará o identificador do gerenciador de cluster 1C:Enterprise.

Agora nas configurações do configurador, como no caso do banco de dados de arquivos, você precisa indicar que deseja utilizar o novo mecanismo de depuração - “ Depuração HTTP».

Nesse caso, o configurador solicitará automaticamente que você use o servidor de depuração de cluster e não o servidor local. Você precisa concordar com isso e reiniciar o configurador.

Conectando itens de depuração

Ao iniciar sessões de depuração a partir do configurador, os aplicativos conectam automaticamente itens de depuração (cliente e servidor) ao servidor de depuração.

Ao mesmo tempo, como antes, você tem a oportunidade de configurar o configurador para conectar automaticamente os itens de depuração, independentemente de como foram iniciados. Agora essas possibilidades tornaram-se muito mais ricas.

Em primeiro lugar, a plataforma agora oferece todos os itens de depuração possíveis para você escolher.

E em segundo lugar, apareceu outra forma mais sutil de configuração. Este é o uso de seleções pré-criadas.

Você pode usar essas seleções ao conectar itens de depuração e para visualizar itens de depuração disponíveis.

Na seleção, além dos próprios itens de depuração, você pode especificar usuários específicos cujas sessões são de seu interesse e também, caso seja utilizada separação de dados, indicar a área da infobase que será depurada.

Alterando variáveis, propriedades de objetos e avaliando expressões de forma assíncrona

O novo mecanismo de depuração permite alterar os valores das variáveis ​​​​durante a depuração. No mecanismo anterior não existia essa possibilidade.

Para visualização e alteração convenientes de variáveis ​​locais, que parece ser a tarefa mais comum, implementamos o “ Variáveis ​​locais».

Externamente, é muito semelhante ao “Placar” com o qual você está acostumado. Mas, em primeiro lugar, esta janela já é preenchida automaticamente com todas as variáveis ​​locais e, em segundo lugar, agora você pode alterar os valores das variáveis.

Você pode alterar os valores dos tipos primitivos diretamente na célula " Significado»:

E para alterar outros valores, você pode usar a janela de entrada da expressão:

Um bom bônus é que a dica contextual é totalmente funcional nesta janela.

Exatamente da mesma maneira, você pode alterar os valores de qualquer variável (não apenas local) e propriedades graváveis. Na janela de cálculo de expressão (que é chamada pelo comando Shift+F9), você pode alterar os valores das variáveis ​​​​tanto na célula “Valor” quanto em uma caixa de diálogo separada.

A propósito, o cálculo da expressão em si agora é executado de forma assíncrona. Isso significa que o configurador ordena o cálculo do item de depuração. E já faz algum tempo que esse cálculo é esperado no servidor. Se o cálculo for concluído, os resultados são enviados imediatamente para o configurador. Se o cálculo for realizado por um longo período, os resultados desses cálculos chegarão posteriormente ao configurador de forma assíncrona. Esta abordagem permite que você não espere longos cálculos no configurador e continue seu trabalho.

Este artigo fala sobre como habilitar a depuração em um servidor 1C 8.1, 8.2 e 8.3 nos sistemas operacionais Windows e Ubuntu.

Além disso, observo que este artigo faz parte de uma pequena série de artigos sobre depuração em 1C:

  • Como habilitar a depuração em um servidor 1C

Habilite a depuração no servidor 1C no Windows

Inicie o editor de registro executando o comando regedit (usando Win+R ou Iniciar->Executar).

Você pode ler mais sobre depuração HTTP e servidor de depuração no próximo artigo da série.

Habilite a depuração no servidor 1C no Ubuntu

Primeiro instalamos o servidor:

parada do serviço sudo srv1cv83

Depois disso, abra o arquivo /etc/init.d/srv1cv83 como superusuário e encontre a linha nele:

E trazemos para este formato:

Então iniciamos o servidor novamente:

início do serviço sudo srv1cv83

No configurador da máquina cliente, vá em “Configurações” -> “Iniciar 1C:Enterprise” -> “Avançado” e habilite dois itens:

  • "Definir modo de habilitação de depuração"
  • "Iniciar a depuração na inicialização"

Você pode ler sobre como instalar um servidor 1C no Ubuntu 16.04/18.04.

Isso é tudo, espero que este artigo tenha sido útil para você. Deixe-me lembrá-lo também de outros artigos da série sobre depuração em 1C; links para eles podem ser encontrados no início deste artigo.

Como iniciar a depuração em um servidor 1C...

Por padrão, ao usar a arquitetura cliente-servidor 1C:Enterprise, o modo de depuração de código 1C funciona apenas no lado do cliente. Os procedimentos e funções do servidor não são visíveis para a máquina cliente.

Para habilitar o uso de depuração no servidor 1C, você deve executar as seguintes etapas:

1. Encontre e interrompa o serviço “1C:Enterprise Server Agent 8.3” no gerenciador de serviços (para versão 8.3).

2. Abra o editor de registro do sistema. Você pode usar a linha de comando ou a ferramenta do menu Iniciar - Executar... e o comando regedit.

3. Encontre a filial no registro:

  • Para versão 1C 8.1
  • Para versão 1C 8.2
  • Para versão 1C 8.3

4. Altere a propriedade ImagePath, adicione a diretiva “-debug” ao final da linha. Você obterá a seguinte linha de propriedade: “C:\Program Files (x86)\1cv8\8.3.6.2152\bin\ragent.exe” -srvc -agent -regport 1541 -port 1540 -range 1560:1591 -d “C: \Arquivos de Programas (x86)\1cv8\srvinfo" -depurar

Depois disso, o código do servidor 1C pode ser verificado com segurança com um depurador e os pontos de interrupção podem ser definidos sempre que necessário.

18.10.2016

Depuração em um servidor 1C (8.2, 8.3...)

Se o banco de dados 1C estiver sendo executado em uma versão cliente-servidor, o modo de depuração de código no lado do servidor será desabilitado. Portanto, não será possível ver passo a passo o que acontece ao executar uma função ou procedimento. Para habilitar a depuração do lado do servidor, você precisa seguir algumas etapas simples.

Habilite a depuração no servidor 1C:Enterprise 8.2, 8.3

A primeira coisa que você precisa fazer é interromper o serviço do servidor 1C:Enterprise. Vá em "Iniciar - Executar" (ou o atalho de teclado "Windows + R"), escreva "services.msc" (é claro que você precisa abrir o gerenciamento de serviços do Windows no Administrador)

Após parar, abra o editor de registro do Windows ("Iniciar - Executar" (ou o atalho de teclado "Windows + R") e escreva "regedit") e encontre o branch com o nome "" ou "" dependendo da versão da plataforma


Estamos interessados ​​na chave de registro chamada "ImagePath". Adicione "-debug" ao final do valor da chave. Isso significa que o modo de depuração no lado do servidor 1C está ativado.
Era: "C:\Arquivos de Programas\1cv8\8.3.6.2530\bin\ragent.exe" -srvc -agent -regport 1541 -port 1540 -range 1560:1591 -d "C:\Arquivos de Programas\1cv8\srvinfo"
Tornou-se: "C:\Arquivos de Programas\1cv8\8.3.6.2530\bin\ragent.exe" -srvc -agent -regport 1541 -port 1540 -range 1560:1591 -d "C:\Arquivos de Programas\1cv8\srvinfo" -debug


Salve e inicie o serviço 1C. Tudo está pronto! Boa depuração!