1. Поля в бизнес-процессе поддерживают ограниченный набор типов полей.
Соответственно перед тем как что-то делать, нужно понять что мы хотим "заполнить".
Предположим, что у нас есть некоторая переменная "UsersWithTargetPosition", имеющая тип - Пользователь, множественная.
2. Т.е. набор типов ограничен, то и набор значений ограничен.
Например, если это множественная переменная, то она должна принимать массив.
CUser::GetList - вернет объект, который нужно обработать.
3. Внимательнее читайте документацию к методу:
https://dev.1c-bitrix.ru/api_help/main/reference/c...
У вас несовпадение входящих переменных.
Для вашего случая, я бы воспользовать более лаконичным UserTable
4. Не забывайте обрабатывать ошибки. Вы работаете с блоком php кода.
Для приведенного случая, код получиться примерно таким:
$usersWithPosition = [];
try
{
$position = "Кладовщик";
$users = \Bitrix\Main\UserTable::getList([
'select' => ['ID'],
'filter' => [
'=WORK_POSITION' => $position
]
]);
foreach( $users as $user )
{
$usersWithPosition[] = "user_".$user['ID'];
}
}
catch( \Throwable $e )
{
$this->WriteToTrackingService($e->getMessage(), 0, \CBPTrackingType::Error);
}
$this->SetVariable('UsersWithTargetPosition', $usersWithPosition);
Проверьте код, возможно там есть ошибки.