1c abrindo processamento externo. Como abrir programaticamente o processamento externo? Processamento externo ou formulário de impressão salvo na infobase

14.02.2024
Home Para desenvolvedores iniciantes Aprendendo a programar

Como abrir programaticamente o processamento externo?

Na versão 8.2, o aplicativo não funciona diretamente com arquivos locais localizados no computador. Os arquivos devem estar no servidor.

Portanto, para abrir o processamento externo você precisa realizar a seguinte sequência de ações:

  • transferir o arquivo de processamento externo para o servidor,
  • conectar processamento externo,
  • abra o formulário de processamento externo.
&No Processamento de Comando do Procedimento do Cliente (Parâmetro de Comando, Parâmetros de Execução de Comando) // Coloca o processamento em armazenamento temporário Storage Address = "";

Resultado = PlaceFile(StorageAddress, "C:\ExternalProcessing.epf", Falso); ProcessingName = ConnectExternalProcessing(StorageAddress);// Abre o formulário do processamento externo conectado OpenForm("ExternalProcessing."+ProcessingName +".Form");

Função EndProcedure &OnServer ConnectExternalProcessing(StorageAddress) Retornar ExternalProcessing.Connect(StorageAddress); Função Final Para transferir um arquivo para o servidor, ele deve ser colocado em armazenamento temporário. Para isso, primeiro no cliente, no manipulador do comando de abertura de processamento externo, com a função ColocarArquivo() estamos colocando um arquivo do sistema de arquivos local em armazenamento temporário.

O quarto parâmetro desta função especifica o sinal do modo interativo de seleção de um arquivo de processamento externo. Se este parâmetro ProcessingName = ConnectExternalProcessing(StorageAddress); Verdadeiro , uma caixa de diálogo de seleção de arquivo será exibida, na qual você poderá selecionar um arquivo para colocar no armazenamento. No nosso exemplo, este parâmetro é Mentira

, e o caminho para o arquivo do qual os dados serão colocados no armazenamento temporário é especificado explicitamente no segundo parâmetro da função. Ao chamar uma função seu primeiro parâmetro, , uma caixa de diálogo de seleção de arquivo será exibida, na qual você poderá selecionar um arquivo para colocar no armazenamento. No nosso exemplo, este parâmetro é Endereço de armazenamento , especificamos uma string vazia. Após a execução da função, o caminho para o arquivo de processamento externo no armazenamento temporário será colocado nesta variável. Usamos esse caminho para conectar o processamento externo. A conexão do processamento externo é realizada no servidor usando o método

Conectar() gerenciador de processamento externo. Como parâmetro é passado o caminho para o arquivo de processamento externo em armazenamento temporário -, para o qual o nome do formulário é passado como a seguinte linha: "ExternalProcessing."+ProcessingName +".Formulário". Na modalidade acima, o formulário de processamento principal é aberto. Você também pode abrir um formulário de processamento não principal - isso é discutido na pergunta Como obter um formulário de processamento não principal? .

Ao trabalhar com processamento externo, é necessário levar em consideração que por padrão eles são iniciados no modo seguro de execução do código do programa. Isso significa que alguns recursos da linguagem integrada não estarão disponíveis para eles. Se você tiver certeza de que o processamento externo não contém código malicioso, ele poderá ser ativado no modo normal de execução do código do programa. Para isso, utiliza-se o terceiro parâmetro do método Ao chamar uma função gerenciador de processamento externo.

Mais informações sobre o modo de execução segura do código do programa podem ser encontradas na documentação.

Externo Processamento 1C e relatórios são processamentos e relatórios que não fazem parte da solução do aplicativo e são armazenados em arquivos separados. Sua principal vantagem é que esse processamento e relatórios podem ser usados ​​em diversas soluções de aplicação sem alterar a estrutura das próprias soluções. Uma vantagem importante dos relatórios e processamento externos é a capacidade de projetá-los e depurá-los enquanto o 1C Enterprise está em execução, sem salvar a configuração da solução do aplicativo todas as vezes.

No modo 1C Empresarial externo Processamento 1C pode ser iniciado para execução abrindo-o como qualquer outro arquivo armazenado no disco. Esse processamento funcionará exatamente como se fizesse parte de uma solução de aplicativo.

Qualquer processamento existente na configuração pode ser convertido em processamento externo e vice-versa. Além disso processamento externo 1C podem ser adicionados à estrutura da solução do aplicativo como novos objetos.

Para usar processamento externo 1C ao trabalhar com o sistema 1C Enterprise, você deve abri-lo da mesma forma que no configurador. Mas deve-se ter em mente que no sistema 1C Enterprise o processamento externo é aberto apenas para uso, ou seja, o usuário não pode editá-lo.

A compilação do módulo de processamento externo é realizada ao abrir o processamento externo, portanto, após editar o processamento externo no configurador e salvá-lo, é necessário reabrir este processamento no sistema 1C Enterprise.

Edição processamento externo 1C realizado no configurador. Para abrir um processamento externo existente, selecione Arquivo - Abrir. Na caixa de diálogo padrão exibida na tela, selecione o tipo de arquivo - Processamento externo - e especifique o nome do arquivo de processamento externo a ser aberto. Ao abrir o processamento externo no configurador, a caixa de diálogo de edição do objeto é aberta automaticamente. Ao contrário de outros objetos de configuração, a depuração processamento externo 1C ser realizado sem reiniciar o 1C Enterprise.

Vantagens processamento externo 1C: salvar o processamento externo e abri-lo na empresa na mesma configuração e computador sempre leva alguns segundos; algumas funcionalidades do programa podem ser transferidas para processamento externo e quando essas partes forem alteradas não haverá necessidade de enviar toda a configuração, bastará alterar o processamento e enviá-lo ao usuário; para corrigir um erro em um banco de dados onde há muitos usuários, você pode salvar o relatório como um processamento externo e fazer as alterações necessárias nele e entregá-lo aos usuários, e então lentamente, em um momento conveniente, inserir um processamento externo para substitua o relatório incorreto; muitos programadores distribuem suas novas soluções, implementadas para algumas configurações padrão, sem copiar todo o banco de dados.

Desvantagens do processamento externo 1C: usando processamento externo você não pode criar um novo documento ou livro de referência; tudo o que não diz respeito à estrutura do banco de dados pode ser tratado por processamento.

Para criar um processamento externo, você precisa ir ao configurador e encontrar o relatório de operação por data na árvore de configuração. Em seguida, no menu de contexto, selecione Salvar como processamento externo e especifique o local onde salvá-lo.

Neste artigo, consideraremos instruções passo a passo para criar processamento externo em 1C 8.3 no modo de aplicativo gerenciado, respectivamente, usaremos formulários gerenciados; E o mais importante, aprenderemos como conectá-lo ao mecanismo de “processamento externo” de configurações 1C construídas em uma biblioteca de subsistemas padrão versão 2.0 e mais recente.

A tarefa será a seguinte: criar o processamento externo mais simples que irá realizar uma ação de grupo no diretório “Item”, nomeadamente, definir a percentagem de taxa de IVA selecionada para o grupo de itens especificado.

Para isso, faremos imediatamente as configurações necessárias no programa (estamos considerando a configuração 1C 8.3: “Enterprise Accounting 3.0” em formulários gerenciados).

Marcar esta caixa nos dá a oportunidade de usar processamento externo.

Criando um novo processamento externo em 1C 8.3 usando um exemplo

Agora vamos para o configurador. No menu “Arquivo”, selecione “Novo…”. Será aberta uma janela para seleção do tipo de arquivo a ser criado. Selecione “Processamento externo”:

Uma nova janela de processamento externo será aberta. Vamos dar um nome a ela imediatamente. Será oferecido ao salvar o processamento em disco:

Vamos adicionar um novo formulário de processamento controlado. Indicamos que esta é uma forma de processamento e é a principal:

Teremos dois detalhes no formulário:

  • Grupo Nomenclatura – link para o diretório “Nomenclatura”;
  • SelectVATRate – link para transferência da Taxa de IVA.

Criamos os detalhes na coluna “Propriedades” na janela superior direita. Arraste-os com o mouse para a janela superior esquerda. Os novos dados deverão aparecer imediatamente no formulário abaixo.

A ordem dos detalhes pode ser alterada usando as setas “Para cima” – “Para baixo”:

Obtenha 267 videoaulas em 1C gratuitamente:

Resta apenas adicionar o botão “Instalar”. Em formulários gerenciados, você não pode simplesmente adicionar um botão ao formulário. Mesmo se você adicioná-lo à estrutura dos elementos do formulário, ele não ficará visível no próprio formulário. O botão deve estar associado ao comando que irá executar. Vá para a aba “Comandos” e adicione o comando “Definir Taxa de IVA”. Nas propriedades do comando, crie uma ação. Selecione o manipulador de comando “No cliente”. Um comando também pode ser adicionado ao formulário simplesmente arrastando-o para a seção com elementos do formulário.

Um procedimento com o mesmo nome será criado no módulo de formulário. Nele chamaremos o procedimento no servidor:

&NoCliente

Procedimento Definir taxa de IVA (comando)

SetVATRateOnServer();

Fim do procedimento

No procedimento no servidor, escreveremos um pequeno pedido e ações relacionadas com a definição da taxa de IVA:

&NoServidor

Procedimento SetVATRateOnServer()

Solicitação = Nova Solicitação;
Solicitação.Text =
"ESCOLHER
| Nomenclatura.Link
|DE
| Diretório.Nomenclatura AS Nomenclatura
|ONDE
| Nomenclatura.Link NA HIERARQUIA (&Grupo de Nomenclatura)
| E NÃO Nomenclature.MarkDeletion
| E NÃO Nomenclatura Este é um Grupo”;

Request.SetParameter("Grupo de Itens", Grupo de Itens);
ResRequest = Request.Execute();
SelectRecordDet = ResRequest.Select();

Enquanto SelectRecordDet.Next() Loop

Tentar
SprNomObject.Write();
Exceção
Report("Erro ao gravar objeto """ + SprNomObject + """!
|» + DescriçãoErro());
FimTentativa;

Fim do Ciclo;

Fim do procedimento

Voltamos à aba “Formulário”, adicionamos um botão ao formulário e associamos ao comando:

Como tal, nosso processamento está pronto para uso. Para chamá-lo, no modo “1C Enterprise”, você precisa ir ao menu “Arquivo” - “Abrir” e selecionar o arquivo criado.

No entanto, trabalhar neste modo é conveniente para o processamento de depuração, mas não é totalmente adequado para o usuário. Os usuários estão acostumados a ter tudo “na ponta dos dedos”, ou seja, no próprio banco de dados.

É para isso que serve a seção “Relatórios e processamento adicionais”.

Mas para adicionar nosso processamento ali, devemos primeiro dar-lhe uma descrição e informar ao programa suas propriedades.

Descrição da função “Informações sobre Processamento Externo”

Darei um exemplo do conteúdo desta função. Deve ser exportável e, portanto, localizado no módulo de processamento:

Função InformationOnExternalProcessing() Exportar

DataForReg = Nova Estrutura();
DataForReg.Insert("Nome", "Configuração da taxa de IVA");
DataForReg.Insert("ModoSeguro", Verdadeiro);
DataForReg.Insert("Versão", "versão: 1.001");
DataForReg.Insert("Informações", "Processamento para fixação da taxa de IVA no diretório Nomenclatura");
DataForReg.Insert("Visualizar", "Processamento Adicional");

CommandTable = NovaTabelaValor;
TabZnCommands.Columns.Add("Identificador");
TabZnCommands.Columns.Add("Uso");
TabZnCommands.Columns.Add("Visualizar");

NovaLinha = TabZnCommands.Add();
NewString.Identifier = "OpenProcessing";
NewRow.Use = "OpenForm";
NewRow.View = "Abrir processamento";
DataForReg.Insert("Comandos", TabZnCommands);

Retornar DataForReg;

Função Final

Para entender melhor quais campos da estrutura de dados cadastrais precisam ser utilizados, vejamos os detalhes do diretório “Relatórios e processamento adicionais”:

Como você pode ver, tudo é bem simples. Apenas um atributo não corresponde: “Opção de inicialização” – “Usar”. Se olharmos o código de um dos módulos comuns, veremos como surgem vários desses campos:

Para determinar quais campos de uma estrutura são necessários, primeiro você não pode descrevê-la, basta criar uma vazia e depois usar o depurador. Se você rastrear módulos ao registrar o processamento, ficará imediatamente claro quais campos são obrigatórios e quais não são.

Conectando processamento externo em 1C 8.3

Acontece que para funcionar é necessário utilizar um processamento externo ou um relatório, mas nem sempre isso é possível de imediato. Às vezes, ao tentar abrir um processamento externo ou um relatório usando o item de menu “Arquivo” e depois “Abrir”, aparece uma mensagem de erro indicando que os direitos de acesso foram violados.

Mas primeiro, vamos ver como os relatórios e processamentos externos geralmente abrem em “1C: Accounting 8.3” versão 3.0. Geralmente são um arquivo baixado da Internet ou obtido de alguma outra forma. Depois de salvo, por exemplo na área de trabalho, clicando duas vezes podemos ver seu conteúdo.

Ações para a interface normal:

  1. Clique com o botão direito no arquivo desejado e selecione o item “Copiar” do menu de contexto.
  2. Voltamos à área de trabalho, clique com o botão direito no espaço livre e selecione “Colar” (ou simplesmente arraste o arquivo do arquivo para a área de trabalho).
  3. Você também pode extrair o arquivo do arquivo diretamente para o local desejado no disco (em nosso exemplo, esta é a área de trabalho).
  4. Agora selecione o arquivo com processamento na área de trabalho e clique em “Abrir”.
  5. O processamento ficará aberto no programa e você poderá utilizá-lo.

Ações para uma interface gerenciada (por exemplo, Táxi)

  1. Abra diretamente do arquivo.
  2. No menu, selecione “Arquivo” e depois “Abrir”.
  3. Na janela que se abre, vá até a área de trabalho, selecione o arquivo de processamento e clique em “Abrir”.

Para maior comodidade, você pode criar uma pasta especial para tratamentos e armazenar todos nela.

Se não conseguir abrir um processamento ou relatório, você poderá usar uma das duas opções.

Primeira maneira

Você pode registrar o processamento em um diretório chamado “Relatórios e processamento adicionais”. Então, registramos o processamento no banco de dados.

  1. Vamos para a seção de administração, selecionamos na lista o item de formulários impressos, relatórios e processamento.
  2. Na janela que aparece, marque a caixa “Relatórios e processamento adicionais” e abra o link com o mesmo nome.
  3. Na nova janela, clique em “Criar”.
  4. Leia o aviso de segurança e clique em “Continuar”.
  5. Na próxima janela, selecione o local do arquivo com processamento e clique em “Abrir”.

Importante!

Se nesta fase aparecer um erro com o texto: “É impossível conectar processamento adicional do arquivo...”, você terá que usar o segundo método descrito a seguir.

  1. Se nenhum erro ocorrer, encontre o item “Posicionamento” em “Comandos”.
  2. Na janela “Seções da interface de comando”, verifique a seção Operações.
  3. Na tabela encontramos “Acesso rápido” e abrimos.
  4. Selecione todos os usuários e clique em OK.
  5. Clique no botão “Salvar e Fechar”.

O processamento foi registrado com sucesso. Para abri-lo, você precisará ir até a seção de operações, selecionar o item de processamento adicional, selecionar o que deseja e clicar em “Executar”.

Segunda via

Caso o processamento não suporte o registro descrito na primeira opção, você pode fazê-lo de outra forma, a saber: habilitar novamente a possibilidade de abrir o processamento no banco de dados através do menu “Arquivo” com o botão direito do mouse “Abrir”.

  1. Vá para o configurador do banco de dados.
  2. Selecione “Administração” no menu e depois “Usuários”.
  3. Clique duas vezes no usuário desejado.
  4. Vá para a aba chamada “Outro”.
  5. Marque a caixa “Abertura interativa de relatórios externos e processamento”.
  6. Clique em "OK".
  7. Fechamos o configurador e também, se estiver aberto, o banco de dados.
  8. Entramos novamente no banco de dados e abrimos o relatório que precisamos no menu “Arquivo” usando o comando “Abrir”.

Para trabalhar com processamento externo (e um formulário de impressão externo também é um processamento externo), existe um objeto Processamento Externo.

Vamos considerar dois casos possíveis:

O processamento externo é armazenado em disco separadamente da infobase

Para abrir programaticamente o processamento externo em 1C, você precisa saber o endereço de seu arquivo. Sabendo disso, você pode abrir um formulário de processamento ou fazer com que um objeto de processamento execute outras ações com ele (por exemplo, chamar funções de exportação de um módulo de objeto).

Abrindo um formulário de processamento externo

Para abrir programaticamente um formulário de processamento externo em 1C, use a função ObterFormulário() objeto Processamento Externo. A função possui vários parâmetros. Considere uma simples abertura do formulário de processamento principal:


Formulário = Processos Externos. GetForm(FileAddress);
Forma. Abrir();

Para abrir um formulário de processamento externo secundário, você deve especificar seu nome.

//A variável FileAddress contém o caminho completo para o arquivo de processamento externo
Formulário = Processos Externos. GetForm(FileAddress, "Forma Menor") ;
Forma. Abrir();

Abrindo o processamento externo como um objeto

Para receber processamento externo como um objeto, uma função é usada Criar() objeto Processamento Externo.

//A variável FileAddress contém o caminho completo para o arquivo de processamento externo
ProcessingObject = ProcessamentoExterno. Criar(FileAddress);

Por padrão, todo o processamento é aberto em modo de segurança. Para desativá-lo, use as seguintes opções:

//A variável FileAddress contém o caminho completo para o arquivo de processamento externo

Processamento externo ou formulário de impressão salvo na infobase

Em muitas configurações é possível salvar formulários impressos externos e processamento diretamente na infobase. Para tanto, utiliza-se o livro de referência Processamento Externo. O próprio processamento externo é armazenado como dados binários ou em atributos ArmazenamentoExternoProcessamento, ou na parte tabular Afiliação nos adereços ArmazenamentoExternoProcessamento.

Para abrir o processamento externo você precisa:

  1. Retire-o do armazenamento.
  2. Salve o arquivo processado no disco.
  3. Abra um formulário ou obtenha um objeto de processamento.
  4. Se estivermos lidando com um formulário impresso externo, podemos preencher os dados padrão Referência de objeto e chame a função de exportação Selo.

//A variável RefLink contém um link para o elemento de diretório ExternalProcessings
DvData = RefLink. Armazenamento de processamento externo. Pegar() ;
EndereçoArquivo = GetTemporaryNomeArquivo() ;
DvData. Write(FileAddress);
ProcessingObject = ProcessamentoExterno. Criar(FileAddress,Falso);