# Перенос роботов с Windows на Linux

### Ключевые моменты переноса <a href="#docs-internal-guid-09d8e427-7fff-f1da-07db-e8df11993dcb" id="docs-internal-guid-09d8e427-7fff-f1da-07db-e8df11993dcb"></a>

При переносе робота из Sherpa Designer в среде Windows и Linux следует учитывать несколько важных аспектов. Если блок присутствует в Sherpa Designer как для Windows, так и для Linux, дополнительные действия по его переносу не требуются. Блоки функционируют в PowerShell, который работает одинаково на обеих платформах. Все классы и функциональные возможности, реализованные в роботе для Windows, без изменений переносятся в среду Linux.

Однако необходимо отметить, что COM-объекты Word и Excel не будут работать на Linux-подобных системах. При переносе необходимо проверить «Панель свойств» у всех блоков, связанных с Word и Excel, и убрать галочку в чекбоксе: ![](https://lh7-rt.googleusercontent.com/docsz/AD_4nXdupCiNwd8eGStBBPAjzRQdwQtN3a523jwg63Jj2z4GMOtIQqBNPVc9mr5fB6XEmc31LPd09GyUwJgahmOGNi3DpVeLyLdh4H9MWUtWVipb6xSWAFq3o4YjYcfJrmEpDzILq_vaCg?key=TtSn8mN6zt9mZeisLOBH_ibs). После того, как пользователь очистит чекбоксы «Использовать COM», блоки Word и Excel в среде Linux будут работать корректно.

### Различия в путях к файлам

При работе с Linux необходимо учитывать, что пути к файлам имеют иной формат, использующий обратный слэш.

Примеры обозначений разделителей в путях к файлу:

* В Linux-подобных системах используется прямой слэш: /home/user/documents/file.txt
* В Windows используется обратный слэш: C:\Users\User\Documents\file.txt

Однако, абсолютные пути (такие как C: или D:) не будут функционировать. Используйте стандартные методы для определения текущего рабочего каталога, такие как \`\[Environment]::CurrentDirectory\`. Это позволит вам точно определить, где находится ваш код, и поможет правильно сформировать относительные пути. Относительный путь указывает на местоположение файла относительно текущего рабочего каталога. Например, если текущий каталог:\
/home/user, то для доступа к файлу file.txt в каталоге documents вы можете использовать: documents/file.txt.

### Запись селекторов в браузере и приложениях

Что касается записи селекторов, то в Yandex Browser/Chromium в среде Linux используется тот же плагин, как и в Windows. Достаточно установить плагин следуя инструкциям в разделе[ Установка плагина в Yandex Browser](https://docs.sherparpa.ru/o-platforme-sherpa-rpa/ustanovka-sherpa-rpa/ustanovka-sherpa-rpa-na-astra-linux#ustanovka-plagina-v-yandex-browser).

Если приложение поддерживает технологию at-spi (Assistive Technology Service Provider Interface), то робот будет работать с ним напрямую через селекторы, как в среде Windows.

### Функционал роботов

Есть некоторые ограничения, связанные с Блоками Sherpa Designer, доступными в среде Linux:

| Категория Блоков    | Блоки, недоступные в Linux                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          |
| ------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| UI Automation       | <p>ClickOnText</p><p>CopyToClipboard</p><p>PasteFromClipboard</p><p>CollectData</p><p>SelectOption</p><p>DragAndDrop</p><p>HighlightElement</p><p>ClearCache</p><p>ControlCache</p><p>GetGridData</p>                                                                                                                                                                                                                                                                                                                                                               |
| Browser Automation  | <p>CopyToClipboardInternet</p><p>PasteFromClipboardInternet</p>                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     |
| HTTP                | <p>InternalBrowserRequest</p><p>GetYandexLinks</p><p>GetGoogleLinks</p><p>InternalAsyncBrowserGet</p>                                                                                                                                                                                                                                                                                                                                                                                                                                                               |
| SAP Automation      | <p>SAPCreateConnection</p><p>SAPCloseConnection</p><p>SAPConnectConnection</p><p>SAPSelectWindow</p><p>SAPClick</p><p>SAPPressEnter</p><p>SAPDoubleClick</p><p>SAPSelect</p><p>SAPUnSelect</p><p>SAPState</p><p>SAPCollapse</p><p>SAPExpand</p><p>SAPGetText</p><p>SAPSetText</p><p>SAPColumnCount</p><p>SAPRowCount</p><p>SAPCount</p><p>SAPSapEvent</p><p>SAPExportTable</p><p>SAPImportTable</p><p>SAPGetCellValue</p><p>SAPSetCellValue</p><p>SAPCurrentDate</p><p>SAPSelectRange</p><p>SAPElementExists</p><p>SAPPressF4</p><p>SAPHScroll</p><p>SAPVScroll</p> |
| Dialogs             | <p>ManLoop</p><p>MediaPlayer</p>                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    |
| Excel Automation    | FindTextExcel                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       |
| Outlook Automation  | <p>GetOutlookMailMessages</p><p>SendOutlookMailMessage</p><p>ReSendOutlookMailMessage</p><p>SaveAttachmentsFromOutlookMessage</p><p>SaveMailFromOutlookMessage</p><p>GetOutlookFolders</p><p>MoveOutlookMessage</p><p>ExtractEmailFromOutlookMessage</p><p>LoadMsgFile</p><p>ReplyOutlookMailMessage</p><p>ChangePropertiesMailFromOutlookMessage</p>                                                                                                                                                                                                               |
| Exchange Automation | <p>GetExchangeMailMessages</p><p>SendExchangeMailMessage</p><p>ReSendExchangeMailMessage</p><p>SaveAttachmentsFromExchangeMessage</p><p>SaveMailFromExchangeMessage</p><p>MoveExchangeMessage</p><p>ReplyExchangeMailMessage</p>                                                                                                                                                                                                                                                                                                                                    |
| Clipboard           | <p>GetClipboard</p><p>SetClipboard</p><p>SetFilesClipboard</p>                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      |
| Process/Service     | <p>ListServices</p><p>StartService</p><p>StopService</p><p>SetServiceStartupType</p><p>GetWindowState</p><p>SetWindowState</p><p>SetWindowLanguage</p><p>SetWindowPosition</p><p>AttachApplication</p>                                                                                                                                                                                                                                                                                                                                                              |
| Terminal Automation | <p>TerminalConnectSession</p><p>TerminalCloseConnection</p><p>TerminalGetCursor</p><p>TerminalMoveCursor</p><p>TerminalGetTextPosition</p><p>TerminalGetFieldPosition</p><p>TerminalSetTextPosition</p><p>TerminalSetFieldPosition</p><p>TerminalGetField</p><p>TerminalSetField</p><p>TerminalGetScreenArea</p><p>TerminalSendKeys</p><p>TerminalSendControlKey</p><p>TerminalWaitTextPosition</p><p>TerminalWaitFieldPosition</p><p>TerminalGetFieldBetween</p><p>TerminalSetFieldBetween</p>                                                                     |
| Registry            | <p>ReadValueFromRegistry</p><p>WriteValueToRegistry</p><p>ListitemsFromRegistry</p><p>CreatePropertyInRegistry</p><p>RemovePropertyInRegistry</p><p>CreateHiveInRegistry</p><p>RemoveHiveInRegistry</p>                                                                                                                                                                                                                                                                                                                                                             |
| 1C Automation       | <p>1CCreateConnection</p><p>1CCloseConnection</p><p>1CExecuteQuery</p><p>1CExecuteCode</p><p>1CCollectData</p><p>1CTableCellClick</p><p>1CCheckboxControl</p>                                                                                                                                                                                                                                                                                                                                                                                                       |
| RDP                 | <p>RDPGenerateConnection</p><p>RDPCreateConnection</p><p>RDPConnectInstance</p><p>RDPCloseConnection</p><p>RDPDisconnectSession</p><p>RDPOperationFile</p><p>RDPRunScript</p>                                                                                                                                                                                                                                                                                                                                                                                       |
| Windows Credentials | <p>SetWindowsCredentials</p><p>GetWindowsCredentials</p><p>DeleteWindowsCredentials</p><p>GetCyberArkCredentials</p>                                                                                                                                                                                                                                                                                                                                                                                                                                                |
| Machine Learning    | <p>RegressionTrain</p><p>RegressionPredict</p><p>ClassificationTrain</p><p>ClassificationPredict</p><p>ClusterTrain</p><p>ClusterPredict</p><p>AnomalydetectionTrain</p><p>AnomalydetectionPredict</p><p>AssistantGenerator</p>                                                                                                                                                                                                                                                                                                                                     |

Некоторые функции, такие как режим PiP (картинка в картинке), позволяющая пользователям просматривать видео или другие визуальные материалы в небольшом окне, которое остается поверх других приложений или окон, недоступны в Linux, так как это технология Microsoft.

### Шаблонизатор в Linux

В системах Linux полностью работает блок Шаблонизатора. Однако, если требуется изменить файл шаблона, то это можно сделать только в среде Windows. Это связано с тем, что Шаблонизатор для Linux пока еще находится в процессе разработки. На данный момент, некоторые редакторы, такие как Word и специализированные инструменты для дизайнеров, используют функции редактирования, которые временно недоступны в Linux. После внесения изменений в файл шаблона в среде Windows потребуется создать или обновить JSON-файл, чтобы отразить эти изменения в Шаблонизаторе для Linux. После этого JSON-файл загружается в систему с использованием специфичных для вашей среды команд или API.

### Элементы веб-страницы

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

В Sherpa Designer используются четыре метода распознавания образов (поле «Тип сравнения»):

<figure><img src="https://lh7-rt.googleusercontent.com/docsz/AD_4nXdHJVheyJgrSg2EIVsAmN-H_HZTpZ_y4JATYmdRvN_SjMlKUGJUELJi1oIMWwZhV33x8aHdCFD-mBBob-iuuso63cpuX_HBIdlVX8MEsqtF25UAUBBibibGa7755uTr6-UWUminww?key=TtSn8mN6zt9mZeisLOBH_ibs" alt=""><figcaption></figcaption></figure>

* SQDIFF (Квадратичная разница) - метод вычисляет квадратичную разницу между пикселями двух изображений. Чем меньше значение, тем больше схожесть изображений;
* CCORR (Корреляция) - метод использует корреляцию для оценки схожести между изображениями. Дает наилучшие результаты, когда изображения имеют одинаковую освещенность и контрастность;
* CCOEFF (Коэффициент корреляции) - метод на основе коэффициента корреляции измеряет степень, до которой два изображения могут быть сопоставлены, нормируя результаты по их средним значениям;
* NATIVE (по умолчанию) - метод является предустановленным и используется для быстрого сравнения с помощью встроенных алгоритмов, основанных на особенностях платформы.

Если метод NATIVE не сработал, рекомендуется использовать SQDIFF, так как в Linux-подобных системах отсутствует битовая карта изображения окна, доступная в Windows.

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


---

# Agent Instructions: Querying This Documentation

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

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

```
GET https://docs.sherparpa.ru/sherpa-rpa/sherpa-designer/perenos-robotov-s-windows-na-linux.md?ask=<question>
```

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

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