1. Работа с пользовательскими полями в старом ядре Bitrix

В старом ядре Bitrix для работы с группами пользователей используется класс CUserTypeEntity.

Получить все пользовательские поля сделок:
        
$userFields = CUserTypeEntity::GetList([], ['ENTITY_ID' => 'CRM_DEAL']);
while ($field = $userFields->Fetch()) {  
    print_r($field);  
}

//ENTITY_ID:
//CRM_LEAD
//CRM_DEAL
//CRM_CONTACT
//CRM_COMPANY
        
    
Получить пользовательское поле лида по коду:
        
$userField = CUserTypeEntity::GetList([],  
    ['ENTITY_ID' => 'CRM_LEAD', 'FIELD_NAME' => 'UF_CRM_671F87354448E'],  
);  
while ($field = $userField->Fetch()) {  
    print_r($field); 
}
        
    
Получить название пользовательского поля на русском языке:
        
$userField = CUserTypeEntity::GetList([],  
    ['ENTITY_ID' => ContactTable::getUfId(), 'FIELD_NAME' => 'UF_CRM_671F87354448E', 'LANG' => 'ru']  
);  
while ($field = $userField->Fetch()) {  
    print_r($field);  
}
        
    
Изменить название поля на русском языке:

Если есть названия на других языках, для их сохранения их так же надо передавать при обновлении, иначе они будут заданы как пустые

        
$userField = CUserTypeEntity::GetList([],  
    [
	    'ENTITY_ID' => 'CRM_CONTACT',
	    'FIELD_NAME' => 'UF_CRM_671F87354448E',
	    'LANG' => 'ru']  
)->fetch();  
  
$CUserTypeEntity = new CUserTypeEntity();  
$CUserTypeEntity->Update($userField['ID'], [  
    'EDIT_FORM_LABEL' => [
	    'ru' => 'Новое название',
	],  
    'LIST_COLUMN_LABEL' => [
	    'ru' => 'Новое название',
	], 
    'LIST_FILTER_LABEL' => [
	    'ru' => 'Новое название',
    ]  
]);
        
    

2. Работа с пользовательскими полями в новом ядре D7

В новом ядре D7 используется пространство имен Bitrix\Main\UserFieldTable и Bitrix\Main\UserFieldLangTable.
Получить все пользовательские поля сделок:
        
use Bitrix\Main\UserFieldTable;
use Bitrix\Crm\LeadTable;  
use Bitrix\Crm\DealTable;  
use Bitrix\Crm\ContactTable;
use Bitrix\Crm\CompanyTable;

$userField = UserFieldTable::getList([  
    'filter' => ['ENTITY_ID' => DealTable::getUfId()],  
    'select' => ['*'],  
])->fetch();

//LeadTable::getUFId();
//DealTable::getUFId();
//ContactTable::getUFId();
//CompanyTable::getUFId();
        
    
Получить пользовательское поле лида по коду:
        
use Bitrix\Main\UserFieldTable;
use Bitrix\Crm\LeadTable;

$userField = UserFieldTable::getList([  
    'filter' => ['FIELD_NAME' => 'UF_CRM_608BB5423A3A3', 'ENTITY_ID' => LeadTable::getUfId()],  
    'select' => ['*'],  
])->fetch();
        
    
Получить название пользовательского поля на русском языке:
        
use Bitrix\Main\UserFieldTable;
use Bitrix\Crm\ContactTable;

$userFieldList = UserFieldTable::getList([  
    'filter' => ['FIELD_NAME' => 'UF_CRM_608BB5423A3A3', 'ENTITY_ID' => ContactTable::getUfId()],  
    'select' => ['*', 'LABELS'],  
    'runtime' => [  
        UserFieldTable::getLabelsReference('LABELS', 'ru'),
    ]  
])->fetch();
        
    
Изменить название поля на русском языке:
        
use Bitrix\Main\UserFieldTable;
use Bitrix\Crm\ContactTable;
use Bitrix\Main\UserFieldLangTable;

$userField = UserFieldTable::getList([  
    'filter' => ['FIELD_NAME' => 'UF_CRM_671F87354448E', 'ENTITY_ID' => ContactTable::getUfId()],  
    'select' => [  
        '*',  
        'EDIT_FORM_LABEL' => 'LABELS.EDIT_FORM_LABEL',  
        'LIST_COLUMN_LABEL' => 'LABELS.LIST_COLUMN_LABEL',  
        'LIST_FILTER_LABEL' => 'LABELS.LIST_FILTER_LABEL',  
        'LANGUAGE_ID' => 'LABELS.LANGUAGE_ID',  
    ],  
    'runtime' => [  
        UserFieldTable::getLabelsReference('LABELS', 'ru'),  
    ]  
])->fetch();

$result = UserFieldLangTable::update(
	[
		'USER_FIELD_ID' => $userField['ID'],
		'LANGUAGE_ID' => $userField['LANGUAGE_ID']
	],
	[
		'EDIT_FORM_LABEL' => 'Новое название',  
	    'LIST_COLUMN_LABEL' => 'Новое название',  
	    'LIST_FILTER_LABEL' => 'Новое название' 
	]
);

if($result->isSuccess()) {  
    echo 'Успешно обновлено';  
} else {  
    echo 'Ошибка обновления';  
}
        
    
Поменять название поля на всех языках:
        
use Bitrix\Main\UserFieldTable;
use Bitrix\Crm\ContactTable;
use Bitrix\Main\UserFieldLangTable;

$fields = [  
    'UF_CRM_',
    'UF_CRM_',
    'UF_CRM_',
];  
  
$entity = ContactTable::getUfId();  
  
foreach ($fields as $field) {  
    $userFields = UserFieldTable::getList([  
        'filter' => ['FIELD_NAME' => $field, 'ENTITY_ID' => $entity],  
        'select' => [  
            '*',  
            'EDIT_FORM_LABEL' => 'LABELS.EDIT_FORM_LABEL',  
            'LIST_COLUMN_LABEL' => 'LABELS.LIST_COLUMN_LABEL',  
            'LIST_FILTER_LABEL' => 'LABELS.LIST_FILTER_LABEL',  
            'LANGUAGE_ID' => 'LABELS.LANGUAGE_ID',  
        ],  
        'runtime' => [  
            UserFieldTable::getLabelsReference(),  
        ]  
    ]);  
  
    while ($userField = $userFields->fetch()) {  
        $result = UserFieldLangTable::update(  
            [
	            'USER_FIELD_ID' => $userField['ID'],
	            'LANGUAGE_ID' => $userField['LANGUAGE_ID']
			],  
            [  
                'EDIT_FORM_LABEL' => 'Новое название',  
                'LIST_COLUMN_LABEL' => 'Новое название',  
                'LIST_FILTER_LABEL' => 'Новое название',  
            ]  
        );  
    }  
}