Функция "Кликнуть по элементу" в 1С

Добрый день, партнеры!

Подскажите пожалуйста такой вопрос. Какой идентификатор поля/кнопки в 1С использует Electroneek в функции “Кликнуть по элементу”? Если необходимо настроить робот для работы с 1С, но в данный момент нет доступа к 1С, можно ли указав эти идентификаторы (которые предоставит клиент) настроить у себя робот, что бы после переноса на машину клиента этот процесс происходил корректно. Или все же необходима окончательная настройка уже на машине клиента с непосредственным кликаньем на нужные кнопки?

@Timofey, какой конкретно идентификатор, всегда зависит от конкретной кнопки. Наперёд настроить, к сожалению, не получится, если только Вы твердо не уверены в том, что селектор будет исключительно вот такой и никакой другой. При переносе на другую машину, возможно, действительно некоторые селекторы нужно будет дополнительно донастроить. В RPA-мире это нормальное явление. Если робот сам по себе готов, то это не займет много времени.

А вы можете более подробно описать откуда Electroneek при использовании функции “Кликнуть по элементу” берет параметры “Element picker”: Id, Name, Class, Type, Path, Value. Index, Main Window Name, Window Name, Parent Name, Parent Index. И насколько они универсальны, т.е. если в 1С версии 8.3 на нашей машине мы организуем процесс. будет ли он работать в 1С версии 8.3 на машине клиента? Вопросы заданы с целью оценки вариантов реализации процесса: либо ставить на нашей машине 1С, настраивать процесс и затем переносить на машину клиента. либо сразу настраивать на машине клиента.

Есть определенная технология, по которой вычисляются эти атрибуты. Вопрос универсальности напрямую зависит от софта. При разработке роботов хорошей (и на самом деле частой) практикой является сценарий, при котором делают тестовую среду, где стоит платформа и программа, с которой нужно взаимодействовать, в максимально близкой конфигурации к боевой (но с тестовыми данными). Отлаживают и добиваются работы на тестовой среде, а после этого переносят в продуктив, закладывая вероятность доработки/небольшой корректировки. Поэтому вне зависимости от универсальности/не универсальности в любом проекте я бы закладывал именно этот вариант.

По поводу настройки изначально на тестовой среде я с вами согласен. Но еще как вариант хотелось бы рассмотреть возможность вытаскивать из 1С необходимые параметры, для дальнейшей подстановки их в “Element picker” (т.е. не использовать клик по элементы, а подставить полученные значения в соответствующие поля параметров) . Для того что бы понимать какую информацию необходимо извлечь из 1С - необходимо описание каждого параметра “Element picker”: Id, Name, Class, Type, Path, Value. Index, Main Window Name, Window Name, Parent Name, Parent Index. Вы можете предоставить такую информацию?

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

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

Спасибо за информацию! будем ждать этой доработки

В продолжении обсуждения. При выборе элемента “Создать” в функции “Кликнуть по элементу” и нажатия “Test” в “Element picker” появляется следующая ошибка:

Если проигнорировать Test и запустить процесс - на этом блоке вылетает ошибка Uncaught (in promise): t: {“headers”:{“normalizedNames”:{},“lazyUpdate”:null,“headers”:{}},“status”:0,“statusText”:“Unknown Error”,“url”:“http://localhost:5000/api/selectors/pick",“ok”:false,“name”:“HttpErrorResponse”,“message”:"Http failure response for http://localhost:5000/api/selectors/pick: 0 Unknown Error”,“error”:{“isTrusted”:true}}

Такая же ситуация с соседней кнопкой “Установить статус”. На кнопках боковой панели (“Главное”, “Продажи” и т.п.) таких ошибок не выдает и до этого окна доходит корректно использую функции “кликнуть по элементу”

Версия платформы какая?

платформа 1.5.14
1С версия 8.3

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

А ориентировочные сроки исправления известны? Если это день-два. то проще подождать и потом настроить процесс корректно, чем использовать функцию “Клик по координате”, а потом переделывать

Это не день-два, работа над исправлением ведется, как будем готовы сообщить подробности, обязательно сообщим.

В продолжении темы возникли еще некоторые трудности.
Для имитации нажатия кнопок в 1С, на которых функция “кликнуть по элементу” не срабатывал корректно, использовали функцию “кликнуть по координатам” процесс проходит дальше. Робот доходит до окна с полем “Комментарии”, которое необходимо заполнить. Используем функцию “задать значение элемента” указываем параметры поля и проверяем отдельно работу этой функции. Функция отрабатывает корректно.
Если функцию добавить в конце тела процесса (процесс отрабатывает корректно и доходит до нужного окна), то добавленная функция “задать значение элемента” - не срабатывает и выдает ошибку “Selectors: undefined”.
Если запустить эту функцию отдельно с этого же места (в 1С открыто нужное окно, на котором некорректно завершился запущенный до этого процесс ) - функция срабатывает корректно и подставляет необходимую информацию в нужное поле.
Нужна помощь - почему в теле процесса эта функция не отрабатывает?

Ссылка на видео: https://youtu.be/KwW_ClyVrnw

Пока не готов ответить точно. Нужно разбивать на составляющие и искать момент, когда перестает работать. И еще обязательно смотреть селекторы после каждого шага алгоритма.

Попробуйте вот как. Начните постепенно уменьшать алгоритм из нерабочего состояния до тех пор, пока не станет рабочим. Нужно поймать момент, когда алгоритм срабатывает. Это может помочь. Либо наоборот. Из рабочей версии сделайте нерабочую.

Алгоритм полностью дорабатывает до последней функции “Задать значение элемента”. Т.е. если убрать эту функцию - процесс отрабатывается полностью и сообщает об успешном завершении. При это в 1С остается открытым соответствующее окно (“Корректировка реализации (создание)” в моем примере). Если отдельно использовать функцию “Задать значение элемента” на этом моменте - она срабатывает корректно и подставляет нужное значение в нужное поле (Комментарии). Если этот корректно работающий блок подставить в конце корректно работающего процесса, то появляется вышеозвученная ошибка “Selectors: undefined”.
У меня есть подозрения. что это может быть связано с тем, что перед функцией “Задать значение элемента” использовались функции “клик по координате”. Может быть необходимо сфокусироваться в 1С в этом окне после использования “клик по координате”? (хотя я пробовал перед использованием функции “Задать значение элемента” использовать функцию “Кликнуть по координате” указав координаты поля “Комментарии” - это не помогло. ошибка так же была)

@Timofey, имел в виду несколько другое. Сделать так, чтобы в алгоритме всегда была функция “Задать значение элемента”, и его надстраивать до тех пор, пока не перестанет работать.
Сначала Вы просто используете “Задать значение элемента” и говорите, что она работает. Теперь добавьте клик по координате перед этим, проверьте. Если работает, добавьте еще одно действие. И так до тех пор, пока не сломается. Наша цель - получить максимально рабочий и минимально нерабочий примеры.

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

1 Симпатия

Добрый день!

В продолжении обсуждения темы.

Опробовал функции “клик по элементу”, “ввести значения элемента” в других полях 1С. (См. приложенное видео). В целом процесс проходит корректно. При нажатии копки “Test” в окне “Element picker” - ошибок не происходит. Закономерность в каком случае появляется ошибка и процесс не проходит корректно, а в каком нет ошибки и функция проходит корректно мне выявить не удалось. Получается в части кнопок и полей в 1С функции “клики по элементу”, “задать значение элемента” срабатывает, в части нет (см. предыдущие сообщения).

Попробовал в середине процесса поменять функцию “клик по элементу” на “клик по координате” при нажатии кнопки “создать на основании” в 1С (после которого открывается выпадающий список). А в дальнейшем оставить функции “клик по элементу”. в этом случае ошибка по селектору выдается на функции “клик по элементу” идущей сразу после замененной функции “клик по координате”. Возможно и в предыдущем случае была ошибка из-за чередования функций “клик по элементам” и “клик по координатам”?

Так же последней функцией в процессе я ввожу наименование ответственного лица (канин). Если вводить в это поле вручную фамилию (канин) 1С предлагает варианты подстановки и нажимая enter подставляет полностью ФИО, в случае если робот подставляет фамилию (канин) - 1С не предлагает подставить полностью ФИО и после нажатия Enter так же не происходит подстановка ФИО. Как можно подставить полностью ФИО из вариантов. если вводим только фамилию?

Ссылка на видео: https://youtu.be/oJ1n2ZogCXA

@Timofey,
Вообще говоря, чередование не должно вызывать ошибок. Нужно отлаживать клик по координате, чтобы убедиться, что он работает. Давайте этим как раз заниматься. Я выше описал метод, по которому это можно сделать. Вам сделать алгоритм из 2-3 действий, на котором будет воспроизводиться проблема. Не нужно открывать 1С через cmd для этих целей и т.д. Считаем, что 1С уже открыта (разве что можно добавить явное разворачивание 1С кликом по иконке из панели задач). И дальше найдите ту минимальную комбинацию действий, при которой все падает. Отпишитесь, если идея не до конца понятна, попробую иначе объяснить.

С заполнением - да, такое может происходить. Можно попробовать вот такие варианты:

  1. Кликать явно в поле перед вводом роботом.
  2. Ввести текст роботом, затем нажать роботом tab или enter.
  3. Ввести текст роботом, затем нажать роботом пробел.
  4. Ввести текст роботом, потом кликнуть в поле роботом.

Какой-то из этих вариантов, я думаю, должен вызвать предложение по автозаполнению.