- Модуль: crm
- Путь к файлу: ~/bitrix/modules/crm/lib/FieldSet/Factory.php
- Класс: Bitrix\Crm\FieldSet\Factory
- Вызов: Factory::setDefaultFieldsForItems
private function setDefaultFieldsForItems(\Closure $prepareFieldsToInsert, int $typeId, Item $item): void
{
$presetFields = EntityFieldProvider::getFields([], $item->getRequisitePresetId());
$defaultItemFields = array_map(
$prepareFieldsToInsert,
$this->getDefaultItemFieldMap()[$typeId]
);
$fields = [];
$fieldCounter = 0;
foreach ($presetFields as $presetField) {
if (mb_strpos($presetField['entity_field_name'], 'RQ_') === false
|| !in_array($presetField['type'], ['string', 'typed_string'])
|| $fieldCounter >= self::MAX_REQUISITES_FIELDS_COUNT
) {
continue;
}
$fieldCounter++;
$fields[] = $presetField;
}
$fields = array_merge($fields, $defaultItemFields ?? []);
$item->setFields($fields);
}