ITKUP
Личный блог на тему разработки, IT. Учусь, записываю, анализирую.

Bitrix24 (PHP): Получение списка полей смарт-процесса (по его ID)

Данная функция принимает на входе два параметра: ID смарт-процесса (ID сущности) и метку о том, что стоит выводить только пользовательские поля. В итоге возвращает массив полей.

function Get_sProcFields($entityTypeID, $UFOnly = false) {
    if (!\Bitrix\Main\Loader::includeModule('crm')) return false;

    if ($entityTypeID) {
        try {
            $container = \Bitrix\Crm\Service\Container::getInstance();
            // создаем "фабрику", через которую будет выполняться взаимодействие с эл-ом смарт-процесса
            $factory = $container->getFactory($entityTypeID);
            // проверяем, существует ли фабрика для указанного типа
            if (!$factory) {
                \Bitrix\Main\Diag\Logger::log('error', 'Фабрика не найдена для типа ' . $entityTypeID);
                return false;
            }

            $fieldsCollection = $factory->getFieldsCollection();
            // массив списка полей смарт-процесса
            $fact_FieldsData = [];
            foreach ($fieldsCollection as $field) {
                $fact_FieldsData[$field->getName()] = $field->getTitle();
            }

            if ($UFOnly) {
                $fact_FieldsUFData = array_filter(array_keys($fact_FieldsData), function($value) {
                    return strpos($value, 'UF_') === 0;
                });

                return $fact_FieldsUFData;
            } else {
                return $fact_FieldsData;
            }
        } catch (Exception $e) {
            \Bitrix\Main\Diag\Logger::log('error', 'Фабрика не найдена для типа ' .$e->getMessage());
            return false;
        }
    } else {
        \Bitrix\Main\Diag\Logger::log('error', 'Указаны некорректные параметры! ');
        return false;
    }
}


Cookie-файлы
Настройка cookie-файлов
Детальная информация о целях обработки данных и поставщиках, которые мы используем на наших сайтах
Аналитические Cookie-файлы Отключить все
Технические Cookie-файлы
Другие Cookie-файлы
Мы используем файлы Cookie для улучшения работы, персонализации и повышения удобства пользования нашим сайтом. Продолжая посещать сайт, вы соглашаетесь на использование нами файлов Cookie. Подробнее о нашей политике в отношении Cookie.
Понятно Подробнее
Cookies