diff --git a/docs/HelloStudio.md b/docs/HelloStudio.md index a8bce59..4dff996 100644 --- a/docs/HelloStudio.md +++ b/docs/HelloStudio.md @@ -1,160 +1,641 @@ -#

Знакомство со студией

+# ЗНАКОМСТВО СО СТУДИЕЙ -

+## Интерфейс главного окна + +Пользовательский интерфейс студии Lexema-RPA Studio характеризуется +областью для работы с проектами (рабочей областью), расположенной в +центре главного окна программы. Прямо над рабочей областью располагается +полоса с кнопками управления проектом. Слева от рабочей области +находится меню, в котором собраны модули для создания роботов, справа – +обозреватель решений, прямо под рабочей областью – отладочный вывод. -## Интерфейс главного окна -

Пользовательский интерфейс студии Lexema-RPA Studio характеризуется областью для работы с проектами (рабочей областью), расположенной в центре главного окна программы. Прямо над рабочей областью располагается полоса с кнопками управления проектом. Слева от рабочей области находится меню, в котором собраны модули для создания роботов, справа – обозреватель решений, прямо под рабочей областью – отладочный вывод.

### Главное окно -

Главное окно студии имеет несколько разделов и основные кнопки управления проектом/ -

![Screenshot](img/HS_1.png)

-

Все панели (меню, обозреватель решений и отладочный вывод) могут быть закреплены или открываться при наведении на них. -

Чтобы открепить или закрепить панель необходимо нажать на иконку с изображением канцелярской кнопки ![Screenshot](img/HS_2.png) в правом верхнем углу панели. -

![Screenshot](img/HS_3.png)

-

Студия имеет две цветовые схемы – светлая тема, та, которая идет по умолчанию, и темная. Для перехода на темную тему необходимо нажать на слайдер «Темная тема», находящийся между кнопками управления и информацией о текущем пользователе. -

Функционал разделов главного окна студии будет описан ниже. + +Главное окно студии имеет несколько разделов и основные кнопки +управления + +проектом (Рис. 1.1.1). + + + +Рис. 1.. Главное окно студии + +Все панели (меню, обозреватель решений и отладочный вывод) могут быть +закреплены или открываться при наведении на них (Рис. 1.1.2). + +Чтобы открепить или закрепить панель необходимо нажать на иконку с +изображением канцелярской кнопки + +в правом верхнем углу панели. + + + +Рис. 1... Скрытая панель «Обозреватель решений» + +Студия имеет две цветовые схемы – светлая тема, та, которая идет по +умолчанию, и темная. Для перехода на темную тему необходимо нажать на +слайдер «Темная тема», находящийся между кнопками управления и +информацией о текущем пользователе. + +Функционал разделов главного окна студии будет описан ниже. + +### Личный кабинет + +По нажатию на логин текущего пользователя можно открыть окно с подробной +информацией об аккаунте – ФИО пользователя, e-mail, сроком действия +лицензии. В этом же окне можно изменить пароль или любое из полей с +информацией о пользователе. + +При продлении лицензии через лицензионный ключ, необходимо войти в +личный кабинет и ввести ключ в поле «Ключ лицензии». После сохранения +данных лицензия будет продлена. + + + +Рис. 1... Личный кабинет + ### Кнопки управления -

Кнопки управления проектом находятся на верхней панели главного окна студии и предназначены для осуществления основных манипуляций с проектом: создания ![Screenshot](img/HS_4.png) , сохранения ![Screenshot](img/HS_5.png) , открытия ![Screenshot](img/HS_6.png) , выполнения описанных в проекте действий ![Screenshot](img/HS_7.png) и выхода из программы ![Screenshot](img/HS_8.png) . -

Также поддерживаются различные комбинации горячих клавиш. Например, для создания проекта можно использовать комбинацию Ctrl+N. -

Более подробно поддерживаемые комбинации горячих клавиш описаны в разделе «Горячие клавиши». + +Кнопки управления проектом находятся на верхней панели главного окна +студии и предназначены для осуществления основных манипуляций с +проектом: создания +, +сохранения +, +открытия +, +выполнения описанных в проекте действий + +и выхода из программы +. + +Также поддерживаются различные комбинации горячих клавиш. Например, для +создания проекта можно использовать комбинацию Ctrl+N. + +Более подробно поддерживаемые комбинации горячих клавиш описаны в +разделе «Горячие клавиши». + #### Создать -

Нажатие на кнопку «Создать» вызывает окно создания нового проекта. -

![Screenshot](img/HS_9.png)

-

В открывшемся окне необходимо ввести имя нового проекта, дополнительно можно указать его описание. Нажатие на кнопку «Создать» в указанном окне завершит процесс создания проекта. Новый проект будет открыт в главном окне студии. Ключ проекта – уникальный идентификатор проекта, который необходим для загрузки проекта в оркестратор. По этому ключу происходит обновление проекта, который уже загружен в оркестратор, при его повторной загрузке. Если необходимо загрузить в оркестратор проект, основанный на проекте с ключом, который уже загружен в оркестратор, необходимо изменить его ключ. -

![Screenshot](img/HS_10.png)

+ +Нажатие на кнопку «Создать» вызывает окно создания нового проекта (Рис. +1.1.4). + + + +Рис. 1... Создание нового проекта + +В открывшемся окне необходимо ввести имя нового проекта, дополнительно +можно указать его описание. Ключ проекта – уникальный идентификатор +проекта, который необходим для загрузки проекта в оркестратор. По этому +ключу происходит обновление проекта, который уже загружен в оркестратор, +при его повторной загрузке. Если необходимо загрузить в оркестратор +проект, основанный на проекте с ключом, который уже загружен в +оркестратор, необходимо изменить его ключ. + +Нажатие на кнопку «Создать» в указанном окне завершит процесс создания +проекта. Новый проект будет открыт в главном окне студии. + + + +Рис. 1... Окно нового проекта + #### Сохранить -

Кнопка «Сохранить» вызывает стандартный диалог сохранения файла. -

Для нового проекта в диалоговом окне необходимо выбрать папку назначения и название файла, в котором будет сохранен проект (по умолчанию, предлагается название проекта, которое вы задали при его создании). Файлы проектов Lexema-RPA Studio имеют расширение «.rpa». После выбора папки для сохранения, необходимо нажать на кнопку «Сохранить». По завершении операции, файл проекта будет сохранен по указанному расположению. Существующий проект будет сохранен в его текущем расположении. + +Кнопка «Сохранить» вызывает стандартный диалог сохранения файла. + +Для нового проекта в диалоговом окне необходимо выбрать папку назначения +и название файла, в котором будет сохранен проект (по умолчанию, +предлагается название проекта, которое вы задали при его создании). +Файлы проектов Lexema-RPA Studio имеют расширение «.rpa». После выбора +папки для сохранения, необходимо нажать на кнопку «Сохранить» (Рис. +1.1.6). По завершении операции, файл проекта будет сохранен по +указанному расположению. Существующий проект будет сохранен в его +текущем расположении. + #### Сохранить как -

Кнопка «Сохранить как» вызывает стандартный диалог сохранения файла, аналогичный окну сохранения нового проекта. -

В диалоговом окне предоставляется возможность для изменения наименования или расположения файла проекта. + +Кнопка «Сохранить как» вызывает стандартный диалог сохранения файла, +аналогичный окну сохранения нового проекта. + +В диалоговом окне предоставляется возможность для изменения наименования +или расположения файла проекта. + #### Открыть -

Кнопка «Открыть» вызывает стандартный диалог выбора файла. -

Выбранный файл проекта будет загружен в главное окно студии. -

![Screenshot](img/HS_11.png)

+ +Кнопка «Открыть» вызывает стандартный диалог выбора файла. + +Выбранный файл проекта будет загружен в главное окно студии. + + + +Рис. 1... Диалоговое окно сохранения проекта + #### Проиграть -

Кнопка «Проиграть» запускает выполнение всех описанных в проекте действий. -

Попытка запуска будет осуществляться только в случае, если в проекте имеется хотя бы одно действие. Действия выполняются в порядке, описанном в структуре проекта. -

В случае возникновения ошибок или исключительных ситуаций, они будут выведены в область «Отладочный вывод» (далее будет дано подробное описание области отладочного вывода). -#### Опубликовать -

Кнопка «Опубликовать» ![Screenshot](img/HS_12.png) вызывает диалог публикации текущего проекта в оркестратор роботов . + +Кнопка «Проиграть» запускает выполнение всех описанных в проекте +действий. + +Попытка запуска будет осуществляться только в случае, если в проекте +имеется хотя бы одно действие. Действия выполняются в порядке, описанном +в структуре проекта. + +В случае возникновения ошибок или исключительных ситуаций, они будут +выведены в область «Отладочный вывод» (далее будет дано подробное +описание области отладочного вывода). + +#### Открыть оркестратор + +Кнопка «Открыть оркестратор» + +вызывает диалог публикации текущего проекта в оркестратор роботов[5]. + #### Форум -

Кнопка «Форум» ![Screenshot](img/HS_13.png) позволяет перейти на веб-сайт форума технической поддержки приложения. + +Кнопка «Техподдержка в Telegram» +forum +позволяет открыть чат по техподдержке в мессенджере Telegram - +. + #### О программе -

Кнопка «О программе» ![Screenshot](img/HS_14.png) выводит диалоговое окно, содержащее информацию о текущей версии студии. -

![Screenshot](img/HS_15.png)

+ +Кнопка «О программе» +about +выводит диалоговое окно, содержащее информацию о текущей версии студии. + + + +Рис. 1... Информация о текущей версии студии + #### Выйти -Кнопка «Выйти» ![Screenshot](img/HS_16.png) закрывает студию. + +Кнопка «Выйти» +exitзакрывает +студию. + ### Меню -

В разделе «Меню» выводится список доступных для добавления в проект модулей. Каждый модуль отвечает за выполнение конкретного действия или за взаимодействие с определенной программой. + +В разделе «Меню» выводится список доступных для добавления в проект +модулей. Каждый модуль отвечает за выполнение конкретного действия или +за взаимодействие с определенной программой. + #### Список доступных модулей -

В программе Lexema-RPA Studio имеются следующие модули: Excel, Кликер, Поиск изображения (2 варианта), Запустить/Завершить процесс, Условие, Цикл, Вычисления, Работа с файлами, Код С#, Распознавание текста (обычное и ABBYY), SQL, Отправить/Считать письмо, HTTP GET/POST запросы, Break, JSON, Интерфейс, Закрыть Excel-файл, While. -

В списке доступных модулей выводятся все имеющиеся модули. + +В программе Lexema-RPA Studio имеются следующие модули: Excel, Word, +Кликер, Поиск изображения (2 варианта), Получить активное окно, +Запустить/Завершить процесс, Условие, Case, Цикл, Вычисления, Лог, +Работа с файлами, Извлечь текст, Распознавание текста (Tesseract и +ABBYY), Работа с браузером, Обработка текста, PDF, SQL, +Отправить/Считать письмо, Действия над письмами, Telegram (beta), HTTP +OData, HTTP запрос, FTP запрос, Break, Continue, JSON, Интерфейс, +Закрыть Excel-файл, While, Пауза, Return, XML, Word, Создать скриншот, +Прокси, Try/Catch. + +В списке доступных модулей выводятся все имеющиеся модули (Рис. 1.1.8. +Меню доступных модулей.). + #### Поиск модуля -

Поиск модуля можно выполнить с помощью текстового поля, расположенного над списком доступных модулей. Список будет фильтроваться по мере ввода поисковой фразы. + +Поиск модуля можно выполнить с помощью текстового поля, расположенного +над списком доступных модулей. Список будет фильтроваться по мере ввода +поисковой фразы (Рис. 1.1.9. Поиск в списке модулей). + #### Добавление модуля в проект -

Для добавления выбранного модуля в проект необходимо перетащить его в рабочую область с помощью указателя мыши. Новый модуль можно расположить в нужной позиции в общей последовательности действий. Для этого необходимо навести курсор на соседний с нужной позицией модуль. При этом соседний модуль будет подсвечен красным выделением и положение нового модуля будет отображаться в виде яркого выделения сверху или снизу: сверху – если новый модуль будет добавлен перед соседним, снизу – если после него. -

![Screenshot](img/HS_17.png)

-

![Screenshot](img/HS_18.png)

-

![Screenshot](img/HS_19.png)

-

![Screenshot](img/HS_20.png)

-

![Screenshot](img/HS_21.png)

+ +Для добавления выбранного модуля в проект необходимо перетащить его в +рабочую область с помощью указателя мыши. Новый модуль можно расположить +в нужной позиции в общей последовательности действий. Для этого +необходимо навести курсор на соседний с нужной позицией модуль. При этом +соседний модуль будет подсвечен красным выделением и положение нового +модуля будет отображаться в виде яркого выделения сверху или снизу: +сверху – если новый модуль будет добавлен перед соседним, снизу – если +после него (Рис. 1.1.10 – Рис. 1.1.12). + + + +Рис. 1... Меню доступных модулей + + + +Рис. 1... Поиск в списке модулей + + + +Рис. 1... Выбор модуля и перетягивание его в нужную область + + + +Рис. 1... Подсветка 2-го модуля при перемещении нового модуля после него + + + +Рис. 1... Итоговое расположение модуля + ### Обозреватель решений -

Раздел «Обозреватель решений» находится в правой части главного окна. В верхней части раздела расположена панель управления переменными и функциями, прямо под панелью - область текущих проектов. Активный проект (окно которого сейчас открыто) выделен зеленым цветом и помечен маркером зеленая точка. -Панель управления переменными и функциями содержит следующие кнопки (перечисление слева направо): «Переменные», «Создать новую переменную», «Узнать значение переменной», «Локальное хранилище», «Создать локальную переменную», «Функции». При нажатии на одну из этих кнопок будут открыты или созданы те переменные или функции, которые относятся к активному проекту. Подробное описание кнопок будет приведено далее. -

![Screenshot](img/HS_22.png)

-### Обзор переменных -

В рабочей области студии можно вывести информацию о доступных в активном проекте переменных. -

Окно обзора переменных отображается во вкладке «Переменные» при нажатии на кнопку «Переменные» ![Screenshot](img/HS_23.png) в обозревателе решений. -

![Screenshot](img/HS_24.png)

-

Окно содержит строку для поиска переменной по её названию и таблицу со списком всех доступных проекту переменных. Таблица имеет три столбца: -

• Название переменной -

• Константа — флаг, показывающий можно ли изменять значение данной переменной -

• Значение переменной -

По умолчанию, переменные автоматически создаются при указании их в том или ином модуле. При создании проекта автоматически создаются системные переменные: -

• @CurrentDirectory – директория, в которой установлена студия; -

• @UserNameWindows – название пользователя ОС; -

• @MachineName – имя компьютера. -

При двойном щелчке по строке с переменной открывается диалоговое окно редактирования свойств переменной. В диалоговом окне предоставляется возможность изменять свойства переменной или удалять переменную из проекта. Подробное описание работы с переменными будет рассмотрено ниже. -

![Screenshot](img/HS_25.png)

-

Обзор функций -

Доступные в проекте функции выводятся в рабочей области студии во вкладке «Функции» по нажатию на кнопку ![Screenshot](img/HS_26.png) в обозревателе решений. В окне имеется строка для поиска функции по её названию или описанию. -

Список доступных функций представлен в виде таблицы со следующими столбцами: -

• Название функции — название функции и пример аргументов, которые она принимает; -

• Пример использования — пример результата выполнения функции первого столбца; -

• Описание — общее описание функции. -

![Screenshot](img/HS_27.png)

+ +Раздел «Обозреватель решений» находится в правой части главного окна. В +верхней части раздела расположена панель управления переменными и +функциями, прямо под панелью - область текущих проектов. Активный проект +(окно которого сейчас открыто) выделен зеленым цветом и помечен маркером +зеленая точка. + + + +Рис. 1... Обозреватель решений + +Панель управления переменными и функциями содержит следующие кнопки +(перечисление слева направо): «Переменные», «Создать новую переменную», +«Узнать значение переменной», «Локальное хранилище», «Создать локальную +переменную». При нажатии на одну из этих кнопок будут открыты или +созданы те переменные или функции, которые относятся к активному +проекту. Подробное описание кнопок будет приведено далее. + +#### Обзор переменных + +В рабочей области студии можно вывести информацию о доступных в активном +проекте переменных. + +Окно обзора переменных отображается во вкладке «Переменные» при нажатии +на кнопку «Переменные» +var +в обозревателе решений и доступно только при наличии открытого проекта. + + + +Рис. 1... Обзор переменных проекта + +Окно содержит строку для поиска переменной по её названию и таблицу со +списком всех доступных проекту переменных. Таблица имеет два столбца: + +- Название переменной + +- Значение переменной + +По умолчанию, ***переменные автоматически создаются*** ***при указании +их в том или ином модуле***. При создании проекта автоматически +создаются системные переменные: + +- CurrentDirectory – директория, в которой установлена студия; + +- UserNameWindows – название пользователя ОС; + +- MachineName – имя компьютера; + +- Resolution – переменная-объект, состоящая из двух полей – Width и + Height, соответствующих ширине и высоте текущего экрана. + +При двойном щелчке по строке с переменной открывается диалоговое окно +просмотра свойств переменной. В диалоговом окне предоставляется +возможность перейти в окно редактирования свойств переменной, +просмотреть дерево свойств переменной и удалить переменную из проекта. +Подробное описание работы с переменными будет рассмотрено в главе 2. + + + +Рис. 1... Окно просмотра переменной + #### Обзор локальных переменных -

Lexema-RPA Studio позволяет хранить конфиденциальную информацию, например, пароли, логины или почтовые адреса, в переменных, которые будут зашифрованы и сохранены на вашем компьютере. Обзор ваших локальных переменных доступен по кнопке «Локальное хранилище» ![Screenshot](img/HS_28.png) в панели управления переменными и функциями. Окно состоит из трех столбцов: -

• Имя – название переменной; -

• Значение; -

• Описание – ваш комментарий относительно переменной. -

![Screenshot](img/HS_27_1.png)

-

При двойном нажатии по переменной откроется окно её редактирования, аналогичное окну создания локальной переменной. -

![Screenshot](img/HS_27_2.png)

+ +Lexema-RPA Studio позволяет хранить конфиденциальную информацию, +например, пароли, логины или почтовые адреса, в переменных, которые +будут зашифрованы и сохранены на вашем компьютере. Обзор ваших локальных +переменных доступен по кнопке «Локальное хранилище» + +в панели управления переменными и функциями. Окно состоит из трех +столбцов: + +- Имя – название переменной; + +- Значение; + +- Описание – ваш комментарий относительно переменной. + + + +Рис. 1... Локальные переменные + +При двойном нажатии по переменной откроется окно её редактирования, +аналогичное окну создания локальной переменной. + + + +Рис. 1... Окно редактирования локальной переменной + ### Отладочный вывод -

В раздел «Отладочный вывод» главного окна студии выводятся все сообщения, возникающие в ходе выполнения настроенных действий проекта после нажатия на кнопку «Проиграть». Сообщения выводятся для всех действий по порядку их выполнения в проекте. -

![Screenshot](img/HS_29.png)

-

В отладочном выводе выводится информация о времени начала робота, общее время работы. Для каждого модуля выводится информация о начале времени его выполнения и затраченное время. -

В случае возникновения исключения в работе модуля, робот приостановит выполнение, и в отладочном выводе, в последней строке, будет содержаться информация об ошибке. Текст первой и последней строки отладочного вывода будет написан красным цветом. -

![Screenshot](img/HS_30.png)

-## Основы работы + +В раздел «Отладочный вывод» главного окна студии выводятся все +сообщения, возникающие в ходе выполнения настроенных действий проекта +после нажатия на кнопку «Проиграть». Сообщения выводятся для всех +действий по порядку их выполнения в проекте. + + + +Рис. 1... Пример успешного вывода + +В отладочном выводе выводится информация о времени начала робота, общее +время работы. Для каждого модуля выводится информация о начале времени +его выполнения и затраченное время. + +В случае возникновения исключения в работе модуля, робот приостановит +выполнение, и в отладочном выводе, в последней строке, будет содержаться +информация об ошибке. Текст последней строки отладочного вывода будет +написан красным цветом. + + + +Рис. 1... Пример вывода при исключительной ситуации + +## Основы работы + +Теперь, когда вы познакомились с интерфейсом студии, пришло время +выяснить, как работать с этой программой. В этой главе вы узнаете о +переменных и функциях, а также освоите маленькие хитрости (горячие +клавиши), которыми сможете воспользоваться для быстрой работы. + ### Переменные -

Переменные предназначены для хранения данных, которые должны быть доступны для всех действий проекта. Большинство модулей поддерживает чтение и запись данных в переменные. -

К наименованию переменных предъявляется следующее требование: название переменной должно всегда начинаться с символов ‘v.’. -

Обращаться к переменным можно в полях окон настройки модулей приложения. При обращении необходимо указывать полное название переменной согласно описанному выше требованию. -

В проекте можно создавать переменные четырех типов: -

• Элемент – переменная, имеющая одно значение. Это может быть строка или число; -

• Список – переменная, состоящая из нескольких элементов; -

• Таблица – переменная в виде таблицы, в ячейках которой содержатся элементы. -

• Объект – переменная, имеющая именованные поля - ключи и их значения-элементы. -

Для создания переменной нажмите на кнопку «Создать переменную» в обозревателе решений, предварительно выбрав нужный проект (сделав его активным). Для создания локально хранимой и зашифрованной переменной необходимо нажать кнопку «Создать локальную переменную». После выполнения действия откроется окно создания переменной, это окно аналогично окну редактирования свойств переменной. Локальные переменные могут создаваться только с типом «Элемент», поэтому окно их настройки немного отличается от настройки обычных переменных. -

![Screenshot](img/HS_30_2.png)

-

![Screenshot](img/HS_30_3.png)

-

![Screenshot](img/HS_30_1.png)

-

![Screenshot](img/HS_30_4.png)

-

В окне создания переменной укажите название переменной согласно требованиям приложения (в начале наименования обязательно должны быть символы v.) и выберите тип переменной из списка. При изменении типа переменной изменяются доступные настройки. -

Для переменных с типом «Элемент» доступны следующие настройки: -

• поле для ввода значения; -

![Screenshot](img/HS_31_1.png)

-

Переменные с типом «Список» хранят набор (массив) переменных. Обращение к каждому элементу списка осуществляется по его индексу, индекс начинается с 0. Индекс указывается в квадратных скобках, следующих сразу за названием переменной. Например, для обращения ко второму элементу – v.array[1]. -

Заполнение переменных-списков производится посредством ввода значения в поле «Значение», затем нажатием кнопки «Добавить», после чего введенный элемент добавится в список элементов в нижней части окна. -

![Screenshot](img/HS_32_1.png)

-

Переменные с типом «Таблица» представляют собой таблицу (двумерный массив), т.е. это список, элементами которого являются списки. Другими словами, это набор простых элементов, доступ к которым осуществляется по двум индексам. Наглядно двумерный массив удобно представлять в виде таблицы, в которой n строк и m столбцов, а под ячейкой таблицы, стоящей в i-й строке и j-м столбце, понимают некоторый элемент массива a[i-1,j-1] (так как индекс начинается с нуля). Это означает, что для обращения к элементу в 3 строке и 5 столбце, отвечающему за ячейку таблицы, необходимо указывать два индекса: v.table[2, 4]. -

![Screenshot](img/HS_33_1.png)

-

Для заполнения значений переменных с типом «Таблица» становится доступной таблица, набор столбцов которой можно расширять с помощью кнопки «Добавить столбец». Добавление новых строк производится по нажатию клавиши «Enter». Вводить значения можно для каждой ячейки. Незаполненные столбцы не будут использоваться при создании переменной. -

И последний возможный тип переменных в программе – переменные-объекты. Для создания переменной необходимо заполнять поля «Ключ» и «Значение» указанного ключа. В примере показана переменная v.person, которая состоит из двух полей – name и age, значения которых John и 18 соответственно. Для обращения к полям такой переменной в программе необходимо указать название переменной с символов «v.» и через точку поле, к которому хотите обратиться: v.person.name (результатом будет строка John). -

![Screenshot](img/HS_34_1.png)

-

При нажатии в обозревателе решений на кнопку «Узнать значение переменной» открывается окно, с помощью которого можно проверить значение переменной активного проекта. Для проверки значения необходимо ввести полное наименование переменной (включая символы v.). -

![Screenshot](img/HS_35_1.png)

-

![Screenshot](img/HS_36_1.png)

-### Функции -

Предустановленный набор вспомогательных функций позволяет выполнять различные вычисления в действиях проекта. -

Для вызова встроенной функции необходимо перед её названием ввести знак #, например, #OperationPlus(1, 1). Аргументы функции, над которыми должна производится операция, перечисляются в круглых скобках через запятую (если функция работает с несколькими аргументами). Между наименованием вызываемой функции и скобками с её аргументами не должно быть пробела. + +Переменные предназначены для хранения данных, которые должны быть +доступны для всех действий проекта. Большинство модулей поддерживает +чтение и запись данных в переменные. + +К наименованию переменных предъявляется следующее требование: +***название переменной должно всегда начинаться с символов ‘v.’.*** + +Обращаться к переменным можно в полях окон настройки модулей приложения. +При обращении необходимо указывать полное название переменной согласно +описанному выше требованию. + +В проекте можно создавать переменные четырех типов: + +- Элемент – переменная, имеющая одно значение. Это может быть строка + или число; + +- Список – переменная, состоящая из нескольких элементов; + +- Таблица – переменная в виде таблицы, в ячейках которой содержатся + элементы; + +- Объект – переменная, имеющая именованные поля - ключи и их + значения-элементы. + +Для создания переменной нажмите на кнопку «Создать переменную» в +обозревателе решений, предварительно выбрав нужный проект (сделав его +активным). Для создания локально хранимой и зашифрованной переменной +необходимо нажать кнопку «Создать локальную переменную». После +выполнения действия откроется окно создания переменной. Локальные +переменные могут создаваться только с типом «Элемент», поэтому окно их +настройки немного отличается от настройки обычных переменных. + + + +Рис. 1... Кнопки создания переменной + + + +Рис. 1... Окна создания переменной (слева – обычной, справа – локальной) + +***Для работы с локальными переменными*** требуется наличие +установленного сертификата Windows. Он может быть выпущен вами или вы +можете установить существующий сертификат нашей компании. Для установки +предоставляемого нами сертификата откройте папку «certificate» в +директории с установленной Lexema Studio и запустите файл Lexema-RPA +sert.pfx, далее следуйте инструкциям по установке (пароль от сертификата +– 12345). Подробнее о сертификатах вы можете прочитать по ссылке: +. + +В окне создания переменной укажите название переменной согласно +требованиям приложения (***в начале наименования обязательно должны быть +символы v.***) и выберите тип переменной из списка. При изменении типа +переменной изменяются доступные настройки. + +Для переменных с типом «Элемент» доступны следующие настройки: + +- поле для ввода значения. + + + +Рис. 1... Окно создания обычной переменной-элемента + +Переменные с типом «Список» хранят набор (массив) переменных. Обращение +к каждому элементу списка осуществляется по его индексу, индекс +начинается с 0. Индекс указывается в квадратных скобках, следующих сразу +за названием переменной. Например, для обращения ко второму элементу – +v.array\[1\]. + +Заполнение переменных-списков производится посредством ввода значения в +поле «Значение», затем нажатием кнопки «Добавить», после чего введенный +элемент добавится в список элементов в нижней части окна. + + + +Рис. 1... Создание переменной-списка + +Переменные с типом «Таблица» представляют собой таблицу (двумерный +массив), т.е. это список, элементами которого являются списки. Другими +словами, это набор простых элементов, доступ к которым осуществляется по +двум индексам. Наглядно двумерный массив удобно представлять в виде +таблицы, в которой n строк и m столбцов, а под ячейкой таблицы, стоящей +в i-й строке и j-м столбце, понимают некоторый элемент массива +a\[i-1,j-1\] (так как индекс начинается с нуля). Это означает, что для +обращения к элементу в 3 строке и 5 столбце, отвечающему за ячейку +таблицы, необходимо указывать два индекса: v.table\[2, 4\]. + + + +Рис. 1... Создание переменной-таблицы + +Для заполнения значений переменных с типом «Таблица» становится +доступной таблица, набор столбцов которой можно расширять с помощью +кнопки «Добавить столбец». Добавление новых строк производится по +нажатию клавиши «Enter». Вводить значения можно для каждой ячейки. +***Незаполненные столбцы не будут использоваться при создании +переменной.*** + +И последний возможный тип переменных в программе – переменные-объекты. +Для создания переменной необходимо заполнять поля «Ключ» и «Значение» +указанного ключа. В примере показана переменная v.person, которая +состоит из двух полей – name и age, значения которых John и 18 +соответственно. Для обращения к полям такой переменной в программе +необходимо указать название переменной с символов «v.» и через точку +поле, к которому хотите обратиться: v.person.name (результатом будет +строка John). + + + +Рис. 1... Создание объектной переменной + +При нажатии в обозревателе решений на кнопку «Узнать значение +переменной» открывается окно, с помощью которого можно проверить +значение переменной активного проекта (рис. 1.2.7–1.2.8). ***Для +проверки значения необходимо ввести полное наименование переменной +(включая символы v.).*** + + + +Рис. 1... Кнопка «Узнать значение переменной» + + + +Рис. 1... Окно проверки значения переменной + ### Рабочая область -

Это основной раздел главного окна студии. Здесь осуществляется настройка структуры проекта и выполняемых в нём действий. + +Это основной раздел главного окна студии. Здесь осуществляется настройка +структуры проекта и выполняемых в нём действий. + #### Структура проекта -

Действия добавляются с помощью меню доступных модулей. После добавления модуля в структуру проекта он отображается в виде элемента, обозначающего выполняемое действие. -

![Screenshot](img/HS_39.png)

-

Элемент действия имеет несколько составляющих: -

• порядковый номер действия; -

• название действия; -

• настраиваемое пользователем примечание; -

• кнопку удаления действия. -

В структуре проекта по нажатию правой кнопкой мыши на добавленное действие доступно контекстное меню со следующими пунктами: -

• отключить/включить; -

• снять/поставить точку остановки; -

• копировать; -

• вставить. -

![Screenshot](img/HS_40.png)

-

Пункт «Отключить/Включить» позволяет переключать активность выбранного действия. Выключенное действие будет пропущено при запуске проекта. -

Пункт «Снять/поставить точку остановки» создаёт или отключает точку остановки выполнения проекта. Точки остановки упрощают процесс наладки последовательности действий. -

Пункт «Копировать» копирует в буфер обмена выбранное действие для последующей вставки. -

Пункт «Вставить» вставляет скопированное действие после выделенного действия. Данный пункт доступен также при вызове контекстного меню в рабочей области главного окна студии. -

Пункт «Удалить» удаляет данный модуль из списка модулей (аналогичен нажатию крестика в правой части модуля). -

![Screenshot](img/HS_41.png)

+ +Действия добавляются с помощью меню доступных модулей. После добавления +модуля в структуру проекта он отображается в виде элемента, +обозначающего выполняемое действие. + + + +Рис. 1... Структура проекта + +Элемент действия имеет несколько составляющих: + +- порядковый номер действия; + +- название действия; + +- настраиваемое пользователем примечание; + +- кнопку удаления действия. + +В структуре проекта по нажатию правой кнопкой мыши на добавленное +действие доступно контекстное меню со следующими пунктами: + +- отключить/включить; + +- снять/поставить точку остановки; + +- запустить с действия; + +- копировать; + +- вставить; + +- удалить. + + + +Рис. 1... Контекстное меню структуры проекта + +**Пункт «Отключить/Включить»** позволяет переключать активность +выбранного действия. Выключенное действие будет пропущено при запуске +проекта. + +**Пункт «Снять/поставить точку остановки»** создаёт или отключает точку +остановки выполнения проекта. Необходимо для отладки проекта, при +установленной точке выполнение робота приостановится перед отмеченным +модулем. + +**Пункт «Запустить с действия»** позволяет запустить робота с выбранного +действия, то есть все ранее стоящие модули будут пропущены. + +**Пункт «Копировать»** копирует в буфер обмена выбранное действие для +последующей вставки. + +**Пункт «Вставить»** вставляет скопированное действие **после +выделенного действия**. Данный пункт доступен также при вызове +контекстного меню в рабочей области главного окна студии. + +**Пункт «Удалить»** позволяет удалить выбранный модуль. + + + +Рис. 1... Проект с отключенным действием и точкой остановки + #### Точка остановки -

Точка остановки – это инструмент, который помогает отлаживаться при написании робота. Такой инструмент позволяет остановить работу робота перед выполнением выбранного модуля, при этом в панели отладочного вывода отображаются текущие переменные и их значения, модуль, который должен будет выполняться после продолжения подсвечивается красной рамкой, а в панели инструментов появляются две новые кнопки, позволяющие управлять пошаговой отладкой. -

![Screenshot](img/HS_42.png)

-

Пошаговая отладка позволяет выполнять каждый модуль робота друг за другом, при этом можно следить за значениями всех переменных. Для выполнения подсвечиваемого модуля и остановки робота после его выполнения, то есть, для перехода к следующему модулю (шагу), необходимо нажать кнопку «Следующий шаг отладки» ![Screenshot](img/HS_43.png). Для прекращения выполнения работы робота необходимо нажать кнопку «Остановить» ![Screenshot](img/HS_44.png). Если требуется остановить робота в другом месте, через несколько модулей, то во время отладки можно поставить новую точку остановки на модуле, перед выполнением которого необходимо остановить работу робота, и нажать «Продолжить выполнение» ![Screenshot](img/HS_45.png). Изменения, внесенные в модули во время отладки, в текущем выполнении применены не будут. -#### Настройка добавленных действий -

Окно настройки свойств действия, добавленного в структуру проекта, открывается с помощью двойного щелчка левой кнопкой мыши по указанному действию. Набор свойств, доступных в этом окне, зависит от выбранного действия. Подробнее о доступных свойствах каждого действия будет описано далее в руководстве. + +Точка остановки – это инструмент, который помогает отлаживаться при +написании робота. Такой инструмент позволяет остановить работу робота +перед выполнением выбранного модуля, при этом в панели отладочного +вывода отображаются текущие переменные и их значения, модуль, который +должен будет выполняться после продолжения подсвечивается красной +рамкой, а в панели инструментов появляются две новые кнопки, позволяющие +управлять *пошаговой отладкой*. + + + +Рис. 1... Пошаговая отладка + +Пошаговая отладка позволяет выполнять каждый модуль робота друг за +другом, при этом можно следить за значениями всех переменных. Для +выполнения подсвечиваемого модуля и остановки робота после его +выполнения, то есть, для перехода к следующему модулю (шагу), необходимо +нажать кнопку «Следующий шаг отладки» +. +Для прекращения выполнения работы робота необходимо нажать кнопку +«Остановить» +. +Если требуется остановить робота в другом месте, через несколько +модулей, то во время отладки можно поставить новую точку остановки на +модуле, перед выполнением которого необходимо остановить работу робота, +и нажать «Продолжить выполнение» +. +Изменения, внесенные в модули во время отладки, в текущем выполнении +применены **не будут**. + +#### Настройка добавленных модулей + +Окно настройки свойств модуля, добавленного в структуру проекта, +открывается с помощью двойного щелчка левой кнопкой мыши по указанному +действию. Набор свойств, доступных в этом окне, зависит от выбранного +модуля. Подробнее о доступных свойствах каждого модуля будет описано +далее в руководстве. + +### Горячие клавиши + +Приложение поддерживает следующий набор комбинаций горячих клавиш: + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+

Комбинация клавиш

+
+

Действие

+

Ctrl+N

Создать новый проект. Открывает диалог создания нового проекта.

Ctrl+S

Сохранить проект. Сохраняет проект в текущем расположении.

Ctrl+Shift+S

Сохранить проект как. Аналогично кнопке «Сохранить как» открывает диалог для указания нового расположения или имени файла проекта.

Ctrl+O

Открыть проект. Открывает сохраненный ранее проект с помощью системного диалога выбора файлов.

Esc

Закрыть программу.

F1

Перейти в базу знаний по адресу https://lexema-rpa-studio-docs.readthedocs.io/ru/latest/.

F5

Запустить робота.

F10

Перейти к следующему шагу отладки. Только в режиме отладки.

\ No newline at end of file diff --git a/docs/file.md b/docs/file.md new file mode 100644 index 0000000..cabd5e0 --- /dev/null +++ b/docs/file.md @@ -0,0 +1,4874 @@ + + +Инструкция пользователя +Lexema-RPA Studio + +# **СОДЕРЖАНИЕ** + +[ВВЕДЕНИЕ 8](#введение) + +[Назначение программы 8](#назначение-программы) + +[Что такое RPA? 8](#что-такое-rpa) + +[Что могут роботы? 8](#что-могут-роботы) + +[Сколько нужно времени для создания роботов? +9](#сколько-нужно-времени-для-создания-роботов) + +[Области использования роботов 9](#области-использования-роботов) + +[С чего начать 10](#с-чего-начать) + +[Часть I. ЗНАКОМСТВО СО СТУДИЕЙ 14](#знакомство-со-студией) + +[Глава 1. Интерфейс главного окна 14](#интерфейс-главного-окна) + +[Глава 2. Основы работы 27](#основы-работы) + +[Часть II. МОДУЛЬ «EXCEL» 35](#модуль-excel) + +[Глава 3. Основные моменты модуля 35](#основные-моменты-модуля) + +[Глава 4. Набор полей в составе модуля +41](#набор-полей-в-составе-модуля) + +[Глава 5. Описание действий, доступных в модуле +45](#описание-действий-доступных-в-модуле) + +[Глава 6. Модуль «Закрыть Excel-файл» 80](#модуль-закрыть-excel-файл) + +[Часть III. МОДУЛЬ «WORD» 81](#модуль-word) + +[Глава 7. Основные моменты модуля 81](#основные-моменты-модуля-1) + +[Глава 8. Действия модуля 84](#действия-модуля) + +[Часть IV. МОДУЛЬ «КЛИКЕР» И МОДУЛИ, РАБОТАЮЩИЕ С ЭКРАНОМ +88](#модуль-кликер-и-модули-работающие-с-экраном) + +[Глава 9. Модуль «Кликер» 88](#модуль-кликер) + +[Глава 10. Модуль «Поиск изображения» 97](#модуль-поиск-изображения) + +[Глава 11. Модуль «Поиск изображений» 99](#модуль-поиск-изображений) + +[Глава 12. Модуль «Создать скриншот» 102](#модуль-создать-скриншот) + +[Глава 13. Модуль «Получить активное окно» +103](#модуль-получить-активное-окно) + +[Часть V. МОДУЛЬ «РАБОТА С ФАЙЛАМИ» 104](#модуль-работа-с-файлами) + +[Глава 14. Основные моменты модуля 104](#основные-моменты-модуля-2) + +[Глава 15. Описание действий, доступных в модуле +106](#описание-действий-доступных-в-модуле-2) + +[Часть VI. МОДУЛИ-ОПЕРАТОРЫ: «ЦИКЛ», «УСЛОВИЕ», «WHILE», «TRY-CATCH», +«BREAK», «RETURN», «SWITCH» +113](#модули-операторы-цикл-условие-while-try-catch-break-return-switch) + +[Глава 16. Модуль «Условие» 113](#модуль-условие) + +[Глава 17. Модуль «Цикл» 119](#модуль-цикл) + +[Глава 18. Модуль «Break» 121](#модуль-break) + +[Глава 19. Модуль «Return» 122](#модуль-return) + +[Глава 20. Модуль «Continue» 123](#модуль-continue) + +[Глава 21. Модуль «While» 125](#модуль-while) + +[Глава 22. Модуль «Try/Catch» 127](#модуль-trycatch) + +[Глава 23. Модуль «Switch» 129](#модуль-switch) + +[Часть VII. МОДУЛИ «ПОЧТОВЫЕ АГЕНТЫ» 131](#модули-почтовые-агенты) + +[Глава 24. Модуль «Отправить письмо» 131](#модуль-отправить-письмо) + +[Глава 25. Модуль «Считать письма» 136](#модуль-считать-письма) + +[Глава 26. Модуль «Действия над письмами» +144](#модуль-действия-над-письмами) + +[Часть VIII. МОДУЛЬ «РАБОТА С БРАУЗЕРОМ» +146](#модуль-работа-с-браузером) + +[Глава 27. Основные моменты модуля 146](#основные-моменты-модуля-3) + +[Глава 28. Описание действий 149](#описание-действий) + +[Часть IX. МОДУЛЬ «ИНТЕРФЕЙС» 156](#модуль-интерфейс) + +[Глава 29. Основные моменты 156](#основные-моменты) + +[Глава 30. Настройки окна 157](#настройки-окна) + +[Глава 31. Добавление элемента интерфейса +161](#добавление-элемента-интерфейса) + +[Часть X. МОДУЛИ ДЛЯ РАБОТЫ С ТЕКСТОМ 169](#модули-для-работы-с-текстом) + +[Глава 32. Модуль «Обработка текста» 169](#модуль-обработка-текста) + +[Глава 33. Модуль «Распознавание текста» +171](#модуль-распознавание-текста) + +[Глава 34. Модуль «Распознавание текста ABBYY» +173](#модуль-распознавание-текста-abbyy) + +[Часть XI. МОДУЛЬ «TELEGRAM» 175](#модуль-telegram) + +[Глава 35. Основные моменты модуля 175](#основные-моменты-модуля-4) + +[Глава 36. Описание действий 178](#описание-действий-1) + +[Часть XII. ДРУГИЕ МОДУЛИ 181](#другие-модули) + +[Глава 37. Модуль «Вычисления» 181](#модуль-вычисления) + +[Глава 38. Модуль «Запустить процесс» 183](#модуль-запустить-процесс) + +[Глава 39. Модуль «Завершить процесс» 185](#модуль-завершить-процесс) + +[Глава 40. Модуль «SQL» 186](#модуль-sql) + +[Глава 41. Модуль «HTTP OData» 188](#модуль-http-odata) + +[Глава 42. Модуль «HTTP запрос» 190](#модуль-http-запрос) + +[Глава 43. Модуль «FTP запрос». 191](#модуль-ftp-запрос.) + +[Глава 44. Модуль «JSON» 192](#модуль-json) + +[Глава 45. Модуль «XML» 194](#модуль-xml) + +[Глава 46. Модуль «PDF» 195](#_Toc68096788) + +[Глава 47. Модуль «Пауза» 198](#модуль-пауза) + +[Глава 48. Модуль «Прокси» 198](#модуль-прокси) + +[Глава 49. Модуль «Лог» 198](#модуль-лог) + +[Часть XIII. ОРКЕСТРАТОР 200](#оркестратор) + +[Глава 50. Общая информация 200](#общая-информация) + +[Глава 51. Создание новой задачи 202](#создание-новой-задачи) + +[Глава 52. Раздел «Роботы» 206](#раздел-роботы) + +[Глава 53. Просмотр истории выполнений +208](#просмотр-истории-выполнений) + +[Часть XIV. КОНФИГУРИРОВАНИЕ LEXEMA-RPA STUDIO +210](#конфигурирование-lexema-rpa-studio) + +[Глава 54. Файл конфигурации 210](#файл-конфигурации) + + + + + +# МОДУЛЬ «EXCEL» + +## Основные моменты модуля + +Модуль «Excel» является самым обширным модулем в программе. Данный +модуль предназначен для обработки Excel-файлов в фоновом режиме, +незаметном для пользователя компьютера. Модуль последовательно выполнит +заданный ему список команд. + +### Интерфейс модуля + +Окно модуля состоит из нескольких разделов: «Общие настройки» (верхняя +часть окна), «Добавить команду», «Список команд» и окна с +предварительным просмотром файла. + + + +Рис. 2... Окно модуля Excel + +Окно предварительного просмотра позволяет просматривать все листы +загруженного файла с помощью вкладок с названиями листов и полосы +прокрутки. Также есть возможность вписывать в ячейки свои значения, +применять различное форматирование, но эти изменения сохранены не будут, +то есть данный функционал доступен только для «примерки». + + + +Рис. 2... Элементы управления окна предварительного просмотра + +### Раздел «Общие настройки» + +***Загрузить файл*** + +Раздел «Общие настройки» состоит из поля «Имя файла», «Пароль» и кнопку +«Выбрать ячейку». Поле «Пароль» подлежит заполнению только у +запароленных книг. + +Работу с модулем Excel советуем начинать с выбора рабочего файла. После +того, как по кнопке «Открыть файл» в поле «Имя файла» будет выбран файл, +необходимо подождать несколько секунд и указанный файл будет отображен в +окне предварительного просмотра (рис. 2.3.3). + + +Рис. 2... Общие настройки + +### Разделы «Добавить команду» и «Список команд» + +Раздел «Добавить команду» является основным «полотном» данного модуля. В +нем создаются действия, имитирующие работу пользователя, например, такие +как считать некоторый диапазон ячеек, затем перенести его на другой +лист, удалить дубликаты и построить круговую диаграмму. В данном случае +было описано 4 действия. Эти 4 действия необходимо последовательно +выбирать и добавлять в раздел «Список команд» - таблицу, отображающую +все действия, которые будут выполняться данным модулем. Набор полей в +данном разделе не всегда одинаков – он меняется в зависимости от +выбранного действия в первом поле. + +Кнопки «Добавить», «Редактировать» и «Удалить» предназначены для работы +с разделами «Добавить команду» и «Список команд». + +#### Добавление команды + +Для добавления команды предусмотрена кнопка «Добавить». Она заносит +созданное действие в таблицу «Список команд». + + + +Рис. 2... Добавление команды + +При выборе строки в списке команд информация по выбранному действию +отобразится в разделе «Добавить команду». + +Помимо описанного функционала, кнопка «Добавить» служит для копирования +уже имеющихся действий в списке команд. Для этого необходимо выбрать +строку в списке команд и нажать на кнопку «Добавить». Таким образом, +если нужно выполнить действие несколько раз, достаточно его копировать, +а не создавать вновь. + + + +Рис. 2... Отображение команды + +#### Редактирование команды + +Для редактирования команды предусмотрена кнопка «Редактировать». Чтобы +изменить команду, выделите ее в списке команд, внесите необходимые +изменения в разделе «Добавить команду» и нажмите на кнопку +«Редактировать» для сохранения изменений. + +#### Изменение порядка действий + +Для изменения порядка действий предусмотрены кнопки «Поднять» и +«Опустить». Кнопки расположены справа сверху от списка команд. + +Изменение порядка действий бывает необходимо, когда требуется добавить +действие, которое не предусмотрели сразу и не внесли в список команд. В +таком случае вы можете добавить действие стандартным способом, а затем +переместить его. + + + + + +Рис. 2... Изменение порядка действий + +#### Удаление команды + +Кнопка «Удалить» удаляет выбранную строку из списка команд. + +#### Отключение команды + +Если вы не хотите удалять команду, так как хотели бы, например, +проверить, как работает робот без неё, а затем вернуть её в работу, то +можно отключить команду, нажав на соответствующую ей строку правой +кнопкой мыши и отключить или, наоборот, включить её. + + + +Рис. 2... Контекстное меню команды + +#### Выбор ячейки + +Кнопка «Выбрать ячейку» работает для каждого действия по-своему, но +смысл у неё один – она заполняет поле «Ячейки» или «Диапазон» (в +зависимости от того, какое из них используется в выбранном действии) +названием выбранной в окне предварительного просмотра ячейки / диапазона +и вписывает в поле «Лист» название листа, на котором находятся выбранные +ячейки. ***В некоторых действиях по кнопке заполняется только одна +ячейка, хотя был выбран диапазон – это означает, что в данном действии +использование диапазона невозможно.*** + + + +Рис. 2... Выбор диапазона в окне предварительного просмотра + + + +Рис. 2... Выбрать ячейку + +В некоторых действиях кнопка «Выбрать ячейку» заполняет номера колонок, +строк, какие-либо значения. При работе с файлами рекомендуется её +использование для минимизации возникновения синтаксических ошибок. + +#### Сохранение команды + +Для сохранения команды в модуле Excel нажмите на кнопку «Сохранить» в +правом нижнем углу модуля. + + + +Рис. 2.. Сохранение в модуле Excel + +## Набор полей в составе модуля + +Для каждого действия в разделе «Добавить команду» существует свой набор +необходимых для него полей, который будет отображен при выборе действия. +По умолчанию, отображены поля «Лист», «Ячейки», «Формула» и +«Переменная». Почти все команды имеют именно такой набор полей, но +некоторые требуют несколько иной информации для выполнения действия. + +### Перечень возможных полей с правилами их заполнения + +1. Лист – поле, в которое необходимо указать имя или номер листа + (начиная с 0), на котором необходимо выполнить указанное действие; + +2. Ячейки – поле, в котором ожидается либо адрес одной ячейки (A1), + либо диапазон ячеек (A1:C10). Если адрес ячейки вычисляется + динамически и неизвестен, то можно использовать номера колонок и + строк ячеек, то есть вместо «C1» можно написать «3,1», где 3 – номер + колонки, 1 – номер строки. Так же можно указать диапазон – вместо + «A3:D4» - «1,3:4,4». Второй формат написания ячеек может быть + использован только по отношению к полям «Ячейка(-и)», но невозможен + в полях «Формула» (см. след. пункт); + +3. Формула – поле для ввода формулы в стандартном формате Excel. + Например «=ЕСЛИ(A2 > B2:1:0)». Для более удобного ввода длинных + формул поле можно расширить, нажав на кнопку со стрелочкой в поле + ввода: + + + +Рис. 2... Поле «Формула» + +4. Переменная – поле для ввода названия переменной, в которую будет + помещен результат выполнения действия. Название вводится с символов + «v.»; + +5. Значение – поле для ввода текста или названия переменной, в которой + лежит значение, используемое в выбранном действии; + +6. Столбец – номер (с 1) или название столбца; + +7. Строка – номер строки (с 1). В некоторых действиях («Найти данные», + «Найти лист») – текстовая строка для поиска в файле; + +8. Путь к файлу – путь до папки, в которую будет помещен файл. Можно + выбрать с помощью диалога выбора папки по нажатию на кнопку в поле: + + + +Рис. 2... Поле «Путь к файлу» + +9. Имя файла – название файла, можно указать как с расширением, так и + без, в таком случае будет создан файл с расширением xlsx; + +10. Путь копируемого файла – путь до файла вместе с его расширением, + который будет использоваться в данном действии помимо основного + файла для копирования данных из него. Можно выбрать с помощью + диалога выбора файлов по нажатию на кнопку в поле: + + + +Рис. 2... Поле «Путь копируемого файла» + +11. Лист копируемого файла – название или номер листа (с 0) в копируемом + файле; + +12. Колонки (ч/з ;) – аналогично полю «Столбец», только здесь возможно + их перечисление через символ «;»; + +13. Значения (ч/з ;) – строковые значения (или переменные, хранящие их), + перечисленные через «;»; + +14. Строка, колонка – номер строки и номер колонки, перечисленные через + запятую; + +15. Ячейка из диапазона значений – любая ячейка из таблицы, к которой + применяется действие (например, если таблица A1:D10, то любая ячейка + из этого диапазона – B5); + +16. Функция – выпадающий список с набором функций, который меняется в + зависимости от выбранного действия; обязателен выбор одного из + представленных значений; + +17. По убыванию – флажок, использующийся в действии «Добавить + сортировку», который ставится, если необходимо сортировать по + убыванию, и не ставится в противном случае; + +18. Диапазон таблицы – аналогично полю «Ячейки», но с обязательным + условием, что это должен быть именно диапазон (то есть должен + присутствовать символ «:»); + +19. Лист для вставки – название или номер листа (с 0); + +20. Уникальные столбцы – используется в действии «Получить уникальные + значения столбца», необходим ввод названий или номеров столбцов (с + 1-цы), которые должны быть уникальными; + +21. Для колонок – аналогично полю «Столбец»; + +22. При каждом изменении в колонке – аналогично полю «Столбец»; + +23. Лист, диапазон - поле, в которое должен быть введен лист файла + (аналогично полю «Лист»), затем поставлена запятая и указан диапазон + или ячейка (аналогично полю «Ячейки»); + +24. Лист, диапазон источника – аналогично полю «Лист, диапазон»; + +25. Лист, диапазон для вставки – аналогично полю «Лист, диапазон»; + +26. Поля в столбцах – используется в действии «Сводная таблица», + необходимо ввести название колонки из рабочей таблицы (не A, B, C и + т.д., а именно название столбца вашей таблицы, например «Дата + создания», без использования кавычек); + +27. Поля в значениях – аналогично «Поля в столбцах»; + +28. Поля в строках – аналогично «Поля в столбцах»; + +29. Копируемый лист – аналогично полю «Лист»; + +30. Копируемый диапазон/ячейка – аналогично полю «Ячейки»; + +31. Диапазон/ячейка для вставки – аналогично полю «Ячейки»; + +32. Файл для вставки (необяз.) – путь до файла с его расширением, + является необязательным полем; + +33. Расположение (лев. верхн.,прав. нижн.) – две ячейки, разделенные + запятой, которые обозначают положение - первая – левый верхний угол, + вторая – правый нижний; + +34. Диапазон названий – аналогично полю «Ячейки»; + +35. Диапазон аргументов - аналогично полю «Ячейки»; + +36. Диапазон значений - аналогично полю «Ячейки»; + +37. Ячейка для вставки - аналогично полю «Ячейки», но только в + единственном числе; + +38. Тип данных – выпадающий список, обязателен выбор одного значения из + представленных; + +39. Операция – аналогично «Типу данных»; + +40. Критерии (ч/з ;) – аргументы для выбранной операции, могут быть как + числами, так и строками, перечисляются через «;»; + +41. Цвет заливки – цвет в формате ARGB, с перечислением каждого + параметра через запятую или в формате HEX (например, \#FFFFFF), + возможен выбор цвета через диалог выбора цвета по кнопке в поле: + + + +Рис. 2... Поле «Цвет заливки» + +42. Цвет текста – аналогично «Цвет заливки»; + +43. Цвет – аналогично полю «Цвет заливки»; + +44. Значение для сравнения – текстовое или числовое значение; + +45. Ячейка/диапазон – аналогично полю «Ячейки»; + +46. Столбцы – перечисление номеров (с 1-цы) или названий необходимых + столбцов через запятую; + +47. Ширина – число, как целое, так и дробное (через «.» или «,»); + +48. Строки – перечисление номеров (с 1-цы) строк через запятую; + +49. Высота – аналогично полю «Ширина»; + +50. Общее положение – выпадающий список, обязателен выбор одного из + предложенных значений; + +51. Выравнивание содержимого – аналогично полю «Общее положение»; + +52. Шрифт – выпадающий список со всеми шрифтами, имеющимися в Microsoft + Office, необходимо выбрать один из них; + +53. Стиль текста – аналогично полю «Общее положение»; + +54. Размер – аналогично полю «Ширина»; + +55. Расположение – аналогично полю «Общее положение»; + +56. Стиль – аналогично полю «Общее положение». + +Во всех полях можно использовать переменные, но в них должно содержаться +то, что требуют поля, то есть, в поле «Столбец» можно написать v.column, +но тогда в v.column должен содержаться номер столбца, начинающийся с +единицы, либо его название. Поля, которые закрашены серым цветом, не +используются в выбранном действии. + +## Описание действий, доступных в модуле + +Действия разделены на группы для удобной навигации по выпадающему +списку. Если вы знаете точное название действия, то вы можете начать +вводить его в поле «Действие», и программа постарается подсказать вам то +действие, которое вы ищите. + +### Группа «Работа с данными» + +#### Действие «Считать данные» + +Данное действие позволяет считать значение из одной конкретной ячейки, +либо из диапазона ячеек. Если будет указана одна ячейка, то создастся +переменная с типом «Элемент», если же диапазон, то будет создана +переменная с типом «Таблица». + + + +Рис. 2... Пример настройки действия «Считать данные» + +#### Действие «Записать данные» + +Действие позволяет записать указанное значение в одну или в диапазон +ячеек. + + + +Рис. 2... Пример настройки действия «Записать данные» + +#### Действие «Формула» + +Действие позволяет записать формулу в указанную ячейку (или в диапазон) +и вернуть её результат в указанную переменную. Поле «Переменная» можно +оставить пустым, если результат выполнения данной формулы не важен. + + + +Рис. 2... Пример настройки действия «Формула» + +**СОВЕТ.** Предположим, что вам необходимо написать формулу, применимую +к текущей строке, и «растянуть» её на несколько других строк, как в +Excel. Начните с создания действия «Формула» для первой строки. Затем +«растяните» её с помощью действия «Скопировать и вставить +ячейку/диапазон» применительно к настроенной формуле. То есть для выше +предложенной формулы «растягивание» будет выглядеть так: + + + +Рис. 2... Пример настройки действия «Скопировать и вставить +ячейку/диапазон» + +#### Действие «Получить формулу» + +Действие возвращает формулу из ячейки в указанную переменную. + + + +Рис. 2... Пример настройки действия «Получить формулу» + +#### Действие «Заменить формулу на её значение» + +Данное действие заменяет формулу в ячейке или диапазоне ячеек на её +результат. + + + +Рис. 2... Пример настройки действия «Заменить формулу на ее значение» + +### Группа «Работа со строками» + +#### Действие «Добавить строку» + +Действие вставляет новую строку в указанное место. + + + +Рис. 2... Пример настройки действия «Добавление строки» + +#### Действие «Удалить строку» + +Действие удаляет указанную строку. + + + +Рис. 2... Пример настройки действия «Удаление строки» + +#### Действие «Получить количество строк» + +Действие возвращает номер последней используемой строки в листе в +указанную переменную. + + + +Рис. 2... Пример настройки действия «Получение количества строк» + +#### Действие «Получить количество отфильтрованных строк» + +Действие возвращает количество видимых строк при примененном фильтре в +указанную переменную. + + + +Рис. 2... Пример настройки действия «Получение количества +отфильтрованных строк» + +#### Действие «Переместить строку» + +Действие помещает указанную в поле «Перемещаемая строка» строку на листе +из поля «Лист» вместо указанной в поле «Номер строки для вставки» листа +«Лист для вставки». + + + +Рис. 2... Пример настройки действия «Переместить строку» + +В данном примере строка 14 с листа Лист1 будет перемещена на место 16 +строки листа Лист2. + +#### Действие «Сгруппировать строки» + +С помощь данного действия создаются группы строк в Excel. На вход +подается название листа, на котором происходит группировка, и перечень +номеров строк. Перечислить строки можно просто через запятую, либо, если +диапазон не разрывный, через двоеточие, например – «1,2,3,7,8,9» или +«1:5», что равносильно «1,2,3,4,5». + + + +Рис. 2... Пример настройки действия «Сгруппировать строки» + +#### Действие «Удалить группировку строк» + +Действие предназначено для удаления 1-го уровня существующей группировки +по строкам. Входные данные аналогичны действию «Сгруппировать строки». + + + +Рис. 2... Пример настройки действия «Удалить группировку строк» + +#### Действие «Уровень группировки строки» + +Действие позволяет получить уровень группировки выбранной строки и +записать результат в указанную переменную. + + + +Рис. 2... Пример настройки действия «Уровень группировки строк» + +### Группа «Работа с колонками» + +#### Действие «Добавить столбец» + +Действие добавляет новый столбец в указанное место. + + + +Рис. 2... Пример настройки действия «Добавление столбца» + +#### Действие «Удалить столбец» + +Действие удаляет указанный столбец. + + + +Рис. 2... Пример настройки действия «Удаление столбца» + +#### Действие «Получить количество столбцов» + +Действие возвращает номер самого последнего используемого столбца. + + + +Рис. 2... Пример настройки действия «Получение количества столбцов» + +#### Действие «Сгруппировать столбцы» + +Действие объединяет указанные столбцы в группу. Входными данными +являются лист и перечень столбцов через запятую или в виде диапазона +через двоеточие («A,B,C,D,E» или «A:E»). В качестве столбца можно +указывать как его название, так и его порядковый номер, начиная с +единицы. + + + +Рис. 2... Пример настройки действия «Сгруппировать столбцы» + +#### Действие «Удалить группировку колонок» + +Действие позволяет удалить один уровень группировки у указанных +столбцов. + + + +Рис. 2... Пример настройки действия «Удалить группировку колонок» + +#### Действие «Уровень группировки столбца» + +Данное действие позволяет получить уровень группы указанного столбца и +записать его в переменную. + + + +Рис. 2... Пример настройки действия «Уровень группировки столбца» + +### Группа «Работа с листами и файлами» + +#### Действие «Создать новый лист» + +Действие создает новый лист с указанным именем. + + + +Рис. 2... Пример настройки действия «Создание нового листа» + +#### Действие «Удалить лист» + +Действие удаляет лист с указанным именем. + + + +Рис. 2... Пример настройки действия «Удаление листа» + +#### Действие «Очистить лист» + +Действие очищает ячейки листа от данных. **Не очищает форматирование!** + + + +Рис. 2... Пример настройки действия «Очищение листа» + +#### Действие «Получить список листов» + +Возвращает переменную-список, содержащую названия всех листов файла. + + + +Рис. 2... Пример настройки действия «Получение списка листов» + +#### Действие «Ориентация страницы» + +Изменение ориентации страницы Excel. Доступные ориентации – книжная и +альбомная. + + + +Рис. 2... Пример настройки действия «Ориентация страницы» + +#### Действие «Настройки печати» + +Действие позволяет выбрать область листа, которая должна быть отображена +на странице при печати, а также масштаб этой области. Аналогично +одноименной настройке в Excel. + + + +Рис. 2... Пример настройки действия «Настройки печати» + +#### Действие «Создать новый файл» + +Действие создает в указанной папке новый файл с названием и указанным +расширением (если расширение не указано, создается файл .xlsx). Если +поле «Лист» заполнено, то первый лист файла будет назван так, как +указано в поле, иначе - по умолчанию (Лист 1, Sheet 1, в зависимости от +языка системы). + + + +Рис. 2... Пример настройки действия «Создание нового файла» + +#### Действие «Заполнить лист на основе Excel-файла» + +Данное действие производит заполнение листа текущего файла по аналогии с +листом какого-либо другого файла. В поле «Лист» указывается лист +текущего файла. + + + +Рис. 2... Пример настройки действия «Заполнение листа» + +#### Действие «Экспортировать в PDF» + +Действие позволяет сохранить Excel-файл в формате PDF стандартными +методами Windows, то есть деление листа Excel-файла на листы в документе +PDF будет производиться по стандартным настройкам, указанным в файле +Excel (по умолчанию размер листа А4, с обычными полями). Действие не +имеет дополнительной настройки. + + + +Рис. 2... Пример настройки действия «Экспортирование в PDF» + +Название файла и его расположение будут совпадать с экспортируемым +файлом (расширение файла будет pdf). + +### Группа «Поиск» + +#### Действие «Найти данные» + +Ищет заданную строку в указанном листе и возвращает адрес ***первой*** +найденной ячейки. Флажок «Строгое сравнение» ставится в том случае, если +текст в ячейке должен полностью совпадать с текстом, введенном в поле +«Строка». + + + +Рис. 2... Пример настройки действия «Найти данные» + +#### Действие «Поиск строки по значениям колонок» + +Данное действие ищет и возвращает номера строк, в заданных колонках +которых записаны указанные значения. Флажок «Строгое сравнение» ставится +в том случае, если текст в ячейках должен полностью совпадать с текстом, +введенном в поле «Значения». Флажок «Массив» вернет массив всех +найденных строк, результирующая переменная будет являться массивом +чисел, если флажок не установлен, то в результирующую переменную будет +записан номер первой найденной строки или «Строка не найдена», если +таких строк нет. + + + +Рис. 2... Пример настройки действия «Поиск строки» + +В данном случае будет искаться одна строка, в колонке A которой +23.03.2020, а в колонке B – Уфа. + +#### Действие «Найти лист» + +Ищет лист, в котором есть ячейка с указанным в поле «Строка» значением и +возвращает его название в указанную переменную. Флажок «Строгое +сравнение» ставится в том случае, если текст в ячейке должен полностью +совпадать с текстом, введенном в поле «Строка». + + + +Рис. 2... Пример настройки действия «Найти лист» + +### Группа «Другие функции» + +#### Действие «Сместить ячейку» + +Смещает заданную ячейку на указанное количество строк и колонок, затем +возвращает результат в переменную (в данном примере результатом будет +ячейка D13). + + + +Рис. 2... Пример настройки действия «Сместить ячейку» + +#### Действие «Наложить фильтр» + +Данное действие добавляет фильтр в таблицу на указанном листе, ячейка из +которой указана в поле «Ячейка из диапазона значений». В поле столбец +записывается столбец, к которому необходимо применить фильтр. +Фильтруемый столбец должен быть один. Если необходимо применить +несколько фильтров к одной таблице, то необходимо добавить для каждого +фильтра свое действие в рамках одного Excel-модуля. Функция, по которой +должно происходить сравнение, выбирается из выпадающего списка в поле +«Функция», значение, с которым будет происходить сравнение при +фильтрации, указано в поле «Значение». + +Если необходимо просто включить фильтр в таблице, но без определенной +фильтрации, то нужно оставить поле «Функция» пустым. + + + +Рис. 2... Пример настройки действия «Наложить фильтр» + +#### Действие «Удалить фильтр» + +Действие удаляет все фильтры с листа. + + + +Рис. 2... Пример настройки действия «Удаление фильтра» + +#### Действие «Добавить сортировку» + +Действие добавляет сортировку к указанному диапазону по выбранному +столбцу. В зависимости от флажка определяется, сортируется столбец по +убыванию или по возрастанию. Столбец для сортировки должен быть один. + + + +Рис. 2.5.. Пример настройки действия «Добавление сортировки» + +#### Действие «Очистить диапазон» + +Действие удаляет все значения и форматирования ячеек в указанном +диапазоне. + + + +Рис. 2... Пример настройки действия «Очищение диапазона» + +#### Действие «Получить уникальные значения столбца» + +Аналогично действию «Удалить дубликаты» в Excel, данное действие +возвращает только уникальные значения указанных столбцов из диапазона. +Итоговая таблица может быть вставлена как в тот же лист, так и в другой +в лист, но в тот же диапазон. В зависимости от наличия дубликатов, +количество строк может быть уменьшено. + + + +Рис. 2... Пример настройки действия «Получение уникальных значений» + +#### Действие «Промежуточные итоги» + +Действие добавляет операцию Excel «Промежуточные итоги» на указанный +лист к указанному диапазону. + + + +Рис. 2... Пример настройки действия «Промежуточные итоги» + +Поле «Для колонок» соответствует полю в Excel «Добавить итоги по» +(выделено зеленым на рисунке 2.5.40), поле «При каждом изменении в +колонке» соответствует аналогичному полю в Excel, но должно быть +заполнено названием колонки Excel (A, B, … или 1, 2, …) (выделено +красным на рисунке 2.5.40, поле «Функция» заполняется операцией, которая +должна быть применена для выбранных колонок (выделено синим на рисунке +2.5.40). + + + +Рис. 2... Настройка действия «Промежуточные итоги» в Excel + +#### Действие «Сводная таблица» + +Добавляет сводную таблицу в указанные лист и диапазон (поле «Лист, +диапазон для вставки) на основе данных таблицы из поля «Лист, диапазон +источника». + + + +Рис. 2... Пример настройки действия «Сводная таблица» + +В поля «Поля в столбцах», «Поля в значениях» и «Поля в строках» +вписываются **названия колонок таблицы-источника** (а не Excel-таблицы), +как в программе Excel: + +«Поля в столбцах» соответствуют названиям столбцов таблицы, значения +которых должны быть расположены в столбцах сводной таблицы (выделено +зеленым на рисунке 2.5.42); + +«Поля в строках» соответствуют названиям столбцов таблицы, значения +которых должны быть расположены в строках сводной таблицы (выделено +синим на рисунке 2.5.42); + +«Поля в значениях» соответствуют названиям столбцов таблицы, значения +которых должны быть расположены в значениях сводной таблицы (выделено +красным на рисунке 2.5.42); + + + +Рис. 2... Настройка действия «Сводная таблица» в Excel + +#### Действие «Скопировать и вставить ячейку/диапазон» + +Данное действие позволяет скопировать данные и форматирование и вставить +их в тот же или в другой файл. С помощью него можно «растягивать» +формулы (см. «Действие «Формула»). + + + +Рис. 2... Пример настройки действия «Скопировать и вставить +ячейку/диапазон» + +#### Действие «Отобразить в виде процентов» + +Действие переводит выбранный диапазон в проценты. + + + +Рис. 2... Пример настройки действия «Отображение в виде процентов» + +#### Действие «Круговая диаграмма» + +Действие создает на указанном листе круговую диаграмму. Значения +диаграммы берутся из диапазона, указанного в поле «Ячейки», диапазон с +названиями значений указывается в поле «Диапазон названий». В поле +«Расположение» указываются границы расположения круговой диаграммы, а +именно левый верхний угол и правый нижний через запятую. + + + +Рис. 2... Пример настройки действия «Создание круговой диаграммы» + +**ПРИМЕР.** + +Построение круговой диаграммы для двух параметров, указанных в столбце +A, по соответствующим им параметрам, указанным в столбце B. Заполнение +действия для данного примера указано на рисунке 2.5.45. + +Пример исходных данных представлен на рисунке 2.5.46. + + + +Рис. 2... Пример исходных данных + +Результат построения круговой диаграммы представлен на рисунке 2.5.47. + + + +Рис. 2... Результат выполнения действия «Круговая диаграмма» + +#### Действие «График» + +Действие создает линейный график с одним или несколькими рядами. Ряд +необходимо указать в поле «Диапазон значений» в виде одномерного +диапазона (по одной колонке или по одной строке). Если рядов больше, чем +один, то последующие ряды нужно указать в таком же виде через «;», как +указано на рисунке 2.5.48. Диапазон аргументов должен быть один и +указывается аналогично ряду. «Ячейки с названиями рядов» заполняются +названиями ячеек через «;», их количество должно быть равно количеству +рядов, первая ячейка отображает название первого ряда и т.д. В ячейку +для вставки записывается ячейка, в которой будет располагаться левый +верхний угол графика. + + + +Рис. 2... Пример настройки действия «График» + +**ПРИМЕР.** + +В качестве примера возьмем курс доллара и евро за некоторый промежуток +времени. Так как валют две, то график должен состоять из двух рядов. В +качестве аргументов выступит столбец с указанием дат – A, в качестве +значений будет два столбца, первый – B, курс евро, и второй – C, курс +доллара. Заполнение действия представлено на рисунке 2.5.48. + +Пример исходных данных представлен на рисунке 2.5.49. + + + +Рис. 2... Пример настройки действия «График» + +Результат работы программы представлен на рисунке 2.5.50. + + + +Рис. 2... Результат выполнения действия «График» + +#### Действие «Проверка значений» + +Действие создает ограничение типов данных, которые можно ввести в +выбранные ячейки, путем выбора предложенных правил. В поле **«Лист»** +вводится лист, в ячейки которого добавляются ограничения, в поле +**«Ячейки»** вводится диапазон ячеек, на которых будет проводиться +проверка значений при вводе. В поле **«Тип данных»** выбирается один из +предложенных типов данных – целое или действительное число, список, +дата, длина текста, время. Поле **«Операция»** состоит из списка +доступных операций для составления правила проверки – равно, не равно, +больше, меньше, больше или равно, меньше или равно, между и вне. При +использовании типа данных «Список» заполнение поля «Операция» не +требуется, поэтому оно не доступно для редактирования. + +Последнее поле меняется в зависимости от типа данных – для типа «Список» +это будет «Источник данных», для всех остальных – «Критерии (ч/з ;)». +Поле **«Источник данных»** заполняется диапазоном значений (внутри +одного столбца или одной строки), в которой будет указан в списке (если +список статичный, то указывайте абсолютную ссылку). Поле **«Критерии +(ч/з ;)»** заполняется значениями, относительно которых будет +применяться правило проверки. + +Поле «Сообщение об ошибке» заполняется текстом ошибки, которая будет +отображаться, если в ячейку введено значение, не удовлетворяющее +заданному для неё правилу. Является необязательным полем. Если оставить +его пустым, то будет отображаться ошибка «Введенное значение неверно. +Набор значений, которые могут быть введены в ячейку, ограничен». + + + +Рис. 2... Пример настройки действия «Проверка значений» + +**ПРИМЕР.** + +Для создания списка, состоящего из некоторых заданных в какой-либо +колонке значений, действие заполняется так, как указано на рисунке +2.5.51. Пусть в ячейках А2:А6 будут следующие значения: + + + +Рис. 2... Пример исходных данных + +Тогда после работы робота при нажатии на любую ячейку из диапазона С2:С6 +будет появляться стрелочка для открытия выпадающего списка, в котором +будут содержаться выбранные значения: + + + +Рис. 2... Результат выполнения действия «Проверка значений» + +Второй пример - создание правила, позволяющего вводить в диапазон ячеек +A1:A5 только действительные числа, находящиеся в промежутке между 5 и +10. Пусть при введении неверного значения будет выдаваться ошибка: +«Введено неверное значение. Должно быть введено действительное число +между 5 и 10»: + + + +Рис. 2... Пример создания правила для проверки значений + +После работы робота при попытке ввести число, находящееся вне диапазона +от 5 до 10, появляется ошибка: + + + +Рис. 2... Результат выполнения действия «Проверка значений» + +#### Действие «Добавить изображение» + +Действие добавляет выбранное изображение в текущий Excel-файл. Если +изображение имеет прозрачный фон, то оно также сохранит прозрачность при +его добавлении в файл Excel. В поле «Ячейки» указывается левый верхний +угол расположения изображения. + + + +Рис. 2... Пример настройки действия «Добавить изображение» + +### Группа «Форматирование» + +#### Действие «Условное форматирование» + +Действие форматирует указанные ячейки на выбранном листе в зависимости +от того, удовлетворяют ли они указанному условию. В поле «Лист, +диапазон» через запятую вводятся лист и диапазон или одна ячейка из +этого листа, к которым будет применяться условное форматирование. В +полях «Цвет заливки» и «Цвет текста» указываются цвета, которыми будет +залита ячейка и окрашен текст в ней, если она будет удовлетворять +условию. Условие составляется из выбора функции и указания значения для +сравнения. Доступные функции – равно, не равно, больше, меньше, больно +или равно, меньше или равно, формула. Если выбрана функция «формула», то +в поле «Значение для сравнения» следует вписать формулу в формате Excel, +начиная со знака «=». + + + +Рис. 2... Пример настройки действия «Условное форматирование» + +**ПРИМЕР.** + +Окрасим все ячейки в столбцах B и C в зеленый цвет, если значение курса +меньше или равно 82. Действие заполняется как на рисунке 2.5.57. + +Исходные данные представлены на рисунке 2.5.58. + + + +Рис. 2... Пример исходных данных + +Результат работы программы представлен на рисунке 2.5.59. + + + +Рис. 2... Результат выполнения действия «Условное форматирование» + +#### Действие «Цвет ячейки/диапазона» + +Действие меняет цвет заливки текста и самого текста в указанном +диапазоне / ячейке. + + + +Рис. 2... Пример настройки действия «Цвет ячейки/диапазона» + +**ПРИМЕР.** + +На рисунке 2.5.60 представлено, как залить диапазон ячеек A17:C19 в +голубой цвет, а текст в этих ячейках окрасить в фиолетовый. + +Исходные данные представлены на рисунке 2.5.61: + + + +Рис. 2... Пример исходных данных + +Результат работы робота представлен на Рис. 2.5.62: + + + +Рис. 2... Результат выполнения действия «Цвет ячейки/диапазона» + +***Действие «Ширина столбца(-ов)»*** + +Действие изменяет ширину указанных столбцов. Столбцы можно перечислять +через запятую, писать их номера вместо названий (с 1-цы). Ширина +указывается в той же единице измерения, которая используется в Excel. + + + +Рис. 2... Пример настройки действия «Ширина столбца(-ов)» + +**ПРИМЕР.** + +На Рис. 2.5.63 представлено, как заполнить действие для установки ширины +столбцов B и C в 16 пунктов. В поле «Столбцы» можно было бы написать +«2,3», то есть второй и третий столбцы. + +Исходные данные представлены на рисунке 2.5.64: + + + +Рис. 2... Пример исходных данных + +Результат работы представлен на Рис. 2.5.65: + + + +Рис. 2... Результат выполнения действия «Ширина столбца(-ов)» + +#### Действие «Высота строки (-ок)» + +Действие изменяет высоту указанных строк. Используется та же единица +измерения, что и в Excel. + + + +Рис. 2... Пример настройки действия «Высота строки(-ок)» + +**ПРИМЕР.** + +Изменим высоту первой строки, сделав её равной 30 пунктам. Для этого +заполняем действие так, как указано на рисунке 2.5.66. + +Исходные данные представлены на рисунке 2.5.67: + + + +Рис. 2... Пример исходных данных + +Результат работы робота представлен на рисунке 2.5.68: + + + +Рис. 2... Результат выполнения действия «Высота строки(-ок)» + +#### Действие «Объединить ячейки» + +Действие объединяет указанные ячейки на выбранном листе. В модуле +предусмотрено три вида объединений: + +- простое объединение – то есть объединяются и колонки, и столбцы + диапазона; + +- объединение по строкам; + +- объединение по столбцам. + + + +Рис. 2... Пример настройки действия «Объединить ячейки» + +**ПРИМЕР.** + +На рисунке 2.5.69 представлено заполнение действия для объединения +колонок в диапазоне ячеек A2:C4. + +Исходные данные представлены на рисунке 2.5.70: + + + +Рис. 2... Пример исходных данных + +Результат работы представлен на рисунке 2.5.71: + + + +Рис. 2... Результат выполнения действия «Объединить ячейки» + +***Действие «Очистить форматирование»*** + +Действие очищает форматирование в указанном диапазоне выбранного листа. + + + +Рис. 2... Пример настройки действия «Очистить форматирование» + +**ПРИМЕР.** + +Очистим форматирование, которое содержится в диапазоне A17:C19. Для +этого заполним действие так, как указано на рисунке 2.5.72 и запустим +робота. + +Исходные данные представлены на рисунке 2.5.73: + + + +Рис. 2... Пример исходных данных + +Результат работы представлен на рисунке 2.5.74: + + + +Рис. 2... Результат выполнения действия «Очистить форматирование» + +***Действие «Формат ячейки»*** + +Действие меняет формат указанной ячейки на выбранный. По умолчанию, все +значения, заносимые в Excel студией, имеют строковый формат, поэтому, +для корректного пересчета формул или сортировки, необходимо привести +данные к нужному формату. + + + +Рис. 2... Пример настройки действия «Формат ячейки» + +#### Действие «Формат числа» + +Действие отображает число по определенным правилам числового формата +Excel. + + + +Рис. 2... Пример настройки действия «Формат числа» + +Примеры форматов можно посмотреть в программе Excel, кликнув правой +кнопкой левой кнопкой мыши по ячейке – «Формат ячейки» – вкладка «Число» +- (все форматы): + + + +Рис. 2... Просмотр примеров форматов числа в Excel + +Наиболее часто используемые форматы числа предлагаются в студии при +наведении на поле для ввода формата. + + + +Рис. 2... Просмотр примеров форматов числа в студии + +**ПРИМЕР.** + +Отформатируем число, содержащееся в ячейке A1 в денежный долларовый +формат. Для этого заполним действие так, как указано на рисунке 2.5.78. + +Исходные данные представлены на рисунке. 2.5.79: + + + +Рис. 2... Пример исходных данных + +Результат работы представлен на рисунке ниже: + + + +Рис. 2... Результат выполнения действия «Формат числа» + +#### Действие «Выравнивание» + +Действие применяет заданное выравнивание в указанных ячейках. В поле +«Общее положение» предлагается выбрать одно из двух – по вертикали или +по горизонтали применять выравнивание, выбранное в поле «Выравнивание +содержимого», которое, в свою очередь, предлагает выбрать выравнивание +содержимого по левому/правому краю, либо по верхнему/нижнему краю, либо +по центру. + + + +Рис. 2... Пример настройки действия «Выравнивание» + +**ПРИМЕР.** + +В заполненном на рисунке 2.5.81 действии настраивается выравнивание +ячейки А1 по центру относительно вертикали. + +Исходное положение текста в ячейке представлено на рисунке 2.5.82: + + + +Рис. 2... Пример исходных данных + +Результат работы представлен на рисунке 2.5.83: + + + +Рис. 2... Результат выполнения действия «Выравнивание» + +#### Действие «Перенос текста» + +Действие добавляет в указанный диапазон надстройку ячеек «Перенос +текста», функция которой – отображение текста ячейки в несколько строк, +если он не помещается в одну. + + + +Рис. 2... Пример настройки действия «Перенос текста» + +#### Действие «Шрифт» + +Действие меняет шрифт, стиль или размер выбранных ячеек на указанном +листе. Модуль предоставляет выбор всех стандартных шрифтов, доступных в +пакете Microsoft Office. + + + +Рис. 2... Пример настройки действия «Изменение шрифта» + +**ПРИМЕР.** + +Изменим шрифт текста, находящегося в ячейке B1 так, как указано в +действии на рисунке 2.5.85 – сам шрифт изменим на Batang, зададим стиль +текста – полужирный курсив, а размер текста 16. + +Исходное форматирование текста представлен на рисунке 2.5.86: + + + +Рис. 2... Пример исходных данных + +Результат работы представлен на рисунке 2.5.87: + + + +Рис. 2... Результат выполнения действия «Шрифт» + +#### Действие «Границы» + +Действие добавляет или изменяет границы выбранных ячеек на указанном +листе. Предполагает настройку расположения границ – внешние, внутренние, +только правая и др., цвет границ и их стиль – толстая, тонкая, штриховая +линия и др. + + + +Рис. 2... Пример настройки действия «Границы» + +**ПРИМЕР.** + +Добавим штрихпунктирную внешнюю границу для блока текста, находящегося в +диапазоне A2:A6. Для этого необходимо заполнить действие так, как +указано на рисунке 2.5.88. + +Исходный вид блока текста представлен на рисунке 2.5.89: + + + +Рис. 2... Пример исходных данных + +Результат работы представлен на рисунке 2.5.90: + + + +Рис. 2... Результат выполнения действия «Границы» + +## Модуль «Закрыть Excel-файл» + +Excel-модуль работает с файлами следующим образом – как только он +начинает работу с некоторым файлом, то он открывает его (в фоновом, +незаметном для пользователя, режиме), и держит открытым до конца работы +робота. Это было сделано для ускорения работы модуля Excel – если +модулей, использующих один и тот же файл, к примеру, несколько, пришлось +бы несколько раз открывать и сохранять файл столько раз, сколько он +используется что отразилось бы на быстродействии программы. В связи с +этим, файл открывается при первом его использовании в модуле Excel и +сохраняется только один раз – в самом конце. Но! Так как файл является +открытым, с самим файлом нельзя ничего делать – переносить, +архивировать, удалять за ненадобностью (например, провели расчеты в +новом файле, взяли данные и затем его удалили), так как он занят. Для +таких задач существует модуль «Закрыть Excel-файл» - он закрывает и +сохраняет заданные ему файлы. Если эти файлы впоследствии снова будут +использоваться – они опять откроются и, в следующий раз, будут закрыты +либо этим же модулем, либо в конце работы робота. + +Интерфейс модуля состоит из одного поля и списка путей к файлам, которые +необходимо закрыть. + + + +Рис. 2... Окно «Закрыть Excel-файл» + +**Поле «Путь к файлу»** заполняется путем до файла, который необходимо +закрыть. Он может содержаться в переменной, или можно выбрать его +вручную, нажав на кнопку с изображением папки, находящуюся в поле для +ввода. + +По кнопке «Добавить» указанный в поле «Путь к файлу» путь будет занесен +в «Список файлов». + +По кнопке «Удалить» можно удалить выбранный путь из «Списка файлов». + +# Модуль «Word» + +## Основные моменты модуля + +Модуль Word обеспечивает работу с документами Microsoft Word пакета +Microsoft Office. С помощью модуля можно создавать и редактировать +документы с популярными текстовыми расширениями, такими как .doc, .docx, +.html. + +### Интерфейс окна + +Окно модуля состоит из трех основных частей, первая – часть, содержащая +в себе поля для создания команд и кнопок управления ими, вторая – +таблица «Список команд», которая будет содержать все добавленные +действия для работы с файлом, и третья – окно с предварительным +просмотром загруженного файла. + + + +Рис. 3... Интерфейс окна + +Окно предварительного просмотра позволяет просмотреть весь загруженный +документ в том же виде, в котором он виден в самом Microsoft Word. + +Раздел настройки модуля состоит из нескольких полей, доступность которых +варьируется от необходимых для работы действий. Три первых поля являются +основными и доступными всегда, причем обязательными являются только два +из них: + +- «Путь к файлу» - поле с кнопкой, открывающей диалог выбора файла. + Данное поле предназначено для выбора существующего файла, с которым + предстоит далее работать, либо для введения в него пути, по которому + необходимо будет создать новый файл. Обязательное поле; + +- «Действие» - выпадающий список, состоящий из действий, которые можно + применить к загруженному файлу или создать новый с указанным путем в + поле «Путь к файлу». Обязательное поле; + + + +Рис. 3... Перечень доступных действий модуля + +- «Описание» - поле, необходимое для удобной навигации по действиям, + заполняется комментарием разработчика о создаваемом действии. + Необязательное поле. + +Все возможные действия будут описаны в следующей главе. + +Для добавления действия в таблицу «Список команд» необходимо +воспользоваться кнопкой «Добавить» под полями настройки действия. + + + +Рис. 3... Расположение кнопки «Добавить» + +После нажатия на кнопку созданное действие добавится в «Список команд». +Для редактирования существующей команды или её удаления, необходимо +выбрать строку с командой в таблице команд и нажать «Удалить» для её +удаления, или отредактировать необходимые поля действия и затем нажать +«Редактировать». + +Для того, чтобы поменять существующие действия местами, необходимо +выбрать одно действие и нажать на необходимые кнопки «Поднять» или +«Опустить», которые расположены в правом углу над таблицей с командами. + + + +Рис. 3... Кнопки «Поднять/Опустить» и выбор строки в таблице + +## Действия модуля + +#### Создать файл + +Данное действие создает файл с указанным путем, именем и расширением. +Для настройки действия необходимо заполнить поле «Путь к файлу» строкой +типа «*Путь до файла*/*Название файла*.*Требуемое расширение*», +например, «C:/Reports/Documents/Test.docx». + + + +Рис. 3... Пример заполнения действия «Создать файл» + +#### Получить текст + +Действие «Получить текст» позволяет считать весь текст из загруженного +файла в переменную. Для настройки действия появляется еще одно поле +помимо стандартных трёх – «Переменная», в которую записывается название +переменной (с символов «v.»), в которую будет записан считанный текст. + + + +Рис. 3... Пример настройки действия «Получить текст» + +#### Записать текст + +С помощью действия можно записать имеющийся текст, например, считанный +из другого текстового файла, в текущий загруженный файл. Для настройки +обязательно заполнение поля «Значение», куда вводится либо переменная (с +символов «v.»), содержащая текст, либо сам текст. Обратите внимание, что +текст, введенный данным действием, полностью затрет существующий текст в +файле. + + + +Рис. 3... Пример настройки действия «Записать текст» + +#### Добавить текст + +Данное действие позволяет добавлять текст к существующему с применением +необходимого форматирования. Для редактирования открываются все поля +модуля. Далее будет подробно описано каждое поле, отличное от основных +трёх. + +«После символа №» - данное поле ожидает ввод целого числа, +обозначающего, после какого по счету символа необходимо вставить текст +(с учетом пробелом и символов переноса строки или разрыва страницы). + + + +Рис. 3... Пример настройки действия «Добавить текст» + +«Размер текста» - аналогичен полю «Размер шрифта» в Microsoft Word – +устанавливает размер добавляемого текста. Ожидается ввод целого или +десятичного числа. + +«Шрифт» - выпадающий список, содержащий в себе набор стандартных шрифтов +пакета Micrisift Office – устанавливает шрифт добавляемого текста. + +«Цвет текста» и «Цвет фона» – поля с иконкой палетки сбоку, по нажатию +на которые открывается диалог выбора цвета – устанавливают цвет +добавляемого текста и его фона соответственно. Вводится в формате цвета +HEX – шестнадцатеричное представление RGB. + +«Текст» - поле, в которое указывается добавляемый текст или переменная, +которая его содержит. + +#### Добавить перенос строки + +Данное действие добавляет символ переноса строки в файл. Не требует +заполнения дополнительных полей. + + + +Рис. 3... Пример настройки действия добавление перехода на новую строку + +#### Удалить текст + +С помощью данного действия можно удалить текст, зная количество символов +в нем и его расположение. Для настройки необходимо ввести в поле «После +символа №, количество» два целых числа через запятую, где первое число – +номер символа, после которого необходимо удалить текст, а второе – +количество символов в удаляемом тексте. + + + +Рис. 3... Пример настройки действия «Удалить текст» + +#### Экспорт + +С помощью данного действия можно менять расширение загруженного файла. +Для настройки действия нужно выбрать из выпадающего списка «Тип» тип +файла, в который нужно экспортировать, и указать путь с названием и +расширением будущего файла в поле «Путь выходного файла». + + + +Рис. 3... Пример настройки действия «Экспорт» + +# МОДУЛЬ «КЛИКЕР» И МОДУЛИ, РАБОТАЮЩИЕ С ЭКРАНОМ + +## Модуль «Кликер» + +Модуль «Кликер» предназначен для записи последовательности действий, +выполняемых пользователем, а именно кликов по определенным местам экрана +и нажатий кнопок на клавиатуре или мыши. С помощью этого модуля можно +производить интеграции между самыми разными программами, так как он +точно имитирует действия пользователя, то есть, если Вы сможете это +сделать, то это сможет сделать и «Кликер». + +Использование роботов-кликеров, которые ищут координаты или изображения, +рекомендуется на компьютерах с таким же разрешением, как и тот, на +котором был написан данный робот. + +### Создание макроса + +При открытии модуля «Кликер» появится диалоговое окно «Запись действий +макроса», состоящее из трех элементов – кнопки «Начать запись», области, +в которой будут отображены записанные действия, и кнопки «Сохранить». + + + +Рис. 4... Запись действий макроса + +По нажатию кнопки «Начать запись» программа переходит в режим +***ожидания нажатия кнопки «TAB»**,* по которой открывается окно +создания действия (команды). + + + +Рис. 4... Создание команды + +В открывшемся окне происходит настройка действия (описание всех +возможных действий будет дано ниже). По завершению создания команды и +нажатию кнопки сохранить, новое действие будет добавлено в макрос. + + + +Рис. 4... Добавление команды + +Изменить положение действия в списке команд можно с помощью кнопок с +изображением стрелок, расположенных в правой части блока. + + + +Рис. 4... Изменение порядка команды + +Кнопка с изображением крестика, расположенная между стрелками, +предназначена для удаления действия из списка команд. + +Для сохранения макроса необходимо нажать на кнопку «Сохранить». + +### Создание команды + +Окно создания команды состоит из статичных и изменяющихся полей. +Статичными являются такие поля, как «Действие», «Пауза» и «Примечание». + +### Статичные поля + +***Действие*** + +Поле «Действие» состоит из перечня доступных действий для записи макроса +– нажатие кнопок мыши и клавиатуры, наиболее часто встречающиеся +сочетания кнопок (скопировать, вставить). Далее будут приведены все +действия, доступные в модуле. + +***Пауза*** + +Поле «Пауза» предназначено для создания эффекта ожидания после +выполняемой команды. Значение указывается в миллисекундах. + +Например, после нажатия на иконку браузера роботу следует подождать +несколько секунд, пока браузер запустится и будет готов к работе – в +данном примере в команде открытия браузера (кликнуть мышкой по его +иконке) в поле «Пауза» следует написать некоторое значение, например, +5000, т.е. 5 секунд. + +***Примечание*** + +Поле «Примечание» позволяет писать комментарии, чтобы не запутаться в +командах. + +### Поля, появляющиеся только при определенных действиях + +***Переключатели «Изображение», «Координаты» и «Селекторы»*** + +При создании действий, связанных с кликом или наведением мыши, вам +предлагается выбрать, куда кликать – по определенным координатам или по +изображению. Если программа, с которой вы работаете, статичная и не +меняет расположение своих кнопок, то можно воспользоваться кликом по +координатам. Тогда возникает вопрос, как рассчитать координаты? Все +очень просто – при нажатии кнопки «TAB» нужно располагать мышь ровно в +том месте, куда следует нажать. В диалоговом окне создания команды +координаты уже будут заполнены. + +Если программа может менять расположение её элементов, то настоятельно +рекомендуем использовать клик по изображению. Для этого нажмите на +переключатель «**Изображение**». + + + +Рис. 4... Создание команды + +При изменении переключателя изменится нижняя часть окна – появятся +кнопки «Выбрать изображение», «Выделить изображение» и поле для ввода +«Процент совпадения». + +Изображение, по которому потребуется кликнуть для выполнения действия, +можно настроить двумя способами: + +1\) загрузить имеющееся изображение, нажав на кнопку «Выбрать +изображение» + +2\) выбрать фрагмент снимка окна, в котором будет воспроизводиться +действие, с помощью кнопки «Выделить изображение». После нажатия на +кнопку студия сделает снимок экрана и предложит вам выбрать фрагмент +получившегося изображения. + +При использовании клика по изображению, ***обратите внимание*** на то, +что, если на экране таких изображений будет несколько, действие будет +применено к ***первому*** найденному! + +Поле «Процент совпадения» необходимо для случаев, когда искомое +изображение может немного отличаться от того, что может быть в +реальности (например, наличие выделения вокруг кнопки, если она +выбиралась ранее, и отсутствие такого выделения). В подобных случаях +уменьшайте процент совпадения до тех пор, пока изображение не будет +находиться и в том, и в другом случае. Однако если процент совпадения +уменьшить слишком сильно, модуль может найти то, что не планировали +искать. + + + +Рис. 4... Пример отличия искомого изображения от действительного + +Поля «Количество попыток» и «Пауза между ошибками» предназначены для +случаев, когда программа не смогла найти заданное ей изображение. Вы +можете указать, сколько раз следует пытаться искать требуемое +изображение и сколько секунд ждать между попытками. Например, после +запуска браузера нужно нажать на кнопку с иконкой «Плюсик» – создание +новой вкладки. Если браузер будет загружаться слишком долго, больше 5-ти +секунд (это время указано в паузе команды открытия браузера), тогда +программа начнёт искать «плюсик», которого еще нет. Затем программа +подождет указанное ей количество секунд между попытками и попробует +снова. Как только изображение будет найдено, программа подождет то +количество секунд, которое указано в поле «Пауза» данной команды, и +перейдет к следующей. + +Последний вариант поиска места для наведения мыши – «**Селекторы**». +Этот вариант считается самым надежным, но поддерживается узким кругом +программ. Селекторы Windows позволяют находить путь к элементу на экране +используя не просто координаты или изображение, а путь относительно +родительского компонента экрана с использованием специальной разметки. +Они работают с системой компьютера, некоторыми desktop-приложениями. +Использование подобно работе с координатами – необходимо навестить на +искомый элемент и вызвать окно настройки действия по кнопке «TAB». При +переключении настроек на «Селекторы», путь до элемента уже будет введен. + + + +Рис. 4... Рис. 4... Создание команды через селекторы Windows + +***Прокрутка мыши*** + +Данное поле появляется при действии «Прокрутка мыши». В него вводится +значение в пикселях, на сколько необходимо прокрутить колесико мыши. +Если прокрутка вверх, то значение должно быть положительным, если вниз, +то отрицательным. + +Во всех полях окна создания команды ***возможно использование +переменных.*** + +### Описание действий, доступных в модуле + +#### Действие «Кликнуть мышкой» + +Основное действие модуля – нажатие левой кнопкой мыши по указанным +координатам или изображению. + +#### Действие «Кликнуть мышкой дважды» + +Двойной клик по указанным координатам или изображению, например, для +открытия приложения с рабочего стола. + +#### Действие «Кликнуть правой кнопкой мыши» + +Клик правой кнопкой мыши, например, по приложению на рабочем столе, +чтобы открыть его контекстное меню. + +#### Действие «Кликнуть колесиком мыши» + +В некоторых программах есть возможность использовать клик колесика мыши +для исполнения некоторых действий, например, закрыть вкладку в браузере. + +#### Действие «Прокрутка мыши» + +Прокрутка колесом мыши вниз или вверх по странице. Здесь координаты +играют роль того, где будет находиться курсор при прокрутке колеса, так +как ползунков на экране может быть несколько. Для прокрутки экрана вниз +в поле «Прокрутка мыши» должно быть введено отрицательное значение +(-150), вверх - положительное (150). + +Число прокрутки измеряется в количестве прокруток колесом мыши. + +**ПРИМЕР.** + +Для прокрутки вниз конкретного ползунка необходимо навести на него +курсор, нажать клавишу «TAB» на клавиатуре, выбрать действие «прокрутка +мыши» и заполнить поле «Прокрутка мыши», как показано на рисунке 4.9.9: + + + +Рис. 4... Пример настройки команды + +#### Действие «Ввести текст» + +Данное действие вводит текст, который записан в поле «Текст». Поле, куда +вводится текст, должно быть выделено (должен быть фокус, стоять +каретка). + +В некоторых программах необходим специфичный ввод текста – в конкретной +кодировке. В подобных случаях следует выбрать кодировку из предложенных +в выпадающем списке «Использовать кодировку», или указать свою. Текст +может лежать в переменной и быть скопированным из какой-либо программы, +использующей конкретную кодировку. В таком случае, при вставке +скопированного текста в другую программу, необходимо сначала считать его +в кодировке исходной программы. Кодировка исходной программы вводится +или выбирается в поле «Начальная кодировка». Заполнение этих полей +**необязательно**. + +Флажок «Использовать WinInput» позволяет включить режим более +корректного и быстрого ввода текста, но он может не поддерживаться +некоторыми программами. Его использование **необязательно**. + +Пример заполнения действия: + + + +Рис. 4... Пример заполнения + +#### Действие «Нажать кнопку» + +Имитирует нажатие клавиши клавиатуры. Необходимую клавишу следует +выбрать в выпадающем списке «Кнопка». В списке предложены все возможные +клавиши, которые могут присутствовать как на простых, так и на +расширенных клавиатурах (изменение громкости звука, запуск/остановка +музыки и другие нестандартные кнопки). + + + +Рис.4... Действие «Нажать кнопку» + +#### Действие «Нажать две кнопки» + +Имитирует нажатие сочетания двух клавиш клавиатуры, например CTRL+A – +выделение всего текста в поле. Необходимые кнопки выбираются в двух +выпадающих списках «Кнопка». Список кнопок тот же, что и в действии +«Нажать кнопку». + + + +Рис. 4... Действие «Нажать две кнопку» + +#### Действие «Скопировать» + +Имитирует нажатие сочетания клавиш клавиатуры CTRL+C. Копирует +выделенное заранее значение в буфер обмена и записывает его, при +необходимости, в переменную, указанную в поле «Записать в». Данное поле +**не обязательно** к заполнению. Ввод переменной начинается с символов +«v.». + + + +Рис. 4... Действие «Скопировать» + +#### Действие «Вставить» + +Имитирует нажатие сочетания клавиш клавиатуры CTRL+V. Вставляет в +выбранное поле значение из буфера обмена. + +#### Действие «Пока не пропадет изображение» + +Ожидает отсутствия заданного изображения на экране в течение времени, +дающегося на обнаружение ошибки (значение поля «Кол-во попыток» +умноженное на значение поля «Пауза между ошибками»). + +## Модуль «Поиск изображения» + +Модуль «Поиск изображения», в основном, используется в связке с модулем +«Кликер». Его задача – определить, существует ли на текущем экране +заданное изображение, и если да, то вернуть координаты его центра. + +### Интерфейс модуля + +Окно модуля выглядит следующим образом: + + + +Рис. 4... Окно модуля + +Кнопки «Выбрать изображение» и «Выделить изображение» позволяют выбрать +изображение для поиска. + +**Поле «Координата x».** В поле вводится ***переменная*** (начиная с +символов «v.»), в которую будет записана координата x искомого +изображения, если оно найдется. + +**Поле «Координата y».** Аналогично полю «Координата x», в данном поле +указывается переменная, в которую будет записана координата y. + +**Поле «Результат».** В поле вводится название переменной, в которой +будет итоговый результат поиска изображения (после использования всех +попыток его найти». Результирующее значение будет представлено в виде +строки: «true» - найдено, «false» - не найдено. + +Поля «Кол-во попыток», «Пауза» и «Процент совпадения» аналогичны полям +модуля «Кликер». + +**Поле «Кол-во попыток».** В поле указывается количество попыток поиска +изображения. + +**Поле «Пауза»** предназначено для указания паузы между попытками поиска +в миллисекундах. + +**Поле «Процент совпадения»** - насколько сильно совпадает изображение, +которое будет искаться, с фрагментом изображения на текущем экране. +Вводится число от 0 до 100, чем больше, тем больше должно быть сходства +между изображениями. + +## Модуль «Поиск изображений» + +Модуль «Поиск изображений» аналогичен модулю «Поиск изображения» с одним +лишь отличием в том, что этот модуль возвращает список всех найденных +изображений, а не одного. + +### Интерфейс модуля + +Интерфейс этого модуля очень похож на интерфейс модуля «Поиск +изображения», но в нем вместо полей «Координата X», «Координата Y» и +«Результат» только одно поле – «Переменная», а также появилось поле +«Минимальная дистанция». + + + +Рис. 4... Окно модуля + +**В поле «Переменная»** вводится название переменной с символов «v.», в +которую запишется результат поиска. + +**Поле «Кол-во попыток»** заполняется числом, указывающим, сколько раз +пробовать искать изображения, если с первого раза ни одного найти не +удалось. + +**Поле «Пауза»** предназначено для указания паузы между попытками поиска +в миллисекундах. + +**В поле «Процент совпадения»** вводится значение от 0 до 100, +указывающее, насколько сильно совпадают изображение, которое будет +искаться, с фрагментом изображения на текущем экране. Чем больше число, +тем сильнее они должны совпадать. + +**Поле «Минимальная дистанция»** заполняется числом, указывающим, какое +минимальное количество пикселей должно быть между двумя одинаковыми +изображениями. В некоторых задачах может быть потребоваться отсекать +изображения, которые расположены достаточно близко друг к другу и +получать только первое из этих изображений (начиная с верхнего левого +угла). ***Обратите внимание***, если это расстояние поставить совсем +маленьким (не менее 5 пикселей) или равным 0, то одно изображение может +быть найдено несколько раз! + +### Выходные данные + +В указанную переменную будет записан список объектов, количество которых +будет равно количеству найденных изображений на экране. Каждый объект +соответствует найденному изображению. Для обращения к конкретному +изображению списка необходимо указывать его номер (нумерация с 0) в +квадратных скобках после названия переменной, например +v.listImages\[0\]. + +Каждый объект содержит три поля: «x», «y» и «similarity». В поле «x» +содержится координата x выбранного изображения, в поле «y» - координата +y, а в поле «similarity» - процент совпадения найденного изображения с +искомым. + +**ПРИМЕР.** + +Пусть мы хотим с помощью робота найти количество одинаковых изображений, +например, непрочитанных писем с Яндекс-почты, которые выделены небольшим +синим кружочком около письма: + + + +Рис. 4... Пример + +Для этого создадим действие «Поиск изображений» и выберем в нем в +качестве искомого изображения эту синенькую точку: + + + +Рис. 4... Настройка действия + +Для нажатия на каждую такую точку и прочтения сообщений, необходимо +добавить цикл по количеству изображений, и в каждому шаге цикла нажимать +на координаты v.listImages\[v.i\].x и v.listImages\[v.i\].y, где v.i – +текущий шаг цикла. + +Для определения количества элементов массива можно воспользоваться +методом языка JavaScript – v.listImages.length. + +## Модуль «Создать скриншот» + +Данный модуль позволяет делать скриншот экрана во время работы робота, +что удобно для проведения отладки кликерных роботов (роботов, +преимущественно работающих на модуле Кликер). + +Окно модуля состоит из двух полей: + +Поле «Сохранить в папку» должно содержать путь до папки, в которую будет +сохранен скриншот экрана. По кнопке папки в поле вызывается диалог +выбора директории; + +В поле «Имя файла» должно быть название скриншота. Если расширение не +будет указано, то изображение будет сохранено в формате png. + + + +Рис. 4... Окно модуля «Создать скриншот» + +## Модуль «Получить активное окно» + +Данный модуль получает название активного окна и записывает его в +переменную. Он помогает определить, какая программа является активной на +данной момент, что упрощает работу с модулем «Кликер». Модуль позволяет +исключить множество ошибок при работе кликерных роботов. + +Модуль состоит из одного настроечного поля – Переменная, в которое +необходимо ввести название переменной. В результате работы модуль +записывает в указанную переменную название активного окна ***строчными +буквами***. + + + +Рис. 4... Пример заполнения модуля «Получить активное окно» + +Пример переменной в результате заполнения модулем: + + + +Рис. 4... Результат работы модуля + +# МОДУЛЬ «РАБОТА С ФАЙЛАМИ» + +## Основные моменты модуля + +Модуль «Работа с файлами» предназначен для изменения расположения +файлов, их копирования, архивирования, создания папки и переноса файлов +в неё, в общем, для манипуляции с файлами и директориями. + +### Интерфейс модуля + +Окно модуля объединяет три группы элементов. + +Первая группа элементов – это набор полей и кнопок для создания команды. +Вторая – непосредственно список команд. И третья – это область +предварительного просмотра текстовых файлов. + + + +Рис. 5... Окно модуля + +Набор доступных полей для заполнения меняется в зависимости от +выбранного действия, подробное описание всех полей будет дано в Глава +15. + +### Функциональность модуля + +#### Создание команды + +Команда создается следующим образом – выбирается необходимое действие, +заполняются остальные поля – нажимается кнопка «Добавить», по которой +команда добавляется в «Список команд». + +#### Редактирование команды + +Для того чтобы отредактировать команду, выделите её в списке команд +щелчком левой кнопкой мыши, после чего все поля в левой верхней части +окна «Работа с файлами» заполнятся в соответствии с выбранной командой. +Измените те поля, которые требуется отредактировать, и, убедившись, что +в списке команд все еще выбрано нужное действие, нажмите на кнопку +«Редактировать». + +#### Удаление команды + +Для удаления команды необходимо выбрать её в списке команд и нажать на +кнопку «Удалить». + +#### Отключение/включение команды + +Созданные команды можно отключать и обратно включать. Отключенные +команды не будут выполняться. Сделать это можно, нажав на +соответствующую отключаемой команде строку правой кнопкой мыши и выбрав +«Отключить/включить». + + + +Рис. 5... Контекстное меню команды + +#### Выбор файла/папки + +Кнопка + +в заполняемых полях открывает стандартный диалог выбора файла или папки, +в зависимости от выбранного действия. + +## Описание действий, доступных в модуле + +Модуль содержит 19 действий, позволяющих работать с папками и файлами, +каждое из которых состоит из своего набора полей для настройки. Ниже +описаны все действия модуля. + +Модуль имеет возможность работы с сетевыми папками, для этого +предусмотрены поля «Домен», «Пользователь» и «Пароль». Остальные поля +заполняются в соответствии с выбранным действием. + +### Перечень и описание действий + +#### Действие «Сохранить в файл» + +Действие перезаписывает существующий текстовый файл, записывая в него +строку, указанную в поле «Значение». + + + +Рис. 5... Пример настройки действия «Сохранить в файл» + +#### Действие «Считать файл» + +Действие считывает весь текст из выбранного файла и записывает его в +указанную переменную. + + + +Рис. 5... Пример настройки действия «Считать файл» + +Поле «Начальная кодировка» отвечает за выбор кодировки, которая будет +использоваться при чтении из файла. + +#### Действие «Получить список файлов в папке» + +Действие создает переменную-список, в которой лежат пути до каждого +файла в папке. + + + +Рис. 5... Пример настройки действия «Получение списка файлов» + +**ПРИМЕР.** + +Пусть имеется папка «Робот», в которой находится 3 Excel-файла. Тогда в +модуле Excel мы можем работать с каждым из файлов, например, чтобы +работать с первым, нужно записывать в поле «Имя файла» v.files\[0\]. + +Переменная после выполнения действия будет выглядеть как на рисунке +4.11.4: + + + +Рис. 5... Пример переменной, в которой содержится список файлов + +#### Действие «Добавить текст в файл» + +Действие добавляет текст к уже существующему в файле, не перетирая его +данных. + + + +Рис. 5... Пример настройки действия «Добавить текст в файл» + +#### Действие «Добавить переход на новую строку» + +Действие добавляет символ перехода на новую строку в текст файла. + + + +Рис. 5... Пример настройки действия «Добавить переход на новую строку» + +#### Действие «Переместить файл» + +Действие перемещает выбранный файл в указанную папку. В поле +«Переменная» можно, но не обязательно, ввести название переменной, в +которую будет возвращен новое расположение до файла (в ниже +представленном примере – +C:\\Users\\user\\Desktop\\Документы\\text.docx). + + + +Рис. 5... Пример настройки действия «Перемещение файла» + +#### Действие «Переименовать файл» + +Действие меняет имя выбранного файла на указанное в поле «Имя файла». + + + +Рис. 5... Пример настройки действия «Переименовать файл» + +#### Действие «Создать файл txt» + +Действие создает новый файл с расширением .txt. Если поле «Переменная» +будет заполнено, то в указанную в нем переменную будет возвращено +расположение созданного файла. + + + +Рис. 5... Пример настройки действия «Создать файл txt» + +#### Действие «Удалить файл» + +Действие удаляет выбранный файл. + + + +Рис. 5... Пример настройки действия «Удалить файл» + +#### Действие «Скопировать файл» + +Действие копирует выбранный файл в указанную директорию. + +В поле «Путь до конечного файла» необходимо ввести путь до папки, в +которую файл должен скопироваться, и его название с расширением так, как +будто файл уже есть. Новое название может отличаться от исходного. + +Если поле «Переменная» будет заполнено, то в указанную в нем переменную +будет возвращено расположение нового файла. + + + +Рис. 5... Пример настройки действия «Скопировать файл» + +#### Действие «Проверить существование файла» + +Действие проверяет существование указанного файла и записывает результат +в переменную. + +«true» - если существует, и иначе «false». + + + +Рис. 5... Пример настройки действия «Проверить существование файла» + +#### Действие «Переместить папку» + +Действие перемещает папку, указанную поле «Путь к папке», в директорию, +указанную в поле «Путь до конечной папки». Если поле «Переменная» будет +заполнено, то в указанную в нем переменную будет возвращено новое +расположение перемещаемой папки. + + + +Рис. 5... Пример настройки действия «Перемещение папки» + +#### Действие «Создать папку» + +Действие создает папку с указанным названием в выбранной директории. +Если поле «Переменная» будет заполнено, то в указанную в нем переменную +будет возвращено расположение новой папки. + + + +Рис. 5... Пример настройки действия «Создание папки» + +#### Действие «Удалить папку» + +Действие удаляет выбранную папку. + + + +Рис. 5... Пример настройки действия «Удалить папку» + +#### Действие «Проверить существование папки» + +Действие проверяет существование указанной папки и записывает результат +в переменную. + +«true» - если существует, и иначе «false». + + + +Рис. 5... Пример настройки действия «Проверить существование папки» + +#### Действие «Получить список папок в папке» + +Действие создает переменную-список, в которой лежат пути до каждого +файла в папке. + + + +Рис. 5... Пример настройки действия «Проверить существование папки» + +#### Действие «Заархивировать папку» + +Действие создает ZIP-архив с указанным именем, добавляя в него +содержимое выбранной папки. Если поле «Переменная» будет заполнено, то в +указанную в нем переменную будет возвращено расположение созданного +архива. + + + +Рис. 5... Пример настройки действия «Заархивировать папку» + +#### Действие «Распаковать архив» + +Действие распаковывает ZIP-архив в указанную папку. + + + +Рис. 5... Пример настройки действия «Распаковать архив» + +# МОДУЛИ-ОПЕРАТОРЫ: «ЦИКЛ», «УСЛОВИЕ», «WHILE», «TRY-CATCH», «BREAK», «RETURN», «SWITCH» + +## Модуль «Условие» + +Описываемые в этой части модули сами по себе ничего не делают, их +следует использовать вместе с любыми другими. У описываемых модулей +(кроме модуля «Break»), помимо привычного «Примечания», есть еще +несколько параметров, обязательных для заполнения, но нет отдельного +окна с настройками. + +Модуль «Условие» позволяет в зависимости от указанного условия выполнять +те или иные действия. Условием может быть любое выражение, которое +приводится к значению «True» или «False». + +### Интерфейс модуля + +Модуль состоит из полей «Примечание» и «Условие». Действия, которые +должны выполняться при значении условия «True», добавляются в раздел +«THEN», при значении «False» - в раздел «ELSE». Действия добавляются в +модуль перетаскиванием их из меню или другого места рабочей области. + + + +Рис. 6... Условный модуль + +**Поле «Примечание»** предназначено для внесения комментария от +разработчика робота. + +**Поле «Условие»** заполняется по правилам языка программирования JS. +Для пользователей, незнакомых с этим языком, предлагается помощь в виде +«Конструктора условий», доступная по кнопке справа от условия - +. + +### Конструктор условий + +Конструктор условий позволяет составлять условия в соответствии с +синтаксисом языка JS. + + + +Рис. 6... Конструктор условий + +#### Добавление + +Для того чтобы составить условие, необходимо заполнить оба операнда, +выбрать тип операндов (строки или числа), выбрать оператор между ними из +предложенного и нажать на кнопку «Добавить»: + + + + + +Рис. 6... Добавление условий + +Список операций для строк и для чисел отличается, поэтому сначала +выберите тип операндов, а лишь затем операцию. + +#### Связывание + +Несколько условий можно связать с помощью логического «И» либо +логического «ИЛИ». + +Делается это следующим образом – удерживая клавишу Shift, выбираются +несколько условий, которые должны быть соединены одним оператором, затем +нажимается кнопка с соответствующим логическим оператором: + + + +Рис. 6.16.4. Связывание условий + + + +Рис. 6... Результат связывания условий + +Символ «\|\|» означает логическое ИЛИ, символ «&&» - логическое И. + +#### Разъединение + +Условия, состоящие из нескольких простых условий, то есть те, которые +используют логическое И или ИЛИ, можно разъединить, нажав на +соответствующую кнопку. Разъединение происходит по логическим +операторам. + + + +Рис. 6.16.6. Разъединение условий + + + +Рис. 6... Результат разъединения условий + +#### Сохранение + +Для сохранения условия необходимо нажать на кнопку «Сохранить». +Получившиеся условие вставится в поле «Условие» условного модуля: + + + +Рис. 6.16.8. Сохранение условия + + + +Рис. 6... Отображение условия + +Законченный модуль может выглядеть следующим образом: + + + +Рис. 6... Заполненный модуль «Условие» + +#### Сворачивание + +Для уменьшения занимаемого места в рабочей области проекта, можно +свернуть каждый блок данного модуля по кнопке «Свернуть». + + + +Рис. 6... Свернутый блок ELSE + + + +Рис. 6... Свернутые THEN и ELSE + +## Модуль «Цикл» + +Модуль «Цикл» применяется для неоднократного (цикличного) выполнения +набора действий. Действия, добавленные в модуль, будут выполняться до +тех пор, пока не пройдёт указанное в настройках количество итераций. + +### Интерфейс модуля + +Модуль состоит из полей «Примечание», «Количество итераций» и +«Переменная». Действия, которые должны выполняться в цикле, добавляются +в блок, расположенный в нижней части модуля. Действия добавляются в +модуль перетаскиванием их из меню или другого места рабочей области. + +Модуль выглядит следующим образом: + + + +Рис. 6... Вид модуля + +**Поле «Примечание»**, как и во всех других модулях, служит для внесения +комментария от разработчика робота. + +Остальные поля присущи только этому модулю. + +**Поле «Количество итераций»** предназначено для ввода числа, +означающего, сколько раз необходимо выполнить действия, содержащиеся в +модуле. + +**Поле «Переменная»** - переменная, в которой будет храниться число – +текущий шаг цикла. Цикл начинается с единицы. + +Пример заполненного цикла представлен на рисунке 6.17.2. + + + +Рис. 6... Пример заполнения модуля + +По кнопке «Свернуть» можно свернуть действия цикла для более компактного +отображения команды. + + + +Рис. 6... Свернутый вид модуля + +## Модуль «Break» + +Для «аварийного» выхода из простого цикла используют модуль «Break». +Например, в цикле ведется поиск конкретного изображения, и если такое +изображение найдётся, следует нажать на него, считать какие-либо данные +и перейти к следующему действию, иначе – выйти из цикла и не проигрывать +следующее действие. Для такого сценария необходимо создать цикл, в +котором будет модуль «Условие», в одной из веток которого будет +находиться модуль «Break» (модуль «Break» представлен самым последним +модулем на примере): + + + +Рис. 6... Пример использования модуля «Break» + +Модуль «Break» не требует настройки, но может применяться только внутри +модуля «Цикл». + +## Модуль «Return» + +Бывают ситуации, когда при некотором условии необходимо завершить работу +робота, например, нужно обработать письмо, которое должно прийти на +почту, а оно не пришло. Для таких целей существует модуль «Return». + + + +Рис. 6... Внешний вид модуля + +Данный модуль заканчивает работу всего робота и не требует настройки. +Может использоваться в любом месте. + +**ПРИМЕР.** + +На рисунке ниже представлен пример использования модуля: пусть с помощью +модуля «Считать письма» считываются все письма за определенный +промежуток времени. Все темы письма и их содержания необходимо внести в +Excel-файл. Но что, если этих писем нет? Для этого проверяем наличие +писем, и, если их нет, робот прекратит работу, иначе – продолжит. + + + +Рис. 6... Пример использования модуля «Return» + +Благодаря этому модулю можно писать робота в общей рабочей области, а не +в ветках модуля «Условие». Так робот выглядит более аккуратным и +наглядным. + +## Модуль «Continue» + +Модуль «Continue» позволяет перейти к следующей итерации цикла без +использования модуля «Условие» или других методов ветвления алгоритма. +Модуль не требует дополнительной настройки. Единственное требование – +модуль должен находиться внутри модуля «Цикл» или внутри любого модуля, +который в свою очередь находится внутри цикла (вложенность модулей не +ограничена). + + + +Рисунок 6... Модуль «Continue» + +### ПРИМЕР + +Допустим, что необходимо провести действия с файлом, но лишь в том +случае, если он присутствует в определенной папке. Для этого достаточно +в начале цикла проверить наличие файла и, если его нет, то перейти к +следующей итерации цикла. + + + +Рисунок 6... Пример работы с «Continue» + +Отличие от работы с условием лишь в лучшей читабельности алгоритма (то +есть, без модуля Continue пришлось бы все действия над файлом делать +внутри ветки ELSE модуля «Условие»). + +## Модуль «While» + +Модуль «While» (цикл с условием) выполняет добавленные в него действия +до тех пор, пока указанное условие возвращает значение «True». + +### Интерфейс модуля + +В окне модуля расположены поля «Примечание» и «Условие». В блоке, +расположенном в нижней части модуля, следует располагать действия, +которые требуется выполнять в цикле. + + + +Рис. 6... Вид модуля + +**Поле «Условие».** В поле вводится условие, как и в модуле «Условие», +которое необходимо писать в соответствии с синтаксисом языка JS, поэтому +здесь присутствует кнопка, открывающая «Конструктор условий» (см. Глава +16). + +Добавление действий в модуль происходит с помощью перетаскивания из меню +модулей или из рабочей области проекта. + + + +Рис. 6... Добавление действий + +При нажатии на кнопку «Свернуть» действия, описанные в цикле, +сворачиваются для более компактного отображения команды. + + + +Рис. 6... Свернутый вид +модуля + +## Модуль «Try/Catch» + +Данный модуль позволяет обрабатывать ошибки, которые могут возникнуть в +процессе выполнения некоторого блока модулей. + + + +Рис. 6... Внешний вид модуля Try/Catch + +Модуль состоит из двух блоков – TRY и CATCH. Блок TRY содержит набор +модулей или целого робота, который должен выполниться, блок CATCH +содержит набор модулей на случай, если произойдет ошибка исполнения +модулей блока TRY. + +Модуль имеет два текстовых поля, первое – поле «Примечание», в которое +можно ввести описание модуля для более удобной навигации по роботу, а +второе поле предназначено для сохранения возникшей в модуле TRY ошибки. +Так как есть возможность узнать, какая ошибка возникла, каждую возможную +ошибку можно корректно обработать в блоке CATCH. + +**ПРИМЕР.** + +Пусть стоит задача – скачать письмо с почты с определенным названием +вложения в заранее заданную папку и обработать это вложение модулем +Excel, причем в модуле Excel путь до файла будет всегда одинаковым. +Например, вложение называется «Отчет за день», путь до папки +«C:\\Reports», тогда в Excel будет всегда открываться файл +«C:\\Reports\\Отчет за день.xlsx», а вложения с почты всегда будут +скачиваться в вышеназванную папку. + +Если письмо с необходимым вложением еще не пришло, то модуль Excel +выдаст ошибку «Не удалось открыть документ C:\\Reports\\Отчет за +день.xlsx». В таком случае необходимо как-то обработать эту ошибку, +предложить пользователю запустить робота позже, или сказать ему +подождать в течение некоторого времени и попробовать снова. + +Для обработки ошибки с выводом информационного окна необходимо добавить +модуль «Try/Catch», где в блоке TRY будут содержаться модули считывания +письма и Excel, а в блоке CATCH модуль «Интерфейс» для вывода +пользовательского окна. + + + +Рис. 6... Пример использования модуля «Try/Catch» + +В результате работы такого робота будет либо стандартное сообщение +«Скрипт отработал успешно!», если письмо было на почте, либо окно с +текстом «Письмо еще не пришло» в ином случае. В переменной v.error будет +содержаться текст «Не удалось открыть документ C:\\Reports\\Отчет за +день.xlsx». + + + +Рис. 6... Пример обработки ошибки – окно с информацией + +## Модуль «Switch» + +Оператор Switch – это оператор выбора, который выбирает для выполнения +один раздел case из списка кандидатов, сравнивая их с выражением, +указанным в самом switch. Аналогичен нескольким модулям «Условие», как +если бы необходимо было сравнить одно значение с несколькими другими и +для каждого был бы отдельный набор действий для выполнения, то есть он +используется в тех случаях, когда развилок условий больше двух, но +сравнение идет с одним и тем же значением. + +**Внутри блока Switch могут быть только блоки Case и наоборот – блоки +Case могут быть только внутри блока Switch**. + +### Интерфейс модуля + +Модуль Switch имеет поле «Условие», в которое записывается переменная, с +которой в дальнейшем будут сравниваться подмодули case для выбора +необходимого алгоритма. По кнопке «Добавить» добавляются эти самые +подмодули. + + + +Рисунок 6... Модуль «Switch» + +После нажатия на кнопку «Добавить», внутри модуля появится блок Case, +который может быть использован только внутри блока Switch. Блоки Case +также содержат поле «Условие», но в этом случае в них указывается +ожидаемое значение переменной, указанной в модуле Switch. Если +переменная из Switch будет равна значению Case, то этот Case будет +выполняться, остальные блоки Case выполнены не будут (даже если они +содержат то же значение). + + + +Рисунок 6... Модули «Switch – Case» + +Внутри блоков Case располагаются любые модули программы, подобно модулю +«Группа». + +# МОДУЛИ «ПОЧТОВЫЕ АГЕНТЫ» + +## Модуль «Отправить письмо» + +Модуль «Отправить письмо» предназначен для отправки письма одному или +нескольким получателям. + +### Интерфейс модуля + +Окно модуля состоит из нескольких вкладок: «Настройки», «Получатель», +«Письмо». Рассмотрим по порядку все вкладки. Начнем знакомство с +рассмотрения вкладки «Настройки». + +#### Вкладка «Настройки» + + + +Рис. 7... Окно модуля + +**Поле «Настройки»** – выпадающий список, в котором предложены несколько +почтовых служб. При выборе почтовой службы будут заполнены поля «Хост», +«Порт», «Безопасность» согласно её настройкам. Пункт "Пользовательские" +предоставляет возможность самостоятельной настройки параметров доступа к +почтовой службе. + + + +Рис. 7... Пример настройки почтовый службы «Mail» + +**Поля «Хост», «Порт, «Безопасность»** необходимы к заполнению только +при выборе пользовательских настроек. Представляют собой набор +обязательных полей для подключения к почтовым сервисам. + +**Поле «Доменное имя»** необходимо для некоторых почтовых служб (в +основном, корпоративных) для указания доменного имени, необходимого для +авторизации. + +**Поле «E-mail»** предназначено для указания адреса электронной почты, с +которой будут отправлены сообщения, в формате . + +**Поле «Пароль»** предназначено для ввода пароля от почты для +авторизации. + +**Флажок «Показывать пароль»** предоставляет возможность показать пароль +для проверки его правильности. + + + +Рис. 7... Пример заполненной вкладки «Настройки» + +#### Вкладка «Получатель» + +На данной вкладке заполняется информация о лицах, которым будет +отправлено письмо. + +Модуль предоставляет различные способы указания получателей, а именно: + +- ручной ввод списка получателей (имена и e-mail’ы); + +- из переменной-элемента, в виде одного e-mail’а; + +- из переменной-списка, в виде нескольких e-mail’ов. + + + +Рис. 7... Вкладка «Получатель» + +Если выбран переключатель «Список», то поле «Переменная» недоступно для +ввода, иначе – наоборот, доступно поле «Переменная», но недоступны +другие поля. + +Для ввода получателей методом «Список» необходимо заполнить поля «Имя +получателя» и «E-mail получателя», затем нажать на кнопку под полями +«Добавить». После этого введенные значения появятся в таблице в центре +окна. Если необходимо удалить какого-либо получателя из таблицы, +необходимо выбрать строку с ним и нажать на кнопку «Удалить». + + + +Рис. 7... Пример заполнения таблицы получателей + +Если используется метод выбора получателей через переменную, то поля +«Имя получателя», «E-mail получателя» и таблица становятся недоступными. +В поле «Переменная» необходимо ввести название переменной, начиная с +символов «v.», из которой будут взяты email’ы получателей. Переменная +может быть списком из email’ов, либо строкой с перечислением их через +запятую. + + + +Рис. 7... Вкладка «Получатель» + +#### Вкладка «Письмо» + +На данной вкладке настраивается письмо, которое будет отправлено +получателям, указанным на вкладке «Получатель». Все поля необязательны +для заполнения, если не заполнить ни одного из них будет отправлено +пустое письмо с темой «<Без темы>». + + + +Рис. 7... Вкладка «Письмо» + +Для прикрепления одного файла во вложение следует нажать на кнопку +«Выбрать файл» и в открывшемся диалоговом окне выбрать требуемый файл. + +Для прикрепления сразу нескольких файлов необходимо нажать на кнопку +«Выбрать папку» и в открывшемся диалоговом окне выбрать папку со всеми +требуемыми файлами. + +Каждое из полей формы может быть заполнено переменной. + +## Модуль «Считать письма» + +Модуль «Считать письма» предназначен для получения списка писем с почты +для дальнейшей их обработки или просто для скачивания вложений. Для +работы модуля обязательно разрешение подключения по IMAP или POP3 +протоколу на используемой почте (подробнее про включение протоколов +описано этой главе, пункте «Включение IMAP и POP3 протоколов»). + +### Интерфейс модуля + +Модуль состоит из трех вкладок: «Настройки», «Настройки чтения» и +«Параметры загрузки». + +Вкладка «Настройки» аналогична одноименной вкладке в модуле «Отправить +письмо», с одним существенным отличием - в данном модуле предоставляется +выбор протокола отправки: IMAP или POP3. Так же нет поля «Доменное имя», +если именно оно требуется для авторизации в почтовой слу + +При выборе соответствующего протокола и его настроек, поля «Хост», +«Порт» и «Безопасность» заполняются автоматически (кроме режима +«Пользовательские настройки»). + + + +Рис. 7... Окно модуля с примером авто-заполнения полей + +#### Вкладка «Настройки чтения» + +Вкладка «Настройки чтения» представляет собой набор полей, которые +заполняются в зависимости от того, какие письма следует считать. + + + +Рис. 7... Вкладка «Настройка чтения» + +**Поле «Переменная».** В поле ожидается ввод названия переменной, в +которую будет внесена информация о считанных письмах. В программе это +поле будет представлено списком объектов, имеющих шесть полей: + +1. Subject – тема письма; + +2. Body – тело письма, его основной текст; + +3. Sender – отправитель; + +4. Receivers – получатели, перечисленные через запятую; + +5. Attachments – список путей до скачанных вложений; + +6. Date – дата получения письма; + +7. Id – уникальный идентификатор письма. + +Примеры работы с переменными + +- v.mails\[2\].Attachments\[0\] – получение пути первого вложения + третьего считанного письма: + + + +Рис. 7... Пример получения пути до первого вложения второго письма + +- v.mails\[3\].Subject – получение темы четвертого скачанного + сообщения: + + + +Рис. 7... Пример получения темы первого письма + +**Поле «Скачивать вложения в папку»** предназначено для ввода пути до +папки, в которую загрузятся все вложения считанных писем. Если оставить +поле пустым, то файлы будут загружаться во временную директорию +компьютера. + +**Поле «Новая папка для каждого письма»** позволяет сохранять вложения +из каждого письма в свою отдельную папку для того, чтобы файлы, имеющие +одинаковые названия, но содержащиеся в разных письмах, не перетирали +друг друга. При скачивании вложений во временную системную папку +компьютера галочка является обязательной. + +**Флажок «Только непрочитанные»** позволяет настроить считывание только +новых писем. *Доступно только для протокола IMAP.* + +**Флажок «Отмечать как прочитанные»** позволяет после считывания +устанавливать пометку о прочтении письма. *Доступно только для протокола +IMAP*. + +**Поле «Читать из папки»** предназначено для настройки конкретной папки +в почтовом ящике, из которой следует считывать письма. По умолчанию, +письма считываются из папки «Входящие». *Доступно только для протокола +IMAP.* + +**Поле «Фильтр по отправителям»** позволяет искать сообщения, +отправленные от одного из указанных отправителей. Перечислить всех можно +через запятую, либо подав в это поле переменную-список, содержащую +отправителей. + +**Поле «Фильтр по получателям»** позволяет искать сообщения, в которых +присутствуют указанные получатели. Перечислить всех можно через запятую, +либо подав в это поле переменную-список, содержащую получателей. +*Доступно только для протокола IMAP.* + +**Поле «Фильтр по теме сообщений»** предназначено для настройки фильтра +по теме сообщений. Если необходимо скачать письма с темой, содержащей +или не содержащей определенную строку, то следует выбрать одноименную +операцию в выпадающем списке и вписать нужную строку в появившемся поле +(Рис. 7.25.5. Фильтр по теме сообщений). *Доступно только для протокола +IMAP.* + + + +Рис. 7... Фильтр по теме сообщений + +**Поле «Фильтр по дате»** предназначено для настройки фильтрации +считывания писем по дате. При указании значения в данном поле, робот +будет считывать только те сообщения, которые удовлетворяют заданному +условию. + +Доступны следующие методы фильтрации: + +- за определенную дату – «На дату»; + +- начиная с какой-либо даты, включая её – «С даты»; + +- все письма, до какой-либо даты, включая её – «До даты»; + +- «Между датами». + +После выбора метода фильтрации под полем «Фильтр по дате» появится одно +или два поля для внесения в них нужных значений в формате ДД.ММ.ГГГГ. +*Доступно только для протокола IMAP.* + +#### Вкладка «Параметры загрузки» + +С помощью данной вкладки можно ограничить информацию, скачиваемую с +почтового сервера, для уменьшения затрачиваемых ресурсов. По умолчанию +скачивается вся доступная информация. + +Доступно следующее разграничение для скачивания: + +- Загрузка информации об отправителе, получателях, теме и дате + сообщения (шапка письма); + +- Загрузка только текста сообщения; + +- Загрузка вложений (по умолчанию так же скачивается текст сообщения); + +- Загрузка только даты сообщения. + + + +Рис. 7... Вкладка «Параметры загрузки» + +С помощью данной функции можно загрузить только, например, «шапки» +писем, отобрать из них необходимые, и догрузить по ним всю информацию с +помощью модуля «Действия над письмами», который будет описан в следующей +главе. + +### Включение IMAP и POP3 протоколов + +1. Яндекс + + 1. IMAP + +> Для использования протокола IMAP в почтовой службе Яндекс необходимо +> перейти в настройки почты (1), затем «Почтовые программы» (2) и +> разрешить доступ к почтовому ящику с помощью почтовых клиентов с +> сервера imap.yandex.ru (3), способы авторизации – по портальному +> паролю (4). + + + +Рис. 7... Включение IMAP протокола в Яндекс + +Если настройки «Портальный пароль» нет, значит в вашем аккаунте +предусмотрено использование паролей приложений, которые для работы +Lexema-RPA Studio необходимо выключить. Для этого перейдите в управление +аккаунтом - «Пароли и авторизация» - «Пароли приложений» - «Выключить +пароли приложений». + + + +Рис. 7... Пароли приложений в настройках аккаунта + + + +Рис. 7.. Выключение паролей приложения + +Затем вернитесь на страницу с включением настроек почтовых программ и +установите галочку напротив «Портального пароля», как это изображено на +рисунке 7.25.7. + +2. POP3 + +Для включения протокола POP3 необходимо войти в те же настройки, что и +при включении протокола IMAP: «Настройки» (1) – «Почтовые программы» (2) +- разрешить доступ к почтовому ящику с помощью почтовых клиентов с +свервера pop.yandex.ru (3). + + + +Рис. 7... Включение протокола POP3 в Яндекс + +2. GMail + + 1. IMAP + +Для включения IMAP протокола в почтовой службе GMail необходимо перейти +в настройки почты (1), затем выбрать пункт «Пересылка и POP/IMAP» (2) - +«Доступ по IMAP» и затем в «Состоянии» включить IMAP (3): + + + +Рис. 7... Включение протокола IMAP в Gmail + +2. POP3 + +Аналогично проводится включение протокола POP3: настройки (1) – +«Пересылка и POP/IMAP» (2) - «Доступ по протоколу POP» - «Включить POP +для всех писем» (3): + + + +Рис. 7... Включение POP3 протокола в Gmail + +## Модуль «Действия над письмами» + +С помощью данного модуля можно переносить уже считанные письма в другие +папки в почте, удалять письма с сервера и догружать информацию. Для +использования модуля предварительно необходимо получить письма с помощью +модуля «Считать письма». + +### Интерфейс модуля + +Интерфейс модуля состоит из двух вкладок – «Настройки» и «Действие». + +#### Вкладка «Настройки» + +Вкладка настроек не отличается от аналогичной вкладки в модуле «Считать +письма», но доступен только один протокол – IMAP. При выборе в поле +«Настройки» необходимой почтовой службы, поля «Хост», «Порт» и «SSL» +заполнятся автоматически, при пользовательских настройках их необходимо +заполнять вручную. + + + +Рис. 7... Вкладка «Настройки» модуля «Переместить письмо» + +#### Вкладка «Действие» + +На данной вкладке производится настройка действия, совершаемого над +сообщением. + + + +Рис. 7... Вкладка «Параметры перемещения» + +**Поле «Действие»** позволяет выбрать одно из трёх доступных действий – +«Переместить письмо», «Удалить письмо» и «Загрузить всю информацию из +письма». + +В **поле «Id письма»** вносится id письма, над которым производится +действие, который может быть получен с помощью модуля «Считать письма». +Может быть передано несколько идентификаторов через запятую, либо +переменная-список, содержащая их. + +**Поле «Папка»** доступно только для действия «Переместить письмо». В +него указывается название папки на почте, в которую должно быть +перемещено письмо. + +**Поле «Переменная»** доступно только для действия «Загрузить всю +информацию из письма», в которое вводится название переменной, которая +будет являться результирующей для выполнения действия. + +# МОДУЛЬ «РАБОТА С БРАУЗЕРОМ» + +## Основные моменты модуля + +Модуль «Работа с браузером» построен на базе Selenium WebDriver[6] и +позволяет реализовывать основные методы работы со страницей браузера – +открыть вкладку, перейти на вкладку, найти элемент на странице по её +ключу и как-то его обработать. + +### Интерфейс модуля + +Окно модуля делится на блок настройки браузера, область создания команды +для работы с браузером, группу кнопок управления действиями и таблицу, +содержащую список созданных команд. Область создания команды состоит из +нескольких полей для заполнения, причем, количество доступных для +редактирования полей меняется в зависимости от выбранного действия в +поле «Действие». Группа кнопок состоит из трех кнопок – «Добавить», +«Редактировать» и «Удалить». + + + +Рис. 8... Окно модуля «Работа с браузером» + +Создание команды начинается с выбора действия. После его выбора список +доступных полей в окне может измениться. Необходимо заполнить поля, +требующиеся для выбранного действия и нажать на кнопку «Добавить». +Созданное действие отобразится в таблице «Список команд». Для +редактирования команды следует выбрать её в списке команд, изменить +необходимые поля и нажать «Редактировать». Если при этом нажать на +кнопку «Добавить», то будет добавлено новое действие, похожее на то, что +было выбрано в списке команд, но с внесенными изменениями. Можно ничего +не менять и нажать на кнопку «Добавить», тогда получится полное +копирование команды. + +Для удаления ненужных команд необходимо выбрать команду в таблице и +нажать «Удалить». + +Робот будет выполнять все указанные команды последовательно, поэтому для +изменения порядка команд в таблице можно воспользоваться кнопками в +правом верхнем углу таблицы. Делается это следующим образом – выбирается +строка, положение которой необходимо изменить, а затем нажимаются кнопки +«Поднять» или «Опустить», в зависимости от того, где эта строка должна +находиться. + + + +Рис. 8... Кнопки для изменения порядка команд + +Для всех действий некоторые поля остаются неизменными, это все поля для +настройки браузера, «Действие» и «Примечание». + +### Поля для настройки браузера + +**Поле «Драйвер»** на данный момент недоступно для редактирования и в +нем по умолчанию выбран драйвер для браузера Chrome, но в обозримом +будущем этот список планируется дополнять другими браузерами. + +**Поля «Proxy Server» - «Proxy Password»** предназначены для ввода +настроек прокси-сервера, если это необходимо. + +**Поле «Путь до папки с профилями пользователя»** - для того, чтобы +запустить не новый экземпляр браузера, а с авторизованным профилем (с +сохранением истории браузера, авторизацией на сайтах и другое) +необходимо указать путь до папки с этим профилем. Если указанного пути +не существует, то будет создана новая папка с профилем, в которую будет +сохраняться текущая деятельность в браузере. Папки с профилями +пользователя в Google Chrome лежат в директории +«C:\\Users\\ИмяПользователя\\AppData\\Local\\Google\\Chrome», где вместо +ИмяПользователя должен стоять ваш пользователь Windows. В поле +необходимо указывать путь до одной из тех папок, что лежат в +вышеуказанной директории (например, +«C:\\Users\\ИмяПользователя\\AppData\\Local\\Google\\Chrome\\User +Data»). + +**Поле «Агент»** предназначено для продвинутых пользователей – оно +отвечает за User Agent (идентификационная строка клиентского приложения, +использующая определённый сетевой протокол), под которых будет запущен +браузер. Если поле пустое, то агент будет считываться из конфига +программы, где указано его значение по умолчанию. + +## Описание действий + +Модуль предлагает использование 7 основных действий – перейти на +страницу, перезагрузить страницу, перейти назад или вперед, работа со +страницей, работа со вкладками и закрыть браузер. Каждое действие +требует заполнения определенных полей. + +***Обратите внимание***, что модуль создает свой экземпляр браузера, без +авторизованных аккаунтов, если не заполнено поле «Путь до папки с +профилями пользователя». Созданный браузер закрывается сам в конце +работы робота. Нельзя закрывать браузер самостоятельно! + +Описание полей, которые не изменяются в зависимости от действия: + +**Поле «Действие»** — это выпадающий список с перечнем возможных +действий этого модуля. Подробнее о них будет рассказываться в следующей +главе. + +**Поле «Примечание»** — строка с примечанием к команде. + +### Перечень и описание действий + +#### Действие «Перейти» + +С помощью действия «Перейти» происходит переход на заданную страницу. В +области создания команды откроется поле – «URL». URL необходимо вводить +с протоколом, т.е. с http/https. + + + +Рис. 8... Пример настройки действия «Перейти» + +Если уже открыта какая-либо страница, то браузер перейдет от неё к +странице, указанной в поле «URL», то есть исходная страница будет +заменена новой. Если браузер еще не был запущен, то он будет открыт с +этой страницы. + +#### Действие «Перезагрузить страницу» + +Действие позволяет перезагружать уже открытую страницу. Перед +использованием данного действия, убедитесь, что в браузере есть открытая +страница. + +Действие не имеет никаких дополнительных для настройки полей. + +#### Действие «Назад» + +Действие позволяет выполнять переход к странице, которая была открыта в +браузере до текущей. + +#### Действие «Вперед» + +Действие позволяет выполнять переход к странице, которая была открыта в +браузере после текущей, если таковая была. + +#### Действие «Работа со страницей» + +Данное действие предоставляет возможность работать с отдельным элементом +страницы. Для настройки действия появляются следующие поля: «Тип поиска +элемента», «Строка поиска», «Действие на странице», «Ожидание» и «Номер +элемента». Еще два поля – «Свойство» и «Переменная» становятся +доступными в зависимости от выбора действия на странице. + + + +Рис. 8... Поля для настройки действия «Работа со страницей» + +**Поле «Тип поиска элемента»** представляет собой выпадающий список с +перечнем методов поиска элемента на странице, используется в паре с +полем **«Строка поиска»**. + +***Обратите внимание!*** В поле «Строка поиска» могут быть использованы +переменные и готовые значения для работы модуля, но нет возможности +составлять сложные строки кода прямо в этом поле. Для составления кода +нужно воспользоваться модулем «Вычисления», записать получившийся код в +переменную и саму переменную затем подать в это поле в модуле. + +Ниже будут перечислены все типы поиска элемента с примерами заполнения +поля «Строка поиска»: + +- GetElementsByName – поиск элементов по их свойству name. + +Листинг 8... Пример элемента со свойством name + +«Строка поиска» для нахождения элемента div - element. + +- GetElementsById – поиск элементов по их свойству id. + +Листинг 8... Пример элемента со свойством id. + +> «Строка поиска» для нахождения элемента div - element. + +- GetElementsByClass – поиск элементов по их свойству class. + +Листинг 8... Пример элемента со свойством class + +> «Строка поиска» для нахождения элемента div - myClass. + +- GetElementsByCssSelector – поиск элементов по их CSS селектору.[7] + +Листинг 8... Пример элемента div со свойством class + +> «Строка поиска» для нахождения элемента div - div.main. + +- GetElementByLinkText – поиск элементов-ссылок по их тексту. Ищутся + только элементы с полным совпадением. + +Листинг 8... Пример элементов – ссылок а + +> «Строка поиска» нахождения первого элемента a на примере – text. + +- GetElementsByPartialLinkText - поиск элементов-ссылок по их тексту. + Ищутся все элементы, содержащие заданную строку. + +Листинг 8... Пример элементов – ссылок а + +> «Строка поиска» нахождения двух элементов a – text + +- GetElementsByTagName – поиск элементов по их тегу[8]. + +Листинг 8... Пример элементов с разными тегами + +> «Строка поиска» нахождения элемента a – a. + +- GetElementsByXPath – поиск элементов по языку запросов HTML – xpath. + +Листинг 8... Пример элементов div со свойством class + +«Строка поиска» для нахождения элемента div - //div\[@class='main'\]. + +Чтобы получить строку xpath для необходимого вам элемента в консоли +разработчика в браузере, нужно нажать по этому элементу правой кнопкой +мыши в коде – копировать – XPath: + + + +Рисунок 8..3. Получение строки xpath из консоли браузера + +**Поле** **«Действие на странице»** предлагает выбор действия из +выпадающего списка, которое необходимо произвести над найденными +элементами. Доступны следующие действия: + +- Записать – вводит заданный в поле «Переменная» текст (например, + после нажатия на определенный элемент для ввода текста); + +- Получить text – получает значение свойства «text» всех найденных или + только выбранного элемента и возвращает результат в виде списка в + переменную; + +- Отправить – нажатие клавиши «ВВОД» («ENTER») – применение записанных + данных (например, в строке поиска можно ввести какой-либо текст + действием «Записать», а затем «Отправить» его); + +- Нажать – нажатие левой кнопкой мыши на заданный элемент (обязательно + заполнение поля «Номер элемента»); + +- Навести мышь – наведение мыши на конкретно заданный элемент + (обязательно заполнение поля «Номер элемента»); + +- Получить Property – при выборе действия появляется поле «Название + Property» - возвращает значение указанного в поле «Название + Property» свойства всех найденных элементов или конкретно заданного. + Результатом будет являться список; + +- Получить CSS свойство – при выборе действия появляется поле + «Свойство CSS» - возвращает значение указанного в поле «Свойство + CSS» свойства всех найденных элементов или конкретно заданного. + Результатом будет являться список; + +- Получить Attribute – при выборе действия появляется поле «Свойство + Attribute» - возвращает значение указанного в поле «Свойство + Attribute» свойства всех найденных элементов или конкретно + заданного. Результатом будет являться список; + +- Получить элементы – возвращает список указанных элементов для + дальнейшей работы с ними; + +- Выполнить JavaScript – данное действие позволяет выполнить + JavaScript код в браузере для получения некоторой информации. Для + записи результата выполнения кода в переменную, необходимо в начале + кода добавлять «return», например «return + document.querySelectorAll("\[height='24'\]").length» (такой запрос + вернет количество элементов на странице, высота которых равна 24); + +- Нажать кнопку на клавиатуре – позволяет нажать кнопку на клавиатуре + внутри браузера. + +**В поле «Переменная»** вводится название переменной, начиная с символов +«v.», в которую будет помещен результат выполнения команды или, +наоборот, из которой будут браться значения для её выполнения. + +**Поле «Ожидание (сек)»**. В поле вводится количество секунд, которые +необходимо подождать после выполнения команды. + +**Поле «Номер элемента»** предназначено для указания индекса найденного +элемента, к которому необходимо применить действие. + +Пример заполненного действия: + + + +Рис. 8... Пример настройки действия «Работа со страницей» + +На рисунке 8.28.3 представлен пример действия, настроенного для поиска +элемента, имя которого равно «q». После того как элемент найден, в него +будет вставлен текст «Lexema-RPA». + +#### Действие «Работа с вкладками» + +Данное действие позволяет манипулировать вкладками в окне браузера. Для +настройки действия открывается как минимум одно поле – «Действие», +остальные открываются в зависимости от выбранного в нем действия. + + + +Рис. 8... Поля для настройки действия «Работа со вкладками» + +Доступные действия для работы с вкладками: + +- Добавить вкладку – создаст новую вкладку, и та станет активной; + +- Закрыть вкладку – закроет активную вкладку; + +- Перейти на вкладку – при выборе действия появляется поле «Номер + вкладки» - переходит на вкладку, номер которой указан в поле «Номер + вкладки» (начиная с 0); + +- Получить количество вкладок – при выборе действия появляется поле + «Переменная» - возвращает в указанную переменную количество вкладок + в браузере. + +#### Действие «Закрыть браузер» + +Закрывает браузер, открытый с помощью модуля, не требует дополнительных +настроек. + +# МОДУЛЬ «ИНТЕРФЕЙС» + +## Основные моменты + +Данный модуль предназначен для создания диалоговых окон для общения с +пользователем робота. Это могут быть окна, позволяющие прикрепить файл, +ввести какие-либо данные – дату, имена, почтовые адреса и другое, с чем +впоследствии будет работать робот, или наоборот, окна, отображающие +результат работы. + +Создание окна заключается в добавлении на него контролов – элементов +интерфейса таких, как надписи, текстовые поля, кнопки, выпадающие +списки. + +### Основное окно + +Окно модуля состоит из нескольких частей: + +- Настройки окна – общие настройки диалогового окна; + +- Параметры элемента интерфейса - настройка добавляемого элемента; + +- Список элементов – таблица, в которой содержатся все добавленные + > элементы; + +- Окно с предварительным просмотром диалогового окна на текущий момент + > (правая часть окна). + + + +Рис. 9... Основное окно модуля + +Начинать работу с диалоговым окном следует с общих настроек, а именно с +настройки сетки, которую можно открыть по кнопке «Настройка сетки». + +## Настройки окна + +К настройкам окна относится название окна – «Титул», его ширина и высота +и настройка сетки. При установке флажка «На весь экран» поля «Высота» и +«Ширина» не будут учитываться. + +По нажатию на кнопку «Настройка сетки» появится окно настроек строк и +колонок сетки. + + + +Рис. 9... Настройка сетки + +Сетка – это условная разметка элементов интерфейса, некоторая таблица, в +которую будут помещаться контролы. Например, если нужно создать окно, в +которое пользователь бы вводил два каких-то параметра – конечную и +начальную даты, за которые необходимо скачивать почту, то настроить +диалоговое окно для ввода этих дат можно несколькими способами: + +- Первый способ + +\- в две строки, 4 элемента интерфейса – на первой строке подпись и поле +для ввода начальной даты, на второй строке подпись и поле для ввода +конечной даты + + + +Рис. 9... Пример окна №1 + +Для такой настройки сетки необходимо задать две колонки – первая, для +надписей, вторая для полей ввода, и две строки – первая для начальной +даты, вторая - для конечной. + +- Второй способ + +\- в одну строку, 3 элемента интерфейса – подпись, поле для ввода первой +даты, поле для ввода второй даты. + + + +Рис. 9... Пример окна №2 + +В таком случае используется три колонки и одна строка. + +- Третий способ + +\- в одну строку, 4 элемента интерфейса – два поля для ввода и подписи к +каждому из них. + + + +Рис. 9... Пример окна №3 + +Здесь используются 4 колонки и 1 строка. + +Для каждой колонки можно задать свою ширину, для каждой строки – высоту: + + + +Рис. 9... Пример настройки сетки + +Высота и ширина вводятся в пикселях, но можно использовать относительные +размеры окна, например, если одна колонка должна быть больше другой в +два раза и их всего две, то в поле «Ширина» можно ввести «1\*» для +первой колонки, и «2\*» для второй: + + + +Рис. 9... Пример использования относительных размеров + +Результат такой разметки: + + + +Рис. 9... Пример разметки + +Нумерация строк и колонок начинается с 0. С помощью кнопки «Удалить» +можно удалить ненужную строку или колонку, по кнопке «Редактировать» +можно изменить высоту или ширину. + +После настройки сетки она будет отображена пунктирной линией в окне +предварительного просмотра в правой части окна, и затем можно приступить +к добавлению контролов. + +## Добавление элемента интерфейса + +Для добавления на окно нового элемента необходимо заполнить поля, +представленные на рисунке 9.31.1: + + + +Рис. 9... Поля для добавления нового элемента + +Обязательными полями являются все, кроме полей «Объединить +колонки/строки». Поле «Фильтр по файлам» доступно только для элемента +«Выбор файла». + +### Поле «Тип» + + + +Рис. 9... Выпадающий список с выбором типа элемента + +Сначала выбирается тип добавляемого элемента интерфейса из предложенных: + +- Поле для ввода – поле, в которое можно ввести любую строку; + +> + +Рис. 9... Элемент «Поле для ввода» + +- Надпись – статичная строка текста, которая не может быть + отредактирована пользователем; + + + +Рис. 9... Элемент «Надпись» + +- Выпадающий список – поле со стрелочкой сбоку, по нажатию которого + открывается список заранее определенных значений; + +> + +Рис. 9... Элемент «Выпадающий список» + +- Таблица – отображение в виде таблицы заранее созданной переменной. + Возможно редактирование полей таблицы, но невозможно создание новых + колонок в ней; + +> + +Рис. 9... Элемент «Таблица» + +- Выбор даты – поле с иконкой календаря, по нажатию на которую + пользователю будет предложено выбрать определенную дату. Возможен + ввод значения даты вручную, при вводе других строк поле + автоматически подберет наиболее подходящую дату к введенным данным. + Формат даты ДД.ММ.ГГГГ; + + + +Рис. 9... Элемент «Выбор даты» + +- Выбор файла – поле с иконкой в виде трех точек, по нажатию на + которую пользователю будет предложено выбрать файл. Путь до + выбранного файла запишется в это поле. + + + +Рис. 9... Элемент «Выбор файла» + +Для фильтрации отображаемых пользователю файлов можно воспользоваться +полем «Фильтр по файлам», в которое вводится строка вида: «Название типа +файлов (доступные расширения)\|доступные расширения». Можно задать +несколько настроек фильтрации, разделителем для этого является символ +«\|». Пример: + +В данном случае отображается две настройки фильтрации: + +1. All files (\*.\*), в которой отображаются файлы с любым расширением; + +2. Microsoft Excel Worksheet (\*.xl\*; \*.csv), в которой отображаются + файлы с расширениями .csv и начинающимися на .xl (то есть .xlsx, xls + и другие). + + + +- Выбор папки – поле с иконкой в виде трех точек, по нажатию на + которую пользователю будет предложено выбрать папку. Путь до + выбранной папки запишется в это поле. Выглядит так же, как и «Выбор + файла». + +### Поле «Источник данных» + +В это поле вводится название переменной или строка, на основе которой +контрол будет заполнен. Немного поподробнее о поле при выборе различных +элементов интерфейса: + +- Для типа элемента «Надпись» туда вводится значение, которое должно + быть отображено в выводимой надписи; + +- Для «Поле для ввода», «Выбор даты», «Выбор файла» и «Выбор файла» + вводится значение, которое сразу будет указано в поле, если это + необходимо. Если поле должно быть пустым, то не надо заполнять + «Источник данных»; + +- Для «Таблицы» необходимо подать заполненную табличную переменную для + её отображения; + +- Для элемента интерфейса «Выпадающий список» необходимо передать + набор значений, которые пользователю будет предложено выбрать. + Делается это через символ «;». Это могут быть строки, + переменные-элементы, переменные-списки или табличные переменные, + состоящие из одного столбца. Например, введено следующее значение, + при приведенных далее примерах заполнения переменных: + + + +Рис. 9... Пример заполнения поля «Источник данных» + + + + + +Рис. 9... Примеры заполнения используемых переменных + +Результат будет выглядеть следующим образом: + + + +Рис. 9... Пример результирующих данных + +### Поля «Колонка» и «Строка» + +В эти поля необходимо ввести номер колонки и строки сетки (таблицы), в +которых должен располагаться добавляемый контрол. Например, в примере с +датами (Рис. 9.30.2) контрол «Надпись» - «Начальная дата» располагается +в 0 колонке и 0 строке, а надпись «Конечная дата» - в 0 колонке и 1 +строке. + +### Поля «Объединить колонки» и «Объединить строки» + +В некоторых случаях необходимо выводить поля не в конкретной клеточке +сетки, а в объединении нескольких клеток. Например – нужно предложить +пользователю выбрать Excel-файл для записи в него результатов и ввести +начальную и конечную дату, по которым будут собираться некоторые данные. +Хотелось бы объединить это в две строки, но для ввода даты нужно как +минимум 2 поля, а поле для выбора файла – одно. + + + +Рис. 9... Пример окна без объединения колонок + +Для того, чтобы растянуть поле для выбора файла по длине полей для ввода +даты, нам необходимо разместить его не просто в 1 колонке и 0 строке, но +и объединить для него две колонки, чтобы оно занимало сразу обе: + + + +Рис. 9... Пример заполнения полей элемента интерфейса для настройки +объединения колонок + + + +Рис. 9... Пример окна с объединенными колонками в первой строке сетки + +То есть при заполнении поля «Объединить колонки» колонки, начиная с той, +что указана в поле «Колонка», будут объединены по горизонтали в одну. + +Аналогично с полем «Объединять строки» - указанное количество строк, +начиная с той, что указана в поле «Строка», будут объединены в одну: + + + +Рис. 9... Пример окна с объединенными строками в первой колонке сетки + +### Поле «Переменная» + +В это поле вводится название переменной, в которую будет записано +значение, введенное (для выпадающего списка – выбранное) пользователем. +Является обязательным полем для всех типов контролов, кроме «Надписи». + +После заполнения всех полей необходимо нажать на кнопку «Добавить». +После нажатия на нее элемент сразу отобразиться в окне предпросмотра в +правой части окна. + + + +Рис. 9... Пример заполненного окна модуля «Интерфейс» + +По кнопке «Предпросмотр» откроется диалоговое окно в таком виде, в +котором оно будет представлено пользователю. + +Удалить или отредактировать элемент можно, предварительно выбрав его в +области «Список элементов», а затем нажав на соответствующую кнопку, +находящуюся над списком с элементами. + +После добавления всех необходимых контролов нужно нажать кнопку +«Сохранить» в правой нижней части окна. + +# МОДУЛИ ДЛЯ РАБОТЫ С ТЕКСТОМ + +## Модуль «Обработка текста» + +Модуль «Обработка текста» предлагает несколько методов сравнения текста. +В некоторых задачах требуется знание о том, как сильно различен текст +между эталонным и указанным. Это задачи, относящиеся к компьютерной +лингвистике и искусственному интеллекту. + +### Интерфейс модуля + +Окно модуля состоит из части составления команды, кнопок управления +командами и списком команд в виде таблицы. Часть составления команды +состоит из следующих полей: выпадающий список «Действие» с доступным +набором методов анализа текста, два поля «Строка 1» и «Строка 2», +предназначенные для ввода двух строк текста или переменных, содержащих +текст, и поле «Переменная результат» - для названия переменной, в +которую будет помещен результат работы модуля. + + + +Рис. 10... Окно модуля + +По кнопке «Добавить» созданная команда поместится в таблицу «Список +команд». Для редактирования команды из списка нужно выбрать её в +таблице, изменить необходимые поля и нажать на кнопку «Редактировать». +Для удаления команды нужно выбрать ее в списке и нажать на кнопку +«Удалить». С помощью стрелочек в углу таблицы можно менять команды +местами. + +### Методы анализа текста + +В модуле предложены следующие методы анализа текста: + +1. **Расстрояние Левенштейна** – рассчитывает разницу между двумя + > строками. Например – «Lexema RPA» и «Lexema SR» отличаются на 3 + > символа – слова «Lexema» совпадают полностью, остальные символы + > различны, то есть результат, записанный в переменную, будет равен + > 3; + +2. **3-граммы** – метод, основанный на работе с n-граммами, в нашем + > случае n=3 – оценивается схожесть каждых 3 символов. Чем больше + > число (до 1), тем большую схожесть имеют строки. В примере «Lexema + > RPA» и «Lexema SR» результатом будет число 0,52. + +3. **Сходство Джаро-Винклера** – мера схожести строк для измерения + > расстояния между двумя последовательностями символов. Чем меньше + > расстояние Джаро-Винклера для двух строк, тем больше сходства + > имеют эти строки друг с другом. Для примера «Lexema RPA» и «Lexema + > SR» результатом будет число 0,5. + +## Модуль «Распознавание текста» + +Модуль «Распознавание текста» предназначен для считывания текста с +указанного изображения и представления полученного текста в виде +объекта. + +### Интерфейс модуля + +Модуль состоит из двух полей – «Путь к файлу» и «Переменная», и флажка +«Скриншот». + + + +Рис. 10... Окно модуля + +**Поле «Путь к файлу».** Заполняется путем до файла, который необходимо +распознать. Это может быть картинка или PDF-документ. + +**Поле «Переменная».** Заполняется названием переменной, начиная с +символов «v.», в которую будет помещен результат распознавания. + +**Флажок «Скриншот»**. Флажок ставится, когда необходимо распознать +скриншот экрана в момент работы данного модуля в процессе выполнения +робота. В таком случае поле «Путь к файлу» указывать не нужно. + +Структура результирующего объекта – массив листов документа, каждый +элемент которого – объект, состоящий из двух полей – number и words. +Поле number содержит в себе номер листа документа (с 1-цы), поле words +представляет собой массив объектов всех слов со страницы. Структура +объекта слова – value, x, y, page. В value содержится слово, в x и y +координаты слова x и y соответственно, в page – номер страницы, на +котором содержится слово. + +**ПРИМЕР.** + +Пусть имеется следующее изображение формата jpeg. Подадим его в модуль +распознавания текста. + + + +Рис. 10... Изображение, поданное на распознавание текста + +Результат, записанный в переменную при распознавании изображения: + + + +Рис. 10... Пример заполнения переменной + +Результат содержит информацию о страницах, координате и значении каждого +слова изображения. + +Пример получения некоторого слова со второго листа документа: +v.text\[1\].words\[100\].value, где v.text – переменная, в которую +записан результат работы модуля, \[1\] – номер листа в документе +(нумерация по переменным-спискам начинается с 0), \[100\] – 101-ое слово +в файле, value – само значение слова. + +## Модуль «Распознавание текста ABBYY» + +Модуль «Распознавание текста ABBYY» работает, в основном, с PDF-файлами. +В отличие от предыдущего модуля имеет более высокую точность и скорость +работы. + +Результат распознавания записывается в переменную-объект, в которой +можно обратиться к конкретной строке, таблице, слову. + +### Интерфейс модуля + +Данный модуль состоит из двух полей – «Путь к PDF-файлу» и «Переменная». + + + +Рис. 10... Окно модуля + +**Поле «Путь к PDF файлу».** В поле указывается путь до распознаваемого +файла/картинки. + +**Поле «Переменная»**. В поле вводится имя переменной, начиная с +символов «v.», в которую будет занесен результат распознавания. + +PDF файл может состоять из нескольких страниц, поэтому переменная будет +являться списком страниц. Например, v.text\[0\] – первая распознанная +страница файла. + +Весь распознанный текст делится на две части – основной текст и +табличная часть. + +### Основной текст + +Для обращения к тексту, необходимо обращаться к полю **rows\_word\[0\]** +(в данной записи \[0\] означает, что идет обращение к первой текстовой +части, в других версиях ABBYY возможно использование большего разбиения +текста). Затем указывается, как отдельное поле, номер строки и, через +точку, номер слова в строке – **v.text\[0\].rows\_word\[0\].2.4**. +Затем, после выбора нужного слова, можно получить его значение, +обратившись к полю value – **v.text\[0\].rows\_word\[0\].2.4.value** – +такая строка выдаст значение слова, находящегося на первой странице +распознанного документа, во второй строке и является четвертой слева. + +### Табличная часть + +Для обращения к таблице, необходимо обращаться к полю **tables\[0\]** +(\[0\] нужен для корректной работы, его смысловая часть заложена в +продукте ABBYY). Затем отдельным полем вводится номер таблицы, так как +на странице их может быть несколько – **v.text\[0\].tables\[0\].0**. +После этого вводится номер ячейки в таблице в виде одного числа. Если вы +хотите найти ячейку и знаете её номер колонки и строки, то можно +получить индекс рассматриваемой ячейки переменной в виде +«строка,колонка», обратившись к полю index – +**v.text\[0\].tables\[0\].0.5.index** (5 – пятая ячейка в массиве +распознанных ячеек). Для получения значения из ячейки нужно обратиться к +её значению, а затем либо собрать всю строку, записанную в ячейку, либо +обратиться к конкретному слову по его порядковому номеру – +**v.text\[0\].tables\[0\].0.5.value.1.value** – значение второго слова +из пятой ячейки первой таблицы с первой страницы распознанного текста. + +Для получения количества ячеек в таблице используйте следующую +конструкцию – **v.text\[0\].tables\[0\].0.length**, то есть используйся +метод «length» после того поля, после которого идет поле, количество +элементов которого необходимо узнать. + +Для получения количества слов в ячейке используйте +**v.text\[0\].tables\[0\].0.5.length**. + +# Модуль «telegram» + +Модуль «Telegram» позволяет использовать мессенджер Telegram в роботах – +с помощью него можно считывать и отправлять сообщения, вложения. Можно +управлять ботом, оповещать пользователей о начале или окончании работы +робота и многое другое. + +Следует заметить, что на данный момент модуль находится в стадии +разработки и работает исключительно из самой программы (не работает +через оркестратор). + +## Основные моменты модуля + +Интерфейс модуля состоит из блока настроек, области добавления команды, +таблицы со списком команд и кнопок «Сохранить»/«Отмена». + + + +Рис. 11... Окно модуля «Telegram» + +### Настройка модуля + +Блок настроек состоит из двух полей и кнопки. Данный модуль отвечает за +авторизацию в мессенджере. + +В **поле «Номер телефона»** должен быть введен номер телефона, на +котором зарегистрирован аккаунт. Номер должен начинаться с кода страны, +неважно, в каком формате (например, «8», «+7» или просто «7»). Если +необходимо войти под учетной записью telegram-бота, то в это поле +вписывается его токен, который выдается telegram’ом при его регистрации. + +После заполнения номера телефона (если это не бот), требуется нажать +кнопку **«Запросить код»**. В этот момент по этому номеру телефона в +telegram придет код подтверждения авторизации, как если бы вы входили с +другого устройства. Этот код необходимо ввести в **поле «Код +авторизации»**. + +*Обратите внимание*, что после того, как вы ввели код авторизации в +поле, вы еще **не авторизовались в telegram**. Авторизация произойдет в +момент запуска робота. В этот момент в telegram поступит сообщение, что +был совершен вход в аккаунт. Если вы ввели код, а затем сохранили проект +и вышли, при следующем входе и запуске робота велика вероятность того, +что код авторизации уже не действителен, так как у него есть свой срок +действия (несколько минут). То есть, если вы решили подключить telegram, +то перед сохранением проекта, запустите его хотя бы на одном тестовом +действии (считать сообщение или отправить его своему знакомому). + +### Функциональность модуля + +#### Создание команды + +Команда создается следующим образом – выбирается необходимое действие, +заполняются остальные поля – нажимается кнопка «Добавить», по которой +команда добавляется в «Список команд». + +#### Редактирование команды + +Для того чтобы отредактировать команду, выделите её в списке команд +щелчком левой кнопкой мыши, после чего все поля в области добавления +команд заполнятся в соответствии с выбранной командой. Измените те поля, +которые требуется отредактировать, и, убедившись, что в списке команд +все еще выбрано нужное действие, нажмите на кнопку «Редактировать». + +#### Удаление команды + +Для удаления команды необходимо выбрать её в списке команд и нажать на +кнопку «Удалить». + +#### Отключение/включение команды + +Созданные команды можно отключать и обратно включать. Отключенные +команды не будут выполняться. Сделать это можно, нажав на +соответствующую отключаемой команде строку правой кнопкой мыши и выбрав +«Отключить/включить». + + + +Рис. 11... Контекстное меню команды + +#### Выбор файла/папки + +Кнопка + +в поле «Вложения» открывает стандартный диалог выбора файла. + +#### Изменение порядка действий + +Для изменения порядка действий предусмотрены кнопки «Поднять» и +«Опустить». Кнопки расположены справа сверху от списка команд. + +Изменение порядка действий бывает необходимо, когда требуется добавить +действие, которое не предусмотрели сразу и не внесли в список команд. В +таком случае вы можете добавить действие стандартным способом, а затем +переместить его. + +#### Сохранение и выход + +После добавления всех необходимых действий в список команд, модуль +необходимо сохранить. Делается это по кнопке «Сохранить» в правом нижнем +углу модуля. + + + +Рис. 11... Кнопка «Сохранить» + +## Описание действий + +#### Отправить сообщение + +Данное действие позволяет отправить сообщение пользователю или в чат. + +В поле «Пользователь» указывается username пользователя или его номер +телефона или полное название чата, в который необходимо отправить +сообщение. Чтобы узнать username пользователя, необходимо открыть +подробную информацию о нём. + +Чтобы отправить несколько вложений, необходимо разделить путь до каждого +вложения символом «;». Каждое вложение будет отправлено отдельным +сообщением. Если при этом текст сообщения так же заполнен, то **каждое +вложение будет отправлено с этим текстом сообщения**. Если нужно +отправить и текст, и несколько вложений, лучше разделить это на две +отдельные команды – отправку вложений и отправку текста. + + + +Рис. 11... Пример заполнения действия «Отправить сообщение» + +#### Получить список всех диалогов + +С помощью этого действия можно получить список всех диалогов с +пользователями. Настройка действия состоит только из указания +переменной, в которую запишется результат выполнения действия. + +Переменная будет являться массивом объектов с полями: Username, +FirstName, LastName и Phone, которые будут заполняться соответствующими +полями из профиля Telegram текущего диалога. + + + +Рис. 11... Пример заполнения действия «Получить список всех диалогов» + +Результат заполнения переменной представлен на следующем рисунке. + + + +Рис. 11... Пример заполнения переменной в результате выполнения действия +«Получить список всех диалогов» + +#### Получить список всех чатов и каналов + +С помощью этого действия можно получить список всех чатов и каналов, в +которых присутствует авторизованный аккаунт. Настройка действия состоит +только из указания переменной, в которую запишется результат выполнения +действия. + +Переменная будет являться массивом объектов с полями: Id и Title. По +любому из этих параметров затем можно отправлять сообщения в чат или +канал (если авторизованный пользователь имеет соответствующие права). + + + +Рис. 11... Пример заполнения действия «Получить список всех чатов и +каналов» + +#### Получить список чатов с непрочитанными сообщениями + +С помощью этого действия можно получить список всех чатов, в которых у +авторизованного пользователя есть непрочитанные сообщения. Настройка +действия состоит только из указания переменной, в которую запишется +результат выполнения действия. + +Переменная будет являться массивом объектов с полями: Name и +UnreadCount, Name будет содержать название чата, UnreadCount – +количество непрочитанных сообщений в чате. + + + +Рис. 11... Пример заполнения действия «Получить список чатов с +непрочитанными сообщениями» + +#### Получить непрочитанные сообщения от пользователя + +С помощью этого действия можно получить список всех непрочитанных +сообщений от определенного пользователя. Для настройки действия +необходимо заполнить поле «Пользователь» (username/телефон +пользователя), из диалога с которым нужно получить непрочитанные +сообщения, и поле «Переменная», в которую запишется результат действия. + +Переменная будет являться массивом объектов с полями: Massge и Date, где +в поле Message лежит текст сообщения, в Date дата и время в формате +дд.мм.гггг ч.мм.сс. + + + +Рис. 11... Пример заполнения действия «Получить непрочитанные сообщения +от пользователя» + +# ДРУГИЕ МОДУЛИ + +## Модуль «Вычисления» + +Модуль «Вычисления» является связующим модулем или модулем пред- и +постобработки данных из других модулей. Данный модуль необходим для +создания, вычисления и изменения значений переменных. Модуль позволяет +производить вычисления и обработку информации с помощью языка +программирования JavaScript. + +### Интерфейс модуля + +Окно модуля очень простое и состоит всего лишь из поля для ввода и +кнопок «Сохранить» и «Отмена». + + + +Рис. 12... Окно модуля + +**Поле «Выражение».** В поле вводится код на языке программирования +JavaScript. Возможно использование локальных переменных модуля (с +объявлением их через let, var или const, но они не будут видны в других +модулях скрипта робота), либо переменных студии, которые должны +начинаться с символов «v.». + +Модуль полностью подчиняется правилам языка JavaScript, то есть +поддерживаются все стандартные функции JS, разделение строк производится +посредством ввода символа «;» или переходом строки (клавиша Enter). + +### Пример работы с модулем + +Предположим, необходимо получить последний день предыдущего месяца. +Сделаем это с помощью ввода следующего кода: + +Листинг 12... Получение последнего дня предыдущего месяца + + + +Рис. 12... Пример заполнения модуля + +Что делает написанный выше код? А вот что – получаем сегодняшний день, +например, сегодня 25 марта, из этой даты мы берем информацию о текущем +годе и месяце, затем создаем новый экземпляр даты, устанавливая в +качестве года и месяца текущие, а в качестве дня – нулевой, вследствие +чего язык JS создаст дату с последним днем предыдущего месяца. Более +подробно: + +1 строка – создание нового экземпляра даты без передачи параметров, в +следствиии чего создастся сегодняшняя дата (date = 25.03.2020); + +2 строка – использование метода getFullYear, который возвращает полный +год даты, к которой он применен (year = 2020); + +3 строка – использование метода getMonth, который возвращает месяц даты, +к которой он применен (month = 2, так как месяца в JS считаются с 0); + +4 строка – создание нового экземпляра даты, в качестве параметров +подаются текущий год, текущий месяц и 0 в качестве дня (v.lastDay = +29.02.2020); + +5 строка – получение числа последнего дня предыдущего месяца (v.lastDay += 29). + +В качестве знакомства с языком программирования JavaScript рекомендуем к +изучению интернет-ресурс «Современный учебник JavaScript», доступный по +ссылке . + +## Модуль «Запустить процесс» + +Модуль «Запустить процесс» предназначен для запуска каких-либо +приложений. Это может быть браузер, MS Word, 1С и другие. + +### Интерфейс модуля + +Окно модуля состоит из полей «Путь к файлу», «Параметры», флажок «От +имени администратора», «Пауза», «Переменная с именем процесса» и +«Переменная с id процесса», а также кнопок «Сохранить» и «Отмена». + + + +Рис. 12... Окно модуля + +**Поле «Путь к файлу»**. В данное поле вводится название стандартного +процесса Windows (например, notepad – блокнот), либо путь до корневого +расположения программы, например, стандартный путь до браузера Google +Chrome - C:\\Program Files +(x86)\\Google\\Chrome\\Application\\chrome.exe. + +**Поле «Параметры»** является необязательным полем, в него вводятся +аргументы вызываемого приложения. Например, для открытия нового блокнота +или чистого листа Excel-аргументы не нужны, но если необходимо открыть +конкретный файл, то в аргументы передается название файла, а если +открывается браузер, то аргументом может быть ссылка на сайт. + + + +Рис. 12... Пример заполнения + +**Флажок «От имени администратора»** запускает процесс с правами, +позволяющими запускаемому процессу вносить изменения в системные файлы +компьютера. ***Если вы не доверяете приложению, то не стоит ставить этот +флажок.*** + +**Поле «Пауза»** устанавливает время ожидания после начала запуска +процесса. + +**Поле «Переменная с именем/id процесса».** В данное поле вводятся +переменные, в которые будут помещены имя и идентификатор (id) +запускаемого процесса соответственно. Данные параметры нужны, чтобы в +дальнейшем можно было завершить (закрыть) указанные процессы. ***Если у +вас задача только запустить процессы, то можете оставить эти поля +пустыми.*** + +**Флажок «Скрыто»** запускает процесс со свойством hide (скрытый), то +есть запускает фоновый процесс. + +**Флажок «Ожидать завершения»** позволяет данному модулю дождаться +окончания работы процесса и только затем продолжить работу робота. + +## Модуль «Завершить процесс» + +Модуль «Завершить процесс» предназначен для завершения ранее запущенных +процессов по их имени и идентификатору. + +### Интерфейс модуля + +Окно состоит из двух полей – имени и идентификатора (id) завершаемого +процесса. + + + +Рис. 12... Окно модуля + +Если завершаемый процесс запускался через модуль «Запустить процесс», то +в эти поля передаются переменные, указанные в одноименных полях окна +запуска процессов. В противном случае, если известно имя процесса, +который необходимо завершить, достаточно ввести только его, но (!) в +таком случае ***завершатся все процессы с подобным именем.*** Например, +если вы захотите закрыть excel-файл и напишете просто «Excel», то +закроются все excel-файлы, которые были открыты. + +## Модуль «SQL» + +Модуль «SQL» обеспечивает работу с базами данных. Поддерживаемые СУБД: +MS SQL и PostgreSQL. + +### Интерфейс модуля + +Данный модуль обеспечивает работу с базами данных. Поддерживаются такие +СУБД, как MS SQL и PostgreSQL. Для работы с БД ***необходимо заполнить +все поля*** окна «Модуль SQL». + +Окно состоит из следующих полей: «СУБД», «Источник данных», «База +данных», «Логин», «Пароль», «Время ожидания», «SQL-скрипт» и +«Переменная». + + + +Рис. 12... Пример заполнения модуля + +**Поля** «СУБД», **«Источник данных», «База данных», «Логин» и +«Пароль»** обеспечивают подключение к БД. + +**Поле «Время ожидания»**. В данное поле вводится значение времени в +секундах, которое должно хватить запросу на выполнение. Без этого поля +робот может работать бесконечно долго из-за исключительных ситуаций, +поэтому заполнение этого поля является обязательным. Для небольших +запросов значение может быть равно 20 секунд, для больших – минута и +более. + +**Поле «SQL-скрипт»**. В данное поле вводится скрипт на языке SQL, +поддерживается ввод переменных студии. При использовании переменных +студии необходимо подать в это поле строку в следующем виде: весь скрипт +должен быть взят в кавычки, за исключением переменных студии (как +показано на рисунке 11.40.1). + +**Поле «Переменная»**. В поле вводится название переменной, в которую +будет записан ответ от базы данных в виде таблицы. *В одном SQL-модуле +может возвращаться только одна таблица, последующие будут +проигнорированы.* + +## Модуль «HTTP OData» + +Http-запросы – запросы для передачи информации между сайтами (или +серверами) и клиентами (например, нами). + +Модуль «HTTP OData» предназначен для отправки запросов по протоколу +***http***[9] к интеграционному сервису 1С – OData. + +### Интерфейс модуля + +Данный модуль состоит из полей: «Ссылка», «Логин», «Пароль», +«Переменная» и «Тип запроса». + + + +Рис. 12... Пример настройки GET запроса + +**Поле «Ссылка»**. В поле вводится необходимый URL-адрес. + +**Поле «Переменная»**. В поле вводится название переменной, в которую +будет помещен ответ. + +**Поля «Логин» и Пароль».** Предназначены для ввода логина и пароля при +авторизации. + +**Поле «Тип запроса».** Позволяет выбрать необходимый тип запроса. +Доступны методы «GET», «PUT», «POST» и «PUTCH». + +**Поле «Запрос».** В поле вводится HTTP-сообщение, согласно общим +правилам его структуры. Доступно к заполнению только при выборе типов +запроса «PUT», «POST» и «PUTCH». + +## Модуль «HTTP запрос» + +Http-запросы – запросы для передачи информации между сайтами (или +серверами) и клиентами (например, нами). + +Модуль «HTTP запрос» предназначен для отправки запросов по протоколу +***http***. + +### Интерфейс модуля + +Данный модуль состоит из полей: «Ссылка», «Переменная», «Тип запроса» и +вкладок Headers и Body с одинаковыми полями Name и Value. Внизу модуля +расположена таблица с добавленными значениями аргументов. + + + +Рис. 12... Интерфейс модуля «HTTP запрос» + +**Поле «Ссылка»**. В поле вводится необходимый URL-адрес. + +**Поле «Переменная»**. В поле вводится название переменной, в которую +будет помещен ответ. + +**Поле «Тип запроса».** Позволяет выбрать необходимый тип запроса. +Доступны методы «GET» и «POST». + +**Поля «Name» и «Value» вкладок «Headers» и «Body»** предназначены для +составления http-запроса. + +## Модуль «FTP запрос». + +Модуль позволяет отправлять запросы по ***FTP***[10] протоколу. + +### Интерфейс модуля + +Модуль состоит из нескольких полей для подключения к серверу, ввода +названия переменной и выпадающего списка с выбором действия. + + + +Рис. 12... Интерфейс модуля «FTP запрос» + +**Поле «Ссылка»** предназначено для ввода ссылки для подключения к FTP +серверу. + +**Поле «Логин»** заполняется логином подключающегося к серверу +пользователя. + +**Поле «Пароль»** заполняется паролем пользователя для доступа к +серверу. + +**Поле «Переменная»** предназначено для ввода названия переменной, в +которую будет помещен результат выполнения модуля. + +**Пол «Действие»** предоставляет перечень доступных действий с FTP +сервером. + +## Модуль «JSON» + +Данный модуль предназначен для обработки данных в формате JSON – +парсинга JSON-объектов. + +### Интерфейс модуля + +В окне модуля расположены поля для ввода значений: «Переменная» и +«JSON», и кнопки «Сохранить» и «Отмена». + + + +Рис. 12... Окно модуля + +**Поле «Переменная».** В поле «Переменная» вводится название переменной, +которая будет преобразована в объектную переменную с полями, имеющимися +в JSON-объекте. + +**Поле «JSON».** В поле необходимо описать объект в формате JSON, в виде +пар «ключ»: «значение», обрамлённых в фигурные скобки. JSON-объект может +быть описан непосредственно текстом в поле «JSON» либо быть созданным в +процессе выполнения других модулей. В случае формирования JSON-объекта в +других модулях, в поле необходимо ввести название переменной, в которой +лежит необходимый объект. + +**ПРИМЕР.** + +Пусть у нас есть текст в формате JSON. Введем его в поле JSON модуля, а +результат пусть запишется в переменную v.a. + + + +Рис. 12... Пример заполнения + +В результате переменная v.a станет объектом с полями «name» и «age». К +полям объекта можно обратиться, написав название поля через точку после +переменной. Проверить значение переменной можно с помощью функционала +«Узнать значение переменной», доступного по кнопке + +в обозревателе решений. + + + +Рис. 12... Получение значения из поля «name» переменной «a» + +На рисунке 12.44.3 видно, что на основе текста формата JSON создалась +переменная с указанными в нем полями и заполненными значениями. + +## Модуль «XML» + +Модуль «XML» предназначен для парсинга текста формата XML. Результатом +работы модуля будет объект с полями и свойствами, указанными в исходном +тексте. + +### Интерфейс модуля + +Окно модуля состоит из двух полей – поля «Переменная» и «XML». + + + +Рис. 12... Окно модуля «XML» + +Поле «Переменная» заполняется названием переменной, в которую будет +возвращен объект – результат работы модуля. + +Поле «XML» заполняется текстом в формате XML или переменной, содержащей +этот текст. + +Результат работы модуля при его настройке, указанной на рисунке 12.45.2: + + + +Рис. 12... Объект – +результат парсинга XML + +## Модуль «PDF» + +Данный модуль позволяет работать с PDF файлами. В его возможности входит +получение текста из документа, изображений, и объединение нескольких PDF +файлов. + +### Интерфейс модуля + +Модуль состоит из 4-х полей, доступность которых определяется выбранным +действием, кнопок управления создаваемым действием и таблицей-списком +созданных действий. + + + +Рис. 12... Интерфейс модуля «PDF» + +**Поле «Действие».** Представляет собой выпадающий список из доступных в +модуле действий. + +**Поле «Документ 1».** Поле, в которое вводится путь до рабочего файла. +По кнопке в поле открывается диалог выбора файла. + +**Поле «Документ 2».** Поле, в которое вводится путь до второго рабочего +файла, используется для действий, требующих несколько файлов (например, +объединение 2-х PDF). По кнопке в поле открывается диалог выбора файла. + +**Поле «Переменная».** Поле, для ввода названия переменной, в которую +будет возвращен результат работы модуля. + +### Перечень и описание действий + +#### Получить text + +Действие позволяет получить текст из файла PDF, если тот является +непосредственно текстом, а не изображением. Полученный текст будет +записан в указанную переменную. + + + +Рис. 12... Пример настройки действия «Получить text» + +#### Получить image + +Действие получает все изображения из PDF файла и сохраняет их в формате +.jpg в указанную в поле «Папка» директорию. В указанную переменную будет +записан список путей до выделенных изображений. + + + +Рис. 12... Пример настройки действия «Получить image» + +#### Объединить документы + +Действие объединяет два указанных PDF файла и сохраняет их в файле, +который необходимо указать в поле «Значение». + + + +Рис. 12... Пример настройки действия «Объединить документы» + +## Модуль «Пауза» + +Модуль «Пауза» предназначен для создания некоторой паузы между модулями. + +Вся настройка модуля заключается в заполнении поля «Пауза» - количество +миллисекунд, которые необходимо подождать. Допускается использование +переменной. + + + +Рис. 12... Окно модуля «Пауза» + +## Модуль «Прокси» + +Модуль «Прокси» предназначен для создания подключения к прокси-серверу. + +Для использования модуля необходимо заполнить адрес прокси-сервера. + + + +Рис. 12... Окно модуля «Прокси» + +## Модуль «Лог» + +Модуль «Лог» предназначен для вывода некоторых сообщений или значений +переменных в «Отладочный вывод» во время работы робота. + + + +Рис. 12... Окно модуля «Лог» + +# Оркестратор + +## Общая информация + +Оркестратор роботов - сервис запуска роботов по составленному расписанию +и/или некоторым событиям. Доступ к оркестратору осуществляется по +нажатию кнопки + +в панели управления главного окна студии. После нажатия на кнопку будет +открыто окно, позволяющее опубликовать нового робота и/или настроить +расписание запусков уже опубликованных роботов. + + + +Рис. 13... Окно оркестратора + +Оркестратор состоит из 3-х разделов и кнопки публикации текущего робота. +Разделы оркестратора: + +- Задачи – раздел, позволяющий создавать новую задачу; + +- Роботы – список всех опубликованных текущим пользователем роботов; + +- Список задач пользователя – список всех задач, созданных текущим + пользователем. + +Кнопка «Опубликовать текущего робота» добавляет активного на данный +момент в студии робота в список опубликованных роботов. Если данный +робот был уже однажды загружен в оркестратор, то повторное нажатие +кнопки его обновит. Привязка робота идет не по имени, а по его +идентификатору, который присваивается роботу при его первоначальном +создании. + +Создание задач описано далее. + +После создания всех задач необходимо просто закрыть окно оркестратора. + +Для работы оркестратора необходимо установить программу Lexema-RPA +Client, которая, находясь в фоновом режиме работы на компьютере, +просматривает созданные вами задачи и запускает роботов в соответствии с +их расписанием. Для её скачивания необходимо посетить сайт + +и выбрать там «Скачать Lexema-RPA Client». Инструкция по использованию +находится там же. + +## Создание новой задачи + +Для создания расписания запуска одного робота нужно создать задачу. Для +настройки задачи необходимо заполнить 6 полей – это наименование задачи, +выбор робота из опубликованных, время первого запуска робота, количество +повторов и интервал запуска, машина для запуска, на которой запущен RPA +Client. + + + +Рис. 13... Перечень полей для настройки задачи запуска + +**Наименование задачи.** Название задачи для запуска конкретного робота, +идентификатор, по которому вам будет удобнее ориентироваться среди всех +ваших задач. + +**Робот.** Выбор робота, для которого составляется задача запуска. Поле +представлено выпадающим списком, в котором предложены все ваши +опубликованные роботы. + + + +Рис. 13... Выпадающий список с перечнем опубликованных роботов + +**Первый запуск.** Время первого запуска робота, после которого он будет +запускаться с определенным интервалом. Выбираются и дата, и время. + +**Повторы.** Общее количество повторных запусков робота. Если робота +повторять не нужно, и он должен отработать только 1 раз, количество +повторов равно 0. Если необходимо, чтобы робот отрабатывал по 2 раза в +день в течение недели, не учитывая его первый запуск, то количество +повторов равно 2\*7-1 = 13. + +**Интервал запуска.** Время, через которое необходим повторный запуск +робота (если повторы есть). Для настройки поля необходимо нажать на +кнопку-стрелочку в углу поля. + + + +Рис. 13... Кнопка открытия настроек интервала + +По нажатию на неё откроется вспомогательное окно выбора интервала +запуска робота. + + + +Рис. 13... Настройка интервала запуска робота + +Если необходимо, чтобы робот запускался 25 числа каждого месяца, +необходимо в первом запуске установить дату ближайшего 25 числа месяца, +а настройке интервала ввести значение «1» в строке «Месяц», то есть, +осуществлять повторы каждый месяц. + +*Между каждым повтором будет установлен одинаковый интервал*. Если +необходимо запускать робота с *разными* временными интервалами, то +необходимо создать несколько задач его запуска, например, если требуется +запуск в 10:00 и в 13:00 одного дня на протяжении недели, то необходимо +создать *две* задачи, количество повторений которых равно 6 (каждый +день, не считая первого запуска), интервал запуска – 24 часа или 1 день, +отличаться у этих задач будут только время первого запуска – у одной в +10:00 дня, когда нужно начать, у другой – в 13:00. + +После заполнения нужных строк в окне интервала и нажатию на кнопку +«Сохранить», в поле «Интервал» отобразится строка вида +«год:месяц:день:час:минуты:секунды», например, при установке интервала в +12 часов, строка будет иметь вид «0:0:0:12:0:0». Поле «Интервал» +является ***обязательным***, если количество повторов отличное от 0. + +**RPA-Client.** Если существует несколько разных машин (компьютеров), на +которых авторизован один и тот же пользователь и запущены программы +Lexema RPA-Client, то данное поле позволяет выбрать, на какой из этих +машин необходимо запускать выбранного робота. Если неважно, на какой +конкретно машине должен запускаться робот, то поле можно оставить +пустым, тогда робот будет запускаться на одной из свободных машин. + +Пример заполненной задачи: + + + +Рис. 13... Пример настройки задачи + +По нажатию кнопки «Добавить», расположенной под полями для настройки +задач, задача будет добавлена в список задач. + + + +Рис. 13... Список задач пользователя с добавленной задачей + +Для редактирования существующей задачи необходимо найти её в списке +задач и нажать на неё (1 на рисунке 13.51.7). После этого будут +заполнены поля для настройки задачи соответствующими полями. Затем, +после редактирования полей (2 на рисунке 12.51.7), необходимо нажать на +кнопку «Редактировать» и изменения сохранятся (3 на рисунке 12.51.7). + + + +Рис. 13... Пример редактирования задачи + +Для удаления задачи её нужно найти и выбрать в списке задач пользователя +и затем нажать кнопку «Удалить». + +## Раздел «Роботы» + +Данный раздел состоит из поля поиска робота по его названию и списка +опубликованных роботов. При публикации, роботу присваивается уникальный +идентификатор, поэтому названия роботов в списке опубликованных могут +повторяться. + + + +Рис. 13... Раздел «Роботы» + +Для загрузки, отладки или редактирования существующего робота, +необходимо открыть его как проект в студии. Для этого необходимо нажать +на иконку Lexema-RPA соответствующего робота. + + + +Рис. 13... Кнопка «Загрузить робота в студию» + +После редактирования робота необходимо нажать на кнопку «Опубликовать +текущего робота», после чего редактируемый робот сохранит свои +изменения. + +Для удаления робота необходимо нажать на красный крестик в его блоке. + + + +Рис. 13... Кнопка удаления робота из оркестратора + +## Просмотр истории выполнений + +При нажатии правой кнопкой мыши по задаче в списке задач появляется +контекстное меню, позволяющее перейти к статистике выполнений или логам +задачи. + + + +Рис. 13... Контекстное меню задачи + +Статистика выполнения открывается так же при двойном клике по задаче. + + + +Рис. 13... Статистика выполнения + +В данном окне отображаются состояния задачи – время запуска, время +окончания и статус работы – Success (успешно) или Failed (провалено). +Если строка пустая, значит робот по каким-то причинам был приостановлен, +например был остановлен клиент или убит процесс в «Диспетчере задач». + +В окне логов отображается более детальная информация – начало и +окончание работы модуля робота. + + + +Рис. 13... Логи + +# Конфигурирование Lexema-rpa studio + +## Файл конфигурации + +Lexema-RPA Studio содержит некоторые настройки, которые подходят +большинству пользователей, но в некоторых случаях они должны быть +изменены. Такие настройки вынесены в файл конфигурации, который +находится в папке с программой и называется «Lexema-RPA +Studio.exe.config». Открыть данный файл можно любым текстовым +редактором, например Блокнотом. + + + +Рис. 14... Файл конфигурации + +Настройки, которые можно изменять, находятся в блоке appSettings. +Приведенные ниже можно изменять пользователям, остальные не +рекомендуется. Доступные для изменения настройки: + +1. AbbyyFreDllPath - путь до папки с драйвером ABBYY (для + пользователей, приобрётших лицензию ABBYY); + +2. useFileLog - использовать логирование в текстовый файл, по умолчанию + значение true, запись ведется во временную директорию системы, в + папку Lexema-RPA; + +3. useEmail – использовать логирование с отправкой письма с ошибкой на + почту. Настройки почты вводятся в поля emailHost, emailPort, + emailUseSSL, emailName и emailPass. В поле emailAdmin вводится + адрес, на который должно прийти письмо; + +4. SeleniumUserAgent – поле, отвечающее за агента, от которого + эмулируется запуск Google Chrome в модуле «Работа с браузером»; + +5. SeleniumProfilePath – путь до папки с профилем пользователя, от + имени которого необходимо запускать Google Chrome по умолчанию + (модуль «Работа с браузером»); + +6. SeleniumProxyExtensionPath – при использовании прокси-сервера в + модуле «Работа с браузером» используется расширение + ChromeProxyExtension.exe, если по какой-то причине программа не + может найти расширение, то в этом поле необходимо прописать полный + путь до расширения (оно находится в папке с программой); + +7. OrchestratorURL – адрес подключения к оркестратору (для закрытых + корпоративных сетей). + +[1] Эмуля́ция (англ. emulation) в вычислительной технике — комплекс +программных, аппаратных средств или их сочетание, предназначенное для +копирования (или эмулирования) функций одной вычислительной системы +(гостя) на другой, отличной от первой, вычислительной системе (хосте) +таким образом, чтобы эмулированное поведение как можно ближе +соответствовало поведению оригинальной системы (гостя). + +[2] HR (англ.яз., Human resources) — область управления персоналом. + +[3] Те́ндер (англ. tender) — заявка на подряд, поданная на конкурсной +основе. + +[4] Контраге́нт – лицо или учреждение, берущее на себя известные +обязательства по договору. + +[5] Оркестратор роботов — сервис запуска роботов по составленному +расписанию и событиям. + +[6] Selenium WebDriver – это программная библиотека для управления +браузерами. + +[7] Селектор — это часть CSS-правила, которая сообщает браузеру, к +какому элементу (или элементам) веб-страницы будет применён стиль. + +[8] Тег - элемент языка разметки. + +[9] HTTP ([англ.](https://ru.wikipedia.org/wiki/%D0%90%D0%BD%D0%B3%D0%BB%D0%B8%D0%B9%D1%81%D0%BA%D0%B8%D0%B9_%D1%8F%D0%B7%D1%8B%D0%BA) HyperText +Transfer Protocol — «протокол +передачи [гипертекста](https://ru.wikipedia.org/wiki/%D0%93%D0%B8%D0%BF%D0%B5%D1%80%D1%82%D0%B5%D0%BA%D1%81%D1%82)») — [протокол](https://ru.wikipedia.org/wiki/%D0%A1%D0%B5%D1%82%D0%B5%D0%B2%D0%BE%D0%B9_%D0%BF%D1%80%D0%BE%D1%82%D0%BE%D0%BA%D0%BE%D0%BB) [прикладного +уровня](https://ru.wikipedia.org/wiki/%D0%9F%D1%80%D0%BE%D1%82%D0%BE%D0%BA%D0%BE%D0%BB%D1%8B_%D0%BF%D1%80%D0%B8%D0%BA%D0%BB%D0%B0%D0%B4%D0%BD%D0%BE%D0%B3%D0%BE_%D1%83%D1%80%D0%BE%D0%B2%D0%BD%D1%8F) передачи +данных изначально — в виде гипертекстовых документов в формате +«[HTML](https://ru.wikipedia.org/wiki/HTML)», в настоящий момент +используется для передачи произвольных данных. + +[10] FTP (англ. File Transfer Protocol) — протокол передачи файлов по +сети, построенный на архитектуре «клиент-сервер». Широко используется +для распространения ПО и доступа к удалённым хостам. diff --git a/docs/index.md b/docs/index.md index 10b0cc4..57c574a 100644 --- a/docs/index.md +++ b/docs/index.md @@ -1,39 +1,150 @@ -#

ВВЕДЕНИЕ

+# ВВЕДЕНИЕ + +Руководство предназначено для людей, которые хотят научиться писать +роботов в программе Lexema-RPA Studio. Вы познакомитесь со всеми +инструментами студии и основными модулями, применяемыми для создания +роботов. + +Lexema-RPA Studio, далее именуемая просто студия, предоставляет +пользователю возможность настраивать последовательность взаимодействий с +разнообразными программами. Взаимодействие настраивается с помощью +программных модулей, которые поставляются в составе студии. Каждый +модуль представляет собой отдельный функционал, необходимый для +выполнения конкретного действия, и механизмы для его настройки. -

Руководство предназначено для людей, которые хотят научиться писать роботов в программе Lexema-RPA Studio. Вы познакомитесь со всеми инструментами студии и основными модулями, применяемыми для создания роботов.

-

Lexema-RPA Studio, далее именуемая просто студия, предоставляет пользователю возможность настраивать последовательность взаимодействий с разнообразными программами. Взаимодействие настраивается с помощью программных модулей, которые поставляются в составе студии. Каждый модуль представляет собой отдельный функционал, необходимый для выполнения конкретного действия, и механизмы для его настройки.

## Назначение программы -Программа Lexema-RPA Studio предназначена для разработки программных роботов. + +Программа Lexema-RPA Studio предназначена для разработки программных +роботов. + ## Что такое RPA? -Robotic process automation (или RPA) — это форма технологии автоматизации бизнес-процессов, основанная на метафорическом программном обеспечении роботов (ботов) или работников искусственного интеллекта. Роботы RPA используют пользовательский интерфейс для сбора данных и управления приложениями. -Более простыми словами, RPA — это программные роботы, которые эмулируют действия человека, производимые им на компьютере. + +***Robotic process automation (или RPA)*** — это форма технологии +автоматизации бизнес-процессов, основанная на метафорическом программном +обеспечении роботов (ботов) или работников искусственного интеллекта. +Роботы RPA используют пользовательский интерфейс для сбора данных и +управления приложениями. + +Более простыми словами, ***RPA*** — это программные роботы, которые +эмулируют[1] действия человека, производимые им на компьютере. + ## Что могут роботы? -Роботы могут выполнять рутинные операции на компьютере вместо человека:
-• вводить данные с клавиатуры, манипулировать мышью, считывать информацию с экрана, получать и обрабатывать почту, взаимодействовать с офисными программами;
-• интегрировать данные из одной системы в другую без использования дополнительных средств. + +Роботы могут выполнять рутинные операции на компьютере вместо человека: + +- вводить данные с клавиатуры, манипулировать мышью, считывать + информацию с экрана, получать и обрабатывать почту, + взаимодействовать с офисными программами; + +- интегрировать данные из одной системы в другую без использования + дополнительных средств. + ## Сколько нужно времени для создания роботов? -Роботы создаются в простом графическом интерфейсе, и время, затраченное на робота, напрямую зависит от его сложности – простых роботов можно написать за пару часов, на более трудоемких может уйти несколько дней. + +Роботы создаются в простом графическом интерфейсе, и время, затраченное +на робота, напрямую зависит от его сложности – простых роботов можно +написать за пару часов, на более трудоемких может уйти несколько дней. + ## Области использования роботов -### Роботы-дублёры (интеграторы) -• Перенос информации из одной системы в другую;
-• Перезаполнение данных. -### HR-роботы -• Поиск вакансий по заданным критериям. -### Роботы-операторы -• Регистрация и ввод данных по скан-копиям документов. -### Роботы-консолидаторы -• Консолидация данных в отчет;
-• Массовая отправка или печать отчетов. -### Роботы-закупщики -• Мониторинг торговых площадок;
-• Выгрузка информации о тендерах ;
-• Отбор поставщиков на основании заданных условий. -### Роботы-продавцы -• Проверка благонадежности контрагентов;
-• Формирование коммерческих предложений. + +***Роботы-дублёры (интеграторы)*** + +- Перенос информации из одной системы в другую; + +- Перезаполнение данных. + +***HR-роботы***[2] + +- Поиск вакансий по заданным критериям. + +***Роботы-операторы*** + +- Регистрация и ввод данных по скан-копиям документов. + +***Роботы-консолидаторы*** + +- Консолидация данных в отчет; + +- Массовая отправка или печать отчетов. + +***Роботы-закупщики*** + +- Мониторинг торговых площадок; + +- Выгрузка информации о тендерах[3]; + +- Отбор поставщиков на основании заданных условий. + +***Роботы-продавцы*** + +- Проверка благонадежности контрагентов[4]; + +- Формирование коммерческих предложений. + ## С чего начать -Для начала работы скачайте студию Lexema-RPA Studio на сайте сайте. Перед началом скачивания вам будет предложена регистрация. Регистрация на сайте обязательна, так как доступ в студию осуществляется после авторизации пользователя. После окончания регистрации начнется скачивание установщика. -После этого запустите установщик и в открывшемся диалоговом окне нажмите на кнопку «Next». +Для начала работы скачайте студию Lexema-RPA Studio ***на сайте** +*. Перед началом +скачивания вам будет предложена регистрация. Регистрация на сайте +обязательна, так как доступ в студию осуществляется после авторизации +пользователя. После окончания регистрации начнется скачивание +установщика. +После этого запустите установщик и в открывшемся диалоговом окне нажмите +на кнопку «Next». +media\image2.png + +Затем нажмите на кнопку «Install». + +media\image3.png + +После этого начнется установка студии. + +media\image4.png + +Затем начнется установка и конфигурация сервера Node.js, необходимого +для работы студии. + + + +Наконец, нажмите на кнопку «Finish». + +media\image5.png + +По завершению установки появится ярлык программы на рабочем столе. + +media\image6.png + +**СОВЕТ.** Если у вас не получилось запустить или установить +студию, установите (обновите*) **.NET Framework 4.7.2 ***(Runtime +версия). Сделать это можно по +[ссылке](https://dotnet.microsoft.com/download/dotnet-framework/net472) +(Центр загрузки Windows). + +После запуска программы появится окно авторизации, в которое следует +ввести логин и пароль, указанные при регистрации. + + + +**Флажок «Запомнить меня»** запомнит ваши логин и пароль для последующих +входов с текущего устройства. + +**Кнопка «Войти».** По нажатию на кнопку произойдет вход в программу и +откроется окно студии. + +**Кнопка «Восстановление пароля»**. Если вы не помните ваш пароль, то по +нажатию этой кнопки откроется окошко, предлагающее ввести вам e-mail, +указанный при регистрации, на него будет отправлена инструкция по +восстановлению пароля от программы. + +**«Регистрация»** - по этой кнопке можно зарегистрироваться в системе, +если у вас еще нет логина и пароля для входа. + +Если текущая версия программы не последняя, то перед авторизацией вам +будет предложено скачать и установить обновление. + +При нажатии на *Eng* справа от названия программы, программа +перезапустится и весь язык интерфейса будет изменен на английский. Для +перехода обратно на русский язык нужно будет проделать аналогичные +действия. \ No newline at end of file diff --git a/docs/media/image1.jpg b/docs/media/image1.jpg new file mode 100644 index 0000000..61fdb6a Binary files /dev/null and b/docs/media/image1.jpg differ diff --git a/docs/media/image10.png b/docs/media/image10.png new file mode 100644 index 0000000..d22d473 Binary files /dev/null and b/docs/media/image10.png differ diff --git a/docs/media/image100.png b/docs/media/image100.png new file mode 100644 index 0000000..886a16d Binary files /dev/null and b/docs/media/image100.png differ diff --git a/docs/media/image101.png b/docs/media/image101.png new file mode 100644 index 0000000..5a4c3ff Binary files /dev/null and b/docs/media/image101.png differ diff --git a/docs/media/image102.png b/docs/media/image102.png new file mode 100644 index 0000000..224d379 Binary files /dev/null and b/docs/media/image102.png differ diff --git a/docs/media/image103.png b/docs/media/image103.png new file mode 100644 index 0000000..e6724ec Binary files /dev/null and b/docs/media/image103.png differ diff --git a/docs/media/image104.png b/docs/media/image104.png new file mode 100644 index 0000000..f67dcfa Binary files /dev/null and b/docs/media/image104.png differ diff --git a/docs/media/image105.png b/docs/media/image105.png new file mode 100644 index 0000000..461c60d Binary files /dev/null and b/docs/media/image105.png differ diff --git a/docs/media/image106.png b/docs/media/image106.png new file mode 100644 index 0000000..8ccbd5f Binary files /dev/null and b/docs/media/image106.png differ diff --git a/docs/media/image107.png b/docs/media/image107.png new file mode 100644 index 0000000..140f3fa Binary files /dev/null and b/docs/media/image107.png differ diff --git a/docs/media/image108.png b/docs/media/image108.png new file mode 100644 index 0000000..3d0e370 Binary files /dev/null and b/docs/media/image108.png differ diff --git a/docs/media/image109.png b/docs/media/image109.png new file mode 100644 index 0000000..6d8f48e Binary files /dev/null and b/docs/media/image109.png differ diff --git a/docs/media/image11.png b/docs/media/image11.png new file mode 100644 index 0000000..b896ee6 Binary files /dev/null and b/docs/media/image11.png differ diff --git a/docs/media/image110.png b/docs/media/image110.png new file mode 100644 index 0000000..8ff9a8e Binary files /dev/null and b/docs/media/image110.png differ diff --git a/docs/media/image111.png b/docs/media/image111.png new file mode 100644 index 0000000..d79a9ce Binary files /dev/null and b/docs/media/image111.png differ diff --git a/docs/media/image112.png b/docs/media/image112.png new file mode 100644 index 0000000..4599573 Binary files /dev/null and b/docs/media/image112.png differ diff --git a/docs/media/image113.png b/docs/media/image113.png new file mode 100644 index 0000000..927b94f Binary files /dev/null and b/docs/media/image113.png differ diff --git a/docs/media/image114.png b/docs/media/image114.png new file mode 100644 index 0000000..ac1e051 Binary files /dev/null and b/docs/media/image114.png differ diff --git a/docs/media/image115.png b/docs/media/image115.png new file mode 100644 index 0000000..6cec372 Binary files /dev/null and b/docs/media/image115.png differ diff --git a/docs/media/image116.png b/docs/media/image116.png new file mode 100644 index 0000000..511ef20 Binary files /dev/null and b/docs/media/image116.png differ diff --git a/docs/media/image117.png b/docs/media/image117.png new file mode 100644 index 0000000..4108a45 Binary files /dev/null and b/docs/media/image117.png differ diff --git a/docs/media/image118.png b/docs/media/image118.png new file mode 100644 index 0000000..ade5dfa Binary files /dev/null and b/docs/media/image118.png differ diff --git a/docs/media/image119.png b/docs/media/image119.png new file mode 100644 index 0000000..adf4d19 Binary files /dev/null and b/docs/media/image119.png differ diff --git a/docs/media/image12.png b/docs/media/image12.png new file mode 100644 index 0000000..7be5c03 Binary files /dev/null and b/docs/media/image12.png differ diff --git a/docs/media/image120.png b/docs/media/image120.png new file mode 100644 index 0000000..59d8194 Binary files /dev/null and b/docs/media/image120.png differ diff --git a/docs/media/image121.png b/docs/media/image121.png new file mode 100644 index 0000000..2887103 Binary files /dev/null and b/docs/media/image121.png differ diff --git a/docs/media/image122.png b/docs/media/image122.png new file mode 100644 index 0000000..36dc1cf Binary files /dev/null and b/docs/media/image122.png differ diff --git a/docs/media/image123.png b/docs/media/image123.png new file mode 100644 index 0000000..a233ef1 Binary files /dev/null and b/docs/media/image123.png differ diff --git a/docs/media/image124.png b/docs/media/image124.png new file mode 100644 index 0000000..9132158 Binary files /dev/null and b/docs/media/image124.png differ diff --git a/docs/media/image125.png b/docs/media/image125.png new file mode 100644 index 0000000..124156c Binary files /dev/null and b/docs/media/image125.png differ diff --git a/docs/media/image126.png b/docs/media/image126.png new file mode 100644 index 0000000..b0737ea Binary files /dev/null and b/docs/media/image126.png differ diff --git a/docs/media/image127.png b/docs/media/image127.png new file mode 100644 index 0000000..10791e3 Binary files /dev/null and b/docs/media/image127.png differ diff --git a/docs/media/image128.png b/docs/media/image128.png new file mode 100644 index 0000000..fe9c852 Binary files /dev/null and b/docs/media/image128.png differ diff --git a/docs/media/image129.png b/docs/media/image129.png new file mode 100644 index 0000000..e6a4356 Binary files /dev/null and b/docs/media/image129.png differ diff --git a/docs/media/image13.png b/docs/media/image13.png new file mode 100644 index 0000000..77af599 Binary files /dev/null and b/docs/media/image13.png differ diff --git a/docs/media/image130.png b/docs/media/image130.png new file mode 100644 index 0000000..e2363a2 Binary files /dev/null and b/docs/media/image130.png differ diff --git a/docs/media/image131.png b/docs/media/image131.png new file mode 100644 index 0000000..e30566b Binary files /dev/null and b/docs/media/image131.png differ diff --git a/docs/media/image132.png b/docs/media/image132.png new file mode 100644 index 0000000..43b5deb Binary files /dev/null and b/docs/media/image132.png differ diff --git a/docs/media/image133.png b/docs/media/image133.png new file mode 100644 index 0000000..c41106b Binary files /dev/null and b/docs/media/image133.png differ diff --git a/docs/media/image134.png b/docs/media/image134.png new file mode 100644 index 0000000..daf8daa Binary files /dev/null and b/docs/media/image134.png differ diff --git a/docs/media/image135.png b/docs/media/image135.png new file mode 100644 index 0000000..0d8c402 Binary files /dev/null and b/docs/media/image135.png differ diff --git a/docs/media/image136.png b/docs/media/image136.png new file mode 100644 index 0000000..c2b0f01 Binary files /dev/null and b/docs/media/image136.png differ diff --git a/docs/media/image137.png b/docs/media/image137.png new file mode 100644 index 0000000..c082bfc Binary files /dev/null and b/docs/media/image137.png differ diff --git a/docs/media/image138.png b/docs/media/image138.png new file mode 100644 index 0000000..9d805ce Binary files /dev/null and b/docs/media/image138.png differ diff --git a/docs/media/image139.png b/docs/media/image139.png new file mode 100644 index 0000000..26e36f0 Binary files /dev/null and b/docs/media/image139.png differ diff --git a/docs/media/image14.png b/docs/media/image14.png new file mode 100644 index 0000000..5152af0 Binary files /dev/null and b/docs/media/image14.png differ diff --git a/docs/media/image140.png b/docs/media/image140.png new file mode 100644 index 0000000..9729a74 Binary files /dev/null and b/docs/media/image140.png differ diff --git a/docs/media/image141.png b/docs/media/image141.png new file mode 100644 index 0000000..3979a3a Binary files /dev/null and b/docs/media/image141.png differ diff --git a/docs/media/image142.png b/docs/media/image142.png new file mode 100644 index 0000000..aef2f12 Binary files /dev/null and b/docs/media/image142.png differ diff --git a/docs/media/image143.png b/docs/media/image143.png new file mode 100644 index 0000000..5cc1d19 Binary files /dev/null and b/docs/media/image143.png differ diff --git a/docs/media/image144.png b/docs/media/image144.png new file mode 100644 index 0000000..78a9b57 Binary files /dev/null and b/docs/media/image144.png differ diff --git a/docs/media/image145.png b/docs/media/image145.png new file mode 100644 index 0000000..843cfae Binary files /dev/null and b/docs/media/image145.png differ diff --git a/docs/media/image146.png b/docs/media/image146.png new file mode 100644 index 0000000..d821b7f Binary files /dev/null and b/docs/media/image146.png differ diff --git a/docs/media/image147.png b/docs/media/image147.png new file mode 100644 index 0000000..196acbe Binary files /dev/null and b/docs/media/image147.png differ diff --git a/docs/media/image148.png b/docs/media/image148.png new file mode 100644 index 0000000..f931327 Binary files /dev/null and b/docs/media/image148.png differ diff --git a/docs/media/image149.png b/docs/media/image149.png new file mode 100644 index 0000000..fe783b4 Binary files /dev/null and b/docs/media/image149.png differ diff --git a/docs/media/image15.png b/docs/media/image15.png new file mode 100644 index 0000000..8a96dda Binary files /dev/null and b/docs/media/image15.png differ diff --git a/docs/media/image150.png b/docs/media/image150.png new file mode 100644 index 0000000..cc8c544 Binary files /dev/null and b/docs/media/image150.png differ diff --git a/docs/media/image151.png b/docs/media/image151.png new file mode 100644 index 0000000..e4fd8dc Binary files /dev/null and b/docs/media/image151.png differ diff --git a/docs/media/image152.png b/docs/media/image152.png new file mode 100644 index 0000000..871b1a1 Binary files /dev/null and b/docs/media/image152.png differ diff --git a/docs/media/image153.png b/docs/media/image153.png new file mode 100644 index 0000000..619a1af Binary files /dev/null and b/docs/media/image153.png differ diff --git a/docs/media/image154.png b/docs/media/image154.png new file mode 100644 index 0000000..7ed2201 Binary files /dev/null and b/docs/media/image154.png differ diff --git a/docs/media/image155.png b/docs/media/image155.png new file mode 100644 index 0000000..8b6887f Binary files /dev/null and b/docs/media/image155.png differ diff --git a/docs/media/image156.png b/docs/media/image156.png new file mode 100644 index 0000000..2cfeb98 Binary files /dev/null and b/docs/media/image156.png differ diff --git a/docs/media/image157.png b/docs/media/image157.png new file mode 100644 index 0000000..8ddc8b8 Binary files /dev/null and b/docs/media/image157.png differ diff --git a/docs/media/image158.png b/docs/media/image158.png new file mode 100644 index 0000000..4ee757e Binary files /dev/null and b/docs/media/image158.png differ diff --git a/docs/media/image159.png b/docs/media/image159.png new file mode 100644 index 0000000..078f602 Binary files /dev/null and b/docs/media/image159.png differ diff --git a/docs/media/image16.png b/docs/media/image16.png new file mode 100644 index 0000000..d59c1bc Binary files /dev/null and b/docs/media/image16.png differ diff --git a/docs/media/image160.png b/docs/media/image160.png new file mode 100644 index 0000000..cadda3e Binary files /dev/null and b/docs/media/image160.png differ diff --git a/docs/media/image161.png b/docs/media/image161.png new file mode 100644 index 0000000..7f4d237 Binary files /dev/null and b/docs/media/image161.png differ diff --git a/docs/media/image162.png b/docs/media/image162.png new file mode 100644 index 0000000..43a6887 Binary files /dev/null and b/docs/media/image162.png differ diff --git a/docs/media/image163.png b/docs/media/image163.png new file mode 100644 index 0000000..654155f Binary files /dev/null and b/docs/media/image163.png differ diff --git a/docs/media/image164.png b/docs/media/image164.png new file mode 100644 index 0000000..97e4321 Binary files /dev/null and b/docs/media/image164.png differ diff --git a/docs/media/image165.png b/docs/media/image165.png new file mode 100644 index 0000000..bbf02d5 Binary files /dev/null and b/docs/media/image165.png differ diff --git a/docs/media/image166.png b/docs/media/image166.png new file mode 100644 index 0000000..5493fc7 Binary files /dev/null and b/docs/media/image166.png differ diff --git a/docs/media/image167.png b/docs/media/image167.png new file mode 100644 index 0000000..c8fee35 Binary files /dev/null and b/docs/media/image167.png differ diff --git a/docs/media/image168.png b/docs/media/image168.png new file mode 100644 index 0000000..d3adffa Binary files /dev/null and b/docs/media/image168.png differ diff --git a/docs/media/image169.png b/docs/media/image169.png new file mode 100644 index 0000000..9ef7b88 Binary files /dev/null and b/docs/media/image169.png differ diff --git a/docs/media/image17.png b/docs/media/image17.png new file mode 100644 index 0000000..922c6f3 Binary files /dev/null and b/docs/media/image17.png differ diff --git a/docs/media/image170.png b/docs/media/image170.png new file mode 100644 index 0000000..5cd2dd1 Binary files /dev/null and b/docs/media/image170.png differ diff --git a/docs/media/image171.png b/docs/media/image171.png new file mode 100644 index 0000000..883f1db Binary files /dev/null and b/docs/media/image171.png differ diff --git a/docs/media/image172.png b/docs/media/image172.png new file mode 100644 index 0000000..cc4c40f Binary files /dev/null and b/docs/media/image172.png differ diff --git a/docs/media/image173.png b/docs/media/image173.png new file mode 100644 index 0000000..58ce326 Binary files /dev/null and b/docs/media/image173.png differ diff --git a/docs/media/image174.png b/docs/media/image174.png new file mode 100644 index 0000000..4df3b09 Binary files /dev/null and b/docs/media/image174.png differ diff --git a/docs/media/image175.png b/docs/media/image175.png new file mode 100644 index 0000000..8d6e8ce Binary files /dev/null and b/docs/media/image175.png differ diff --git a/docs/media/image176.png b/docs/media/image176.png new file mode 100644 index 0000000..5deea93 Binary files /dev/null and b/docs/media/image176.png differ diff --git a/docs/media/image177.png b/docs/media/image177.png new file mode 100644 index 0000000..716457b Binary files /dev/null and b/docs/media/image177.png differ diff --git a/docs/media/image178.png b/docs/media/image178.png new file mode 100644 index 0000000..11d49a0 Binary files /dev/null and b/docs/media/image178.png differ diff --git a/docs/media/image179.png b/docs/media/image179.png new file mode 100644 index 0000000..f19d32c Binary files /dev/null and b/docs/media/image179.png differ diff --git a/docs/media/image18.png b/docs/media/image18.png new file mode 100644 index 0000000..ceafd01 Binary files /dev/null and b/docs/media/image18.png differ diff --git a/docs/media/image180.png b/docs/media/image180.png new file mode 100644 index 0000000..c909b2a Binary files /dev/null and b/docs/media/image180.png differ diff --git a/docs/media/image181.png b/docs/media/image181.png new file mode 100644 index 0000000..08431ef Binary files /dev/null and b/docs/media/image181.png differ diff --git a/docs/media/image182.png b/docs/media/image182.png new file mode 100644 index 0000000..6449b2f Binary files /dev/null and b/docs/media/image182.png differ diff --git a/docs/media/image183.png b/docs/media/image183.png new file mode 100644 index 0000000..cf74215 Binary files /dev/null and b/docs/media/image183.png differ diff --git a/docs/media/image184.png b/docs/media/image184.png new file mode 100644 index 0000000..de7e6a6 Binary files /dev/null and b/docs/media/image184.png differ diff --git a/docs/media/image185.png b/docs/media/image185.png new file mode 100644 index 0000000..c4ff3c8 Binary files /dev/null and b/docs/media/image185.png differ diff --git a/docs/media/image186.png b/docs/media/image186.png new file mode 100644 index 0000000..722ca11 Binary files /dev/null and b/docs/media/image186.png differ diff --git a/docs/media/image187.png b/docs/media/image187.png new file mode 100644 index 0000000..34137e7 Binary files /dev/null and b/docs/media/image187.png differ diff --git a/docs/media/image188.png b/docs/media/image188.png new file mode 100644 index 0000000..8f8758b Binary files /dev/null and b/docs/media/image188.png differ diff --git a/docs/media/image189.png b/docs/media/image189.png new file mode 100644 index 0000000..d23e01e Binary files /dev/null and b/docs/media/image189.png differ diff --git a/docs/media/image19.png b/docs/media/image19.png new file mode 100644 index 0000000..b9d3cd3 Binary files /dev/null and b/docs/media/image19.png differ diff --git a/docs/media/image190.png b/docs/media/image190.png new file mode 100644 index 0000000..0a0107f Binary files /dev/null and b/docs/media/image190.png differ diff --git a/docs/media/image191.png b/docs/media/image191.png new file mode 100644 index 0000000..490a2c1 Binary files /dev/null and b/docs/media/image191.png differ diff --git a/docs/media/image192.png b/docs/media/image192.png new file mode 100644 index 0000000..e1989f5 Binary files /dev/null and b/docs/media/image192.png differ diff --git a/docs/media/image193.png b/docs/media/image193.png new file mode 100644 index 0000000..5ed197b Binary files /dev/null and b/docs/media/image193.png differ diff --git a/docs/media/image194.png b/docs/media/image194.png new file mode 100644 index 0000000..5f5e25e Binary files /dev/null and b/docs/media/image194.png differ diff --git a/docs/media/image195.png b/docs/media/image195.png new file mode 100644 index 0000000..1287af2 Binary files /dev/null and b/docs/media/image195.png differ diff --git a/docs/media/image196.png b/docs/media/image196.png new file mode 100644 index 0000000..f67b6ad Binary files /dev/null and b/docs/media/image196.png differ diff --git a/docs/media/image197.png b/docs/media/image197.png new file mode 100644 index 0000000..132f065 Binary files /dev/null and b/docs/media/image197.png differ diff --git a/docs/media/image198.png b/docs/media/image198.png new file mode 100644 index 0000000..aaf5a23 Binary files /dev/null and b/docs/media/image198.png differ diff --git a/docs/media/image199.png b/docs/media/image199.png new file mode 100644 index 0000000..65298c6 Binary files /dev/null and b/docs/media/image199.png differ diff --git a/docs/media/image2.png b/docs/media/image2.png new file mode 100644 index 0000000..73218e0 Binary files /dev/null and b/docs/media/image2.png differ diff --git a/docs/media/image20.png b/docs/media/image20.png new file mode 100644 index 0000000..2147e8e Binary files /dev/null and b/docs/media/image20.png differ diff --git a/docs/media/image200.png b/docs/media/image200.png new file mode 100644 index 0000000..e3cc311 Binary files /dev/null and b/docs/media/image200.png differ diff --git a/docs/media/image201.png b/docs/media/image201.png new file mode 100644 index 0000000..c73ab5f Binary files /dev/null and b/docs/media/image201.png differ diff --git a/docs/media/image202.png b/docs/media/image202.png new file mode 100644 index 0000000..003096b Binary files /dev/null and b/docs/media/image202.png differ diff --git a/docs/media/image203.png b/docs/media/image203.png new file mode 100644 index 0000000..457b16c Binary files /dev/null and b/docs/media/image203.png differ diff --git a/docs/media/image204.png b/docs/media/image204.png new file mode 100644 index 0000000..bfee04f Binary files /dev/null and b/docs/media/image204.png differ diff --git a/docs/media/image205.png b/docs/media/image205.png new file mode 100644 index 0000000..999e492 Binary files /dev/null and b/docs/media/image205.png differ diff --git a/docs/media/image206.png b/docs/media/image206.png new file mode 100644 index 0000000..42344e9 Binary files /dev/null and b/docs/media/image206.png differ diff --git a/docs/media/image207.png b/docs/media/image207.png new file mode 100644 index 0000000..e9e7fab Binary files /dev/null and b/docs/media/image207.png differ diff --git a/docs/media/image208.png b/docs/media/image208.png new file mode 100644 index 0000000..115c196 Binary files /dev/null and b/docs/media/image208.png differ diff --git a/docs/media/image209.png b/docs/media/image209.png new file mode 100644 index 0000000..175eae4 Binary files /dev/null and b/docs/media/image209.png differ diff --git a/docs/media/image21.png b/docs/media/image21.png new file mode 100644 index 0000000..6934c76 Binary files /dev/null and b/docs/media/image21.png differ diff --git a/docs/media/image210.png b/docs/media/image210.png new file mode 100644 index 0000000..5c50cf9 Binary files /dev/null and b/docs/media/image210.png differ diff --git a/docs/media/image211.png b/docs/media/image211.png new file mode 100644 index 0000000..b674580 Binary files /dev/null and b/docs/media/image211.png differ diff --git a/docs/media/image212.png b/docs/media/image212.png new file mode 100644 index 0000000..346efe0 Binary files /dev/null and b/docs/media/image212.png differ diff --git a/docs/media/image213.png b/docs/media/image213.png new file mode 100644 index 0000000..f277949 Binary files /dev/null and b/docs/media/image213.png differ diff --git a/docs/media/image214.png b/docs/media/image214.png new file mode 100644 index 0000000..d91b8d8 Binary files /dev/null and b/docs/media/image214.png differ diff --git a/docs/media/image215.png b/docs/media/image215.png new file mode 100644 index 0000000..86004bc Binary files /dev/null and b/docs/media/image215.png differ diff --git a/docs/media/image216.png b/docs/media/image216.png new file mode 100644 index 0000000..79db34b Binary files /dev/null and b/docs/media/image216.png differ diff --git a/docs/media/image217.png b/docs/media/image217.png new file mode 100644 index 0000000..3171183 Binary files /dev/null and b/docs/media/image217.png differ diff --git a/docs/media/image218.png b/docs/media/image218.png new file mode 100644 index 0000000..b926073 Binary files /dev/null and b/docs/media/image218.png differ diff --git a/docs/media/image219.png b/docs/media/image219.png new file mode 100644 index 0000000..21e4ec4 Binary files /dev/null and b/docs/media/image219.png differ diff --git a/docs/media/image22.png b/docs/media/image22.png new file mode 100644 index 0000000..28a279b Binary files /dev/null and b/docs/media/image22.png differ diff --git a/docs/media/image220.png b/docs/media/image220.png new file mode 100644 index 0000000..e2ceddf Binary files /dev/null and b/docs/media/image220.png differ diff --git a/docs/media/image221.png b/docs/media/image221.png new file mode 100644 index 0000000..9ea6b8f Binary files /dev/null and b/docs/media/image221.png differ diff --git a/docs/media/image222.png b/docs/media/image222.png new file mode 100644 index 0000000..7a61d92 Binary files /dev/null and b/docs/media/image222.png differ diff --git a/docs/media/image223.png b/docs/media/image223.png new file mode 100644 index 0000000..fda02c9 Binary files /dev/null and b/docs/media/image223.png differ diff --git a/docs/media/image224.png b/docs/media/image224.png new file mode 100644 index 0000000..681179a Binary files /dev/null and b/docs/media/image224.png differ diff --git a/docs/media/image225.png b/docs/media/image225.png new file mode 100644 index 0000000..9c3bafe Binary files /dev/null and b/docs/media/image225.png differ diff --git a/docs/media/image226.png b/docs/media/image226.png new file mode 100644 index 0000000..af5741e Binary files /dev/null and b/docs/media/image226.png differ diff --git a/docs/media/image227.png b/docs/media/image227.png new file mode 100644 index 0000000..f4c3fe3 Binary files /dev/null and b/docs/media/image227.png differ diff --git a/docs/media/image228.png b/docs/media/image228.png new file mode 100644 index 0000000..be4ecc6 Binary files /dev/null and b/docs/media/image228.png differ diff --git a/docs/media/image229.png b/docs/media/image229.png new file mode 100644 index 0000000..55d2c6e Binary files /dev/null and b/docs/media/image229.png differ diff --git a/docs/media/image23.png b/docs/media/image23.png new file mode 100644 index 0000000..73fc94f Binary files /dev/null and b/docs/media/image23.png differ diff --git a/docs/media/image230.png b/docs/media/image230.png new file mode 100644 index 0000000..e53b630 Binary files /dev/null and b/docs/media/image230.png differ diff --git a/docs/media/image231.png b/docs/media/image231.png new file mode 100644 index 0000000..861d2d7 Binary files /dev/null and b/docs/media/image231.png differ diff --git a/docs/media/image232.png b/docs/media/image232.png new file mode 100644 index 0000000..9c69f62 Binary files /dev/null and b/docs/media/image232.png differ diff --git a/docs/media/image233.png b/docs/media/image233.png new file mode 100644 index 0000000..48da8f2 Binary files /dev/null and b/docs/media/image233.png differ diff --git a/docs/media/image234.png b/docs/media/image234.png new file mode 100644 index 0000000..dc56d79 Binary files /dev/null and b/docs/media/image234.png differ diff --git a/docs/media/image235.png b/docs/media/image235.png new file mode 100644 index 0000000..e38035f Binary files /dev/null and b/docs/media/image235.png differ diff --git a/docs/media/image236.png b/docs/media/image236.png new file mode 100644 index 0000000..f686dd2 Binary files /dev/null and b/docs/media/image236.png differ diff --git a/docs/media/image237.png b/docs/media/image237.png new file mode 100644 index 0000000..09c0e7f Binary files /dev/null and b/docs/media/image237.png differ diff --git a/docs/media/image238.png b/docs/media/image238.png new file mode 100644 index 0000000..a587d6b Binary files /dev/null and b/docs/media/image238.png differ diff --git a/docs/media/image239.png b/docs/media/image239.png new file mode 100644 index 0000000..a911e78 Binary files /dev/null and b/docs/media/image239.png differ diff --git a/docs/media/image24.png b/docs/media/image24.png new file mode 100644 index 0000000..0d576d2 Binary files /dev/null and b/docs/media/image24.png differ diff --git a/docs/media/image240.png b/docs/media/image240.png new file mode 100644 index 0000000..b41f294 Binary files /dev/null and b/docs/media/image240.png differ diff --git a/docs/media/image241.jpeg b/docs/media/image241.jpeg new file mode 100644 index 0000000..4ae741c Binary files /dev/null and b/docs/media/image241.jpeg differ diff --git a/docs/media/image242.png b/docs/media/image242.png new file mode 100644 index 0000000..d071e77 Binary files /dev/null and b/docs/media/image242.png differ diff --git a/docs/media/image243.png b/docs/media/image243.png new file mode 100644 index 0000000..59dcebd Binary files /dev/null and b/docs/media/image243.png differ diff --git a/docs/media/image244.png b/docs/media/image244.png new file mode 100644 index 0000000..1fd9d2f Binary files /dev/null and b/docs/media/image244.png differ diff --git a/docs/media/image245.png b/docs/media/image245.png new file mode 100644 index 0000000..87946c5 Binary files /dev/null and b/docs/media/image245.png differ diff --git a/docs/media/image246.png b/docs/media/image246.png new file mode 100644 index 0000000..4cb65b1 Binary files /dev/null and b/docs/media/image246.png differ diff --git a/docs/media/image247.png b/docs/media/image247.png new file mode 100644 index 0000000..818fe27 Binary files /dev/null and b/docs/media/image247.png differ diff --git a/docs/media/image248.png b/docs/media/image248.png new file mode 100644 index 0000000..bc4f768 Binary files /dev/null and b/docs/media/image248.png differ diff --git a/docs/media/image249.png b/docs/media/image249.png new file mode 100644 index 0000000..2aaecaa Binary files /dev/null and b/docs/media/image249.png differ diff --git a/docs/media/image25.png b/docs/media/image25.png new file mode 100644 index 0000000..1add634 Binary files /dev/null and b/docs/media/image25.png differ diff --git a/docs/media/image250.png b/docs/media/image250.png new file mode 100644 index 0000000..7c6d098 Binary files /dev/null and b/docs/media/image250.png differ diff --git a/docs/media/image251.png b/docs/media/image251.png new file mode 100644 index 0000000..314372c Binary files /dev/null and b/docs/media/image251.png differ diff --git a/docs/media/image252.png b/docs/media/image252.png new file mode 100644 index 0000000..08e5cfd Binary files /dev/null and b/docs/media/image252.png differ diff --git a/docs/media/image253.png b/docs/media/image253.png new file mode 100644 index 0000000..6c37412 Binary files /dev/null and b/docs/media/image253.png differ diff --git a/docs/media/image254.png b/docs/media/image254.png new file mode 100644 index 0000000..7f41613 Binary files /dev/null and b/docs/media/image254.png differ diff --git a/docs/media/image255.png b/docs/media/image255.png new file mode 100644 index 0000000..4d2d628 Binary files /dev/null and b/docs/media/image255.png differ diff --git a/docs/media/image256.png b/docs/media/image256.png new file mode 100644 index 0000000..f1ef428 Binary files /dev/null and b/docs/media/image256.png differ diff --git a/docs/media/image257.png b/docs/media/image257.png new file mode 100644 index 0000000..807b5bc Binary files /dev/null and b/docs/media/image257.png differ diff --git a/docs/media/image258.png b/docs/media/image258.png new file mode 100644 index 0000000..ae3c75c Binary files /dev/null and b/docs/media/image258.png differ diff --git a/docs/media/image259.png b/docs/media/image259.png new file mode 100644 index 0000000..307c9db Binary files /dev/null and b/docs/media/image259.png differ diff --git a/docs/media/image26.png b/docs/media/image26.png new file mode 100644 index 0000000..512547b Binary files /dev/null and b/docs/media/image26.png differ diff --git a/docs/media/image260.png b/docs/media/image260.png new file mode 100644 index 0000000..dec8ef3 Binary files /dev/null and b/docs/media/image260.png differ diff --git a/docs/media/image261.png b/docs/media/image261.png new file mode 100644 index 0000000..83df2e9 Binary files /dev/null and b/docs/media/image261.png differ diff --git a/docs/media/image262.png b/docs/media/image262.png new file mode 100644 index 0000000..9e2e4cb Binary files /dev/null and b/docs/media/image262.png differ diff --git a/docs/media/image263.png b/docs/media/image263.png new file mode 100644 index 0000000..d03c127 Binary files /dev/null and b/docs/media/image263.png differ diff --git a/docs/media/image264.png b/docs/media/image264.png new file mode 100644 index 0000000..9f65ece Binary files /dev/null and b/docs/media/image264.png differ diff --git a/docs/media/image265.png b/docs/media/image265.png new file mode 100644 index 0000000..d835c44 Binary files /dev/null and b/docs/media/image265.png differ diff --git a/docs/media/image266.png b/docs/media/image266.png new file mode 100644 index 0000000..73778f2 Binary files /dev/null and b/docs/media/image266.png differ diff --git a/docs/media/image267.png b/docs/media/image267.png new file mode 100644 index 0000000..fc0d9e7 Binary files /dev/null and b/docs/media/image267.png differ diff --git a/docs/media/image268.png b/docs/media/image268.png new file mode 100644 index 0000000..dc5ac97 Binary files /dev/null and b/docs/media/image268.png differ diff --git a/docs/media/image269.png b/docs/media/image269.png new file mode 100644 index 0000000..18e5729 Binary files /dev/null and b/docs/media/image269.png differ diff --git a/docs/media/image27.png b/docs/media/image27.png new file mode 100644 index 0000000..83d831b Binary files /dev/null and b/docs/media/image27.png differ diff --git a/docs/media/image270.png b/docs/media/image270.png new file mode 100644 index 0000000..7b2b9f9 Binary files /dev/null and b/docs/media/image270.png differ diff --git a/docs/media/image271.png b/docs/media/image271.png new file mode 100644 index 0000000..dd48129 Binary files /dev/null and b/docs/media/image271.png differ diff --git a/docs/media/image272.png b/docs/media/image272.png new file mode 100644 index 0000000..ebec861 Binary files /dev/null and b/docs/media/image272.png differ diff --git a/docs/media/image273.png b/docs/media/image273.png new file mode 100644 index 0000000..3f455ec Binary files /dev/null and b/docs/media/image273.png differ diff --git a/docs/media/image274.png b/docs/media/image274.png new file mode 100644 index 0000000..e6e3f33 Binary files /dev/null and b/docs/media/image274.png differ diff --git a/docs/media/image275.png b/docs/media/image275.png new file mode 100644 index 0000000..8f83238 Binary files /dev/null and b/docs/media/image275.png differ diff --git a/docs/media/image276.png b/docs/media/image276.png new file mode 100644 index 0000000..fb04063 Binary files /dev/null and b/docs/media/image276.png differ diff --git a/docs/media/image277.png b/docs/media/image277.png new file mode 100644 index 0000000..08e5794 Binary files /dev/null and b/docs/media/image277.png differ diff --git a/docs/media/image278.png b/docs/media/image278.png new file mode 100644 index 0000000..cf33552 Binary files /dev/null and b/docs/media/image278.png differ diff --git a/docs/media/image279.png b/docs/media/image279.png new file mode 100644 index 0000000..8db0bb5 Binary files /dev/null and b/docs/media/image279.png differ diff --git a/docs/media/image28.png b/docs/media/image28.png new file mode 100644 index 0000000..e4773d4 Binary files /dev/null and b/docs/media/image28.png differ diff --git a/docs/media/image280.png b/docs/media/image280.png new file mode 100644 index 0000000..a15ff0f Binary files /dev/null and b/docs/media/image280.png differ diff --git a/docs/media/image281.png b/docs/media/image281.png new file mode 100644 index 0000000..b12c5a4 Binary files /dev/null and b/docs/media/image281.png differ diff --git a/docs/media/image282.png b/docs/media/image282.png new file mode 100644 index 0000000..c8a83ee Binary files /dev/null and b/docs/media/image282.png differ diff --git a/docs/media/image283.png b/docs/media/image283.png new file mode 100644 index 0000000..2d5b72b Binary files /dev/null and b/docs/media/image283.png differ diff --git a/docs/media/image284.png b/docs/media/image284.png new file mode 100644 index 0000000..1b3c305 Binary files /dev/null and b/docs/media/image284.png differ diff --git a/docs/media/image285.png b/docs/media/image285.png new file mode 100644 index 0000000..9ff3107 Binary files /dev/null and b/docs/media/image285.png differ diff --git a/docs/media/image286.png b/docs/media/image286.png new file mode 100644 index 0000000..0f155a9 Binary files /dev/null and b/docs/media/image286.png differ diff --git a/docs/media/image287.png b/docs/media/image287.png new file mode 100644 index 0000000..6e6b8e4 Binary files /dev/null and b/docs/media/image287.png differ diff --git a/docs/media/image288.png b/docs/media/image288.png new file mode 100644 index 0000000..604acd8 Binary files /dev/null and b/docs/media/image288.png differ diff --git a/docs/media/image289.png b/docs/media/image289.png new file mode 100644 index 0000000..8d99a16 Binary files /dev/null and b/docs/media/image289.png differ diff --git a/docs/media/image29.png b/docs/media/image29.png new file mode 100644 index 0000000..f735d7f Binary files /dev/null and b/docs/media/image29.png differ diff --git a/docs/media/image290.png b/docs/media/image290.png new file mode 100644 index 0000000..cec45b5 Binary files /dev/null and b/docs/media/image290.png differ diff --git a/docs/media/image291.png b/docs/media/image291.png new file mode 100644 index 0000000..091febd Binary files /dev/null and b/docs/media/image291.png differ diff --git a/docs/media/image292.png b/docs/media/image292.png new file mode 100644 index 0000000..850dcc5 Binary files /dev/null and b/docs/media/image292.png differ diff --git a/docs/media/image293.png b/docs/media/image293.png new file mode 100644 index 0000000..0ceafbf Binary files /dev/null and b/docs/media/image293.png differ diff --git a/docs/media/image294.png b/docs/media/image294.png new file mode 100644 index 0000000..2961a3f Binary files /dev/null and b/docs/media/image294.png differ diff --git a/docs/media/image295.png b/docs/media/image295.png new file mode 100644 index 0000000..f1c3155 Binary files /dev/null and b/docs/media/image295.png differ diff --git a/docs/media/image296.png b/docs/media/image296.png new file mode 100644 index 0000000..e8920b0 Binary files /dev/null and b/docs/media/image296.png differ diff --git a/docs/media/image297.png b/docs/media/image297.png new file mode 100644 index 0000000..4872bb7 Binary files /dev/null and b/docs/media/image297.png differ diff --git a/docs/media/image298.png b/docs/media/image298.png new file mode 100644 index 0000000..760dea2 Binary files /dev/null and b/docs/media/image298.png differ diff --git a/docs/media/image299.png b/docs/media/image299.png new file mode 100644 index 0000000..712cde5 Binary files /dev/null and b/docs/media/image299.png differ diff --git a/docs/media/image3.png b/docs/media/image3.png new file mode 100644 index 0000000..afa236e Binary files /dev/null and b/docs/media/image3.png differ diff --git a/docs/media/image30.png b/docs/media/image30.png new file mode 100644 index 0000000..0296c9e Binary files /dev/null and b/docs/media/image30.png differ diff --git a/docs/media/image300.png b/docs/media/image300.png new file mode 100644 index 0000000..b68f486 Binary files /dev/null and b/docs/media/image300.png differ diff --git a/docs/media/image301.png b/docs/media/image301.png new file mode 100644 index 0000000..dbbc27a Binary files /dev/null and b/docs/media/image301.png differ diff --git a/docs/media/image302.png b/docs/media/image302.png new file mode 100644 index 0000000..460daad Binary files /dev/null and b/docs/media/image302.png differ diff --git a/docs/media/image303.png b/docs/media/image303.png new file mode 100644 index 0000000..474d66f Binary files /dev/null and b/docs/media/image303.png differ diff --git a/docs/media/image304.png b/docs/media/image304.png new file mode 100644 index 0000000..98d59d4 Binary files /dev/null and b/docs/media/image304.png differ diff --git a/docs/media/image305.png b/docs/media/image305.png new file mode 100644 index 0000000..cc0a9c0 Binary files /dev/null and b/docs/media/image305.png differ diff --git a/docs/media/image306.png b/docs/media/image306.png new file mode 100644 index 0000000..76cf853 Binary files /dev/null and b/docs/media/image306.png differ diff --git a/docs/media/image307.png b/docs/media/image307.png new file mode 100644 index 0000000..3d20947 Binary files /dev/null and b/docs/media/image307.png differ diff --git a/docs/media/image308.png b/docs/media/image308.png new file mode 100644 index 0000000..5d49bc9 Binary files /dev/null and b/docs/media/image308.png differ diff --git a/docs/media/image309.png b/docs/media/image309.png new file mode 100644 index 0000000..093e41d Binary files /dev/null and b/docs/media/image309.png differ diff --git a/docs/media/image31.png b/docs/media/image31.png new file mode 100644 index 0000000..7e1effc Binary files /dev/null and b/docs/media/image31.png differ diff --git a/docs/media/image310.png b/docs/media/image310.png new file mode 100644 index 0000000..3d16fc8 Binary files /dev/null and b/docs/media/image310.png differ diff --git a/docs/media/image311.png b/docs/media/image311.png new file mode 100644 index 0000000..34c5405 Binary files /dev/null and b/docs/media/image311.png differ diff --git a/docs/media/image312.png b/docs/media/image312.png new file mode 100644 index 0000000..f66afc0 Binary files /dev/null and b/docs/media/image312.png differ diff --git a/docs/media/image313.png b/docs/media/image313.png new file mode 100644 index 0000000..d1f5635 Binary files /dev/null and b/docs/media/image313.png differ diff --git a/docs/media/image314.png b/docs/media/image314.png new file mode 100644 index 0000000..a0d076f Binary files /dev/null and b/docs/media/image314.png differ diff --git a/docs/media/image315.png b/docs/media/image315.png new file mode 100644 index 0000000..36cf4e3 Binary files /dev/null and b/docs/media/image315.png differ diff --git a/docs/media/image316.png b/docs/media/image316.png new file mode 100644 index 0000000..7893d6e Binary files /dev/null and b/docs/media/image316.png differ diff --git a/docs/media/image317.png b/docs/media/image317.png new file mode 100644 index 0000000..669866d Binary files /dev/null and b/docs/media/image317.png differ diff --git a/docs/media/image318.png b/docs/media/image318.png new file mode 100644 index 0000000..a8024f9 Binary files /dev/null and b/docs/media/image318.png differ diff --git a/docs/media/image319.png b/docs/media/image319.png new file mode 100644 index 0000000..d24f242 Binary files /dev/null and b/docs/media/image319.png differ diff --git a/docs/media/image32.png b/docs/media/image32.png new file mode 100644 index 0000000..ab6136c Binary files /dev/null and b/docs/media/image32.png differ diff --git a/docs/media/image320.png b/docs/media/image320.png new file mode 100644 index 0000000..800a73c Binary files /dev/null and b/docs/media/image320.png differ diff --git a/docs/media/image321.png b/docs/media/image321.png new file mode 100644 index 0000000..9835713 Binary files /dev/null and b/docs/media/image321.png differ diff --git a/docs/media/image322.png b/docs/media/image322.png new file mode 100644 index 0000000..02c01ee Binary files /dev/null and b/docs/media/image322.png differ diff --git a/docs/media/image323.png b/docs/media/image323.png new file mode 100644 index 0000000..5991c1b Binary files /dev/null and b/docs/media/image323.png differ diff --git a/docs/media/image324.png b/docs/media/image324.png new file mode 100644 index 0000000..feb6dfd Binary files /dev/null and b/docs/media/image324.png differ diff --git a/docs/media/image325.png b/docs/media/image325.png new file mode 100644 index 0000000..e7ba125 Binary files /dev/null and b/docs/media/image325.png differ diff --git a/docs/media/image326.png b/docs/media/image326.png new file mode 100644 index 0000000..8ac0f52 Binary files /dev/null and b/docs/media/image326.png differ diff --git a/docs/media/image327.png b/docs/media/image327.png new file mode 100644 index 0000000..b20cb74 Binary files /dev/null and b/docs/media/image327.png differ diff --git a/docs/media/image328.png b/docs/media/image328.png new file mode 100644 index 0000000..90d36c6 Binary files /dev/null and b/docs/media/image328.png differ diff --git a/docs/media/image329.png b/docs/media/image329.png new file mode 100644 index 0000000..c23570b Binary files /dev/null and b/docs/media/image329.png differ diff --git a/docs/media/image33.png b/docs/media/image33.png new file mode 100644 index 0000000..aacf2ab Binary files /dev/null and b/docs/media/image33.png differ diff --git a/docs/media/image330.png b/docs/media/image330.png new file mode 100644 index 0000000..c1d6d05 Binary files /dev/null and b/docs/media/image330.png differ diff --git a/docs/media/image331.png b/docs/media/image331.png new file mode 100644 index 0000000..9f66afa Binary files /dev/null and b/docs/media/image331.png differ diff --git a/docs/media/image332.png b/docs/media/image332.png new file mode 100644 index 0000000..93f68e0 Binary files /dev/null and b/docs/media/image332.png differ diff --git a/docs/media/image333.png b/docs/media/image333.png new file mode 100644 index 0000000..87e372a Binary files /dev/null and b/docs/media/image333.png differ diff --git a/docs/media/image334.png b/docs/media/image334.png new file mode 100644 index 0000000..a314254 Binary files /dev/null and b/docs/media/image334.png differ diff --git a/docs/media/image335.png b/docs/media/image335.png new file mode 100644 index 0000000..cf355a3 Binary files /dev/null and b/docs/media/image335.png differ diff --git a/docs/media/image336.png b/docs/media/image336.png new file mode 100644 index 0000000..5395a0d Binary files /dev/null and b/docs/media/image336.png differ diff --git a/docs/media/image337.png b/docs/media/image337.png new file mode 100644 index 0000000..2373557 Binary files /dev/null and b/docs/media/image337.png differ diff --git a/docs/media/image338.png b/docs/media/image338.png new file mode 100644 index 0000000..86c2eae Binary files /dev/null and b/docs/media/image338.png differ diff --git a/docs/media/image339.png b/docs/media/image339.png new file mode 100644 index 0000000..9a8b7f4 Binary files /dev/null and b/docs/media/image339.png differ diff --git a/docs/media/image34.png b/docs/media/image34.png new file mode 100644 index 0000000..327b5ec Binary files /dev/null and b/docs/media/image34.png differ diff --git a/docs/media/image340.png b/docs/media/image340.png new file mode 100644 index 0000000..8f3fa49 Binary files /dev/null and b/docs/media/image340.png differ diff --git a/docs/media/image341.png b/docs/media/image341.png new file mode 100644 index 0000000..d54afee Binary files /dev/null and b/docs/media/image341.png differ diff --git a/docs/media/image342.png b/docs/media/image342.png new file mode 100644 index 0000000..f803c8b Binary files /dev/null and b/docs/media/image342.png differ diff --git a/docs/media/image343.png b/docs/media/image343.png new file mode 100644 index 0000000..3e2d980 Binary files /dev/null and b/docs/media/image343.png differ diff --git a/docs/media/image344.png b/docs/media/image344.png new file mode 100644 index 0000000..b20842b Binary files /dev/null and b/docs/media/image344.png differ diff --git a/docs/media/image345.png b/docs/media/image345.png new file mode 100644 index 0000000..4de7987 Binary files /dev/null and b/docs/media/image345.png differ diff --git a/docs/media/image346.png b/docs/media/image346.png new file mode 100644 index 0000000..bfed80b Binary files /dev/null and b/docs/media/image346.png differ diff --git a/docs/media/image347.png b/docs/media/image347.png new file mode 100644 index 0000000..e0af9e5 Binary files /dev/null and b/docs/media/image347.png differ diff --git a/docs/media/image348.png b/docs/media/image348.png new file mode 100644 index 0000000..ce55b0d Binary files /dev/null and b/docs/media/image348.png differ diff --git a/docs/media/image349.png b/docs/media/image349.png new file mode 100644 index 0000000..5de39c7 Binary files /dev/null and b/docs/media/image349.png differ diff --git a/docs/media/image35.png b/docs/media/image35.png new file mode 100644 index 0000000..1960c6e Binary files /dev/null and b/docs/media/image35.png differ diff --git a/docs/media/image350.png b/docs/media/image350.png new file mode 100644 index 0000000..b48e9fa Binary files /dev/null and b/docs/media/image350.png differ diff --git a/docs/media/image351.png b/docs/media/image351.png new file mode 100644 index 0000000..4fcea80 Binary files /dev/null and b/docs/media/image351.png differ diff --git a/docs/media/image36.png b/docs/media/image36.png new file mode 100644 index 0000000..8af99e5 Binary files /dev/null and b/docs/media/image36.png differ diff --git a/docs/media/image37.png b/docs/media/image37.png new file mode 100644 index 0000000..15a0da9 Binary files /dev/null and b/docs/media/image37.png differ diff --git a/docs/media/image38.png b/docs/media/image38.png new file mode 100644 index 0000000..d1a1b3e Binary files /dev/null and b/docs/media/image38.png differ diff --git a/docs/media/image39.png b/docs/media/image39.png new file mode 100644 index 0000000..c9d0ff3 Binary files /dev/null and b/docs/media/image39.png differ diff --git a/docs/media/image4.png b/docs/media/image4.png new file mode 100644 index 0000000..dd42d43 Binary files /dev/null and b/docs/media/image4.png differ diff --git a/docs/media/image40.png b/docs/media/image40.png new file mode 100644 index 0000000..4918239 Binary files /dev/null and b/docs/media/image40.png differ diff --git a/docs/media/image41.png b/docs/media/image41.png new file mode 100644 index 0000000..66354a5 Binary files /dev/null and b/docs/media/image41.png differ diff --git a/docs/media/image42.png b/docs/media/image42.png new file mode 100644 index 0000000..d6e521c Binary files /dev/null and b/docs/media/image42.png differ diff --git a/docs/media/image43.png b/docs/media/image43.png new file mode 100644 index 0000000..7288909 Binary files /dev/null and b/docs/media/image43.png differ diff --git a/docs/media/image44.png b/docs/media/image44.png new file mode 100644 index 0000000..ffe67fa Binary files /dev/null and b/docs/media/image44.png differ diff --git a/docs/media/image45.png b/docs/media/image45.png new file mode 100644 index 0000000..61c3ab1 Binary files /dev/null and b/docs/media/image45.png differ diff --git a/docs/media/image46.png b/docs/media/image46.png new file mode 100644 index 0000000..df8da92 Binary files /dev/null and b/docs/media/image46.png differ diff --git a/docs/media/image47.png b/docs/media/image47.png new file mode 100644 index 0000000..5180cb3 Binary files /dev/null and b/docs/media/image47.png differ diff --git a/docs/media/image48.png b/docs/media/image48.png new file mode 100644 index 0000000..8596dbb Binary files /dev/null and b/docs/media/image48.png differ diff --git a/docs/media/image49.png b/docs/media/image49.png new file mode 100644 index 0000000..841a548 Binary files /dev/null and b/docs/media/image49.png differ diff --git a/docs/media/image5.png b/docs/media/image5.png new file mode 100644 index 0000000..0849ea6 Binary files /dev/null and b/docs/media/image5.png differ diff --git a/docs/media/image50.png b/docs/media/image50.png new file mode 100644 index 0000000..0b50130 Binary files /dev/null and b/docs/media/image50.png differ diff --git a/docs/media/image51.png b/docs/media/image51.png new file mode 100644 index 0000000..d8753d5 Binary files /dev/null and b/docs/media/image51.png differ diff --git a/docs/media/image52.png b/docs/media/image52.png new file mode 100644 index 0000000..2e50c5f Binary files /dev/null and b/docs/media/image52.png differ diff --git a/docs/media/image53.png b/docs/media/image53.png new file mode 100644 index 0000000..111b6b5 Binary files /dev/null and b/docs/media/image53.png differ diff --git a/docs/media/image54.png b/docs/media/image54.png new file mode 100644 index 0000000..6ec0119 Binary files /dev/null and b/docs/media/image54.png differ diff --git a/docs/media/image55.png b/docs/media/image55.png new file mode 100644 index 0000000..edc717e Binary files /dev/null and b/docs/media/image55.png differ diff --git a/docs/media/image56.png b/docs/media/image56.png new file mode 100644 index 0000000..ab55d4a Binary files /dev/null and b/docs/media/image56.png differ diff --git a/docs/media/image57.png b/docs/media/image57.png new file mode 100644 index 0000000..90baaf4 Binary files /dev/null and b/docs/media/image57.png differ diff --git a/docs/media/image58.png b/docs/media/image58.png new file mode 100644 index 0000000..e11022b Binary files /dev/null and b/docs/media/image58.png differ diff --git a/docs/media/image59.png b/docs/media/image59.png new file mode 100644 index 0000000..be1cec6 Binary files /dev/null and b/docs/media/image59.png differ diff --git a/docs/media/image6.png b/docs/media/image6.png new file mode 100644 index 0000000..8b590c2 Binary files /dev/null and b/docs/media/image6.png differ diff --git a/docs/media/image60.png b/docs/media/image60.png new file mode 100644 index 0000000..f370cb3 Binary files /dev/null and b/docs/media/image60.png differ diff --git a/docs/media/image61.png b/docs/media/image61.png new file mode 100644 index 0000000..a500b48 Binary files /dev/null and b/docs/media/image61.png differ diff --git a/docs/media/image62.png b/docs/media/image62.png new file mode 100644 index 0000000..3dec7c3 Binary files /dev/null and b/docs/media/image62.png differ diff --git a/docs/media/image63.png b/docs/media/image63.png new file mode 100644 index 0000000..66a242a Binary files /dev/null and b/docs/media/image63.png differ diff --git a/docs/media/image64.png b/docs/media/image64.png new file mode 100644 index 0000000..13c6085 Binary files /dev/null and b/docs/media/image64.png differ diff --git a/docs/media/image65.png b/docs/media/image65.png new file mode 100644 index 0000000..66cdfca Binary files /dev/null and b/docs/media/image65.png differ diff --git a/docs/media/image66.png b/docs/media/image66.png new file mode 100644 index 0000000..c8169a4 Binary files /dev/null and b/docs/media/image66.png differ diff --git a/docs/media/image67.png b/docs/media/image67.png new file mode 100644 index 0000000..6ca39ec Binary files /dev/null and b/docs/media/image67.png differ diff --git a/docs/media/image68.png b/docs/media/image68.png new file mode 100644 index 0000000..9fd7535 Binary files /dev/null and b/docs/media/image68.png differ diff --git a/docs/media/image69.png b/docs/media/image69.png new file mode 100644 index 0000000..882561c Binary files /dev/null and b/docs/media/image69.png differ diff --git a/docs/media/image7.png b/docs/media/image7.png new file mode 100644 index 0000000..50c4b46 Binary files /dev/null and b/docs/media/image7.png differ diff --git a/docs/media/image70.png b/docs/media/image70.png new file mode 100644 index 0000000..d0dbb2f Binary files /dev/null and b/docs/media/image70.png differ diff --git a/docs/media/image71.png b/docs/media/image71.png new file mode 100644 index 0000000..ac29011 Binary files /dev/null and b/docs/media/image71.png differ diff --git a/docs/media/image72.png b/docs/media/image72.png new file mode 100644 index 0000000..f2cd556 Binary files /dev/null and b/docs/media/image72.png differ diff --git a/docs/media/image73.png b/docs/media/image73.png new file mode 100644 index 0000000..dc4c8df Binary files /dev/null and b/docs/media/image73.png differ diff --git a/docs/media/image74.png b/docs/media/image74.png new file mode 100644 index 0000000..50734cb Binary files /dev/null and b/docs/media/image74.png differ diff --git a/docs/media/image75.png b/docs/media/image75.png new file mode 100644 index 0000000..fffb9f6 Binary files /dev/null and b/docs/media/image75.png differ diff --git a/docs/media/image76.png b/docs/media/image76.png new file mode 100644 index 0000000..6c03ac4 Binary files /dev/null and b/docs/media/image76.png differ diff --git a/docs/media/image77.png b/docs/media/image77.png new file mode 100644 index 0000000..b41dbc1 Binary files /dev/null and b/docs/media/image77.png differ diff --git a/docs/media/image78.png b/docs/media/image78.png new file mode 100644 index 0000000..cb7135b Binary files /dev/null and b/docs/media/image78.png differ diff --git a/docs/media/image79.png b/docs/media/image79.png new file mode 100644 index 0000000..1450ab0 Binary files /dev/null and b/docs/media/image79.png differ diff --git a/docs/media/image8.png b/docs/media/image8.png new file mode 100644 index 0000000..4a2b175 Binary files /dev/null and b/docs/media/image8.png differ diff --git a/docs/media/image80.png b/docs/media/image80.png new file mode 100644 index 0000000..51e7def Binary files /dev/null and b/docs/media/image80.png differ diff --git a/docs/media/image81.png b/docs/media/image81.png new file mode 100644 index 0000000..9dfbee3 Binary files /dev/null and b/docs/media/image81.png differ diff --git a/docs/media/image82.png b/docs/media/image82.png new file mode 100644 index 0000000..16aef6f Binary files /dev/null and b/docs/media/image82.png differ diff --git a/docs/media/image83.png b/docs/media/image83.png new file mode 100644 index 0000000..1e6137c Binary files /dev/null and b/docs/media/image83.png differ diff --git a/docs/media/image84.png b/docs/media/image84.png new file mode 100644 index 0000000..161e808 Binary files /dev/null and b/docs/media/image84.png differ diff --git a/docs/media/image85.png b/docs/media/image85.png new file mode 100644 index 0000000..198ca23 Binary files /dev/null and b/docs/media/image85.png differ diff --git a/docs/media/image86.png b/docs/media/image86.png new file mode 100644 index 0000000..8fd9532 Binary files /dev/null and b/docs/media/image86.png differ diff --git a/docs/media/image87.png b/docs/media/image87.png new file mode 100644 index 0000000..c8eda4c Binary files /dev/null and b/docs/media/image87.png differ diff --git a/docs/media/image88.png b/docs/media/image88.png new file mode 100644 index 0000000..f7fcc53 Binary files /dev/null and b/docs/media/image88.png differ diff --git a/docs/media/image89.png b/docs/media/image89.png new file mode 100644 index 0000000..ac0cc00 Binary files /dev/null and b/docs/media/image89.png differ diff --git a/docs/media/image9.png b/docs/media/image9.png new file mode 100644 index 0000000..dc95117 Binary files /dev/null and b/docs/media/image9.png differ diff --git a/docs/media/image90.png b/docs/media/image90.png new file mode 100644 index 0000000..a4c0339 Binary files /dev/null and b/docs/media/image90.png differ diff --git a/docs/media/image91.png b/docs/media/image91.png new file mode 100644 index 0000000..b4ea060 Binary files /dev/null and b/docs/media/image91.png differ diff --git a/docs/media/image92.png b/docs/media/image92.png new file mode 100644 index 0000000..8a68f3f Binary files /dev/null and b/docs/media/image92.png differ diff --git a/docs/media/image93.png b/docs/media/image93.png new file mode 100644 index 0000000..a3e4560 Binary files /dev/null and b/docs/media/image93.png differ diff --git a/docs/media/image94.png b/docs/media/image94.png new file mode 100644 index 0000000..db315da Binary files /dev/null and b/docs/media/image94.png differ diff --git a/docs/media/image95.png b/docs/media/image95.png new file mode 100644 index 0000000..631bdb9 Binary files /dev/null and b/docs/media/image95.png differ diff --git a/docs/media/image96.png b/docs/media/image96.png new file mode 100644 index 0000000..721e53d Binary files /dev/null and b/docs/media/image96.png differ diff --git a/docs/media/image97.png b/docs/media/image97.png new file mode 100644 index 0000000..12c71c4 Binary files /dev/null and b/docs/media/image97.png differ diff --git a/docs/media/image98.png b/docs/media/image98.png new file mode 100644 index 0000000..39024e9 Binary files /dev/null and b/docs/media/image98.png differ diff --git a/docs/media/image99.png b/docs/media/image99.png new file mode 100644 index 0000000..10a7e1c Binary files /dev/null and b/docs/media/image99.png differ diff --git a/mkdocs.yml b/mkdocs.yml index 2e4bd93..b81cea1 100644 --- a/mkdocs.yml +++ b/mkdocs.yml @@ -46,3 +46,27 @@ nav: - 'Конфигурирование LEXEMA-RPA STUDIO': 'Konfi.md' theme: readthedocs + +markdown_extensions: + - toc: + separator: "_" + permalink: "#" + - attr_list + - admonition + - sane_lists + - pymdownx.highlight + - pymdownx.superfences + - def_list + +extra_css: + - css/extra.css + +extra_javascript: + - javascripts/extra.js + +plugins: + - search: + lang: ['ru', 'en'] + + - img2fig + \ No newline at end of file diff --git a/readthedocs.yml b/readthedocs.yml new file mode 100644 index 0000000..2e4bd93 --- /dev/null +++ b/readthedocs.yml @@ -0,0 +1,48 @@ +site_name: Lexema-RPA Studio Docs +nav: + - Введение: index.md + - Знакомство со студией: HelloStudio.md + - 'Модули программы': + - 'Excel': 'excel.md' + - 'Кликер': 'clicker.md' + - 'Поиск изображения': 'ImageSearch.md' + - 'Поиск изображений': 'ImagesSearch.md' + - 'Запустить процесс': 'StartProcess.md' + - 'Завершить процесс': 'EndProcess.md' + - 'Условие': 'Condition.md' + - 'Цикл': 'Cycle.md' + - 'Вычисления': 'Calculation.md' + - 'Работа с файлами': 'FileModule.md' + - 'Код С#': 'CCode.md' + - 'Распознавание текста': 'OCR.md' + - 'Распознавание текста ABBYY': 'FROCR.md' + - 'Работа с браузером': 'WorkBrowser.md' + - 'Обработка текста': 'TextAnalysis.md' + - 'SQL': 'SQL.md' + - '1C': '1C.md' + - 'Отправить письмо': 'SendEmail.md' + - 'Считать письма': 'ReadEmail.md' + - 'Действия над письмами': 'MoveLetter.md' + - 'HTTP OData': 'HTTPOData.md' + - 'HTTP запрос': 'HTTP.md' + - 'FTP запрос': 'FTP.md' + - 'Break': 'Break.md' + - 'JSON': 'JSON.md' + - 'XML': 'XML.md' + - 'PDF': 'PDF.md' + - 'Интерфейс': 'Iterface.md' + - 'Закрыть Excel-файл': 'CloseExcel.md' + - 'WHILE': 'WHILE.md' + - 'Пауза': 'Pause.md' + - 'Робот': 'Robot.md' + - 'Return': 'Return.md' + - 'Word': 'Word.md' + - 'Прокси': 'Proxy.md' + - 'Создать скриншот': 'KS.md' + - 'Лог': 'log.md' + - 'Try/Catch': 'TryCatch.md' + - 'Оркестратор': 'Orkestrator.md' + - 'Просмотр истории выполнений': 'History.md' + - 'Конфигурирование LEXEMA-RPA STUDIO': 'Konfi.md' + +theme: readthedocs