69 $userField[
'SHOW_FILTER'] ===
'N'
70 || $userField[
'USER_TYPE'][
'BASE_TYPE'] ===
'file'
76 $typeID = $userField[
'USER_TYPE'][
'USER_TYPE_ID'];
79 $fieldLabel = $userField[
'LIST_FILTER_LABEL'] ??
'';
80 if($fieldLabel ===
'')
82 if(isset($userField[
'LIST_COLUMN_LABEL']))
84 $fieldLabel = $userField[
'LIST_COLUMN_LABEL'];
86 elseif(isset($userField[
'EDIT_FORM_LABEL']))
88 $fieldLabel = $userField[
'EDIT_FORM_LABEL'];
91 if ($fieldLabel ==
'')
93 $fieldLabel = $fieldName;
96 if($typeID ===
'employee')
101 'type' =>
'entity_selector',
102 'name' => $fieldLabel,
104 'subtype' => $typeID,
108 elseif($typeID ===
'string' || $typeID ===
'url' || $typeID ===
'address' || $typeID ===
'money')
114 'name' => $fieldLabel,
116 'additionalFilter' => [
121 'subtype' => $typeID,
126 elseif($typeID ===
'integer' || $typeID ===
'double')
132 'name' => $fieldLabel,
134 'additionalFilter' => [
139 'subtype' => $typeID,
144 elseif($typeID ===
'boolean')
149 'type' =>
'checkbox',
150 'name' => $fieldLabel,
151 'data' => [
'valueType' =>
'numeric'],
152 'subtype' => $typeID,
156 elseif($typeID ===
'datetime' || $typeID ===
'date')
162 'name' => $fieldLabel,
165 'time' => $typeID ===
'datetime',
166 'additionalFilter' => [
171 'subtype' => $typeID,
176 ($typeID ===
'enumeration' || $typeID ===
'crm_status')
177 && isset($userField[
'SETTINGS'][
'DISPLAY'])
178 && $userField[
'SETTINGS'][
'DISPLAY'] === EnumType::DISPLAY_DIALOG
184 'type' =>
'entity_selector',
185 'name' => $fieldLabel,
187 'subtype' => $typeID,
192 $typeID ===
'enumeration'
193 || $typeID ===
'crm_status'
194 || $typeID ===
'iblock_element'
195 || $typeID ===
'iblock_section'
202 'name' => $fieldLabel,
204 'subtype' => $typeID,
213 'type' =>
'dest_selector',
214 'name' => $fieldLabel,
216 'subtype' => $typeID,
226 'name' => $fieldLabel,
227 'data' => [
'value' =>
''],
228 'subtype' => $typeID,
245 if(!isset($userFields[$fieldID]))
250 $userField = $userFields[$fieldID];
251 $typeID = $userField[
'USER_TYPE'][
'USER_TYPE_ID'];
252 $isMultiple = isset($userField[
'MULTIPLE']) && $userField[
'MULTIPLE'] ===
'Y';
253 $ID = $userField[
'ID'];
254 if ($typeID ===
'employee')
258 'multiple' => $isMultiple ?
'Y' :
'N',
261 'context' =>
'CRM_UF_FILTER_' . $fieldID,
266 'inviteEmployeeLink' =>
false,
267 'intranetUsersOnly' =>
true,
271 'showAvatars' =>
true,
272 'dropdownMode' =>
false,
277 elseif($typeID ===
'enumeration')
279 $entity = new \CUserFieldEnum();
287 $items[$ary[
'ID']] = $ary[
'VALUE'];
291 if ($userField[
'SETTINGS'][
'DISPLAY'] === EnumType::DISPLAY_DIALOG)
294 foreach (
$items as $itemId => $itemTitle)
298 'entityId' => $userField[
'FIELD_NAME'],
299 'title' => $itemTitle,
300 'tabs' => $userField[
'FIELD_NAME'],
307 'items' => $dialogItems,
309 'dropdownMode' =>
true,
310 'compactView' =>
true,
313 'id' => $userField[
'FIELD_NAME'],
314 'title' => $userField[
'EDIT_FORM_LABEL'],
323 'params' =>
array(
'multiple' =>
'Y'),
327 elseif($typeID ===
'iblock_element')
329 $entity = new \CUserTypeIBlockElement();
338 $items[$ary[
'ID']] = $ary[
'NAME'];
348 'params' =>
array(
'multiple' =>
'Y'),
352 elseif($typeID ===
'iblock_section')
354 $entity = new \CUserTypeIBlockSection();
363 $items[$ary[
'ID']] = isset($ary[
'DEPTH_LEVEL']) && $ary[
'DEPTH_LEVEL'] > 1
364 ? str_repeat(
'. ', ($ary[
'DEPTH_LEVEL'] - 1)).$ary[
'NAME'] : $ary[
'NAME'];
374 'params' =>
array(
'multiple' =>
'Y'),
380 $settings = isset($userField[
'SETTINGS']) && is_array($userField[
'SETTINGS'])
381 ? $userField[
'SETTINGS'] :
array();
383 $entityTypeNames =
array();
384 $supportedEntityTypeNames =
array(
385 \CCrmOwnerType::LeadName,
386 \CCrmOwnerType::DealName,
387 \CCrmOwnerType::ContactName,
388 \CCrmOwnerType::CompanyName
390 foreach($supportedEntityTypeNames as $entityTypeName)
394 $entityTypeNames[] = $entityTypeName;
398 $destSelectorParams =
array(
400 'context' =>
'CRM_UF_FILTER_ENTITY',
401 'contextCode' =>
'CRM',
402 'useClientDatabase' =>
'N',
404 'enableDepartments' =>
'N',
405 'enableUsers' =>
'N',
406 'enableSonetgroups' =>
'N',
407 'allowEmailInvitation' =>
'N',
408 'allowSearchEmailUsers' =>
'N',
409 'departmentSelectDisable' =>
'Y',
411 'multiple' => ($isMultiple ?
'Y' :
'N'),
415 $entityTypeCounter = 0;
416 foreach($entityTypeNames as $entityTypeName)
418 switch($entityTypeName)
420 case \CCrmOwnerType::LeadName:
421 $destSelectorParams[
'enableCrmLeads'] =
'Y';
422 $destSelectorParams[
'addTabCrmLeads'] =
'Y';
423 $entityTypeCounter++;
425 case \CCrmOwnerType::DealName:
426 $destSelectorParams[
'enableCrmDeals'] =
'Y';
427 $destSelectorParams[
'addTabCrmDeals'] =
'Y';
428 $entityTypeCounter++;
430 case \CCrmOwnerType::ContactName:
431 $destSelectorParams[
'enableCrmContacts'] =
'Y';
432 $destSelectorParams[
'addTabCrmContacts'] =
'Y';
433 $entityTypeCounter++;
435 case \CCrmOwnerType::CompanyName:
436 $destSelectorParams[
'enableCrmCompanies'] =
'Y';
437 $destSelectorParams[
'addTabCrmCompanies'] =
'Y';
438 $entityTypeCounter++;
443 if ($entityTypeCounter <= 1)
445 $destSelectorParams[
'addTabCrmLeads'] =
'N';
446 $destSelectorParams[
'addTabCrmDeals'] =
'N';
447 $destSelectorParams[
'addTabCrmContacts'] =
'N';
448 $destSelectorParams[
'addTabCrmCompanies'] =
'N';
452 'params' => $destSelectorParams
455 elseif($typeID ===
'crm_status')
458 if(isset($userField[
'SETTINGS'])
459 && is_array($userField[
'SETTINGS'])
460 && isset($userField[
'SETTINGS'][
'ENTITY_TYPE'])
463 $entityType = $userField[
'SETTINGS'][
'ENTITY_TYPE'];
464 if($entityType !==
'')
466 $items = \CCrmStatus::GetStatusList($entityType);
471 'params' =>
array(
'multiple' =>
'Y'),