Вернуться к списку Вернуться к статьям
Статьи

Как использовать один сценарий в нескольких роботах Битрикс24

Один сценарий в «Конструкторе роботов S-WEBS» можно вызвать из нескольких других сценариев. Для вызова выбирается точная сохранённая версия, ей явно передаются входы, а объявленные выходы доступны следующим блокам. Правки черновика вызываемого сценария не меняют уже выбранную версию.

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

Что вынести в общую схему

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

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

До создания блока запишите договорённость:

Направление Пример значения
Вход Сумма до скидки, число
Выход Ставка скидки, число процентов
Выход Размер скидки, число
Выход Итоговая сумма, число
Ошибочный вход Отрицательная сумма или неверный тип обрабатываются по заранее выбранному правилу

Это учебный пример общей функции. Он не сохраняет скидку в CRM и не меняет товарные строки автоматически. Для этих действий нужен отдельный проверенный шаг.

Числовой вход amount и числовой выход rate учебного расчёта

Верх панели учебного расчёта: сумма amount на входе и ставка rate на выходе. Другие выходы находятся ниже видимого фрагмента.

Подготовьте вызываемый сценарий

Соберите расчёт, объявите входы и выходы в «Параметрах робота», затем проверьте схему. Протестируйте минимум обычное значение, значение на границе условия и неверный вход.

Сохраните черновик и создайте версию в «Версиях сценария». Проверьте именно сохранённый снимок: его интерфейс, блоки и источники результата. Версия фиксирует тот вариант, который должны использовать другие схемы.

Для внутреннего вызова выбирается доступный сценарий и его версия. Не путайте это с регистрацией отдельного CRM-робота и добавлением на стадию. Вызов внутри схемы и шаг автоматизации Битрикс24 решают разные задачи подключения.

Версия 1 сохранённого учебного расчёта

Снимок v1 расчётной схемы создан. Этот кадр показывает сохранение версии, но не настройку вызова из родительского сценария.

Добавьте вызов в родительскую схему

В родительском сценарии добавьте блок вызова другого сценария. Выберите доступный сценарий текущего портала и точную сохранённую версию.

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

Подключите объявленные выходы вызова к дальнейшим шагам. Например, передайте итоговую сумму в «Результат» родительской схемы. Ссылка на выход вызова означает, что значение вычисляет выбранная версия общей логики.

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

Как доказать повторное использование

Для проверки подготовьте два родительских сценария, которые вызывают одну и ту же версию расчёта. Дайте им одинаковую входную сумму. Совпасть должны результаты самого расчёта, даже если окружение родительских схем разное.

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

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

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

Что произойдёт после правки общего черновика

Уже настроенный вызов продолжит использовать закреплённую версию. Новое правило можно подготовить без немедленного изменения всех родительских роботов.

Чтобы перевести их на новый вариант:

  1. Измените и проверьте черновик общего сценария.
  2. Создайте новую сохранённую версию.
  3. В нужном родительском сценарии выберите эту версию.
  4. Сверьте входы и выходы, особенно после изменения их состава или типов.
  5. Проверьте родительскую схему и подготовьте её новую версию для подключения.

Обновляйте вызывающие схемы осознанно. Если одно подразделение ещё использует прежние условия, его версия не должна случайно смениться вслед за другим подразделением.

Два родительских сценария вызывают одну сохранённую версию расчёта; правка черновика не меняет закреплённые вызовы

Для перехода на новые правила создайте версию, выберите её в вызывающей схеме и проверьте входы и выходы.

Когда разделение помогает, а когда мешает

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

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

Вызовы относятся к текущему порталу; рекурсивные ссылки не используются. Если общая схема выполняет запись, подтверждённое изменение не откатывается из-за последующей ошибки родительского сценария.

Частые вопросы

Общий сценарий обновился. Почему робот считает по старому правилу?

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

Нужно копировать схему в каждый робот?

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

Можно начать с расчёта без CRM?

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

Приложение из статьи

  • Конструктор роботов

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