- Модуль: biconnector
- Путь к файлу: ~/bitrix/modules/biconnector/lib/integration/main/user.php
- Класс: BitrixBIConnectorIntegrationMainUser
- Вызов: User::onBIConnectorDataSources
static function onBIConnectorDataSources(BitrixMainEvent $event)
{
$params = $event->getParameters();
//$manager = $params[0];
$result = &$params[1];
$languageId = $params[2];
$result['user'] = [
'TABLE_NAME' => 'b_user',
'TABLE_ALIAS' => 'U',
'FILTER' => [
'=IS_EXTERNAL' => 'N',
],
'FILTER_FIELDS' => [
'IS_EXTERNAL' => [
'IS_METRIC' => 'N',
'FIELD_NAME' => "CASE WHEN EXTERNAL_AUTH_ID IN ('" . implode("', '", BitrixMainUserTable::getExternalUserTypes()) . "') THEN 'Y' ELSE 'N' END",
'FIELD_TYPE' => 'string',
],
],
'FIELDS' => [
'ID' => [
'IS_PRIMARY' => 'Y',
'IS_METRIC' => 'N',
'FIELD_NAME' => 'U.ID',
'FIELD_TYPE' => 'int',
],
'ACTIVE' => [
'IS_METRIC' => 'N',
'FIELD_NAME' => 'U.ACTIVE',
'FIELD_TYPE' => 'string',
],
'NAME' => [
'IS_METRIC' => 'N', // 'Y'
'FIELD_NAME' => 'concat_ws(' ', nullif(U.NAME, ''), nullif(U.LAST_NAME, ''))',
'FIELD_TYPE' => 'string',
],
'DEPARTMENT' => [
'IS_METRIC' => 'N', // 'Y'
'FIELD_NAME' => 'D.VALUE_STR',
'FIELD_TYPE' => 'string',
'TABLE_ALIAS' => 'D',
'JOIN' => 'INNER JOIN b_biconnector_dictionary_data D ON D.DICTIONARY_ID = ' . BitrixBIConnectorDictionary::USER_DEPARTMENT . ' AND D.VALUE_ID = U.ID',
'LEFT_JOIN' => 'LEFT JOIN b_biconnector_dictionary_data D ON D.DICTIONARY_ID = ' . BitrixBIConnectorDictionary::USER_DEPARTMENT . ' AND D.VALUE_ID = U.ID',
],
],
];
if (BitrixBIConnectorDictionaryManager::isAvailable(BitrixBIConnectorDictionary::USER_DEPARTMENT))
{
$result['crm_deal']['DICTIONARY'] = [
BitrixBIConnectorDictionary::USER_DEPARTMENT,
];
}
else
{
unset($result['user']['FIELDS']['DEPARTMENT']);
}
$messages = Loc::loadLanguageFile(__FILE__, $languageId);
$result['user']['TABLE_DESCRIPTION'] = $messages['MAIN_BIC_USER_TABLE'] ?: 'user';
foreach ($result['user']['FIELDS'] as $fieldCode => &$fieldInfo)
{
$fieldInfo['FIELD_DESCRIPTION'] = $messages['MAIN_BIC_USER_FIELD_' . $fieldCode];
if (!$fieldInfo['FIELD_DESCRIPTION'])
{
$fieldInfo['FIELD_DESCRIPTION'] = $fieldCode;
}
$fieldInfo['FIELD_DESCRIPTION_FULL'] = $messages['MAIN_BIC_USER_FIELD_' . $fieldCode . '_FULL'] ?? '';
}
unset($fieldInfo);
}