1С и RPA: подводные камни

Что такое RPA?

🤖 Сейчас много шума вокруг ИИ — как поможет, да кого заменит. Но и всё неразвлекательное ПО, созданное ранее, имело ту же цель, что и ИИ: помочь что-то сделать и сократить время выполнения. Один из примеров такого ПО — RPA.

Алиса нарисовала лучше задуманного: много действий, не все адекватные, но человек в этой цепочке нужен - и не один
Алиса нарисовала лучше задуманного: много действий, не все адекватные, но человек в этой цепочке нужен - и не один

Далеко не все программы позволяют заменить пользователя роботом. Например, в Excel есть возможность записать свои действия в макрос, немного его поправить при необходимости, и делать впоследствии некоторую последовательность действий автоматически или даже зациклить её — например, для всех книг каталога, и в том числе — запустить внешней программой. А вот в Блокноте нет такой возможности.

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

Ключевая особенность — так же, как и в ИИ — Low-code, то есть возможность обойтись без программиста.

🏢 Мой опыт внедрения RPA

И вот один из моих работодателей решил попробовать RPA.

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

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

В списке оказалось 80% операций, связанных с 1С — по причине специфики деятельности фирмы. Поэтому сразу же привлекли нас, 1С-ников.

Запросили наше мнение — я сразу же дал отрицательное резюме: в части 1С надо всё делать на 1С.

Не поверили — решили, что не хотим конкуренции. Такое недоверие имеет основание, я к нему отнёсся спокойно и принял участие в проекте внедрения RPA.

🛠 Выбор и старт

На втором шаге был предложен список RPA-программ. Была выбрана программа российского производства, о чём впоследствии совсем не жалели.

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

Выбрали первую рутинную операцию для автоматизации.

Старт — и сразу сталкиваемся с первой особенностью.

⚠ Внедрение

Для одного пользователя и одной операции всё почти прекрасно: записал действия, запустил, повторяй. Но в реальной жизни не всё так просто:

  • 🖥 Немного отличаются интерфейсы в базах.
  • 👥 У разных пользователей они тоже отличаются.
  • 🔄 В разных базах действия тоже могут быть немного разными.

И без программиста ну вот никак не получается:

  • 📁 Надо записывать файлы, у каждого свой путь, а формировать его надо программно.
  • 🖱 Надо правильно сформулировать, какую кнопку нажать: это кнопка с надписью «Ок», левая кнопка, или кнопка с определённым положением на экране в определённом окне?
  • 🪟 В процессе выполнения открывается несколько окон, надо переключаться между ними, и надо правильно объяснить роботу, когда в какое окно возвращаться.
  • ⚡ 1С в разных элементах реагирует по-разному, и может задавать или не задавать дополнительные вопросы — и это тоже надо учесть.

⏱ С учётом того, что выявлялись отсутствующие возможности или ошибки в платформе RPA, отработка всех вариантов рутинной операции заняла более месяца.

📈 Моя оценка — для первой операции это вполне неплохо, с учётом того, что в месяц она экономила более человеко-недели.

🔍 Эксплуатация

Пока запускалась вторая операция, выяснились некоторые проблемы:

1 Часть операций по причине ошибок данных или возникновения особенных ситуаций не могла обрабатываться, и отрабатывать все эти ситуации в RPA не получалось: 5–10% операций не выполнялась, и по списку их позже выполняли пользователи.

2 RPA очень чувствительна к интерфейсам. А они меняются при обновлениях 1С (поле чуть-чуть сдвинулось), браузера, и что ещё важнее — сайтов, с которыми приходилось работать. ИФНС поменяла интерфейс сайта, и много чего пришлось переписывать.

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

💻 Пробуждение скрытых сил

🖥 Третья операция была не для 1С, а для рутинной операции сисадмина.

Как только стали его опрашивать по сути операции, он посмотрел на RPA, поморщился и за день написал скрипт, автоматизирующий его рутину. Вопрос отпал.

🔄 Финал проекта

🔄 Финалом по первой операции стало обновление RPA. Выяснилось, что убрали часть устаревших возможностей, и наша программа работать перестала.

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

Тут уже я за недельку переписал эту операцию на 1С. Недельку — поскольку пришлось немного поразбираться с Automation и API сайта.

📈 Взамен получили:

  1. Ускорение в работы программы 4 раза.
  2. Простоту обслуживания.
  3. Снижение ошибок до 1–2%. В 1С получить данные 1С таки легче.
  4. Независимость от интерфейса.

И эта программа осталась надолго. А RPA крутилась только на второй операции, т.к. развитие RPA приостановили.

💎 Мои выводы

  1. Чудес не бывает.
  2. RPA может быть эффективным, но далеко не так часто, как кажется, и как это рекламируют. Начинать надо именно с выявления того списка операций, где RPA может быть полезна. В первую очередь это простейшие рутинные операции или операции с несколькими неинтегрируемыми системами в статических интерфейсах, при условии, что программирование другими средствами значительно сложнее.
  3. В части 1С RPA может быть эффективным крайне редко — только в процессе с другим неинтегрируемым ПО, где доля участия 1С невысока.
  4. Иногда 1С тоже может выступать как RPA. Но тоже нечасто.
  5. Если есть API или другая легитимная интеграция — использовать вместо неё RPA не стоит.
  6. Увидели «Low-code»? Не верьте! Простые случаи, разовые операции и там, где не важен результат — да, здесь возможно. И в некоторых особенных случаях. Как и ИИ, впрочем.

Считаете, что вашей 1С не хватает RPA? Готов обсудить плюсы и минусы.