1С Приходная накладная
Last updated
Last updated
Рассмотрим пример робота, который создает приходную накладную в программе 1С. Исходными данными для данного проекта является файл “Заказ поставщику”. Для корректной работы робота необходимо предварительно запустить приложение 1C.
Данный проект показывает загрузку данных из PDF или из Excel. Чтобы посмотреть как происходит работа с PDF Вы должны соединить блоки "Запустить процесс" и левый блок "Получить путь к файлу".
Чтобы проверить работу с загрузкой из Excel файла, Вы должны соединить блоки "Запустить процесс" и правый блок "Получить путь к файлу".
Проект робота состоит из четырех диаграмм и двух файлов: pdf и xlsx. Для загрузки данных из каждого из файлов – своя диаграмма.
Основная диаграмма проекта выглядит так (для удобства блоки диаграммы пронумерованы):
Блок “Старт” (с этого блока начинается любая диаграмма).
Блок “Запустить приложение” запускает программу 1С. Для данного блока указаны следующие свойства:
Путь к приложению (путь к запускаемому приложению или название стандартного приложения, например, cmd.exe);
Параметры (параметры командной строки, необходимые для запуска приложения);
Ожидание запуска (приостанавливает работу сценария, пока заданное приложение не запустится); Время ожидания (указывается в секундах и игнорируется, если свойство “Ожидание запуска” не выбрано).
Блок “Получить путь к файлу” получает полный путь к файлу с указанным именем. Для данных блоков указаны следующие свойства:
Путь к папке (путь к папке, в которой находится необходимый файл, если свойство будет пустым, то будет взята папка, в которой располагается данный проект);
Имя файла (имя файла вместе с его форматом).
В данном случае параллельно использованы два блока “Получить путь к файлу”: один для файл формата pdf, другой – для файла формата xlsx.
Блок “Процесс” позволяет создавать сценарии, состоящие из нескольких диаграмм. Выполнение сценария продолжится с блока “Старт” указанной диаграммы проекта. Выполнение сценария вернется к текущему блоку и продолжится в текущей диаграмме, как только будет достигнут блок “Конец” во внешней диаграмме. Для блока “Процесс” указано свойство “Имя диаграммы” (имя файла диаграммы, в которой продолжится выполнение сценария).
В данном случае, как и выше, параллельно использованы два блока “Процесс”: один для загрузки данных из pdf-файла, второй – для загрузки данных из xlsx-файла.
Блок “Процесс” расположенный ниже позволяет создать еще один сценарий, который является общим для двух сценариев описанных выше. Данный процесс отвечает за добавления накладной в 1С. Для блока “Процесс” здесь также указано свойство “Имя диаграммы” (имя файла диаграммы, в которой продолжится выполнение сценария).
Диаграмма "Загрузка данных из PDF"
Блок “Старт” (с этого блока начинается любая диаграмма).
Блок “Лог” позволяет выводить в лог произвольные сообщения и/или значения переменных в процессе работы сценария робота. Для данного блока указано свойство “Значение”. В кавычках указана текстовая константа, а имя переменной начинается с символа $. Т.е., данный блок записывает в лог робота сообщение о загрузке выбранного файла, указанного с помощью переменной.
Блок “Выполнить выражение” запускает выполнение одного или нескольких выражений на языке, совместимом с PowerShell. В данном случае используются два выражения.
Блок “Извлечь таблицу” позволяет извлечь указанную таблицу из pdf-файла. Для данного блока указаны следующие свойства:
Имя файла;
Номер страницы (номер страницы, начиная с которого будет извлекаться текст из таблицы);
Номер таблицы на странице (номер таблицы на странице, текст из которой необходимо извлечь).
Блок “Цикл для каждого” циклично перебирает все строки таблицы данных.
Блок “Получить текст со страницы” позволяет считать текст с указанной страницы pdf-файла. Для данного блока указаны следующие свойства:
Имя файла;
Номер страницы (номер страницы, начиная с которого будет извлекаться текст);
Результат (возвращает извлеченный со страницы текст).
Блок “Найти подстроку между двух подстрок” позволяет найти в тексте подстроку, которая находится между двух других подстрок. Таких блоков должно быть столько, сколько подстрок необходимо найти. В данном случае используется два блока “Найти подстроку между двух подстрок”: для подстроки “Исполнитель” и подстроки “Заказ”. В свойствах блоков указаны:
Текст (входная строка);
Левая часть (левая искомая подстрока);
Правая часть (правая искомая подстрока).
Блок “Условие” проверяет указанное условие на истинность, после чего выполнение сценария продолжается в сторону выхода “Да” (если условие выполняется) или в сторону выхода “Нет” (если условие не выполнилось).
Условие записывается в формате: “переменная” равна (==)/ больше (>)/ меньше (<) “значение”.
Например: $a == “Привет”, то есть, если значение переменной $a равно “Привет”, то выход “Да”, в противном случае – выход “Нет”.
$Result > 5, то есть, если значение переменной $Result меньше 5, то выход “Да”, в противном случае – выход “Нет”.
В данном случае, в качестве условия установлено: $Row [0] == $index, то есть, если значение ячейки 0 равна переменной $index, то выход “Да”, в противном случае – выход “Нет”.
Блок “Добавить строку” позволяет добавить строку в таблицу данных. В данном случае указаны следующие свойства:
Таблица (таблица данных, в которую добавляется строка);
Номер строки (возвращает номер добавленной строки, нумерация начинается с 0).
Блок “Записать в ячейку значение” позволяет записать значение в ячейку таблицы данных. В данном случае используется три таких блока для разных переменных: $Row[2], $Row[3] и $Row[5].
Блок “Выполнить выражение” запускает выполнение одного или нескольких выражений на языке, совместимом с PowerShell. В данном случае используется одно выражение.
Блок “Выполнить выражение” запускает выполнение одного или нескольких выражений на языке, совместимом с PowerShell. В данном случае используются два выражения.
Блок “Конец” (этим блоком завершается работа сценария или возврат диаграммы подпроцесса в основной процесс).
Диаграмма "Загрузка данных из XLSX"
Блок “Старт” (с этого блока начинается любая диаграмма).
Блок “Лог” позволяет выводить в лог произвольные сообщения и/или значения переменных в процессе работы сценария робота. Для данного блока указано свойство “Значение”. В кавычках указана текстовая константа, а имя переменной начинается с символа $. Т.е., данный блок записывает в лог робота сообщение о загрузке выбранного файла, указанного с помощью переменной.
Блок “Открыть документ” позволяет открыть Excel-документ. Для данного блока указаны следующие свойства:
Путь к файлу (путь к Excel-документу, который требуется открыть);
Ссылка на Excel (возвращает ссылку на процесс обработки Excel-документа);
Ссылка на документ (возвращает ссылку на открытый Excel-документ, в котором в данный момент происходит работа).
Блок “Получить значение ячейки” позволяет считать значение из ячейки Excel-документа. В данном случае используется два блока “Получить значение ячейки” для разных строк и столбцов. Для данного блока указаны следующие свойства:
Ссылка на документ (возвращает ссылку на открытый Excel-документ, в котором в данный момент происходит работа);
Лист (порядковый номер или название листа, на котором расположена требуемая ячейка);
Строка (номер строки, на которой расположена требуемая ячейка);
Столбец (номер столбца, в котором расположена требуемая ячейка);
Результат (возвращает содержимое ячейки того же типа данных, что и в Excel-документе).
Блок “Найти подстроку между двух подстрок” позволяет найти в тексте подстроку, которая находится между двух других подстрок. Таких блоков должно быть столько, сколько подстрок необходимо найти. В данном случае используется два блока “Найти подстроку между двух подстрок”: для подстроки “Исполнитель” и подстроки “Заказ”. В свойствах блоков указаны:
Текст (входная строка);
Левая часть (левая искомая подстрока);
Правая часть (правая искомая подстрока).
Блок “Выполнить выражение” запускает выполнение одного или нескольких выражений на языке, совместимом с PowerShell. В данном случае используется одно выражение.
Блок “Получить значение ячейки” позволяет считать значение из ячейки Excel-документа. Для данного блока указаны следующие свойства:
Ссылка на документ (возвращает ссылку на открытый Excel-документ, в котором в данный момент происходит работа);
Лист (порядковый номер или название листа, на котором расположена требуемая ячейка);
Строка (номер строки, на которой расположена требуемая ячейка);
Столбец (номер столбца, в котором расположена требуемая ячейка);
Результат (возвращает содержимое ячейки того же типа данных, что и в Excel-документе).
Блок “Условие” проверяет указанное условие на истинность, после чего выполнение сценария продолжается в сторону выхода “Да” (если условие выполняется) или в сторону выхода “Нет” (если условие не выполнилось).
Условие записывается в формате: “переменная” равна (==)/ больше (>)/ меньше (<) “значение”.
Например: $a == “Привет”, то есть, если значение переменной $a равно “Привет”, то выход “Да”, в противном случае – выход “Нет”.
$Result > 5, то есть, если значение переменной $Result меньше 5, то выход “Да”, в противном случае – выход “Нет”.
Блок “Закрыть документ” позволяет закрыть Excel-документ. Для данного блока указаны следующие свойства:
Ссылка на Excel (возвращает ссылку на процесс обработки Excel-документа);
Ссылка на документ (возвращает ссылку на открытый Excel-документ, в котором в данный момент происходит работа).
Блоки “Получить значение ячейки” позволяет считать значение из ячейки Excel-документа. В данном случае используется два блока “Получить значение ячейки” для разных строк и столбцов. Для данного блока указаны следующие свойства:
Ссылка на документ (возвращает ссылку на открытый Excel-документ, в котором в данный момент происходит работа);
Лист (порядковый номер или название листа, на котором расположена требуемая ячейка);
Строка (номер строки, на которой расположена требуемая ячейка);
Столбец (номер столбца, в котором расположена требуемая ячейка);
Результат (возвращает содержимое ячейки того же типа данных, что и в Excel-документе).
Блок “Добавить строку” позволяет добавить строку в таблицу данных. Для данного блока указаны следующие свойства:
Таблица (таблица данных, в которую добавляется строка);
Номер строки (возвращает номер добавленной строки).
Блок “Записать в ячейку значение” позволяет записать значение в ячейке таблице данных. В данном случае используется три таких блока для разных столбцов и значений. Для данного блока указаны следующие свойства:
Таблица (таблица данных, в которую необходимо записать значение);
Строка (номер строки);
Столбец (номер столбца, нумерация начинается с 0);
Значение (значение, которое необходимо записать).
Блок “Выполнить выражение” запускает выполнение одного или нескольких выражений на языке, совместимом с PowerShell. В данном случае используются В данном случае используется одно выражение.
Блок “Конец” (этим блоком завершается работа сценария или возврат диаграммы подпроцесса в основной процесс).
Диаграмма "Добавление накладной"
После извлечения данных из PDF или Excel-документа робот создает приходную накладную в 1C. Данная диаграмма создана частично с помощью функции “Запись” Sherpa Designer. Подробнее о ней здесь.
Блок “Старт” (с этого блока начинается любая диаграмма).
Блок “Лог” позволяет выводить в лог произвольные сообщения и/или значения переменных в процессе работы сценария робота. Для данного блока указано свойство “Значение”. Здесь данный блок записывает в лог робота сообщение “Создаем номенклатуру”.
Блоки “Проверить наличие элемента” (проверяет наличие заданного элемента пользовательского интерфейса на экране), “Клик мышкой” (производит клик по заданному элементу приложения) и “Нажать клавиши” (эмулирует нажатие клавиш на клавиатуре) добавлены в диаграмму с помощью функции “Запись”. Каждый из блоков использует селектор. Подробнее о работе с селекторами здесь.
Блок “Присвоить значение переменной” устанавливает новые значения для одной или нескольких переменных. В данном случае в свойствах указаны одно значение, которое необходимо присвоить конкретной переменной.
Блок “Цикл для каждого” циклично перебирает все строки таблицы данных.
Блок “Клик мышкой” (производит клик по заданному элементу приложения) добавлен в диаграмму с помощью функции “Запись”.
Блок “Пауза” приостанавливает выполнение работы сценария на заданное время. Для данного блока указаны следующие свойства:
Единица измерения (единица измерения, в которой задана длительность паузы);
Длительность ( количество секунд, на которое будет приостановлена работа сценария);
Запустить сразу (установленный флаг включает применение задержки сразу при первом проходе этого блока с момента запуска сценария робота).
Блоки “Клик мышкой” (производит клик по заданному элементу приложения) и “Нажать клавиши” (эмулирует нажатие клавиш на клавиатуре) добавлены в диаграмму с помощью функции “Запись”. Каждый из блоков использует селектор.
Блок “Выполнить выражение” запускает выполнение одного или нескольких выражений на языке, совместимом с PowerShell. В данном случае используется одно выражение.
Блок “Конец” (этим блоком завершается работа сценария или возврат диаграммы подпроцесса в основной процесс).