• Модуль: crm
  • Путь к файлу: ~/bitrix/modules/crm/lib/userfield/visibility/visibilitymanager.php
  • Класс: Bitrix\Crm\UserField\Visibility\VisibilityManager
  • Вызов: VisibilityManager::getVisibleUserFields
static function getVisibleUserFields(array $userFields, ?int $userId = null): array
{
	$userFieldIds = array_column($userFields, 'ID');

	if ($userId === null)
	{
		$userId = \CCrmSecurityHelper::getCurrentUserId();
	}

	$accessibleFields = UserFieldAccessController::getAccessibleFields(
		$userId,
		ActionDictionary::ACTION_USER_FIELD_VIEW,
		$userFieldIds
	);

	$result = [];
	foreach ($userFields as $fieldName => $userField)
	{
		if(
			!array_key_exists($userField['ID'], $accessibleFields)
			|| $accessibleFields[$userField['ID']]
		)
		{
			$result[$fieldName] = $userField;
		}
	}

	return $result;
}