Como imprimir um grupo de documentos em 1C. Publicações. É possível visualizar um documento antes de imprimir?

Colegas!

Continuamos o tópico de criação de relatórios em 1C. Recentemente, nosso cliente teve problemas ao transferir documentação de 1C 8.3.

Inserção de informações adicionais em formulário impresso, numeração das folhas impressas, indicação da data, hora e usuário que emitiu o relatório.

Discutimos um exemplo semelhante na configuração 8.2 na versão anterior. Agora veremos as configurações de impressão, que nos permitem fazer tudo isso na configuração 8.3.

Além disso, muito disso é automatizado no 8.3.

Então, como você pode incorporar as informações acima em sua impressão? O que deve ser feito neste caso?

Oferecemos nossa análise de opções, talvez também seja útil para você.

Opção 1. Diretamente do formulário impresso do relatório ou documento gerado:

Crie um formulário de fatura impresso para pagamento e ligue para ele através do Ch. menu – Tabela – Configurações de impressão – Cabeçalho e rodapé e configure conforme necessário.
Isto é feito uma vez para qualquer formulário de impressão FORMED.

Configurando campos de cabeçalho e rodapé

Preste atenção nos ícones no canto superior esquerdo do formulário:

Estão em ordem: número da página, número de páginas, data e hora. Posicione o mouse no local desejado do cabeçalho ou rodapé e clique no ícone desejado. Depois de clicar no botão. OK, quando impressos, esses dados serão exibidos no formulário impresso onde você indicou.

Opção 2. Configurado para qualquer impressão (relatórios, documentos, certificados) do programa

Se não quiser configurar cabeçalhos e rodapés manualmente todas as vezes, você pode usar a seção Administração – Configurações de cabeçalho e rodapé para configurar a aparência geral de cabeçalhos e rodapés para impressão.

Se parece com isso:

Existem mais opções de exibição de informações em formulários impressos: são adicionados os dados “Nome do Relatório” e “Usuário”. Este é exatamente o nosso caso.

A seleção dos dados para o cabeçalho e rodapé é feita conforme descrito na opção 1, só que em vez dos ícones selecionamos os botões de texto “Hora”, “Data”, “Nome do Relatório”, etc. Após especificar as informações necessárias nos locais obrigatórios do formulário, a configuração é salva.

Quando o formulário impresso for impresso, todos os dados especificados serão exibidos nele.

Opção 3: edite o layout no modo personalizado

Por que estou considerando aqui este método, que tem funcionalidade própria e que, a rigor, não se relaciona com o tema em questão.

Porque muitas vezes acontece que você precisa usar uma combinação desse método e configurações de impressão para obter o resultado desejado. Editar os layouts dos formulários impressos nos permite desenhar algumas coisas que precisamos diretamente no layout deste formulário impresso.

Os layouts podem ser alterados na seção Administração – Formulários impressos, relatórios, processamento – Layouts de formulários impressos.

Aqui está um exemplo de edição do layout de uma Fatura de Pedido (documento Fatura para pagamento ao comprador):

Selecionamos um layout, indicando na entrada que iremos editá-lo e adicionar algumas informações de texto ao final.

Por exemplo, assim:

Salve as alterações e crie o formulário para impressão.

E imprimimos com as alterações.
Mas as possibilidades para tal edição são limitadas.)

Portanto, a opção 3 é conveniente para inserir informações constantes e imutáveis; todo o resto exigirá modificação do formulário impresso por um programador.

Mas muitas vezes isso é suficiente. 🙂

A maioria dos materiais de treinamento sobre programação no sistema 1C descreve a formação de formulários impressos com base em um objeto "Documento tabular" estão limitados a exibir o formulário finalizado na tela. Para os usuários, o que é muito mais importante é a aparência do documento quando impresso. Aqui, além de um layout bem desenhado, os parâmetros de impressão também desempenham um papel.

Quase todos os parâmetros disponíveis nas caixas de diálogo de configurações de impressão (configurações da impressora, propriedades da página) podem ser especificados diretamente ao gerar um documento de planilha.

Vejamos as propriedades e métodos de um documento de planilha relacionados às configurações de impressão (nos exemplos dados, “TabDoc” é um objeto do tipo “Documento de planilha”).

Propriedade "Nome da Impressora" Permite especificar uma impressora diferente da padrão para impressão. O nome deve corresponder ao nome da impressora configurado no sistema:

TabDoc. Nome da impressora = "HP LaserJet Série 3050 PCL 6";

Ao imprimir um lote de documentos, você pode economizar tempo definindo a opção de agrupamento:

TabDoc. ParseByCopies = verdadeiro;

O número de cópias pode ser especificado da seguinte forma:

TabDoc. Número de Instâncias= 5 ;

Claro, você pode definir os campos:

TabDoc. CampoEsquerda = 20 ; //A margem esquerda é de 20 mm, as outras margens são de 10 mm (padrão)

Mais algumas propriedades da página:

TabDoc. OrientaçãoPágina= OrientaçãoPágina. Paisagem;
TabDoc. InstancesOnPage= 2 ; //haverá 2 páginas na planilha
TabDoc. Escala automática = verdadeiro; //semelhante às configurações de escala de “largura da página”

Se necessário, você pode especificar um valor de escala específico em porcentagem (propriedade "Escala de impressão").

Propriedade "Tamanho da página" permite que você defina formatos de página padrão - “ A3”, “A4”, “A 5” (uma lista completa de opções está disponível na ajuda 1C).

TabDoc. TamanhoPágina = "A3"; // a letra A deve ser inglesa

Para um tamanho de papel não padrão (Personalizado), você pode especificar a altura e a largura da página (em mm):

TabDoc. PageSize = "Personalizado"; //tamanho fora do padrão
TabDoc. AlturaPágina = 350;
TabDoc. Largura da página = 350;

Também em um documento de planilha, você pode controlar a saída de cabeçalhos e rodapés e seu conteúdo. Isso é feito usando propriedades "Cabeçalho da página" E "Rodapé". Por exemplo:

TabDoc. Cabeçalho da página. Saída = verdadeiro; //o cabeçalho será impresso
TabDoc. HeaderSizeTop= 7 ; //tamanho do rodapé 7mm (padrão 10mm)
TabDoc. Cabeçalho da página. Posição vertical= Posição vertical. Principal ;
TabDoc. Cabeçalho da página. Pagina inicial= 2 ; //o rodapé é exibido na segunda página
Rodapé da fonte=Nova Fonte("Courier Novo", 8,Verdadeiro);
TabDoc. Cabeçalho da página. Fonte = Rodapé da fonte; //fonte oblíqua
TabDoc. Cabeçalho da página. TextInCenter = "Cabeçalho da página";
TabDoc. Cabeçalho da página. TextoDireito = "Página[&PageNumber] de [&PagesTotal]"; //paginação
TabDoc. Cabeçalho da página. TextLeft = "[&Data]" ; //A data atual

O documento gerado é enviado para impressão utilizando o método "Tipo()". Existem duas opções de chamada possíveis.

1) Diretamente para a impressora:

TabDoc. Imprimir(.NotUse);
TabDoc. Imprimir(verdadeiro);

2) Antes de imprimir, uma caixa de diálogo de impressão será exibida:

TabDoc. Imprimir ( DialogUsageModePrint. Usar );
TabDoc. Imprimir(falso);

Além disso, você pode controlar como o documento é dividido em páginas. Você pode estimar o número de páginas de um documento com base nas configurações atuais da impressora:

TabDoc. Número de páginas();

Usando métodos "VerificarSaída()" E "VerificarAnexo()" Você pode determinar se um documento de planilha ou uma matriz de áreas de documento de planilha caberá na página em altura e largura com as configurações atuais da impressora.

Deve-se ter em mente que o funcionamento dos três últimos métodos depende da impressora instalada. Se o método não conseguir encontrá-lo, uma exceção será lançada.

Os métodos permitem forçar a inserção de quebras de página"OutputVerticalPageSeparator()" E "SaídaHorizontalPageSeparator()".

Assim, você pode controlar a impressão página por página e controlar o preenchimento das páginas:

Se não for TabDoc. CheckOutput ( Matriz de OutputAreas) Então
TabDoc. Separador OutputHorizontalPage();
fim se;

Uma característica importante da plataforma 1C:Enterprise 8.2 é a separação estrita de propriedades e métodos por contexto de execução. Embora todas as propriedades acima estejam disponíveis em qualquer contexto, os métodos listados não estão disponíveis no thin client. A exceção é o método “Print()”, cuja disponibilidade é limitada à parte do cliente por motivos óbvios. Isso significa que a formação de um documento de planilha deverá ocorrer no servidor, e deverá ser enviado para impressão em procedimento cliente.

O programa 1C: Accounting 8 permite configurar a impressão em grupo de documentos do mesmo tipo. Tal necessidade pode surgir em diversos casos: no final do mês, quando é necessária a emissão de um grande número de certificados de prestação de serviços e faturas; na impressão de ordens de pagamento de impostos do fundo de folha de pagamento da controladora e escritórios de representação e filiais, etc. Em todos estes casos, é necessário fazer algumas configurações no programa. Os metodologistas da empresa "1C" usam um exemplo para explicar como fazer isso.

Uma das possíveis funções de serviço do "1C:Enterprise 8" é o processamento em grupo de diretórios e documentos, que está disponível no menu "Serviço". Com sua ajuda, em particular, você pode configurar a impressão em grupo de documentos. Vejamos o procedimento para configurar a impressão em grupo de documentos usando um exemplo específico.

Observação:
Uma empresa que presta serviços de consultoria emite faturas aos clientes no final do mês. Formulários de fatura impressos devem ser fornecidos aos clientes. O contador precisa imprimir todas as faturas emitidas aos clientes no período de 01/05/2008 a 31/05/2008 inclusive.

Para imprimir todas as faturas emitidas aos clientes, no menu “Serviço”, selecione “Processamento em grupo de livros de referência e documentos”. Na aba “Objetos de Seleção”, no campo “Tipo de Objeto”, selecione “Documentos”. Agora você precisa indicar quais documentos serão utilizados para seleção. Ao adicionar um novo elemento, abrir-se-á uma janela com uma lista de documentos, na qual selecionamos o documento “Fatura emitida” (ver Fig. 1).

Arroz. 1

Agora vamos para a aba "Seleção". Precisamos selecionar as faturas emitidas para o período de 01/05/2008 a 31/05/2008 e excluir as faturas antecipadas da lista. Usando o botão (ou a tecla Insert) na janela de seleção, adicionamos as condições de seleção necessárias - veja a fig. 2.


Arroz. 2

Ao clicar no botão "Selecionar", serão selecionadas as faturas que atendam às condições especificadas. Uma lista das faturas selecionadas será gerada automaticamente na aba “Processamento” do formulário “Processamento em grupo de livros de referência e documentos”. Na lista de ações, selecione “Imprimir documentos” (ver Fig. 3).


Arroz. 3

Em seguida, selecione “Imprimir com visualização” ou “Imprimir sem visualização”. Para imprimir um registro dos documentos selecionados, selecione o valor apropriado - “Registro de documentos”.

Agora clique no botão “Executar” para a pergunta “Deseja imprimir documentos?” Respondemos “Sim”.

Neste caso, se for selecionado “Imprimir sem visualização”, o procedimento de impressão de documentos será iniciado imediatamente. Se você selecionar "Imprimir com visualização", os formulários imprimíveis de todas as faturas selecionadas serão exibidos na tela. Neste caso, após visualizar os documentos, deve-se iniciar o procedimento de impressão a partir do menu principal do programa (menu “Arquivo” -> “Imprimir”). Caso seja selecionado o valor “Cadastro de Documentos”, também será exibido na tela um formulário impresso do cadastro com a lista das notas fiscais selecionadas, que pode ser impresso a partir do menu principal do programa (menu “Arquivo” -> “Imprimir ").

O algoritmo implementado em “Processamento em grupo de livros de referência e documentos” é universal e pode ser usado não apenas para impressão em grupo de documentos.

Ao utilizar o processamento com um grupo de livros/documentos de referência, estão disponíveis as seguintes ações: alteração de data, lançamento de documento, marca para exclusão, atributo de registro fiscal, responsável, comentários. Este processamento pode ser utilizado, por exemplo, para agrupar a alteração dos detalhes da parte tabular dos documentos, das datas dos documentos.

Cada documento eletrônico 1C pode ser impresso em papel e isso é feito por meio de formulários impressos 1C. Os imprimíveis são compostos de blocos nomeados, como Cabeçalho, Linha e Rodapé.

Como fazer um formulário impresso já está claro. Como dividi-lo em blocos - também. Mas como acontece a impressão de tudo isso em 1C? E principalmente - como exibir não apenas o texto do layout, mas também o conteúdo do documento eletrônico?

Isto é o que veremos agora.

Preparando um layout para impressão em 1C

Para começar, você terá que começar pelo mais simples e preencher o layout para impressão em 1C com texto estático e linhas de tabela. Afinal, alguém tem que fazer esse trabalho chato?

Colocamos texto estático para impressão em 1C

Um bom lugar para começar seria colocar o nome do nosso produto para impressão. Selecione várias células seguidas e selecione o item de menu Tabela/Mesclar. Como resultado, várias células serão mescladas em uma.

Agora nesta célula escreveremos o nome do documento. Como este é um título, aparentemente queremos colocá-lo em negrito, fonte grande (veja a imagem) e colocá-lo no meio.

Colocamos o design do layout para impressão em 1C

Temos uma área nomeada String. Nele, ao imprimir em 1C, será exibida cada linha da tabela do documento Produtos. Provavelmente gostaríamos que a tabela se parecesse com uma tabela quando impressa em 1C? Então você precisa traçar limites para isso.

Para fazer isso, selecione as células da linha e selecione o botão Bordas no painel. Escolhemos a opção Border Everywhere – ela desenha bordas de células de todos os lados ao mesmo tempo. Se precisar limitar-se a apenas um lado, você precisará selecionar o botão apropriado.

Para garantir que as linhas usadas para desenhar as bordas não sejam iguais às linhas padrão, selecione as células e clique com o botão direito. No menu que aparece, selecione Propriedades.

Na janela de propriedades normal, você pode selecionar o tipo e a cor das linhas para desenhar limites.

Colocamos fotos e outros enfeites para impressão em 1C

Muitas pessoas perguntam - como colocar algo diferente de texto em um formulário impresso 1C? Por exemplo, uma imagem.

É muito simples. Além disso, direi desde já que o código de barras (se precisar imprimi-lo) também é uma imagem.

Vamos colocar o cursor em qualquer célula. Selecione o menu Tabela/Figuras. Este é um submenu completo que permite inserir em um layout para impressão em 1C não apenas uma imagem ou objeto desenhado, mas também objetos de fora de 1C, registrados no computador usando uma classe COM (por exemplo, uma lista suspensa ao controle).

Para quem tem interesse em criar designs complexos para impressão em 1C em um layout, dê uma olhada também no menu suspenso Tabela/Configurações de impressão. Aqui você pode definir a área de repetição em cada página, cabeçalho e rodapé e área de impressão.

Como colocar o conteúdo de um documento eletrônico ao imprimir em 1C

Para colocar o conteúdo de um documento eletrônico em um layout ao imprimir em 1C, é utilizado o método de substituição. Consiste em duas partes.

Parte um. É necessário colocar parâmetros no layout nos quais você substituirá os valores ao imprimir em 1C.

Vamos colocar o cursor na célula. Vamos inserir o nome do parâmetro (em uma palavra, sem espaços ou outro lixo). A seguir, vamos entrar nas propriedades desta célula (conforme mencionado acima) e selecionar Preenchimento = Parâmetro.

Parte dois. A substituição de valores é realizada não durante a programação no configurador, mas no momento da impressão do documento em 1C. Dessa forma, por meio da programação, é necessário indicar a 1C o que precisa ser substituído neste parâmetro.

Isto se faz do seguinte modo:

Layout = GetLayout("NomeLayout");
regiãoAlgo = Layout.GetArea("NomeDaÁrea");
regionSomething.Parameters.ParameterName = "O que desejo substituir do banco de dados";

Como você pode ver, simplesmente pegamos o próprio layout pelo nome, depois uma de suas áreas, e então simplesmente acessamos o parâmetro pelo seu nome.

Naturalmente, o valor pode ser uma string ou um número, ou o valor especificado no documento.

Como imprimir um layout em 1C

Depois que o layout estiver pronto, é hora de pensar em programar o processo de impressão em 1C.

A impressão em 1C geralmente é programada por diversos procedimentos localizados no módulo objeto do documento. .

O procedimento Print() geralmente é marcado como Export e controla a impressão de um documento em 1C usando o parâmetro LayoutName, que transmite o que você deseja imprimir.

Para cada opção de layout é executado o procedimento PrintLayoutName() que especifica a impressão de um layout específico. É isso que veremos agora.

A programação da impressão em 1C consiste em três pontos.

Antes de imprimir um documento eletrônico em 1C, precisamos solicitar seus dados no banco de dados. Obviamente, para imprimir um documento, o usuário normalmente “entra” nele (abre seu formulário) e clica no botão Imprimir. Portanto, no procedimento de impressão, pode-se simplesmente referir-se aos detalhes do documento (o que é isso - discutido aqui) pelo nome.

No entanto, isso é considerado feio, não universal, etc. Por exemplo, de repente será utilizado o processamento de impressão em massa de documentos (com que frequência é utilizado?). Portanto, é comum no procedimento de impressão fazer uma consulta ao banco de dados que solicite dados do documento. Por exemplo, assim:

Solicitação = Nova Solicitação;
Consulta.Text = "SELECIONE
Data de,
Número,
Organização
DE
Documento.DocumentName
ONDE
Link = &DocumentForPrint";
Request.SetParameter("DocumentForPrint", Link);
Selecione = Query.Run().Select();
Seleção.Próximo();

Ponto 2. Preenchendo o layout para impressão em 1C

A impressão em 1C é feita em uma planilha. Este é um objeto 1C especial que permite exibir tabelas, como o Excel, na tela e na impressão. Naturalmente, o layout é impresso, ou melhor, suas áreas uma a uma.

Conseqüentemente, primeiro precisamos obter um documento de planilha e depois um layout. Imprimimos as áreas uma a uma, preenchendo os parâmetros do layout.

TabDoc = Novo Documento Tabular;
Layout = GetLayout("NomeLayout"); //ou GetGeneralLayout("")

areaHeader = Layout.GetArea("Cabeçalho");
TabDoc.Output(regiãoCap);

regiãoRow = Layout.GetArea("Linha");
Ao selecionarDocumentLines.Next() Loop
regiãoLine.Parameters.Product = SelectionDocumentLines.Product;
TabDoc.Output(regiãoString);
Fim do Ciclo;

areaCap = Layout.GetArea("Rodapé");
TabDoc.Output(regiãoFootroom);

Ponto 2. Imprimindo um documento em 1C

O último ponto é enviar o documento recebido para a tela ou impressora. Em configurações típicas, um procedimento padrão é usado para isso (cada um pode ter o seu próprio), por exemplo, Universal Mechanisms.PrintDocument().

Em outros casos, você pode simplesmente usar as funções padrão do objeto TabularDocument: TabDoc.Show() ou TabDoc.Print() .

Não é segredo que, embora hoje em dia cada vez mais empresas estejam a mudar para a gestão eletrónica de documentos, o velho ditado “Sem papel, você...” não perde a sua relevância. Acontece que, por algum motivo, as autoridades fiscalizadoras estão principalmente interessadas em documentos em papel. Portanto, se você usa ativamente o programa 1C: Contabilidade ou Empresa para controle financeiro, é importante saber como imprimir um documento eletrônico criado com o programa.

Os formulários impressos em 1C permitem transformar um documento eletrônico em uma versão impressa.

Para isso, o desenvolvedor disponibilizou uma excelente ferramenta - Print Designer. Com sua ajuda, você pode criar documentos nos quais pode especificar todos os dados necessários, e não apenas alguns formulários padrão. Isto é especialmente verdadeiro para aqueles documentos que não possuem uma forma estritamente regulamentada, que não pode ser alterada em nenhuma circunstância. Isto, em particular, pode incluir um ato de conclusão do trabalho, algumas faturas ou pagamentos.

Neste guia, propomos compreender as capacidades do Print Designer, considerar quais tipos de formulários de impressão podem existir e como eles diferem entre si. Também mostraremos com um exemplo como imprimir o formulário criado.

Primeiramente, vale a pena entender o que é, em geral, um formulário impresso em 1C 8. Este é um modelo de planilha 1C (como o Excel), no qual são especificadas algumas linhas variáveis, preenchidas com dados do programa na elaboração de um documento.

Os formulários de impressão vêm em dois tipos:

  • Interno (embutido). Eles ficam armazenados nas configurações do programa, por isso é melhor não alterá-los, pois podem surgir problemas posteriormente durante a atualização.
  • Externo - armazenado separadamente das configurações do programa. E com a ajuda deles você pode criar e preparar para impressão um documento de quase qualquer complexidade, sem afetar a configuração do programa 1C 8.

Como escolher layouts já preparados? Após realizar uma operação de entrada ou saída, por exemplo, redigir um relatório de trabalho concluído, você clica no botão “Imprimir” para imprimir os documentos. A lista exibe uma lista de formulários imprimíveis que já estão preenchidos com os dados inseridos sobre a transação realizada e sua empresa. Ao clicar no tipo de documento que você precisa, você abre uma janela de visualização para ter certeza de que os dados preenchidos estão corretos. O botão imprimir imprime o documento na impressora.

Com o básico resolvido, vamos descobrir onde todos os seus itens para impressão estão armazenados. Vamos para a próxima pergunta.

Onde os formulários impressos são armazenados?

Você pode visualizar os formulários impressos integrados no modo configurador e no modo empresarial normal. No primeiro caso, você precisa clicar no botão correspondente na janela inicial ao iniciar o programa. Você verá o menu do programa, encontrará o ramo “Vendas de Produtos e Serviços”, que contém o item “Layouts”. Muitas vezes contém apenas dois itens - “Fatura” e “Ato”. Onde estão todos os outros, já que a lista é muito mais extensa? Eles estão apenas se escondendo em outro lugar. Você precisa abrir o ramo “Geral” - “Layouts Gerais”, quase todos os layouts estão armazenados nele.

No segundo caso, é necessário ir à seção do menu “Administração” - “Impressão de formulários, relatórios e processamento” - “Layouts de formulários impressos”. Ele exibirá todos os layouts de documentos. Vale ressaltar que eles podem ser editados no mesmo menu.

Quanto aos formulários externos, primeiro você precisa criá-los através do modo configurador, ou baixando um arquivo pronto, e depois conectá-los ao menu “Administração” - “Formulários impressos, relatórios e processamento” - “Relatórios adicionais e em processamento". Falaremos sobre isso um pouco mais tarde.

Criando um formulário simples usando o Print Designer integrado

Esta forma impressa não implica a possibilidade de edição profunda, pois implicará uma alteração na configuração do programa, bem como maiores dificuldades na sua atualização. No entanto, se você estiver totalmente satisfeito com o formulário padrão ou quiser se aprofundar nos meandros da criação de um formulário externo, este método é totalmente adequado para você.

  1. Primeiramente entre no modo Configurador, encontre o documento que você precisa, por exemplo, Vendas de Produtos e Serviços, nas propriedades do documento vá em Ações - Designers - Designer de Impressão.
  2. Quando for solicitada uma opção de trabalho, selecione Formulários regulares.
  3. Dê um nome ao novo layout, por exemplo, “Imprimir fatura”.
  4. Selecione os detalhes que você gostaria de ver no cabeçalho do documento. Além disso, devem ser selecionados na ordem em que serão exibidos. Para selecionar, é necessário destacar o item na coluna da esquerda com o cursor e pressionar a seta no meio da tela para que os detalhes apareçam na coluna da direita.
  5. Marque os detalhes a serem exibidos na seção da tabela. A seleção dos detalhes segue o mesmo princípio do parágrafo anterior.
  6. Da mesma forma, selecione os detalhes da parte inferior do documento.
  7. Na fase final de criação, selecione se deseja imprimir imediatamente sem visualização, se deseja proteger a tabela e a seguir confirme a criação do formulário com o botão OK.

Criando um formulário de impressão externo

Os formulários criados através do Print Designer podem ser comparados a um editor visual de software, quando você não insere todo o código manualmente, mas apenas o compõe a partir dos elementos propostos. O formulário externo é um arquivo com código de programa escrito manualmente, que descreve o procedimento de exibição dos dados na tela. É isso que permite editar o formulário impresso da maneira que desejar, especificando absolutamente quaisquer dados em qualquer sequência.

Uma vantagem adicional é que, mesmo que você não entenda ou simplesmente não queira entender os meandros da programação 1C 8, você pode confiar esse procedimento a profissionais. Eles poderão preparar o formulário necessário para você e fornecê-lo como um arquivo pronto, que você só pode ativar com alguns cliques de um botão.

Agora vamos falar mais sobre o procedimento em si. Vejamos o exemplo de criação de um layout “Fatura” para o documento “Vendas (atos, faturas)”.

  1. Abra o programa 1C 8 no modo Configurador.
  2. Clique em Arquivo - Novo - Processamento Externo, dê um nome a ele (não deve incluir espaços) e clique em Ações - Abrir Módulo de Objeto.
  3. No campo de entrada que é aberto, insira o seguinte código (os valores que podem ser alterados para os seus estão destacados em amarelo):

Função InformationOnExternalProcessing() Exportar
Parâmetros Cadastrais = Nova Estrutura;
ArrayDestinations = Nova Matriz;
Array of Assignments.Add("Documento.Vendas de Bens e Serviços"); //Especifique o documento para o qual estamos fazendo uma impressão externa. forma
Parâmetros de registro.Insert("Visualizar", "PrintForm"); //talvez - PrintableForm, Preenchendo Objeto, Relatório Adicional, Criando Objetos Relacionados...
Parâmetros de Cadastro.Insert("Destino", Matriz de Destino);
Parâmetros de Cadastro.Insert("Nome", "Pedido de venda de mercadorias"); //nome sob o qual o processamento será registrado no diretório de processamento externo
Parâmetros de registro.Insert("SafeMode", FALSE);
Parâmetros de registro.Insert("Versão", "1.0");
Registration Options.Insert("Informações", "Este formulário para impressão foi criado como amostra");
CommandTable = GetCommandTable();
AddCommand(CommandTable, "Ordem Externa", "OrdemExterna", "CallServerMethod", True, "MXL Print");
Parâmetros de Registro.Insert("Comandos", CommandTable);
ReturnRegistrationParameters;
EndFunction // Informações SOBRE Processamento Externo()
Função GetTableCommand()
Comandos = Nova Tabela de Valores;
Commands.Columns.Add("View", New TypeDescription("Row"));//como será a descrição do formulário de impressão para o usuário
Commands.Columns.Add("Identificador", New TypeDescription("String")); //imprime o nome do layout do formulário
Commands.Columns.Add("Uso", NewTypeDescription("Linha")); //Chama ServerMethod
Commands.Columns.Add("ShowAlert", NewTypeDescription("Boolean"));
Commands.Columns.Add("Modificador", NewTypeDescription("Linha"));
Equipe de Retorno;
Função Final
Procedimento AddCommand(CommandTable, View, Identifier, Usage, ShowAlert = False, Modifier = "")
NovoComando = CommandTable.Add();
NewCommand.View = Ver;
NewCommand.Identifier = Identificador;
NewCommand.Use = Usar;
NewCommand.ShowAlert = ShowAlert;
NewCommand.Modifier = Modificador;
Fim do procedimento

  1. Salve o layout para impressão como um arquivo em qualquer pasta do disco rígido e dê um nome apropriado.

Insira no mesmo documento o procedimento para iniciar a impressão a partir do menu do programa (os comandos destacados em amarelo devem corresponder à linha):

Adicionar Comando(Tabela de Comandos, “Ordem Externa”, “Ordem Externa”):
Procedimento Imprimir (matriz de objetos, coleção de PrintForms, PrintObjects, parâmetros de saída) Exportar
Gerenciamento de impressão.Saída TabularDocumentIntoCollection(
Coleção de Formulários de Impressão,
"Ordem externa"
"Ordem externa"
GeneratePrintForm(ArrayofObjects, PrintObjects);
EndProcedure // Imprimir()

  1. Insira um layout para preenchimento do formulário impresso clicando no nome do formulário externo no canto inferior esquerdo e selecionando “Layouts” - “Adicionar” - “Planilha Documento”, dê um nome a ele. Depois disso, preencha a planilha com os dados solicitados. Por exemplo:
    • Pedido do produto nº [Número de realização] de [Data de realização] - clique com o botão direito - Propriedades - Layout - Preenchimento - Modelo.
    • Crie as colunas que deseja que apareçam no seu documento.
    • Selecione as células inseridas, clique em Tabela - Nomes - Atribuir um nome - insira o nome “Cabeçalho”.
    • Copie a linha com os cabeçalhos da tabela, selecione-os, clique com o botão direito - Propriedades - Layout - Preenchimento - Parâmetro.
    • Selecione uma linha e nomeie-a, por exemplo, “StringTCH”.
    • Crie um rodapé: escreva Total, célula onde deve ser exibido o valor total, nomeie-a como TotalTotal, selecione “Parâmetros” nas propriedades.
    • Especifique o responsável e nas propriedades da célula para exibição do sobrenome especifique “Parâmetros”.
    • Selecione as linhas inferiores e nomeie o intervalo como "Rodapé".
  2. Agora na janela de entrada, insira a função para gerar um formulário impresso:

Função GeneratePrintForm(LinkToDocument, PrintObjects)
TabularDocument = Novo TabularDocument;
TabularDocument.Name dos Parâmetros de Impressão = “PRINT_PARAMETERS_Fatura para Pagamento ao VRTU”;
Layout de Processamento = GetLayout("Fatura de PagamentoExternal");
//preenche o cabeçalho
AreaHeader = ProcessingLayout.GetArea("Cabeçalho");
AreaHeader.Parameters.DocumentNumber = LinkToDocument.Number;
AreaHeader.Parameters.DocumentDate = LinkToDocument.Date;
AreaHeader.Parameters.OrganizationName = LinkToDocument.Organization.Name;
// gera o cabeçalho em um documento de planilha
TabularDocument.Output(HeaderArea);
//preenche as linhas PM
RowArea = ProcessingLayout.GetArea("LINHA");
Para cada linha atual do documento Link.Ciclo de produtos
FillPropertyValues(RowArea.Parameters, CurrentRow);
TabularDocument.Output(RowArea);
Fim do Ciclo;
//preenche o porão
AreaFooter = ProcessingLayout.GetArea("Rodapé");
AreaFooter.Parameters.QuantityTotal = LinkToDocument.Products.Total("Quantidade");
AreaFooter.Parameters.AmountTotal = LinkToDocument.Products.Total("Valor");
AreaFooter.Parameters.ResponsibleName = LinkToDocument.Manager.Name;
// envia o rodapé para um documento de planilha
TabularDocument.Output(AreaFooter);
TabularDocument.AutoScale = Verdadeiro;
retornar Documento Tabular;
Função Final

  1. Salve suas alterações no documento.
  2. Agora você precisa ativar o formulário criado. Por esta:
    • Vá em “Administração” - “Formulários impressos, relatórios e processamento” - “Relatórios e processamento adicionais”.
    • Clique no botão “Criar”, selecione o arquivo do formulário externo no Explorer, confirme sua entrada com o botão “Salvar e Fechar”.
  3. Para verificar, acesse Vendas - Vendas (atos, faturas), clique no botão “Imprimir”, selecione seu formulário e verifique se está preenchido corretamente.
  4. Imprima o documento se necessário.

Conclusão

Vimos um exemplo de criação de um formulário imprimível por meio do Print Designer e da ferramenta de criação de formulários externos. Esperamos que tudo dê certo para você. Deixe suas dúvidas nos comentários.