1c como fazer um formulário de impressão externo. Publicações

Este artigo contará em detalhes como um iniciante com pouco conhecimento de 1C 8 pode criar formulário impresso. Por exemplo, vamos pegar uma das configurações 1C 8 mais comuns - Contabilidade 2.0. Criando um formulário impresso 1C etapas de escrita:

  • Criação de um arquivo de formulário de impressão externo;
  • Criação de layout de formulário impresso;
  • Escrever código de programa para exibir dados de formulários impressos na tela;
  • Criação de parâmetros para cadastro automático de formulário impresso;
  • Conectando um formulário de impressão externo à base Empresas 1C.

Criação de um formulário impresso 1C. Formulação do problema

Somos obrigados na configuração Contabilidade 2.0 criar um formulário impresso para um documento Recebimento de mercadorias e serviços. No cabeçalho do formulário impresso, exiba os seguintes dados:

  • Organização;
  • Contraparte;
  • Acordo de contraparte;
  • Data da Receita.

Exibir os dados na seção tabular como uma tabela Bens documento. A tabela deve incluir as seguintes colunas:

  • Nomenclatura;
  • Quantidade;
  • Preço;
  • Soma;
  • E também o preço do item para a data atual (por tipo de preço do documento).

Arquivo de processamento externo

Vamos prosseguir para a solução do problema. Primeiro, vamos abrir 1C 8 no modo Configurador. É neste modo que todos os desenvolvimentos são realizados na plataforma 1C 8. Agora precisamos criar um arquivo. processamento externo. Para fazer isso, clique no menu Arquivo -> Novo… ou pelo ícone de um novo arquivo.

Na janela que se abre, selecione o item Processamento externo.

Próximo em campo Nome Você deve inserir o nome do processamento externo. No nosso caso, simplesmente chamaremos de “PrintForm”; o campo de sinônimo será preenchido automaticamente. Observe que no campo Nome, processamento externo, o nome deverá ser escrito sem espaços ou sinais de pontuação.

Vamos adicionar atributos de processamento externo LinkToObject e selecione digite para ele DocumentLink.. Para fazer isso, na árvore de metadados de processamento externo 1C, selecione o item Requisitos e pressione o botão Adicionar(botão com mais verde). A janela de propriedades do atributo será aberta no lado direito da tela, no campo Nome vamos escrever - ReferênciaToObject. EM campo Tipo pressione o botão com três pontos.

Vamos expandir o ramo na árvore de tipos DocumentLink, e encontre o elemento Recebimento de Mercadorias e Serviços ali, marque a caixa ao lado dele e clique OK.

Vamos salvar o arquivo de processamento externo no disco rígido; para isso, utilize o menu; Arquivo -> Salvar, pictograma Salvar(disquete azul) ou um atalho de teclado Ctrl+S. Vamos nomear o arquivo salvo como “PrintForm”.

Criando um layout de formulário impresso

Vamos começar a criar um layout do formulário de impressão 1C. O layout serve como modelo para a saída do formulário de impressão, portanto, se você deseja que seu formulário de impressão tenha uma boa aparência, preste atenção nele.

Vamos adicionar um novo layout na árvore de metadados de processamento externo, não mudaremos nada na janela do designer de layout e clicar no botão; Preparar.

No novo layout que se abre, criaremos diversas áreas necessárias à visualização do formulário impresso. Todas as áreas de layout que precisamos serão horizontais, então para criar uma nova área, selecione o número necessário de linhas de layout e vá para o menu Tabela -> Nomes -> Atribuir nome ou use o atalho do teclado Ctrl + Shift + N, em seguida, insira o nome da região na caixa. Ao criar uma área de layout, não tenha medo de errar na quantidade de linhas que você sempre pode adicionar ou remover; Para excluir uma linha de layout 1C, selecione a linha desejada e selecione o item no menu de contexto Excluir. Para adicionar uma nova linha ao layout, selecione qualquer linha do layout e selecione o item no menu de contexto Expandir.

Adicionando um cabeçalho de layout

Primeiro de tudo, vamos criar uma área Um boné, ele exibirá os dados do cabeçalho do formulário de impressão. Para esta área precisaremos de sete linhas de layout. Vamos selecioná-los e, como escrevi acima, pressione a combinação de teclas Ctrl + Shift + N, em campo Nome escreva “Chapéu” e pressione o botão OK.

Vamos preencher a área de layout com os dados que precisamos. Normalmente, nenhum formulário impresso fica completo sem um título, então vamos criar um também em nosso cabeçalho de layout. Como no título, além do nome do formulário impresso, exibiremos também o número do documento a partir do qual foi impresso, definiremos como parâmetro o texto do título no layout. Um parâmetro de layout é uma célula de layout especialmente designada na qual vários dados podem ser gerados usando a linguagem 1C 8 integrada. O título deve ser exibido em toda a largura do formulário impresso, então vamos decidir quantas células de layout serão suficientes para imprimirmos na orientação paisagem padrão da folha.

Normalmente treze ou quatorze células de layout são suficientes, selecione-as na primeira linha da área Um boné e combine em uma célula ( Menu de contexto -> Mesclar). Depois disso, clique duas vezes na célula grande resultante e escreva o nome do parâmetro, no nosso caso “TitleText”. Para que o texto inserido se torne um parâmetro completo, clique com o botão direito na célula e selecione o item no menu de contexto Propriedades. No marcador Disposição vamos encontrar o campo Enchimento e selecione o valor Parâmetro. Os parâmetros no layout 1C são indicados entre colchetes “<>».

O título do formulário impresso deve se destacar dos demais textos, então selecione a célula novamente e utilize os ícones do painel de formatação do layout para definir o alinhamento do texto Centralizado e tamanho da fonte 14.

Após o texto do título iremos exibi-lo na área Um boné informações sobre a organização, contraparte, acordo de contraparte e data de recebimento da mercadoria. Como todos esses dados também são retirados do documento, também iremos formalizá-los com parâmetros. Além disso, antes de cada parâmetro você deve escrever um texto explicativo para que o usuário possa entender facilmente onde está a organização, onde está a contraparte, etc. Todas essas ações são semelhantes à criação de um título, então não vou me alongar sobre elas, apenas darei uma ideia do que deve acontecer no final.

A figura mostra como os parâmetros de layout diferem do texto normal.

Adicionando um cabeçalho de tabela de layout

A última coisa que precisamos criar nesta área de layout é o cabeçalho da tabela, no qual serão exibidos os dados da parte tabular Bens. As colunas necessárias para a tabela foram descritas na seção “Declaração do Problema”. Também criaremos um cabeçalho de tabela usando uma combinação de células e escrevendo texto (nomes de colunas). Selecione as bordas do cabeçalho da tabela usando a ferramenta Quadro, localizado no painel de formatação de layout.

Adicionando uma tabela a um layout

Vamos criar outra área no layout - Dados. A tabela de dados da parte tabular será exibida nela Bens. Para esta área, precisamos apenas de uma linha de layout. Para exibir todas as linhas da parte tabular de forma impressa, preencheremos e exibiremos esta área o número de vezes necessário. Colunas na área Dados deve coincidir com as colunas do cabeçalho da tabela, portanto o preenchimento não será difícil. A única diferença está na área Dados precisamos de parâmetros, não apenas de texto. Observe também que, por padrão, os parâmetros numéricos são formatados à direita e os parâmetros de texto são formatados à esquerda. Para selecionar colunas, você também precisa usar a ferramenta Quadro.

Adicionando um rodapé a um layout

A última área de layout que precisamos é Porão. Ele exibirá os totais por quantidade e valor. A criação é semelhante à criação de uma área Dados, mas adicionalmente os resultados devem ser destacados em negrito.

O resultado final deve ser um layout parecido com este:

Criação de um formulário impresso 1C. Programação

Vamos começar a programar - esta é a etapa mais importante na criação de um formulário impresso. Primeiramente vamos ao módulo do objeto formulário de impressão externa, é aqui que iremos programar. Para fazer isso, na janela principal de processamento externo, clique em Ações -> Abrir módulo de objeto.

Você precisa criar uma função de exportação no módulo de objeto de formulário de impressão externo Selo().

Função Print() Exportar EndFunction

Observe que esta funçãoé necessário para impressão externa de formulários em configurações que usam um aplicativo normal. Todo o código do programa subsequente necessário para exibir o formulário impresso será escrito dentro desta função.

Inicializando Variáveis ​​Básicas

Vamos criar uma variável TabDoc, que conterá um documento de planilha - este é exatamente o formulário impresso no qual exibiremos as áreas preenchidas do layout.

TabDoc = novo TabularDocument;

Para uma variável Disposição Obteremos o layout do formulário impresso que criamos. Para fazer isso, usamos a função integrada ObterLayout(<ИмяМакета>).

Layout = GetLayout("Layout");

Converteremos todas as áreas do layout em variáveis. Para fazer isso usamos o método de layout GetArea(<ИмяОбласти>) .

HeaderArea = Layout.GetArea("Cabeçalho"); AreaData = Layout.GetArea("Dados"); AreaFooter = Layout.GetArea("Rodapé");

Saída do cabeçalho de um formulário impresso em um documento de planilha

Todas as variáveis ​​necessárias são inicializadas. Vamos começar a preencher e exibir as áreas de layout em uma planilha. Primeiramente vamos preencher o título do formulário imprimível para isso precisamos passar o parâmetro; Texto do título, que criamos no layout, o texto que precisamos. Para preencher os valores dos parâmetros, a área de layout possui uma coleção especial, que é chamada - Opções. A partir do qual através de “.” você pode obter qualquer parâmetro. No texto do cabeçalho transferiremos o texto: “Forma impressa”, bem como o número do documento.

Header Area.Parameters.TitleText = "Imprimir formulário"+LinkToObject.Number;

Preenchemos os demais parâmetros do cabeçalho de forma semelhante e obteremos todos os valores necessários para eles a partir dos detalhes; Referência de objeto, que contém um link para o documento que está sendo impresso.

HeaderArea.Parameters.Organization = LinkToObject.Organization; HeaderArea.Parameters.Account = LinkToObject.Account; HeaderArea.Parameters.ReceiptDate = LinkToObject.Date; Header Area.Parameters.Contrato de contraparte = LinkToObject.Contrato de contraparte;

Todos os parâmetros do cabeçalho estão preenchidos, iremos exibi-lo na planilha que criamos, para isso utilizamos o método Saída(<Область>) .

TabDoc.Output(HeaderArea);

Escrevendo um pedido de handicap impresso

Vamos começar a preencher e desenhar a área Dados. A criação de um formulário impresso 1C também envolve escrever uma consulta que precisamos para obter dados tabulares; Bens e preços Nomenclaturas para a data atual usaremos Solicitar. A linguagem de consulta 1C 8 é semelhante ao SQL, ou melhor, praticamente copia os recursos de seu operador SELECT, mas toda a consulta é escrita em russo. Portanto, se você estiver pelo menos vagamente familiarizado com SQL, entenderá facilmente a linguagem de consulta 1C 8.

Nesta forma impressa, o pedido será bastante simples e muitos dirão que seria possível prescindir dele, mas o conhecimento da linguagem de consulta e a capacidade de utilizá-la com competência é uma das principais competências de um programador 1C. As consultas permitem obter amostras de dados complexas usando menos recursos, e o texto da consulta é muito mais fácil de entender do que o código do programa escrito sem usar uma consulta (ou com uso mínimo dela). Além disso, 1C 8 possui um designer de consultas muito bom que permite montar interativamente uma consulta a partir das tabelas necessárias.

Vamos criar uma variável que conterá a solicitação.

Solicitação = Nova Solicitação;

Comporemos o texto da consulta usando o construtor de consulta. Para começar, vamos escrever:

Solicitação.Text = "";

Coloque o cursor do mouse entre as aspas e pressione o botão direito do mouse. No menu de contexto que é aberto, selecione o item Solicitar construtor, isso nos ajudará muito na criação de um formulário de impressão 1C. Depois disso, a janela do designer de consulta será aberta; ela contém várias abas, mas para nossa consulta precisaremos apenas de quatro: “Tabelas e Campos”, “Relações”, “Condições”, “Joins / Aliases”.

Para nossa consulta precisaremos de duas tabelas: parte da tabela Bens documento Recebimento de mercadorias e serviços e um instantâneo das informações mais recentes sobre a data atual do registro Preços dos itens.

No lado esquerdo da janela do designer encontramos a coluna Base de dados. Ele contém uma árvore de todos os objetos de metadados, vamos encontrar aqueles que precisamos. Para fazer isso, vamos abrir o tópico Documentação e encontre o documento Recebimento de Bens e Serviços, vamos abri-lo e encontrar a parte tabular Bens, arraste-o para a coluna do designer de consulta Tabelas. Você pode arrastar de três maneiras: arrastando, clicando duas vezes na tabela ou selecionando-a e clicando no botão “>”. Vamos abrir o tópico Registros de informações e encontre uma mesa lá PreçosNomenclatura.ShortcutLatest, arraste-o também para a coluna Tabelas. Essas duas tabelas são suficientes para nossa consulta.

Vamos selecionar os campos que precisamos nas tabelas resultantes. Para fazer isso, na coluna Tabelas vamos abrir a mesa e encontre os campos: Nomenclatura, Quantidade, Preço, Quantidade e arraste-os para a terceira coluna do construtor - Campos. Vamos expandir a tabela , vamos encontrar o campo Preço e também arraste-o para Campos.

A estrutura das tabelas e campos da nossa requisição está pronta, agora vamos passar às condições. Precisamos dos dados tabulares Bens não foram retirados de todos os recibos, mas apenas daquele que imprimimos. Para fazer isso, vamos impor uma condição na mesa Recebimento de MercadoriasServiçosMercadorias. Vamos para a aba “Condições” do designer de consultas. Em uma coluna Campos as tabelas que selecionamos anteriormente estão localizadas, para a condição precisaremos de um campo Link Da mesa Recebimento de Mercadorias e Serviços, Vamos arrastá-lo para a janela Condições.

Nas solicitações 1C, você pode usar parâmetros que são necessários para transferir dados para a solicitação. Por exemplo, se quisermos limitar a seleção de documentos a um documento específico, podemos usar um parâmetro para passar um link desse documento para a solicitação e usar esse parâmetro na condição. É exatamente isso que faremos em nosso pedido.

Depois da janela Condições adicionamos um campo Link, o próprio designer da consulta criará um parâmetro com o mesmo nome e o colocará após o sinal “=”. Este parâmetro pode ser renomeado, se desejado. No texto da solicitação, os parâmetros são marcados com o sinal “&”, mas neste caso isso não é necessário, pois se presume que a segunda parte da condição contém um parâmetro, basta lembrar disso. Como passar um valor para um parâmetro de solicitação 1C será discutido abaixo.

Como na solicitação não estamos utilizando uma tabela completa de preços de produtos, mas sim uma virtual (neste caso uma fatia desta), precisamos definir as condições para a formação desta tabela virtual, no nosso caso esta é a a data de corte e a condição do tipo de preços (os preços que têm um tipo de preço estritamente definido é o especificado no documento de recebimento que imprimimos).

Para preencher os parâmetros da tabela virtual, acesse a aba Tabelas e campos construtor de consulta, na coluna Tabelas selecione a tabela PreçosNomenclaturaCorteÚltimo e pressione o botão Opções de mesa virtual, localizado na parte superior. Na janela que se abre, no campo Período você deve definir um parâmetro para o qual será passada a data em que será feito o corte de preço. No nosso caso, esta será a data atual (ou seja, hoje), por isso chamaremos o parâmetro “&CurrentDate”. No campo de condições escreveremos as condições para o tipo de preço, também passaremos no parâmetro, que chamaremos de “&TypePrice”. A condição resultante será semelhante a esta (onde TipoPreço- registrar medição Preços dos itens):

TipoPreço = &TipoPreço

Os parâmetros da tabela virtual estão preenchidos, clique no botão OK.

Agora que limitamos a seleção apenas ao documento que precisamos, vamos criar conexões entre as tabelas de consulta. Caso isso não seja feito, os preços da tabela PricesNomenclatureSliceLast não serão associados ao item do recibo. Vamos para a aba Conexões designer de consulta. Vamos criar uma conexão em todo o campo Nomenclatura entre nossas duas mesas. Para fazer isso, pressione o botão Adicionar, em campo tabela 1 selecione uma tabela Recebimento de MercadoriasServiçosMercadorias, e no campo Tabela 2 - PreçosNomenclaturaSliceLast. Nas condições de comunicação, selecione os campos Nomenclatura de ambas as tabelas.

Deve-se notar também que na seleção da consulta precisamos obter todas as linhas da parte da guia Bens e preços somente se estiverem disponíveis na data atual para o tipo de preço do documento. Assim, os dados tabulares Bens são obrigatórios, mas os dados de discriminação de preços não estão disponíveis. Portanto, nos relacionamentos entre essas tabelas é necessário utilizar o chamado LEFT JOIN, e a tabela da esquerda (ou obrigatória) será Recebimento de MercadoriasServiçosMercadorias e o PriceNomenclatureSliceLast correto (ou opcional). Para que a junção esquerda das tabelas de consulta funcione conforme descrevi acima, você precisa marcar a caixa Todos depois do campo Tabela 1.


A solicitação está quase pronta, só falta trabalhar um pouco nos aliases do campo. Vamos para o marcador Uniões/aliases e defina um alias para o campo PreçosNomenclatura Slice Latest.Price. O nome do apelido será - Preço como hoje, é necessário para que os nomes dos campos de seleção da consulta e os nomes dos parâmetros no layout do formulário impresso correspondam.

O trabalho no designer de consultas está concluído, clique em OK. Depois que a janela do designer fechar, você verá que a linha com o texto da solicitação está preenchida e fica assim:

Request.Text = "SELECT | Recebimento de mercadoriasServiçosProdutos.Nomenclatura, | Recebimento de mercadoriasServiçosProdutos.Quantidade, | Recebimento de mercadoriasServiçosProdutos.Preço, | Recebimento de mercadoriasServiçosProdutos.Quantidade, | PreçosNomenclatura Fatia do mais recente.Preço AS PreçoHoje | DE | Documento. Recebimento de MercadoriasServiços.Mercadorias AS Recebimento ProdutosServiçosProdutos | CONEXÃO ESQUERDA CadastroInformações.PreçosNomenclatura.SliceÚltimo (| &DataAtual, TipoPreço = &TipoPreço) AS PreçosNomenclaturaFatiaÚltimo ON Recebimento de MercadoriasServiçosProdutos.Nomenclatura |

Executando a solicitação

Vamos passar os parâmetros necessários à requisição; para isso utilizaremos o método request; SetParameter(<ИмяПараметра>,<Значение>). Para obter a data atual, use a função integrada A data atual(), ele retorna a data e a hora do computador.

Vamos executar uma consulta para obter uma amostra com os dados que precisamos. Para fazer isso, primeiro use o método de solicitação Correr(), e então o método Escolher().

Selecione = Query.Run().Select();

Preenchendo a tabela do formulário impresso

Como resultado, na variável Amostra conterá uma seleção de resultados de consulta, você pode navegar por ela usando o método Próximo(), e para percorrer tudo você precisa de um loop Tchau. O desenho será o seguinte:

Enquanto Select.Next() Loop EndLoop;

É neste loop que iremos preencher e exibir a área de layout Dados. Mas primeiro, vamos inicializar duas variáveis ​​do tipo numérico. Neles coletaremos os totais por quantidade e valor que precisamos exibir na área Porão.

SomaTotal = 0; QuantidadeTotal = 0;

Dentro do loop preencheremos a área Dados dados do elemento de seleção atual em variáveis Montante total E Quantidade total adicionar valores de soma e quantidade e, por fim, exibir a área em uma planilha usando o método que já conhecemos Saída(). Já que os nomes dos campos da nossa solicitação coincidem totalmente com os nomes dos parâmetros da área Dados, então para preencher usaremos o procedimento interno FillPropertyValues(<Приемник>, <Источник>), que copia valores de propriedade<Источника>para propriedades<Приемника>.

Enquanto Selection.Next() Loop FillPropertyValues(AreaData.Parameters,Selection); TotalSum = TotalSum + Sample.Sum; QuantidadeTotal = QuantidadeTotal + Quantidade.Amostra; TabDoc.Output(AreaData); Fim do Ciclo;

Gerando o rodapé de um formulário impresso em um documento de planilha

Resta preencher e exibir a última área do layout - Porão. Já preparamos os dados para preenchimento, o preenchimento e a retirada são realizados de acordo com o mesmo esquema.

AreaFooter.Parameters.TotalQuantity = TotalQuantity; AreaFooter.Parameters.TotalSum = TotalSum; TabDoc.Output(AreaFooter);

O documento da planilha está totalmente preenchido, resta exibi-lo na tela para que o usuário possa visualizar o formulário impresso e imprimi-lo se necessário. Mas nas configurações típicas do 1C 8, os procedimentos dos módulos especiais são responsáveis ​​​​pela saída dos formulários impressos externos. Portanto, basta retornar da função Selo() documento de planilha preenchido.

Retornar TabDoc;

Neste ponto, a etapa de programação está concluída e a criação do formulário de impressão 1c está quase concluída. Texto completo funções Selo() Não vou dar aqui, você pode conferir no arquivo para impressão, que pode ser baixado no final do artigo.

Criação de um formulário impresso 1C. Opções de registro automático

Ao conectar um formulário de impressão externo ao banco de dados, o sistema não determina automaticamente a qual documento ou livro de referência o formulário de impressão se destina; E se outra pessoa escreveu o formulário impresso e você só tem a tarefa de conectá-lo, a escolha pode se tornar ambígua. Para evitar tais problemas, em todos os impressos externos é necessário criar um layout com parâmetros de autocadastro. Se for criado e formatado corretamente, o sistema determina automaticamente a qual documento ou livro de referência se destina o formulário impresso.

Isso é feito da seguinte forma:

  • No processamento externo criamos um novo layout. Chamamos isso de “Settings_Auto-Registration” (é importante não cometer erros!).
  • Na primeira célula do layout escrevemos Documentação.(ou Diretórios.) e o nome do documento ao qual deseja vincular o formulário impresso.

Conectando um formulário de impressão externo à base

  • Inicie 1C 8 no modo Empresa;
  • Ir para o cardápio Serviço -> Relatórios e processamento adicionais -> Formulários impressos externos adicionais;
  • Clique no botão Adicionar;
  • Na janela que se abre, clique no ícone Substituir arquivo de processamento externo;
  • Se você criou parâmetros de registro automático, concordamos em usá-los;
  • Se você não criou parâmetros de registro automático, então na parte tabular Acessório de placa de impressão adicionar documento requerido ou livro de referência;
  • aperte o botão OK.

Após isso, o formulário de impressão externa estará disponível no menu Selo documento Recebimento de mercadorias e serviços. A criação do formulário impresso 1C agora pode ser considerada concluída.

Como é sabido - sem um pedaço de papel você... nenhum negócio sério pode prescindir. E quando dizemos que 1C possui algum tipo de documento eletrônico, surge imediatamente a questão de como imprimi-los em papel.

Processo de impressão documento eletrônico 1C é chamado de formulário impresso 1C.

Cada documento pode ter vários formulários impressos 1C. Por exemplo, o documento Vendas de bens e serviços (ou seja, venda) é impresso em formulários impressos 1C: TORG-12, Fatura, Nota de Consignação, Certificado de serviços prestados e assim por diante.

A essência do formulário impresso 1C é um modelo (como um documento Excel) no qual as variáveis ​​​​são especificadas. Durante o processo de impressão, o texto do documento eletrônico é substituído por variáveis. O modelo geralmente é armazenado na configuração.

O problema de alterar um formulário impresso 1C padrão é que geralmente não é aconselhável alterar a configuração padrão, caso contrário será mais difícil atualizá-lo. Portanto, vários métodos de utilização de formulários de impressão 1C externos surgiram e começaram a reinventar a roda.

Um formulário de impressão 1C externo é um modelo de impressão armazenado de alguma forma separadamente da própria configuração.

No entanto, tudo isso é teoria. Como criar seu próprio formulário impresso? Ou melhor ainda, como fazer alterações em um já existente?

Como um documento 1C é impresso

Para imprimir qualquer documento 1C (que pode ser impresso), você precisa clicar no botão Imprimir no documento. 1C se oferecerá para selecionar um formulário impresso 1C para este documento da lista.

À esquerda do botão Imprimir geralmente há um botão de acesso rápido ao último formulário de impressão 1C selecionado.

O resultado da impressão fica assim. Para imprimi-lo em uma impressora, você precisa colocar o cursor no formulário de impressão 1C, pressionar Ctrl+P ou o botão da impressora no painel de botões ou no menu Arquivo/Imprimir.

As configurações de impressão (margens, orientação da folha, etc.) estão localizadas no menu Configuração de arquivo/página. Você também pode definir as configurações do usuário para imprimir diretamente na impressora.

De onde vem esse formulário de impressão?

Onde está localizado o formulário impresso 1C?

Vamos para o configurador. Encontre o documento necessário na janela de configuração. Vamos expandir seu ramo Layouts. São eles que se transformam na forma de impressão 1C quando impressos.

No entanto, não será suficiente - fomos oferecidos para escolher muito mais opções ao imprimir. O fato é que muitos layouts de formulários impressos 1C estão escondidos em outro lugar.

Voltemos ao topo da janela de configuração 1C. Vamos abrir a ramificação Geral e depois a ramificação Layouts Gerais. É aqui que a maioria dos layouts está localizada. Isto é especialmente verdadeiro para formulários impressos regulamentados pelo estado 1C - TORG 12, fatura, etc.

Aliás, não é difícil perceber que você verá diversos layouts de TORG12 ou Invoice. Por que? É fácil de explicar. As leis e os requisitos mudam periodicamente. Mas não podemos simplesmente alterar o mesmo layout – e se tivermos que imprimir o documento a partir de uma data anterior à data da alteração. Portanto, são feitos diversos layouts e, dependendo da data do documento, utiliza-se o correto.

Mas isso não é tudo! Existem também layouts externos. Onde eles estão armazenados?

Voltemos ao modo 1C Enterprise. Através do menu do usuário com direitos administrativos Operações/Diretórios, selecione o diretório Processamento externo.

As linhas deste diretório, que possuem o formato Formulário de impressão, adicionam opções de impressão para o documento especificado na tabela Propriedade do formulário de impressão (na imagem é Vendas de bens e serviços).

Para que isso funcione, é necessário fazer um processamento externo que possua um procedimento Print() em seu módulo objeto denominado Export, que organiza o processo de impressão.
Mas estamos ficando à frente de nós mesmos. Vejamos primeiro como o layout do formulário de impressão 1C é organizado.

Layout do formulário impresso 1C

O layout do formulário de impressão 1C é assim.

Como você pode ver, ele está dividido em blocos. Os blocos podem ser horizontais (nome à esquerda) ou verticais (nome no topo).

O layout em si, tal como está, não é impresso. Estão sendo impressos blocos separados. O programador no procedimento de processamento de impressão especifica a ordem dos blocos e o número de repetições de cada bloco. Como resultado, um formulário impresso é formado.

Para atribuir uma área, selecione várias linhas (ou várias colunas) e selecione Tabela/Nomes/Atribuir um nome no menu. Para removê-lo, existe também o comando Remover nome.

O nome é necessário para que a área possa ser acessada a partir do código do programa. O nome pode ser atribuído não apenas a linhas ou colunas, mas também simplesmente a várias células. Para fazer isso, selecione as células e selecione o mesmo menu.

No entanto, por padrão, os nomes de células personalizados não são exibidos. Para vê-los, selecione o item de menu Tabela/Nomes/Exibir células nomeadas.

Então, hoje aprendemos que um formulário impresso 1C é formado por meio de um layout. O layout consiste em blocos – habilmente chamados de áreas.

Blocos típicos (comumente usados) para chapas de impressão:

  • Cabeçalho – o título do documento é exibido
  • Linha – uma linha da tabela é exibida, este bloco é repetido quantas vezes forem necessárias as linhas que precisam ser impressas
  • Rodapé – o final do documento é exibido.

Agora precisamos lidar com o

Este artigo descreve como conectar um formulário impresso externo a um banco de dados 1C usando o exemplo da configuração “Trade Management 11.2”

A configuração “Trade Management 11.2” é uma configuração em formulários “GERENCIADOS”!

Nossas instruções “mostraram” como conectar um formulário impresso externo na base de informações 1C com configuração em formulários “GERENCIADOS”, a saber:

  • "Contabilidade 3.0"
  • "Gestão Comercial 11.2"
  • "Salário e gestão de pessoal 3.1"
  • "Automação abrangente 2.0"
  • "Ao controle pequena companhia 1,6"
  • "Varejo 2.2"
  • e outras configurações semelhantes.

Para conectar um formulário de impressão externo em 1C, precisaremos seguir 11 etapas.

1 — Menu “Dados mestre e administração” (Em outras configurações, como no Enterprise Accounting 3.0, pode ser chamado simplesmente de “Administração”). 2 — Selecione “Formulários impressos, relatórios e processamento” (ver figura abaixo ↓)

3 — Expanda o submenu “Relatórios e Processamento” (Em outras configurações, como Enterprise Accounting 3.0, pode não haver tal submenu, então passamos imediatamente para a próxima etapa). 4 — Marque a caixa “Uso de relatórios e processamento adicionais”. 5 — Vá para a seção: Relatórios adicionais e processamento. (veja figura abaixo ↓) ()

6 - Clique no botão “Criar”. (veja a figura abaixo ↓)

Nas novas versões do 1C (a partir de agosto de 2016), o programa possui um mecanismo de alerta integrado sobre o perigo de usar processamento externo desconhecido que pode conter “vírus”; em versões anteriores do programa, o aviso não aparecerá! Se isso ocorrer, então para conectar um formulário de impressão externo será necessário - 7 - clique no botão “Continuar”. (veja a figura abaixo ↓)

8 — Selecione o diretório no qual o processamento está localizado. 9 — Selecione-o (o processamento que precisamos). 10 - Clique no botão “Abrir”. Ou, em vez das etapas 9 e 10, você pode simplesmente clicar duas vezes no formulário impresso externo que precisamos na janela de seleção. (veja a figura abaixo ↓)

Se precisarmos adicionar posicionamento para o processamento adicionado (Por exemplo, este é um Formulário de Contrato Universal do nosso site e precisamos que o comando para imprimir este formulário seja exibido em algum objeto no qual não é exibido inicialmente) - 11 — clique na linha de colocação (“Colocar em:”, talvez “Colocação:”) e selecione os diretórios e documentos necessários. 12 — Concluímos os passos para conectar um formulário de impressão externo clicando no botão “Gravar e fechar”. (veja a figura abaixo ↓)

Isso é tudo! Parabéns! A placa de impressão externa está conectada! Fizemos tudo certo? Vamos checar...

Antes de Gravar e fechar, notamos que este impresso externo está localizado no documento Vendas de bens e serviços, o que significa que podemos abrir opções de impressão para qualquer documento do tipo: “Vendas de bens e serviços”. pressione o botão “Imprimir” e veja que apareceu uma janela para seleção de formulários impressos, entre eles está - 13 — formulário de impressão externo conectado por nós (veja figura abaixo ↓)

Agora é isso com certeza. Esperamos que este artigo tenha sido útil para você.

Como adicionar (registrar) um formulário impresso externo (ou processamento) em 1C Accounting 8.3 (revisão 3.0)

15-05-2019T13:40:54+00:00

Freqüentemente, um contador precisa de um formulário impresso adicional para um dos documentos padrão 1C: Contabilidade 8.3 (revisão 3.0). Ou é necessário processamento adicional, por exemplo, para preencher automaticamente um documento ou inserir um novo com base nele. Normalmente alguém já desenvolveu tal recurso e ele pode ser encontrado ou solicitado a um programador. E agora que a revisão foi recebida, só falta adicioná-la ao departamento de contabilidade. Como fazer isso? Mais sobre isso abaixo, passo a passo.

1. Abra 1C Accounting 3.0 e selecione a seção “Administração” -> “Impressão de formulários, relatórios e processamento” no painel esquerdo:

2. Aqui, localize e selecione “Relatórios e processamento adicionais”, após marcar a caixa de seleção “Relatórios e processamento adicionais” à esquerda:

3. Clique no botão "Adicionar do arquivo...".

4. E selecione o arquivo com forma de impressão ou processamento externo (extensão epf).

5. Na nova janela, clique no botão “Salvar e fechar”.

6. Abra o documento desejado e certifique-se de que outra opção de formulário imprimível apareça no botão imprimir ou um item no menu “Criar com base em” ou um novo botão na barra de ferramentas do formulário. Preparar!

Sinceramente, Vladimir Milkin(professor e desenvolvedor).

Os formulários impressos externos para uma aplicação regular (para a configuração Enterprise Accounting 2.0, Salary and Human Resources Management 2.5, Trade Management 10.3, etc.) são criados de forma bastante simples em comparação com os formulários impressos externos para uma aplicação gerenciada.

Por que criar formulários de impressão externos?

A vantagem de um formulário impresso externo em relação ao convencional é que permite evitar alterações na configuração da infobase. Isso significa que o processo de atualizações de configuração subsequentes não será complicado. Além disso, a impressão externa de formulários juntamente com o processamento externo são a única opção para expandir a funcionalidade versões básicas Configurações 1C que não podem ser alteradas.

E uma última coisa: impressos externos são mais fáceis de replicar, porque eles são um arquivo separado que pode ser rapidamente conectado à infobase.

Como criar um formulário de impressão externo

Vejamos passo a passo o processo de criação de um formulário impresso 1C externo:

  1. Criamos processamento externo. Para fazer isso, selecione o item de menu no configurador Arquivo - Novo... E na caixa de diálogo que se abre - Processamento externo.
  2. Crie um atributo de processamento externo com o nome Referência de objeto. O tipo de atributo é um link para um diretório ou documento para o qual um formulário impresso externo está sendo criado. O mesmo formulário pode ser usado para vários tipos de objetos, neste caso o tipo de dados do atributo Referência de objeto deve ser composto.
  3. No módulo objeto criamos uma função de exportação com o nome Selo, que deve retornar uma planilha impressa pronta.

Muitas vezes acontece que você precisa ajustar um pouco o layout de um formulário impresso existente e torná-lo externo. Por exemplo, adicione o selo da organização e a assinatura do gestor ao layout.

Criação de um formulário de impressão externo baseado em um padrão com pequenas alterações

Vamos considerar este procedimento usando o exemplo de criação de um formulário impresso externo de um documento de transferência universal para um documento Vendas de bens e serviços 1C: Contabilidade. Será diferente do formulário impresso padrão pela presença do selo da organização.

  1. Criando processamento externo com adereços Referência de objeto, tipo de dados - DocumentLink. Vendas de bens e serviços.
  2. Encontramos o layout do formulário impresso UPD padrão (está localizado nos layouts gerais) e o copiamos (arrastamos) para a janela de processamento externo. Os layouts de outros formulários impressos podem estar localizados nos próprios documentos ou livros de referência.
  3. Nós contribuímos mudanças necessárias no layout de formulário impresso copiado.
  4. Encontramos a função responsável por gerar o formulário impresso. Esta função deve retornar o documento da planilha gerada. Copie seu conteúdo para a função de exportação Selo() no módulo de objeto de processamento externo.
    No nosso caso esta é a função Exportar PrintUniversalTransferDocument() do módulo de objeto de documento Vendas de bens e serviços.
    Se as alterações de layout forem significativas (áreas e/ou parâmetros alterados), deverão ser feitos os ajustes apropriados na função de impressão.
  5. Estamos tentando salvar o processamento externo. No entanto, você provavelmente receberá mensagens de erro indicando que alguns procedimentos e funções chamados pela função de impressão estão faltando. Essas funções e procedimentos devem ser encontrados no documento de origem e também copiados no módulo do objeto de processamento externo. Ou ajuste o link se a função ou procedimento original for exportado.
  6. (não é necessário). Para testar um formulário de impressão externo, é conveniente fazer um formulário para colocar os adereços Referência de objeto. Botão Executar deve chamar um procedimento Selo() do módulo de objeto. Para fazer isso, o evento de clique do botão recebe um procedimento:


Continuando o tópico:
Sistema de taxas

Muitas pessoas sonham em abrir seu próprio negócio, mas simplesmente não conseguem. Muitas vezes, como principal obstáculo que os impede, citam a falta de...