Множественные поля — телефоны, почты, теги — хранят несколько значений сразу, и роботы тоже возвращают списки: например, части разбитой строки. Штатные действия бизнес-процессов Битрикс24 со списками работают плохо: подстановка склеивает все значения в одну строку, а запись в множественное поле затирает то, что в нём лежало. Пять роботов закрывают работу с массивами: взять элемент по индексу, посчитать элементы, проверить наличие значения, добавить и удалить значение множественного поля.

Откуда в бизнес-процессе берутся массивы?

Три источника. Множественные поля сущностей: телефоны и почты контакта, пользовательские поля с признаком «множественное» — теги, категории, список филиалов. Множественные переменные процесса, в которых значения накапливаются по ходу веток. И результаты других роботов: разбиение строки по разделителю возвращает список частей, извлечение по шаблону — список совпадений. Штатно с таким списком можно сделать немногое: подстановка в текст склеит значения через запятую, условие проверит вхождение по склейке. Взять именно второй телефон, посчитать теги или аккуратно дописать значение, не тронув остальные, — уже задачи для роботов ниже.

Как взять первый, последний или N-й элемент?

Робот «Получить элемент массива по индексу» принимает массив значений и индекс: 0 — первый элемент, 1 — второй, −1 — последний, −2 — предпоследний. Выход: элемент и признак «Элемент существует» (Y/N); если индекс за пределами массива, вернётся пустое значение и признак N — процесс не остановится, а ветка условия обработает нехватку данных. Типовые связки: разбили строку с ФИО по пробелу — взяли первый элемент как фамилию; разбили адрес по запятой — взяли последний элемент как дом; из списка совпадений регулярного выражения взяли первое. Результат записывают в обычное одиночное поле или переменную для следующих шагов.

Как посчитать элементы и проверить наличие значения?

Два робота-вопроса. «Размер массива / количество элементов» возвращает количество и признак «Массив пустой» (Y/N); пустые строки по умолчанию не считаются — случайная пустая позиция в множественном поле не испортит счёт. «Проверить наличие значения в массиве» ищет точное совпадение элемента — не подстроку — без учёта регистра, а опцией включается строгое сравнение. Выход: признак «Найдено» (Y/N) и индекс первого совпадения, минус один, если совпадений нет. Применение в условиях процесса: «у сделки уже есть тег VIP — пропустить выдачу скидки», «у контакта ноль телефонов — задача менеджеру дозаполнить карточку до передачи в обзвон».

Как добавить значение в множественное поле, не затирая остальные?

Главная боль множественных полей: штатное изменение документа записывает поле целиком, и, добавляя один тег, легко стереть существующие. Робот «Добавить значение в множественное поле» дописывает значение аккуратно: читает текущее содержимое поля сущности и добавляет новое к существующим. Вход: тип сущности — сделка, контакт, компания или лид, — ID сущности подстановкой из текущего документа, код поля (например, UF_CRM_TAGS или PHONE) и само значение. Опция «не добавлять, если уже есть» включена по умолчанию: повторный запуск процесса не наплодит дублей значения. Выход: признак «Успешно» (Y/N) и итоговое количество элементов в поле.

Как удалить значение из множественного поля?

Обратная операция — снять тег, убрать устаревший телефон. Вручную это значит открыть карточку и править поле; штатным действием — переписать поле целиком со всеми рисками. Робот «Удалить значение из множественного поля» принимает тип сущности, ID, код поля и удаляемое значение. Удаляются все вхождения этого значения, остальные элементы сохраняются на месте. Выход: признак «Успешно» (Y/N), сколько вхождений удалено и итоговое количество элементов в поле. Рецепт: сделка закрыта успешно — процесс снимает с компании тег «в работе» и соседним роботом добавления дописывает тег «клиент»; карточка всегда отражает актуальный статус без ручной правки.

Итог

Пять роботов покрывают жизненный цикл массива: взять элемент — «Получить элемент массива по индексу», посчитать — «Размер массива / количество элементов», проверить — «Проверить наличие значения в массиве», изменить множественное поле — «Добавить значение в множественное поле» и «Удалить значение из множественного поля». Все — в каталоге Роботеки, бесплатно из Битрикс24.Маркет. Нет нужной операции с массивами — опишите задачу, сделаем робота бесплатно.