# 1C Nota Fiscal de Entrada (COM)

Vamos considerar um exemplo de robô que cria uma nota fiscal de entrada no programa 1C. Os dados de entrada para este projeto são o arquivo “Pedido ao Fornecedor”. O trabalho é baseado na utilização de uma conexão COM com o aplicativo 1C.

Este projeto demonstra o carregamento de dados de PDF ou Excel. Para ver como funciona o trabalho com PDF, você deve conectar os blocos "Iniciar Processo" e o bloco esquerdo "Obter Caminho do Arquivo".

Para verificar o funcionamento do carregamento de um arquivo Excel, você deve conectar os blocos "Iniciar Processo" e o bloco direito "Obter Caminho do Arquivo".

O projeto do robô consiste em quatro diagramas e quatro arquivos: dois txt, pdf e xlsx. No arquivo “QueryTemplate.txt” está o modelo de consulta, escrito na linguagem 1C. Para carregar dados de arquivos pdf e xlsx, há um diagrama específico.

**Diagrama Principal** se parece com isso (para conveniência, os blocos do diagrama estão numerados):

<figure><img src="https://lh7-rt.googleusercontent.com/docsz/AD_4nXfLBcTTuQY38aEScNqWYbpFlfS2xSieVBDUWoosMOlVid2SQMwb6y5RxxhTe3_Lofh90PypYxOgqfI4VL5KmuHQqt7v7LB7KOSaz7nHl-0Cqh0BNZYoPwin9zxdg6vX6KUSMZnGACnVmWSWeeYVN_kyyxU?key=bQm2vlFSc1CKSZLYW_fmrw" alt=""><figcaption></figcaption></figure>

1. **Bloco “Início”** (a partir deste bloco começa qualquer diagrama).
2. **Bloco “Obter Caminho do Arquivo”** obtém o caminho completo para o arquivo com o nome especificado. Para esses blocos, as seguintes propriedades são definidas:

* Caminho da pasta (caminho da pasta onde o arquivo necessário está localizado; se a propriedade estiver vazia, será utilizada a pasta onde este projeto está localizado);
* Nome do arquivo (nome do arquivo junto com seu formato).

<figure><img src="https://lh7-rt.googleusercontent.com/docsz/AD_4nXeGbm5RNN1-gZ0H1ryVz1aoXsZrdkRKsEgTssOkmAaKsqwdZtAqw3YZ3RyeYng0wWDIFI5n2v0jnWjQmxU8XpONQgVRixd3z6s1LndDuLjnM1ZcDRpPsUXUr6MJo4eIkfyPInLzFcLZUYTsEsDPCgomZBuq?key=bQm2vlFSc1CKSZLYW_fmrw" alt=""><figcaption></figcaption></figure>

<figure><img src="https://lh7-rt.googleusercontent.com/docsz/AD_4nXc9yQrdCV-rqmCckZtnwukbXxTeuVnUJtVnbSeTJuUUsG0yOf43xuFATv6XeVZJA1th2bqop-P9is5GUlqdg2V4jPEHSvDxkZUoHYDPIcLppTKX7AgBTAmuhAvGqDD9CbAuVM9VL4JHZz4yN5flWzaTj3c?key=bQm2vlFSc1CKSZLYW_fmrw" alt=""><figcaption></figcaption></figure>

Neste caso, dois blocos “Obter Caminho do Arquivo” foram utilizados em paralelo: um para o arquivo no formato pdf, e o outro para o arquivo no formato xlsx.

3. **Bloco “Processo”** permite criar cenários compostos por vários diagramas. A execução do cenário continuará a partir do bloco “Início” do diagrama especificado do projeto. A execução do cenário retornará ao bloco atual e continuará no diagrama atual assim que o bloco “Fim” for alcançado no diagrama externo. Para o bloco “Processo”, a propriedade “Nome do Diagrama” é especificada (nome do arquivo do diagrama onde a execução do cenário continuará).

<figure><img src="https://lh7-rt.googleusercontent.com/docsz/AD_4nXeyQi9MuRkhL4xyvtCScZLRoXiMtAvHsOkcaSJcbpZBPzzq5FGzeQ10s5UAwySWqgj8kiE172E6qn5sFyK-fnO-i22J-G3McKD4YYpB4P_CSRhW9Lp_afCi5b6NJqWB6qD99_b-Eszw20JUqlQ-591HUvc3?key=bQm2vlFSc1CKSZLYW_fmrw" alt=""><figcaption></figcaption></figure>

<figure><img src="https://lh7-rt.googleusercontent.com/docsz/AD_4nXctDC-aNiA3ARKEtMBYQWQb6MNDMH6qfA2SvQ3VrwFaU9fX_nSCh033en2T08o1BGEe48yxO4L0L00qFUWCvZLbeIYAbVM3kaPTjwff5-kf6T3CzSjs23XA9U3OsQCcQoAUp7e666NT89feMT4MMwKP71Fj?key=bQm2vlFSc1CKSZLYW_fmrw" alt=""><figcaption></figcaption></figure>

Neste caso, assim como acima, dois blocos “Processo” foram utilizados em paralelo: um para carregar dados do arquivo pdf e o outro para carregar dados do arquivo xlsx.

4. **Bloco “Processo”** localizado abaixo permite criar mais um cenário, que é comum para os dois cenários descritos acima. Este processo é responsável por adicionar a nota fiscal no 1C. Para o bloco “Processo”, aqui também é especificada a propriedade “Nome do Diagrama” (nome do arquivo do diagrama onde a execução do cenário continuará).

<figure><img src="https://lh7-rt.googleusercontent.com/docsz/AD_4nXfhMQY1TX2cZSVm6rCk3h3E4CPJTUXz_9dZ_23jXcsGI02HNCp7eMlDZWw64-cQxxBU9_Y-Erg5Nrv1FPjCO6-q8NTvKUQ3DsbmVUFIpbKagFvAhqOK4wlZ-9SUx-mx04zNzhWu2nuAE7FhH4APukmQqOiT?key=bQm2vlFSc1CKSZLYW_fmrw" alt=""><figcaption></figcaption></figure>

**Diagrama "CarregarDadosDoPDF"**

<figure><img src="https://lh7-rt.googleusercontent.com/docsz/AD_4nXcuES4FWujD3zcHdFQUnHBxO0mfErb99NUog0SZ10Uj6OwVWiIbcTuEX-owTegXQvzEswReKl6Sm6EdQbxZZ5SjQpeWdcnc7D5aRc8vKraxYutFiD3SRsVhUlsmyq7BZbPHO7lTJFQi-dK9lV-snVLYAwvN?key=bQm2vlFSc1CKSZLYW_fmrw" alt=""><figcaption></figcaption></figure>

<figure><img src="https://lh7-rt.googleusercontent.com/docsz/AD_4nXf6LvuEmiRZXB1_rm7mz3CyKIGAtuJkR0dehfjuOZUbV30TuZO7SUuyGFXbbD_bmun1eJa0wG_RMcyZ9_xhICWTfKKRQcV5mm_YvdJGNGSy8qLv8w1JAr3mvD2Qqkq2PYkrxITO-mw3tZpg7EDq4WZd-e-P?key=bQm2vlFSc1CKSZLYW_fmrw" alt=""><figcaption></figcaption></figure>

1. **Bloco “Início”** (a partir deste bloco começa qualquer diagrama).
2. **Bloco “Log”** permite registrar mensagens arbitrárias e/ou valores de variáveis durante a execução do cenário do robô. Para este bloco, a propriedade “Valor” é especificada. Entre aspas, está uma constante de texto, e o nome da variável começa com o símbolo $. Ou seja, este bloco registra no log do robô uma mensagem sobre o carregamento do arquivo selecionado, especificado por meio da variável.

<figure><img src="https://lh7-rt.googleusercontent.com/docsz/AD_4nXfzhOXtJn5wicT1dCYx6BiE2GWiVlv4wQoNi2R8kkGZy4mlmuFEYKKSAqy-rT9II5IT0E2AyOhlm7tr1IKKrKfjj0M5WIVVvpxAzeUVs7T0KAUJ5Hr3qKcdUkG6sJ5QYINoNB-chIaIYzZwtO-4e7ys66Wz?key=bQm2vlFSc1CKSZLYW_fmrw" alt=""><figcaption></figcaption></figure>

3. **Bloco “Executar Expressão”** inicia a execução de uma ou mais expressões em uma linguagem compatível com PowerShell. Neste caso, são utilizadas duas expressões.

<figure><img src="https://lh7-rt.googleusercontent.com/docsz/AD_4nXeIu9PCfpmpnNtn53nmUxjJacER2ZzSBTznv4XvjpgkhDVmL3W2ZURsuNtECrWw4rZ3kWmpkD2EBvglmHcjJ6B1MhXHlYLgjO_3Y3fJTfKaGRXmpt8XWwLTk-2zp82ToNsl3akm40Joao1vaabB0I6TD89D?key=bQm2vlFSc1CKSZLYW_fmrw" alt=""><figcaption></figcaption></figure>

4. **Bloco “Extrair Tabela”** permite extrair a tabela especificada de um arquivo pdf. Para este bloco, as seguintes propriedades são definidas:

* Nome do arquivo;
* Número da página (número da página a partir da qual o texto será extraído da tabela);
* Número da tabela na página (número da tabela na página, da qual o texto deve ser extraído).

<figure><img src="https://lh7-rt.googleusercontent.com/docsz/AD_4nXcx9l6BJoK4OOO6_5rSB1-PPLnmeveQ466MULnFSHcKvmOlLdGwfMlqEYUBlUQBTbl6hUH32LM6Ivp1p0tYLM2AHsWn5vtJqE2rMuRut4nmm-9bHTYxOkyvlk5UN8ypiPrfJROuwbv8fX81LwOiX0Ijcu1F?key=bQm2vlFSc1CKSZLYW_fmrw" alt=""><figcaption></figcaption></figure>

5. **Bloco “Loop Para Cada”** itera sobre todas as linhas da tabela de dados.

<figure><img src="https://lh7-rt.googleusercontent.com/docsz/AD_4nXcbZ0AcCkiYpadxJNc1_wtkOkhdXX6-gbSYQa871CXV0CYOHA19qXI1fnUGijeowxsKXjikVF77a5hDlWk5OtrGr7XMY5vQKqU3zExeplbIUTGuTEIFK8FbvctodNrMiZBjA0ZoVHrx50kamSg2MPW3Vs4U?key=bQm2vlFSc1CKSZLYW_fmrw" alt=""><figcaption></figcaption></figure>

6. **Bloco “Obter Texto da Página”** permite ler o texto da página especificada do arquivo pdf. Para este bloco, as seguintes propriedades são definidas:

* Nome do arquivo;
* Número da página (número da página a partir da qual o texto será extraído);
* Resultado (retorna o texto extraído da página).

<figure><img src="https://lh7-rt.googleusercontent.com/docsz/AD_4nXd5I5sTRCKGlP39gXHKIa-s4cu1w1GLX5ywbRmUnEfu_RkHZ4tbaeJejT5mPdDGl-siSUwyXQRxywzvT1H2jhhEukM6tHwIsPxDUQcZMoGzhfJQz7wpsz3wI3vM8n8Ba7-vSQqsJmRqAPSPQC1efIr1w7i2?key=bQm2vlFSc1CKSZLYW_fmrw" alt=""><figcaption></figcaption></figure>

7. **Bloco “Encontrar Substring Entre Duas Substrings”** permite encontrar no texto uma substring que está entre duas outras substrings. Deve haver tantos blocos quanto substrings forem necessárias encontrar. Neste caso, são utilizados dois blocos “Encontrar Substring Entre Duas Substrings”: para a substring “Executor” e para a substring “Pedido”. Nas propriedades dos blocos estão especificados:

* Texto (string de entrada);
* Parte Esquerda (substring buscada à esquerda);
* Parte Direita (substring buscada à direita).

<br>

<figure><img src="https://lh7-rt.googleusercontent.com/docsz/AD_4nXdbgtFp9b_Qkbrxe8dmeiQJelJd1i5DEORG5oXQCU-raN_eVtlmzQSo2WtQ3diDkDcBVHgkvHaZgNeTv5NSbFglLE7i0RS8B6bEiAKOIlbltsCd4xo_oGvt0q30MDfawZ5-g5RHdAZlbR7GwMkiRxfrPzU?key=bQm2vlFSc1CKSZLYW_fmrw" alt=""><figcaption></figcaption></figure>

<figure><img src="https://lh7-rt.googleusercontent.com/docsz/AD_4nXeiTYPXBys14G89f77i5Mz22f4ezrRbbCAb1GSs41ueZMv1z-OQMLW9vAzu_VVe9xL57bH6N6Hwf9LCgzUfGsYwm59u-PspCrterejKwS0jVhn59ukD5TcTXMIx7PIFgwsmVwCkh5cVjlgVjneuwwnTQ8B3?key=bQm2vlFSc1CKSZLYW_fmrw" alt=""><figcaption></figcaption></figure>

8. **Bloco “Condição”** verifica a condição especificada para ver se é verdadeira, após o que a execução do script continua na direção da saída “Sim” (se a condição for atendida) ou na direção da saída “Não” (se a condição não for atendida).

A condição é escrita no formato: “variável” é igual a (==)/ maior que (>)/ menor que (<) “valor”.

Por exemplo: $a == “Olá”, ou seja, se o valor da variável $a for igual a “Olá”, então a saída é “Sim”, caso contrário – a saída é “Não”.

$Result > 5, ou seja, se o valor da variável $Result for menor que 5, então a saída é “Sim”, caso contrário – a saída é “Não”.

Neste caso, a condição estabelecida é: $Row \[0] == $index, ou seja, se o valor da célula 0 for igual à variável $index, então a saída é “Sim”, caso contrário – a saída é “Não”.

<figure><img src="https://lh7-rt.googleusercontent.com/docsz/AD_4nXfSmVqBFTPXu-1VNCWzm4bv9h3FrYZqNaAZ8DVNs5oOo5O6o-lFH4-VZD83aMCNhlYFnhnfpnX3pRN9hvHLA9mEc_HROI-FNgOW6RhqZDMpyDxiTRfWdP-gODe4clZf2_eUG8D-cnEf5wajhAUf0ufdyb7f?key=bQm2vlFSc1CKSZLYW_fmrw" alt=""><figcaption></figcaption></figure>

9. **Bloco “Adicionar linha”** permite adicionar uma linha à tabela de dados. Neste caso, as seguintes propriedades são especificadas:

* Tabela (tabela de dados à qual a linha é adicionada);
* Número da linha (retorna o número da linha adicionada, a numeração começa em 0).

<figure><img src="https://lh7-rt.googleusercontent.com/docsz/AD_4nXduhUNgu4Fe13jnQWyfb6EX6a_0jR6U_shvUBhOxP3m9SrLIqAzAPbmejwSaoNmfqk6BFUZsXG44Pk4YdG-dVplQCXsifnYT0F23MG6h23RoJjaoWjG3S1VhRPc5nYWO6msRiPcf2wUw2AqyA4nLn5PHxY1?key=bQm2vlFSc1CKSZLYW_fmrw" alt=""><figcaption></figcaption></figure>

10. **Bloco “Gravar valor na célula”** permite gravar um valor em uma célula da tabela de dados. Neste caso, três desses blocos são usados para diferentes variáveis: $Row\[2], $Row\[3] e $Row\[5].

<figure><img src="https://lh7-rt.googleusercontent.com/docsz/AD_4nXeKROc_Q85uXzRVCh6ozR7cwHgtxq0i1_pkf-r3UOJi32naEI5kEGorkzvtdf5u2RAqSL4x1c4jgAV8puqlBqC21bL9YBUag2nLHpd8-zWZ2z_pxju7zO4qYGkcT1_snbSjqSRODnJrVVtSPmtcLGX-SzGo?key=bQm2vlFSc1CKSZLYW_fmrw" alt=""><figcaption></figcaption></figure>

<figure><img src="https://lh7-rt.googleusercontent.com/docsz/AD_4nXcgAmY-7jm8PD-n8wxkpRvzHI9ajAB8bDsPWl2F2miTCIcKwSv1K-fm4on_M3Es0WSBF9ony3SvFdza0kJSzzUp0E81jgbxsyGiDiIaEl7c0ACrojwF9H1HTkMfzSrWpsF4h5QKxVCovUXMKz8QtULtMxri?key=bQm2vlFSc1CKSZLYW_fmrw" alt=""><figcaption></figcaption></figure>

<figure><img src="https://lh7-rt.googleusercontent.com/docsz/AD_4nXdgVfkKqLgDOj52EBMgCXK5LNMznLwHYJuF-DcndwG_9P6iG37nj3Ks2mNlRh6XbMtsYRqjfn62-TAwW0mvotaxniCciK6IXMiMVw_aGgbB0HhSwC6HGlAR_qR3oWaLMTCyNkfC6IUCDfG-07jwAculfFoX?key=bQm2vlFSc1CKSZLYW_fmrw" alt=""><figcaption></figcaption></figure>

11. **Bloco “Executar expressão”** inicia a execução de uma ou mais expressões em uma linguagem compatível com PowerShell. Neste caso, uma expressão é usada.

<figure><img src="https://lh7-rt.googleusercontent.com/docsz/AD_4nXeHCutTccXGf8PfsB68ssGTAwAQKXo4wroHS5KS3pfnDxg1YxkVFmrzcYwuuWtKTc9DmvIdU-sO0eBytHL8bo7QzXEJ-12tkNMYh_txfu26JnwS-2eQl40fvICdb6c2AVW1zJ2RFFA1C3k8gUSgPyMTkuef?key=bQm2vlFSc1CKSZLYW_fmrw" alt=""><figcaption></figcaption></figure>

12. **Bloco “Executar expressão”** inicia a execução de uma ou mais expressões em uma linguagem compatível com PowerShell. Neste caso, uma expressão é usada.

<figure><img src="https://lh7-rt.googleusercontent.com/docsz/AD_4nXep-n0rhOQvCPWgs-uLuesS0v99taziW754WxbVvaeHnMI17YT5G-hw_hwbdMeS6rmZCnY5tRmEXeu0Xa-eAYqeDsvE9Yim1gAvkNshIEl7fO0rz3idj1hqMaDdGlE-4bAMSnjUsKAEam331GDV6jB_px6c?key=bQm2vlFSc1CKSZLYW_fmrw" alt=""><figcaption></figcaption></figure>

13. **Bloco “Fim”** (este bloco encerra a execução do script ou retorna o diagrama do subprocesso ao processo principal).<br>

**Diagrama “CarregarDadosDeXLSX”**

<br>

<figure><img src="https://lh7-rt.googleusercontent.com/docsz/AD_4nXfJxv4Vr23qYtg-VbPmLFiBBQ2_1IydYgGq5f2fa4r-4pUjDDi6Io1qn9rpjLX7oqSBrC1E1M1-9ngncUkyjKDZodbbQZfZbyBilcBO7RdX433k6GxmJkzEyfD7KUYzlwfRb7mgbZIhQC0Zr9JxVhKXeI7I?key=bQm2vlFSc1CKSZLYW_fmrw" alt=""><figcaption></figcaption></figure>

<figure><img src="https://lh7-rt.googleusercontent.com/docsz/AD_4nXcRvfwTKFl41tXxn-x_-b9-_ZiJVHGsHFoWn7_VLEI0Sb8otrd7mpGoPkd_w7i8LxvjDrp3kJ4_HsqIyw3tcu0NB_PsTmRt0gQps2ABx0Fp-iymboNpSTJpa34yQKhSd7qfjKMvC7j26a5sNMLYz2V71IUv?key=bQm2vlFSc1CKSZLYW_fmrw" alt=""><figcaption></figcaption></figure>

1. **Bloco “Início”** (a partir deste bloco começa qualquer diagrama).
2. **Bloco “Log”** permite registrar mensagens e/ou valores de variáveis no log durante a execução do script do robô. Para este bloco, a propriedade “Valor” é especificada. Entre aspas, uma constante de texto é indicada, e o nome da variável começa com o símbolo $. Ou seja, este bloco registra no log do robô uma mensagem sobre o carregamento do arquivo selecionado, indicado pela variável.

<figure><img src="https://lh7-rt.googleusercontent.com/docsz/AD_4nXdiMFCdvYp7CWv-mkoH2xQRkgySiwHOiur12Am9g0KsJ2wK9V8v7Jjrep5VPIc3P2u_Bfnqf1cvpGzDsx_aAwGBz33Wce7fEbJgqmMhcKR_b4_La3BFclbst4VcMEIxK30WJI6rSzV3aIHkYdND3WAkCHjx?key=bQm2vlFSc1CKSZLYW_fmrw" alt=""><figcaption></figcaption></figure>

3. **Bloco “Abrir documento”** permite abrir um documento Excel. Para este bloco, as seguintes propriedades são especificadas:

* Caminho do arquivo (caminho para o documento Excel que precisa ser aberto);
* Referência ao Excel (retorna uma referência ao processo de manipulação do documento Excel);
* Referência ao documento (retorna uma referência ao documento Excel aberto, no qual o trabalho está ocorrendo no momento).

<figure><img src="https://lh7-rt.googleusercontent.com/docsz/AD_4nXduxJ0pc55wJKwsallTwe_scXHclp8HzactgtjnvgTfDDefZkMwN3YcOWaqVVCdSy6WhoWBlz5-fYzWasRElHKwbubwIGC-jgh2WvKCJEV-Zv22yzBd_MtgSW0nss9stsOuQmqVJ-tz5kIQZKt0h3cDmBF9?key=bQm2vlFSc1CKSZLYW_fmrw" alt=""><figcaption></figcaption></figure>

4. **Bloco “Obter valor da célula”** permite ler o valor de uma célula do documento Excel. Neste caso, dois blocos “Obter valor da célula” são usados para diferentes linhas e colunas. Para este bloco, as seguintes propriedades são especificadas:

* Referência ao documento (retorna uma referência ao documento Excel aberto, no qual o trabalho está ocorrendo no momento);
* Folha (número sequencial ou nome da folha onde a célula requerida está localizada);
* Linha (número da linha onde a célula requerida está localizada);
* Coluna (número da coluna onde a célula requerida está localizada);
* Resultado (retorna o conteúdo da célula do mesmo tipo de dados que no documento Excel).

<figure><img src="https://lh7-rt.googleusercontent.com/docsz/AD_4nXdfTxNOAfolCxVq9Mst_jE6C1x03rhvzG5_MV81tbFFpgYLbEQYe3CL-kWlINkNLONv7-vfMk3aSx9Bh7us24zrxuUpK5y6OFr4mHcM6D_pamcXt1VDiRZZwwEs9RvZJL73ylweS3dcV-yHNIALnrRyRdzM?key=bQm2vlFSc1CKSZLYW_fmrw" alt=""><figcaption></figcaption></figure>

<figure><img src="https://lh7-rt.googleusercontent.com/docsz/AD_4nXdSN1-r6X1KOi_1LUOUvRBsLrSboIa2bZjHM8_ExvqoRasBQ5YAF1f0cmrH-NQGtE2zZ6kIBy_H9la5hsBt3a7WWYq3HGwW0BZSjl-wvhbPHZzk9cCXbogwkMyPfrFemjJVoFLZ7OSHssxsIt4sjrg0DgLR?key=bQm2vlFSc1CKSZLYW_fmrw" alt=""><figcaption></figcaption></figure>

5. **Bloco “Encontrar substring entre duas substrings”** permite encontrar em um texto uma substring que está entre duas outras substrings. Deve haver tantos blocos quanto substrings precisam ser encontradas. Neste caso, dois blocos “Encontrar substring entre duas substrings” são usados: para a substring “Executor” e a substring “Pedido”. Nas propriedades dos blocos estão especificados:

* Texto (string de entrada);
* Parte esquerda (substring buscada à esquerda);\* Parte direita (subcadeia desejada à direita).

<figure><img src="https://lh7-rt.googleusercontent.com/docsz/AD_4nXfqoY1Y6zq1cIkVBS3szt_xOtF4w3STAyISmX1upepHQ9JwptniVC_-E6uekiL3Cm3IoKSJqbF0OQI2KYSmGXZP7jTCYwM2Nr20PZ_gxJfTQ0S_FtXo0szOipydseKnS_II7L1EP7RO_hWhmsHhK6e8yn8?key=bQm2vlFSc1CKSZLYW_fmrw" alt=""><figcaption></figcaption></figure>

6. **Bloco “Executar expressão”** inicia a execução de uma ou mais expressões em uma linguagem compatível com PowerShell. Neste caso, uma expressão é utilizada.

<figure><img src="https://lh7-rt.googleusercontent.com/docsz/AD_4nXfehzKigJlW9Wefv3M2B-t5VRqR-jGm_sKDCQAe4Zn4Vsto53XUXsFNuI-_9hbtefUFQoD9K_hnplyyMmqDxiBjNfJpF1yh66-z_17qPQO1PtgM9VGnaL1HMQn1pf3D1Oomf-gez8OFeWmK4B11V0-pGRiZ?key=bQm2vlFSc1CKSZLYW_fmrw" alt=""><figcaption></figcaption></figure>

7. **Bloco “Obter valor da célula”** permite ler o valor de uma célula de um documento Excel. Para este bloco, as seguintes propriedades são especificadas:

* Link para o documento (retorna o link para o documento Excel aberto, no qual o trabalho está sendo realizado no momento);
* Planilha (número sequencial ou nome da planilha onde a célula desejada está localizada);
* Linha (número da linha onde a célula desejada está localizada);
* Coluna (número da coluna onde a célula desejada está localizada);
* Resultado (retorna o conteúdo da célula do mesmo tipo de dados que no documento Excel).

<figure><img src="https://lh7-rt.googleusercontent.com/docsz/AD_4nXdAOgNaSJPHoyUNLv-LGRDl0ViOv6hZdlrpiY8c0Kh0C_eOp9GeoWhiGA6MTWs3_sPOjN8Lagel24Ey18kaOQY45E1aKW81zzq2AdVcEOOJLthrxL6qXd370dhL7zrrHguYXHOJmuT1qeicj-chEO9ZzSw6?key=bQm2vlFSc1CKSZLYW_fmrw" alt=""><figcaption></figcaption></figure>

8. **Bloco “Condição”** verifica a condição especificada para ver se é verdadeira, após o que a execução do script continua na direção da saída “Sim” (se a condição for atendida) ou na direção da saída “Não” (se a condição não for atendida).

A condição é escrita no formato: “variável” é igual (==)/ maior (>)/ menor (<) “valor”.

Por exemplo: $a == “Olá”, ou seja, se o valor da variável $a for igual a “Olá”, então a saída é “Sim”, caso contrário – a saída é “Não”.

$Result > 5, ou seja, se o valor da variável $Result for menor que 5, então a saída é “Sim”, caso contrário – a saída é “Não”.

<figure><img src="https://lh7-rt.googleusercontent.com/docsz/AD_4nXdoV1g2m_cg2tuChMDI8BBa__qoYklCh6I8jiZmNRUx3chxPF7BTauQwcxFIfSA7-M3Y2u69SGFBnbWZO9oqsMoIi83m0g-Rk4hu39n4PLeNMu781FOWefVWe2Y_NXDb6qp73fbpJx8sX52iMiZmBmZgRS8?key=bQm2vlFSc1CKSZLYW_fmrw" alt=""><figcaption></figcaption></figure>

9. **Bloco “Fechar documento”** permite fechar o documento Excel. Para este bloco, as seguintes propriedades são especificadas:

* Link para o Excel (retorna o link para o processo de manipulação do documento Excel);
* Link para o documento (retorna o link para o documento Excel aberto, no qual o trabalho está sendo realizado no momento).

<figure><img src="https://lh7-rt.googleusercontent.com/docsz/AD_4nXfKFa8AiIatyKZ1h1Im-xlTqJiYrZRuZTcF1POprKnBBTt6SJ6TO34KRK2tT3bLaSu7i_5JRslDvMs3T2fEj7y9zlolYpHMguiRMJwTXuDfIPrOcduUKbZTlCiWmII1MJyP1-VZsYGCPjuhCK094h1ENrDB?key=bQm2vlFSc1CKSZLYW_fmrw" alt=""><figcaption></figcaption></figure>

10. **Blocos “Obter valor da célula”** permitem ler o valor de uma célula de um documento Excel. Neste caso, são utilizados dois blocos “Obter valor da célula” para diferentes linhas e colunas. Para este bloco, as seguintes propriedades são especificadas:

* Link para o documento (retorna o link para o documento Excel aberto, no qual o trabalho está sendo realizado no momento);
* Planilha (número sequencial ou nome da planilha onde a célula desejada está localizada);
* Linha (número da linha onde a célula desejada está localizada);
* Coluna (número da coluna onde a célula desejada está localizada);
* Resultado (retorna o conteúdo da célula do mesmo tipo de dados que no documento Excel).

<figure><img src="https://lh7-rt.googleusercontent.com/docsz/AD_4nXclrEmTUdssQbhjQZncrBO_erSkL_f_psA_DfHXw1lra0iC-xPkzl1NQVR1FYoV599O6OhMsOuUPOyhSvudZRG3JOlOXYEQpFZQlykhrZZCgJySCIYPMtqxCKfAjpaUUy9vf82ecCEHRoVElUbeHNVXCaw?key=bQm2vlFSc1CKSZLYW_fmrw" alt=""><figcaption></figcaption></figure>

<figure><img src="https://lh7-rt.googleusercontent.com/docsz/AD_4nXelxe8VcJXU1fqw08k_jCdBgxzAeYhx-_cx33OZIQhTSRVUyCt3lpWNabeY9dGrHgrYZlp0rqnBJUSOGvK8yuw0Zf1p80e9ogpm2IJx3biJw28CxcWYuWtiO6oc092VocAx3ZEpoM5LH-P9ja8LryK5tEY?key=bQm2vlFSc1CKSZLYW_fmrw" alt=""><figcaption></figcaption></figure>

11. **Bloco “Adicionar linha”** permite adicionar uma linha à tabela de dados. Para este bloco, as seguintes propriedades são especificadas:

* Tabela (tabela de dados à qual a linha é adicionada);
* Número da linha (retorna o número da linha adicionada).

<figure><img src="https://lh7-rt.googleusercontent.com/docsz/AD_4nXcndOxoWNRKoMjjgj6e-oVm_KKlKVT1jEn85VxJJUhbZ115fAmdQOtTvwS3_aP1aUXYOQvcQ1oaIZMrc7PkUzzuWelIgsxnTpqBXu0jBlgRP1lB3G3dTaVu1cDix8SRrQ0VzGnbQTR9EDpbQEblayin-60?key=bQm2vlFSc1CKSZLYW_fmrw" alt=""><figcaption></figcaption></figure>

<br>

12. **Bloco “Gravar valor na célula”** permite gravar um valor na célula da tabela de dados. Neste caso, são utilizados três blocos desse tipo para diferentes colunas e valores. Para este bloco, as seguintes propriedades são especificadas:

* Tabela (tabela de dados na qual o valor deve ser gravado);
* Linha (número da linha);
* Coluna (número da coluna, a numeração começa em 0);
* Valor (valor que deve ser gravado).

<figure><img src="https://lh7-rt.googleusercontent.com/docsz/AD_4nXe-EKG7FW78MfTk-SogdfFz8aNrjbtMrwOHK_IlZLRL0NzbqSKdXS-IVNWJhpNUT4BOAjYvDVJB2KhJzmHmGi1Iswtiu9URFovnBYf7YrqhsmY7TuJTPg92Wv9IzGnTspbgvFjyEytJLWBf2l-12SPmhzVs?key=bQm2vlFSc1CKSZLYW_fmrw" alt=""><figcaption></figcaption></figure>

<figure><img src="https://lh7-rt.googleusercontent.com/docsz/AD_4nXcnJi1Rf7K1vavXHJskUwpcBX9BKCqKlFbZznkSqpwuyAqf-wT32or_KmdljjA1duyAbg5-IjLv1PivKH7nyVJkIrs8tZ-GktnvuVnhekltWc0kw7FZejYWtF-Bm1UDbDfIboXr1L5oUiefZUwN4kvjexS2?key=bQm2vlFSc1CKSZLYW_fmrw" alt=""><figcaption></figcaption></figure>

<figure><img src="https://lh7-rt.googleusercontent.com/docsz/AD_4nXcB0LOoP6ahBFfbtghTJm6jdrhDK0cQRGVT7mnQbtHCnKl47ySst2Wlyd8NwfKKpV1NWSMi_Ih6_7jesBWQgUgMriN6weJ4csWDDs4SALNrcHojnK5tRCIUFUu8FEKijUMwaq5iQxvmCChWh52KPacnD4hX?key=bQm2vlFSc1CKSZLYW_fmrw" alt=""><figcaption></figcaption></figure>

13. **Bloco “Executar expressão”** inicia a execução de uma ou mais expressões em uma linguagem compatível com PowerShell. Neste caso, uma expressão é utilizada.

<figure><img src="https://lh7-rt.googleusercontent.com/docsz/AD_4nXcSOSM_wgT-jAnSxTWCZNAnF49PKP-kZBcA8WXt7jqirNT9y1PekwIqBRBIjzavTJhnlALHdzhiIh0JTFL-JwRs099dXjQI3iU9xrEWnZcVNX4z4qxuWaROkZxH_v38nHwUkTJuLUiMpdCTZ_DM30lEzStP?key=bQm2vlFSc1CKSZLYW_fmrw" alt=""><figcaption></figcaption></figure>

14. **Bloco “Fim”** (este bloco finaliza a execução do script ou retorna o diagrama do subprocesso ao processo principal).

**Diagrama “AdicionarNotaFiscal”**<br>

<figure><img src="https://lh7-rt.googleusercontent.com/docsz/AD_4nXeV-3lEIEF2fmmSTpKd2k7TvFBDDe43xw_cyl9GQtrKlVjqB4-dRbIYMwyNqojgs-LTsYcXEy83_ez6bcXWEXn3S9t-InCOB9YhiN37GOORX90fwTxTYDgHp2ehTx5arraD9S4lDejTo4fdD5-OScXrYwc?key=bQm2vlFSc1CKSZLYW_fmrw" alt=""><figcaption></figcaption></figure>

<figure><img src="https://lh7-rt.googleusercontent.com/docsz/AD_4nXdcDTnTsqju9HzjYC5uhdfZtVviqoed6Nv1VP5bFf2vVGi9VvdofIDVTzdZmq__arDQTP2ehOcf87-8MQUsWTTIAb7A31w_bHoUEliF7KF2NkUuz7igFV-A5Ahs1jH3cUQljEMWU5s68npzpq2_1tPYrgjl?key=bQm2vlFSc1CKSZLYW_fmrw" alt=""><figcaption></figcaption></figure>

1. **Bloco “Início”** (a partir deste bloco, qualquer diagrama começa).
2. **Bloco “Log”** permite registrar mensagens arbitrárias e/ou valores de variáveis durante a execução do script do robô. Para este bloco, a propriedade “Valor” é especificada. Aqui, este bloco registra no log do robô a mensagem “Adicionando nota fiscal”.

   <figure><img src="https://lh7-rt.googleusercontent.com/docsz/AD_4nXeOh4gf5sxDwQ1FodfLGuGkCMWMJ5yaCsQ9TKJ4MKl71-ChzIbsJmQcm87Yt2pFDiz15B5jrMPr4JquSfN5DKQ4rZvPZFI-ghjTwPMt7-aXq6_RP2EwKOFn6nEoCesRgaPLt4prP4gjKHP9zS05uUS7Recv?key=bQm2vlFSc1CKSZLYW_fmrw" alt=""><figcaption></figcaption></figure>
3. **Bloco “Ler arquivo”** permite ler o conteúdo de um arquivo de texto em uma variável. Para este bloco, as seguintes propriedades são especificadas:

* Nome do arquivo (nome do arquivo de texto cujo conteúdo deve ser lido);
* Codificação (codificação do arquivo);
* Resultado (retorna o conteúdo do arquivo).

<figure><img src="https://lh7-rt.googleusercontent.com/docsz/AD_4nXe2uV5GwVZeb1MCsfsZgPwOflxwZ9WFX9XDRfje7DAPxOM7kr4QifuG86OYkoH1De66akoYPX1tuUcipumHuc34W7CwTm5-gtl7yRUS2tdeaH9BdbZDtXdcx5FooPBsl3r2OmFY2K9XlWKel7bLTL-jGy5t?key=bQm2vlFSc1CKSZLYW_fmrw" alt=""><figcaption></figcaption></figure>

4. **Bloco “Substituir substring”** permite substituir em um texto uma substring por outra. Neste caso, são utilizados dois blocos “Substituir substring”: para “Cliente” e para “Fornecedor”. Para esses blocos, as seguintes propriedades são especificadas:

* Texto (string de entrada);
* Substring procurada (string que deve ser substituída);
* Substring a ser inserida (string para substituir todas as ocorrências da substring procurada);
* Resultado (nova string na qual todas as ocorrências da string especificada são substituídas por outra string especificada).

<figure><img src="https://lh7-rt.googleusercontent.com/docsz/AD_4nXdqC6tctyJgpUVPl7hWjqJjYtZEfcsUYHsknrRvx1wf5doM2w4nQI7BW8rOfTgtV3UuYxo841DekqnFN-ykMczRUFBCCSsOZesMnOgqJVr5WmashaDesDKkDeZZAo76YMY58f-SRJIgSH0Xvz4T_axZ-inc?key=bQm2vlFSc1CKSZLYW_fmrw" alt=""><figcaption></figcaption></figure>

<figure><img src="https://lh7-rt.googleusercontent.com/docsz/AD_4nXcTqKPg7nZUlXxc8Tf6yKYI_sA5U9EuJWTCQ6q0XWi8FJtvTlx12-aChSe_fHQGK0a3r5pwL-auMCd_R5o0ZRVlyCDNbxZbEouiXF42D4ZXg1gBVMacQyrYqfzGzUCbhynqpbz5z503CjFTmZrkE75vZfia?key=bQm2vlFSc1CKSZLYW_fmrw" alt=""><figcaption></figcaption></figure>

5. **Bloco “Loop para cada”** itera sobre todas as linhas da tabela de dados.

<figure><img src="https://lh7-rt.googleusercontent.com/docsz/AD_4nXd8jMl6RryCC21eViiAQOXdSD2JqcrQk6E4DuA4Q-1X3WtlGUQ3Phrikdq8UHMT38C2Vk3-34jBkRgDGe0zPmZjMR8p28DMGaBG072JKTGqQP8vGFXmcXtEw3cEnxjDIryQRJz5cKg7vcy5p8Xk_7ZNJaRJ?key=bQm2vlFSc1CKSZLYW_fmrw" alt=""><figcaption></figcaption></figure>

6. **Bloco “Concatenar texto”** permite unir todos os elementos de strings, colocando entre eles um delimitador especificado. Para este bloco, as seguintes propriedades são especificadas:

* Lista de partes do texto (lista de strings que devem ser unidas em uma string de texto);
* Delimitador (texto usado como delimitador);
* Nova linha (flag que ativa a função onde uma nova linha será usada como delimitador);
* Resultado (string resultante).

<figure><img src="https://lh7-rt.googleusercontent.com/docsz/AD_4nXfAHUtB1-AtMPrrC_JSq3Unb4dDNLmQ7nXLHbsY847KCTF6OEwTPJYoSsXaqOWqXBtTURtAKFdoyszCBJKggTY2ECyziirbIdKToDFNVmBVRrrKEGu2XUl_EvoAsBNTIgUIBK6WRA6B37cf50-jR5fVjJYl?key=bQm2vlFSc1CKSZLYW_fmrw" alt=""><figcaption></figcaption></figure>

7. **Bloco “Substituir substring”** permite substituir em um texto uma substring por outra. Para este bloco, as seguintes propriedades são especificadas:

* Texto (string de entrada);
* Substring procurada (string que deve ser substituída);
* Substring a ser inserida (string para substituir todas as ocorrências da substring procurada);
* Resultado (nova string na qual todas as ocorrências da string especificada são substituídas por outra string especificada).

<figure><img src="https://lh7-rt.googleusercontent.com/docsz/AD_4nXcKWnIolmuZPnTVWs--DJrTchwN8xHpWDVlwDmYK2-oEJFzAy3BcmqAwD3Sc73wgVfAuBh-zP7PQyqe-5E7DwGZGITWyz1plwe-30Ths9Jf6IBOPnhi3cU5_ieb6YkwTcbLd1m0FuAqt-V4BJy2tIlJpTUQ?key=bQm2vlFSc1CKSZLYW_fmrw" alt=""><figcaption></figcaption></figure>

8. **Bloco “Conectar”** permite criar uma conexão. Para este bloco, as seguintes propriedades são especificadas:

* String de conexão (string de conexão ao 1C);
* Usuário (nome do usuário para autenticação);
* Senha (senha para autenticação);
* Visibilidade (flag que ativa a visibilidade da janela do 1C para o usuário);
* Conexão (retorna o objeto de conexão ao 1C).

<figure><img src="https://lh7-rt.googleusercontent.com/docsz/AD_4nXeJhfQiA8peA1Di1xpc2sfyJbnA80tU3FLcW_Bo5jux-PWIDG-R2lae-nbss2xrDVbCP2WNyYBsMMUzGMWj01qztdfXzOVLbe1DTHLl8P0TDSPajynajJInEyZFe4JRwCP4HvlQn_FoVY-f929lN3VnjnhY?key=bQm2vlFSc1CKSZLYW_fmrw" alt=""><figcaption></figcaption></figure>

9. **Bloco “Executar código”** permite executar código no servidor. Para este bloco, as seguintes propriedades são especificadas:

* Conexão (objeto de conexão ao 1C);
* Consulta (consulta executada na linguagem 1C).

<figure><img src="https://lh7-rt.googleusercontent.com/docsz/AD_4nXehFj34e3cNCVvw1ht78B4E3uFCaPwBUk6yY2v7ivJxy25WczbeFcpBgqz3JJi3VmyJYVoXBZHuHQrTHqOZPAhH7JO9h2gPRkoiPA1XA4WN5fNwM50Znz5l86kLmJ4jdWDuEOPQxwqItuT1zMGR6c9D6zqY?key=bQm2vlFSc1CKSZLYW_fmrw" alt=""><figcaption></figcaption></figure>

10. **Bloco “Fechar conexão”** permite fechar a conexão com o servidor 1C. Para este bloco, a propriedade “Conexão” (objeto de conexão ao 1C) é especificada.

<figure><img src="https://lh7-rt.googleusercontent.com/docsz/AD_4nXftbROezdVCuz-ImOxJXPqT9inySBfHTIomTHyQc7WnCpY57MD9Cb9c2gE1M8S8LG-E8ZR7bfw4nVgGxFQDib3fRWfPJUE1HXVh6BhDCPiY7xFUJwW_5iEkQk5iEy13vzm63sD4aotBWSS7MKB0-GQXCivC?key=bQm2vlFSc1CKSZLYW_fmrw" alt=""><figcaption></figcaption></figure>

11. **Bloco “Log”** permite registrar mensagens e/ou valores de variáveis arbitrárias no log durante a execução do script do robô. Para este bloco, a propriedade “Valor": $ErrorMassage é especificada. Ou seja, uma mensagem de erro é registrada no log do robô.

<figure><img src="https://lh7-rt.googleusercontent.com/docsz/AD_4nXdj9-ug615cl0NMltomme0GA-g7bhFmiuGZkVHvIgNixrEVNAjhkPK_d90Nc28T1TR-CV05sV29uR3CjmjU-ngYrQlGGXQnH_8AsIQm4t8iQdlWd83J0IQL-dwfVtbbP3vzXkeSihVN3YHTR5KhgdPApTcj?key=bQm2vlFSc1CKSZLYW_fmrw" alt=""><figcaption></figcaption></figure>

12. **Bloco “Executar expressão”** inicia a execução de uma ou mais expressões em uma linguagem compatível com PowerShell. Neste caso, duas expressões são utilizadas.

<figure><img src="https://lh7-rt.googleusercontent.com/docsz/AD_4nXdYnN3Y6Iv7WLc6KaTcvJFxxUdO1Jd11Di6h9Y_n07v2seQy06B-_D7AQY6ljw3kKVC957n8sxt3R7J0gJWkpg8JwnFmLW_DIIukPICJkfTwDjFpxJJpys86jjG_uhdaSoCHHmJw8LkckMppvIVVDaQiety?key=bQm2vlFSc1CKSZLYW_fmrw" alt=""><figcaption></figcaption></figure>

13. **Bloco “Adicionar elemento à lista”** permite adicionar um elemento especificado ao final da lista. Para este bloco, as seguintes propriedades são especificadas:

* Lista (lista à qual o novo elemento deve ser adicionado);
* Elemento (constante, variável ou resultado de cálculos que deve ser adicionado à lista).

<figure><img src="https://lh7-rt.googleusercontent.com/docsz/AD_4nXcUQimaAjFAqtldej5tL-MZSm2P5VIHsInKDYVQY43ffGUwvpJ5BrSzTzwsdhOPr1LYKgBjlTsqLiS8R8aeS-rwERbCGOV0PTOnD0ZcOPDrnAAUgbdGmkmBynfTQhbi3s-J49cUSkgt5QCpvIl0iV4TzSF3?key=bQm2vlFSc1CKSZLYW_fmrw" alt=""><figcaption></figcaption></figure>

14. **Bloco “Executar expressão”** inicia a execução de uma ou mais expressões em uma linguagem compatível com PowerShell. Neste caso, duas expressões são utilizadas.

<figure><img src="https://lh7-rt.googleusercontent.com/docsz/AD_4nXeYFnfagkbLIRlp6gzO7krpaBGpFdLzziWs1HM1n5srBWFGv6dNKe79fILLf_JbxUpFHerfO1ge5DptodrQJHMoOqHTGisYHzPoYZASPPVQLYfffR2XkY7nlEmVM0GzBAdShF1oRXuodRWcp-n4SgW9jREj?key=bQm2vlFSc1CKSZLYW_fmrw" alt=""><figcaption></figcaption></figure>

15. **Bloco “Adicionar elemento à lista”** permite adicionar um elemento especificado ao final da lista. Para este bloco, as seguintes propriedades são especificadas:

* Lista (lista à qual o novo elemento deve ser adicionado);
* Elemento (constante, variável ou resultado de cálculos que deve ser adicionado à lista).

  <figure><img src="https://lh7-rt.googleusercontent.com/docsz/AD_4nXd4is6h11AjYHcEGVnYphIvZGb2ZaGlN5PisdWkJcsdPe0ZlTTXnyqYMCgSogiP7z4_R3YSjUfTZxXaVV3sEiXwx7-lPYUFKaJ-sVwlBN_FxY73mBD7rtT3AyPAwBUg9kl9oYNCMEp5ohuJ8caySezm3ITe?key=bQm2vlFSc1CKSZLYW_fmrw" alt=""><figcaption></figcaption></figure>

16. **Bloco “Executar expressão”** inicia a execução de uma ou mais expressões em uma linguagem compatível com PowerShell. Neste caso, são utilizadas duas expressões.

<figure><img src="https://lh7-rt.googleusercontent.com/docsz/AD_4nXfasqGK6ULu_-OUsDVXmbbap2IpJfIT2v2YwkmSY6Jb0v3TTzUJf-TSrMPcrBexKnkLt9KGlI4Ggv347tXQNwZtmmtCT24tDvlgod0-9ZbNXRLEhoULRzG2JngMF0mig8vv3ewvl8ITRvADZ6LuPS8bx9Y?key=bQm2vlFSc1CKSZLYW_fmrw" alt=""><figcaption></figcaption></figure>

17. **Bloco “Adicionar elemento à lista”** permite adicionar o elemento especificado ao final da lista. Para este bloco, as seguintes propriedades são especificadas:

* Lista (a lista à qual o novo elemento deve ser adicionado);
* Elemento (constante, variável ou resultado de cálculos que deve ser adicionado à lista).

<figure><img src="https://lh7-rt.googleusercontent.com/docsz/AD_4nXfT-mHG8hxpiMUYVGAKmE5RB1ecN8Lf-QkDgo2e6MYaJB-ljFKiQ7B_cWKjh-2Z0dwcK5OjjpOcxFkFfUdFerpj66-2h4YuamUgQuh93n8rlXKiTBhJp4TGgk3Q4cjta3HWEmca8CyDubgJO706cWlzPj-o?key=bQm2vlFSc1CKSZLYW_fmrw" alt=""><figcaption></figcaption></figure>

18. e 19. **Bloco “Fim”** (este bloco encerra a execução do script ou retorna o diagrama do subprocesso ao processo principal).


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.sherparpa.ru/pt/sherpa-rpa/sherpa-designer/primery-robotov/1s-prikhodnaya-nakladnaya-com.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
