UI-тесты 1С для ИИ-агента: как поймать упавшую форму до кладовщика
ИИ-агент, который дорабатывает 1С, не видит интерфейс: синтаксический контроль пропускает формы, падающие при открытии на клиенте. Это лечится тестовым клиентом 1С (TestClient) с HTTP-мостом: агент шлёт команды «открыть», «заполнить», «нажать», получает JSON-снимок формы и сам находит ошибку в тестовой базе до релиза.
Почему ИИ-агент не замечает, что форма 1С падает при открытии 🔍
Пятница, 17:40. ИИ-агент добавил в «Реализацию товаров и услуг» поле «Канал продаж», прогнал проверку конфигурации, получил ноль замечаний и написал «готово». В понедельник в 9:15 менеджер открывает документ, а форма отвечает сообщением «Поле объекта не обнаружено (КаналПродаж)».
Агент не ошибся в том, что проверил. Проверка конфигурации разбирает модули как код: находит опечатки, неизвестные процедуры, неверное число параметров. Но ошибки времени выполнения, например обращение к реквизиту, которого нет в форме, она не видит: они проявляются только в момент создания формы на клиенте. Открыть форму агент не может, поэтому не видит, что она не открывается. Он правит текст, получает зелёную проверку и сообщает, что всё в порядке.
Дальше цену считают рабочими часами. Менеджеры не оформляют отгрузки, у склада стоят машины, а откатывать правку приходится наугад: никто не знает, что именно сломалось. Если это случилось за три дня до закрытия месяца, бухгалтерия сидит без проведённых реализаций, а отчётность уходит с опозданием. Живой разработчик после правки открыл бы форму и увидел ошибку сразу. Агенту нужны такие же глаза.
Как устроена связка: TestClient, менеджер тестирования и HTTP-мост 🔌
Что такое TestClient
TestClient — обычный клиент 1С, запущенный в режиме тестирования: с ключом /TESTCLIENT и портом в параметре -TPort (по умолчанию 1538). Сам по себе он ничего не делает. Им управляет второй экземпляр 1С, менеджер тестирования, запущенный с ключом /TESTMANAGER. Менеджер подключается к клиенту по порту, находит окна, поля и кнопки, нажимает их и читает значения. На этом же механизме работают сценарии Vanessa Automation.
Зачем нужен HTTP-мост
ИИ-агент умеет вызывать HTTP и разбирать JSON. Внутреннего протокола тестирования 1С он не знает и знать не должен. Мост закрывает этот зазор: принимает короткую команду, передаёт её менеджеру, ждёт, пока форма отработает, и возвращает снимок. Один из рабочих вариантов: HTTP-сервис в служебной базе кладёт команду в очередь, обработчик ожидания на стороне менеджера забирает её, выполняет через объект ТестируемоеПриложение и пишет результат обратно.
Набор команд небольшой:
- ✓открыть форму по имени или навигационной ссылке;
- ✓заполнить поле значением;
- ✓нажать кнопку или команду меню;
- ✓ответить на вопрос системы и закрыть окно;
- ✓вернуть снимок текущего состояния.
Снимок и есть те самые глаза. В нём заголовок окна, поля с текущими значениями, доступные кнопки, сообщения пользователю и текст модального окна, если оно выскочило. Агент читает JSON так, как человек смотрит на экран, и решает, что делать дальше. Сообщение «Поле объекта не обнаружено» приходит ему сразу после правки, а не звонком со склада в понедельник.
Чем мост отличается от других способов проверки
| Способ проверки | Что ловит | Кто запускает | Слабое место |
|---|---|---|---|
| Проверка конфигурации в конфигураторе | Опечатки, неизвестные процедуры, неверное число параметров | Агент сам | Не открывает формы, не видит ошибок времени выполнения |
| Ручная проверка пользователем | Всё, что человек заметит на экране | Сотрудник | Цикл правки растягивается: агент ждёт человека |
| Готовые сценарии Vanessa Automation | Регресс по заранее описанным сценариям | Человек или сервер сборки | Сценарий нужно написать заранее, новую форму агент на ходу не исследует |
| TestClient через HTTP-мост | Падение формы, ошибки записи и проведения, модальные окна, значения полей | Агент сам | Нужен тестовый контур и время на настройку |
Сценарии и мост дополняют друг друга. Сценарии удерживают то, что уже работает. Мост позволяет агенту проверить правку, для которой сценария ещё нет.
Как исправить слепоту агента: тестовый контур по шагам 🛠️
Порядок такой.
- ✓Разверните тестовую копию рабочей базы на отдельном сервере или ПК. Агент не должен видеть боевую базу ни по сети, ни по строке подключения. Персональные данные сотрудников и контрагентов-физлиц в копии подпадают под 152-ФЗ, а агент нередко работает через внешний сервис, поэтому ФИО, телефоны, паспортные данные и банковские реквизиты замените до того, как он получит доступ.
- ✓Запустите тестовый клиент на копии с ключами /TESTCLIENT и -TPort. Версия платформы должна совпадать с версией у пользователей, иначе вы проверите не ту систему.
- ✓Поднимите менеджер тестирования в служебной базе и подключите его к клиенту по порту.
- ✓Напишите мост: HTTP-сервис с пятью командами и очередью. Для каждой команды задайте таймаут ожидания окна.
- ✓Договоритесь о формате снимка и проверьте его на реальной форме документа, а не на пустой обработке.
- ✓Опишите агенту цикл: правка кода, загрузка в тестовую базу, открытие формы, заполнение, проведение, чтение снимка, исправление. Поставьте лимит шагов и общий таймаут, чтобы агент не ходил по кругу.
Начинайте с самого простого сценария: открыть список документов, создать новый, записать. Когда мост стабильно отдаёт ожидаемые поля, подключайте проведение и печатные формы.
Что делать, если ошибка повторяется: тест зависает или форма не находится ⚠️
Типичная картина: агент трижды правит модуль, трижды получает от моста «окно не найдено» и на четвёртый раз переписывает код, который работал. Причина не в коде, а в контуре, но агент этого не знает. Поэтому сначала проверьте окружение.
- ✓Поверх формы висит окно «Данные были изменены. Сохранить?». Мост должен отдавать такие окна в снимке и уметь отвечать на них отдельной командой, иначе остальные команды уходят в пустоту.
- ✓Клиент запущен в RDP-сеансе, который отключили или заблокировали. Окна перестают отрисовываться, тест встаёт на первом шаге. Запускайте клиент в сеансе, который не закрывается.
- ✓Порт занят процессом от прошлого прогона. Перед стартом завершайте старые процессы 1cv8c.
- ✓Не хватило клиентской лицензии: TestClient занимает её как обычный пользователь. Выделите в пуле лицензию под тесты.
- ✓Агент читает снимок раньше, чем форма открылась. Вместо фиксированной паузы добавьте в мост ожидание окна с таймаутом.
- ✓Тест проходит «случайно», потому что данные в базе лежат по-разному. Зафиксируйте набор: организация, контрагент, номенклатура, склад.
Заложите в цикл правило: три одинаковых ответа моста подряд означают остановку и сообщение человеку. Без него агент тратит время и ломает работающий код.
Когда виновата медленная база
Если форма открывается минутами даже у живого пользователя, тесты будут рваться по таймаутам, как их ни настраивай. Замерьте сервер тестом Гилёва: если результат низкий, тесты упираются в железо, а не в мост. Чинить тогда нужно базу и сервер.
Как предотвратить поломки: тесты на критичные формы и прогон перед обновлением 🛡️
Мост ловит ошибки, которые агент только что внёс. Те же глаза удерживают то, что работало вчера. Составьте список документов, без которых бизнес останавливается: реализация, поступление, заказ покупателя, платёжное поручение. Для каждого запишите сценарий: создать, заполнить, провести и убедиться, что система не выдала ошибок.
Прогоняйте набор в трёх случаях: после каждой правки агента, перед выкладкой на рабочую базу и после обновления 1С. Типовое обновление меняет формы, а доработки на них держатся. Агент с мостом пройдёт сценарии сам и покажет, какая форма поплыла. Вы узнаете об этом из отчёта, а не от пользователя.
Сильнее всего это окупается там, где форм сотни и они зависят друг от друга. После внедрения 1С:ERP правка в одной подсистеме легко задевает соседнюю, и вручную такую связь не проверить.
Ещё две привычки. Изменения на рабочую базу выкладывает человек, и только после отчёта о прогоне. А сценарии лежат в репозитории рядом с конфигурацией, чтобы любая правка проверялась по одному и тому же набору.
Как мы настраиваем UI-тесты для ИИ-агента и сколько это стоит 💼
Мы строим тестовый контур вокруг вашей базы. Разворачиваем тестовую копию с обезличенными данными, пишем мост под вашу платформу и конфигурацию, описываем сценарии на ваши документы и подключаем прогон к процессу доработки 1С. Если база только готовится к запуску, контур закладываем сразу при внедрении 1С: сценарии пишутся параллельно с настройкой, и к старту у вас уже есть регресс.
Отличие от типового набора тестов в привязке к вашей учётной политике. Типовой тест проверит, что стандартная реализация открывается. У вас она открывается с доработанными реквизитами, и падает именно на них. Сценарии, написанные под ваши формы, ловят это до того, как форму увидит менеджер.
Час работы специалиста по сопровождению 1С стоит 3 800 ₽. Сколько часов займёт ваш контур, зависит от платформы, числа форм и документов, которые нужно покрыть, и состояния тестовой базы, поэтому оценку называем после просмотра конфигурации, а не из прайса.
❓ Частые вопросы
Что такое TestClient в 1С и чем он отличается от обычного клиента?
TestClient — это обычный клиент 1С, запущенный с ключом /TESTCLIENT и портом -TPort. Внешне он не отличается, но принимает команды от менеджера тестирования: открывает формы, заполняет поля, нажимает кнопки, читает значения. Именно через него автоматические тесты, включая сценарии ИИ-агента, работают с интерфейсом так, как работает пользователь.
Зачем ИИ-агенту HTTP-мост, если есть Vanessa Automation?
Vanessa Automation запускает заранее написанные сценарии, и их пишет человек. Агенту нужно исследовать форму на ходу: открыть, посмотреть поля, поправить код, открыть снова. HTTP-мост даёт ему простые команды и JSON-снимок состояния формы, поэтому агент проверяет правку, для которой готового сценария ещё нет.
Можно ли давать ИИ-агенту доступ к рабочей базе 1С?
Нет. Агент работает только с тестовой копией, в которой данные обезличены: персональные данные сотрудников и контрагентов подпадают под 152-ФЗ, а ошибочная команда на боевой базе проведёт или удалит реальные документы. На рабочую базу изменения выкладывает человек после отчёта о прогоне тестов.
Сколько стоит настроить UI-тесты 1С для ИИ-агента?
Час работы специалиста по сопровождению 1С стоит 3 800 ₽. Итоговая сумма зависит от версии платформы, числа форм и документов, которые нужно покрыть тестами, и состояния тестовой базы. Поэтому оценку по часам мы даём после просмотра конфигурации, а не по общему прайсу.
Почему тест зависает на первом шаге и что проверить?
Чаще всего причина в окружении, а не в коде. Проверьте, что клиент запущен в активном сеансе (отключённый RDP останавливает отрисовку), порт не занят старым процессом 1cv8c, есть свободная клиентская лицензия и нет модального окна, перекрывающего форму. Если всё в порядке, замерьте скорость базы.
Или позвоните: +7 906 045-28-27 — в рабочее время с 9:00 до 19:00
Остались вопросы? Нужна помощь?
Менеджеры компании с радостью ответят на ваши вопросы, произведут расчет стоимости услуг и подготовят индивидуальное коммерческое предложение.
Бесплатная консультация

