← К заметкам

Заметки

Как передать массив в итератор БП

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

Для строки с разделителями в PHP-действии коробки можно подготовить массив так:

$source = (string) $this->GetRootActivity()->GetVariable('SourceText');
$items = preg_split('/[,;\r\n]+/', $source);
$items = array_map('trim', $items);
$items = array_values(array_filter($items, static function ($item): bool {
    return $item !== '';
}));

$this->SetVariable('IteratorItems', $items);

Затем выберите IteratorItems в настройках итератора. Вложенные действия получают по одному значению.

Для JSON-массива нужен json_decode с проверкой ошибки разбора. Строка '[101,102]' остаётся строкой, пока её не декодировали. Не стоит молча заменять испорченный JSON пустым массивом: процесс завершится без действий и скроет ошибку источника.

Для переменной «Пользователь» подготовьте значения соответствующего типа, например user_25. Формат данных важен не меньше, чем множественность.