@Azami88

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

как правильно написать php код с помощью которого можно получить пользователей с определенной должностью.
Кажется неверно реализовал
$wp = "Кладовщик";
$res = CUser::GetList(array(), array("WORK_POSITION"=>"$wp"))
$this->SetVariable('Variable2', $res);
  • Вопрос задан
  • 594 просмотра
Пригласить эксперта
Ответы на вопрос 1
gromdron
@gromdron Куратор тега Битрикс24
Работаю с Bitrix24
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);


Проверьте код, возможно там есть ошибки.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы