В дизайнере бизнес-процессов Битрикс24 есть действие «PHP-код», которое выполняет произвольный код внутри процесса. Доступно оно только в коробочной версии — в облачном Битрикс24 такого действия нет ни на одном тарифе. При этом типовые задачи, ради которых в процесс добавляют PHP — запрос к внешнему API, разбор ответа, выборка из текста, составное условие, — в облаке собираются готовыми роботами. Разберём, где проходит граница и чем заменяется каждый сценарий.
Где доступно действие «PHP-код» и почему его нет в облаке?
«PHP-код» — действие коробочной редакции: внутри шаблона пишется произвольный код, который выполняется на сервере портала с доступом к API ядра. В облаке портал работает на общей инфраструктуре Битрикс24, и выполнение пользовательского кода там закрыто — это архитектурное ограничение, а не вопрос тарифа или скрытой настройки. Поэтому инструкции из форумов «вставьте этот PHP в бизнес-процесс» применимы только к коробке. Если посмотреть, что именно делает код в таких шаблонах, почти всегда это одно из четырёх: обратиться к внешней системе, разобрать её ответ, выдернуть кусок из строки, принять решение по нескольким условиям. Каждый кластер в облаке закрывается отдельным роботом — дальше по одному на сценарий.
Как обратиться к внешнему API без PHP?
Робот «HTTP-запрос GET/POST» выполняет запрос прямо из бизнес-процесса: методы GET, POST, PUT, PATCH, DELETE и HEAD, произвольное тело, заголовки в формате JSON — например, Authorization для токена, — таймаут от 1 до 60 секунд. Возвращает тело ответа, HTTP статус-код и признак успеха Y/N (код 2xx). Редиректы проверяются на каждом шаге, обращения к внутренним адресам сети блокируются, тело ответа ограничено 1 МБ; робот доступен на платных тарифах Битрикс24. Этого хватает на интеграции уровня «передать данные сделки в учётную систему и забрать статус заказа». Приём данных в обратную сторону, снаружи в портал, — через вебхуки.
Как разобрать ответ API без json_decode?
Ответ внешней системы почти всегда JSON, и в коробочном PHP дальше шла пара строк с json_decode. В облаке то же самое делает робот «Извлечь значение из JSON по пути»: принимает JSON-строку и путь через точку — data.user.email, items.0.name, — возвращает значение строкой, объекты и массивы как JSON для дальнейшего разбора, плюс признак «Путь найден» (Y/N). Если JSON некорректен или пути нет, робот возвращает N — по нему процесс уводит ошибку в отдельную ветку, вместо того чтобы записать пустоту в поле сделки. Связка «HTTP-запрос → извлечь значение → записать в поле» закрывает большинство интеграционных сценариев, которые раньше требовали кода.
Как вытащить данные из текста без preg_match?
Вторая классика PHP в процессах — регулярные выражения: выдернуть номер заказа из темы письма, найти ссылки в комментарии, проверить формат артикула. Робот «Извлечь по регулярному выражению» применяет шаблон к исходной строке: шаблон указывается без ограничителей, кириллица и юникод обрабатываются корректно, номер группы захвата позволяет вернуть не всё совпадение, а конкретную часть — например, значение из скобок. Возвращает первое совпадение, список всех совпадений и признак «Найдено» (Y/N). Типовой случай: лид создан из письма «Заказ ORD-12345: вопрос по доставке» — шаблон ORD-\d+ достаёт номер, и процесс находит связанную сделку.
Как заменить if с несколькими условиями?
Штатное «Условие» дизайнера сравнивает значения, но комбинация из трёх-четырёх проверок превращает шаблон в лестницу вложенных веток — ровно то, что в коробке прятали в три строки кода. Робот «Сложное условие (AND / OR / NOT)» собирает проверку в один шаг: до четырёх пар «значение — оператор — значение» с логикой AND или OR; среди операторов — равенство, сравнение чисел, contains, is_empty. Для произвольной вложенности есть JSON-режим с группами and, or и not. На выходе один признак Y/N, по которому процесс ветвится обычным условием — логика читается в дизайнере, а не в коде, который понимал только автор.
Когда без коробки всё же не обойтись?
Честная граница: роботы покрывают интеграционные и логические сценарии, но не всё. Если код должен работать с файловой системой сервера, событиями ядра или собственными модулями — это коробка и разработчик. Если же PHP был нужен для «запросить, разобрать, решить» — облачный портал закрывает это цепочкой из двух-четырёх роботов, которую сможет прочитать и поправить любой администратор. Начать стоит с инвентаризации: какие шаги текущих регламентов упираются в отсутствие кода — и собрать их из готовых действий, как описано в обзоре бизнес-процессов.
Итог
«PHP-код» — только коробочная версия; в облаке произвольный код не выполняется. Замены по сценариям: запрос к API — «HTTP-запрос GET/POST», разбор ответа — «Извлечь значение из JSON по пути», текст — «Извлечь по регулярному выражению», составные проверки — «Сложное условие». Все четыре — в каталоге Роботеки: бесплатная установка из Битрикс24.Маркет, работают и в облаке, и в коробке. Нет нужного действия — опишите задачу, сделаем робота бесплатно.