Sherpa Designer: ответы на часто задаваемые вопросы
Last updated
Last updated
Вопрос: В проекте робот проверяет наличие кнопки "Сохранить" в SAP. Если не находит - то кликает по элементу "Изменить".
К сожалению, блок "Проверить наличие элемента" находит элемент “Сохранить” даже если его нет.
Ответ: Скорее всего, этот элемент находится в кеше COM-компонента SAP. Попробуйте перед проверкой переподключиться к SAP. Например, с помощью блоков "Присоединиться" или "Выбор окна".
Вопрос: есть ли возможность автоматизации 1С с помощью горячих клавиш?
Ответ: да, есть. Вы можете воспользоваться шпаргалкой с официального сайта 1C: https://its.1c.ru/db/v8std/content/430/hdoc
Или подсказкой для назначения горячих клавиш по ссылке:
Вопрос: почему логика блока выполнить PowerShell работает иначе в сравнении с встроенным PowerShell? И как его в таком случае использовать корректно. Пытаюсь использовать функцию – корректный вывод должен быть False. При вызове этой функции через PowerShell блок возвращается True (во втором блоке).
Функция объявляется здесь:
Ответ: Используйте для таких целей свои блоки. Важно понимать, что все, что Вы пишите выполняется внутри функции, так как каждый блок - это функция. Как итог все, что Вы присвоите в этой функции будет ее локальными переменными. Если Вы используете свой код, то должны отключить обработку переменных. Сейчас все переменные, что Вы написали преобразуются к локальным переменным скрипта, а именно этого класса диаграммы.
Вопрос: что делать, если возникла проблема при использовании блока “Выполнение кода Python”?
Ответ: порядок действий следующий:
1) Закройте Дизайнер.
2) Удалите из папки проекта папку Library.
3) Скачайте и обновите Дизайнер.
4) Убедитесь ,что у Вас стоит версия питона х64.
5) Проверьте, чтобы версия питона была не выше 3.12.
Вопрос: при автоматизации программы есть задача: ввести текст в поле фильтра. Я использую блок “Нажать клавиши”, селектор определяет текстовое поле и подсвечивает его, но при отладке робота возникает ошибка “Селектор не найден”. Подскажите пожалуйста, что можно сделать в таком случае?
Ответ: скорей всего, это связано с тем, что нажимая кнопку “Отладка”, Вы делаете активным окно Дизайнера, а кликом – обратно приложение. Попробуйте сначала найти ID нужно процесса и прописать его в блок ввода текста, тогда можно будет не кликать на поле фильтра. Также возможно сам клик и начало редактирования в элементе меняет дерево селектора этого элемента. Например, может появляться лишняя панель или даже поле редактирования, которого раньше не было (или Вы его видели в интерфейсе, но технически это не было поле редактирования, пока на него не кликнуть). Соответственно, селекторы у "уже кликнутого" и "ещё не кликнутого" элемента разные. Попробуйте записывать селектор пассивного элемента, в который не кликали ещё и на котором не стоит фокус ввода.
Вопрос: необходимо обрезать таблицу (извлечь диапазон), но если в поле столбец число=1 – работает. Если там переменная=1 – выдает ошибку. В чем может быть дело? Переменная берётся из активности "проверить существование значения". Дополнительное приведение “_tonumber” не помогает.
Ответ: в данном случае, переменная имеет тип double. При указании индексатора колонки можно указать или строку, или число int32. Если указывается переменная с типом double, то Framework пытается ее привести к нужному типу. Так как у нас могут быть только два типа, то он выбирает наиболее подходящий без потери данных, а это строка (double => string). В итоге Framework пытается индексировать колонку с "1", а не по числу. Когда Вы принудительно приводите к типу [int], то у Framework отпадают все неоднозначности. Поэтому следует написать [int]$DocCol, т.е. привести значение к числу int32.
Вопрос: можно ли в Sherpa RPA выполнить полноценный скрипт, а не скрипт PowerShell одной строкой?
Ответ: да, можно, для этого необходимо использовать блок “Выполнить выражение PowerShell”, отключить в нем обработку переменных, используя константы #StopRefactoring и #StartRefactoring следующим образом:
Вставьте код внутри них, но потом для ввода или вывода значений переменных уже за пределами этих констант необходимо присваивать локальные переменные переменным сценария.
Вопрос: что делать, если возникла проблема кодировки символов? При кодировке на компьютере кодировка Windows1251 и все ОК, а на сервере в этом же файле в этой же кодировке - сбой.
Ответ: сбой кодировки символов может быть связан с кодировкой для русских версий Microsoft Windows. В случае возникновения такой проблемы попробуйте сделать следующее:
Зайдите в настройки региона на Вашем компьютере (Параметры => Время и язык => Регион => Дополнительные параметры => Региональные стандарты => Дополнительно => Экран приветствия и учетные записи новых пользователей).
В открывшемся окне установите флаги “Экран приветствия и системные учетные записи” и “Новые учетные записи пользователей”.
После этого язык интерфейса для экрана приветствия и новых учетных записей пользователей изменится на “Русский” и проблема сбоя кодировки решится.