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

Bitrix24 (PHP): Получение наименование счетов (на входе массив ID)

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

function Get_invoices($invoices) {
    if (!\Bitrix\Main\Loader::includeModule('crm')) return [];
    if (empty($invoices)) return [];

    $invoices = array_unique($invoices);

    $container = \Bitrix\Crm\Service\Container::getInstance();
    $factory = $container->getFactory(31);
    if (!$factory) return [];

    $Selectors = [
        "ID", "XML_ID", "TITLE", "CREATED_BY", "UPDATED_BY", "MOVED_BY", "CREATED_TIME", "UPDATED_TIME", "MOVED_TIME", "CATEGORY_ID",
        "OPENED", "STAGE_ID", "PREVIOUS_STAGE_ID", "BEGINDATE", "CLOSEDATE", "COMPANY_ID", "CONTACT_ID", "OPPORTUNITY",
        "IS_MANUAL_OPPORTUNITY", "TAX_VALUE", "CURRENCY_ID", "OPPORTUNITY_ACCOUNT", "TAX_VALUE_ACCOUNT",
        "ACCOUNT_CURRENCY_ID", "MYCOMPANY_ID", "SOURCE_ID", "SOURCE_DESCRIPTION", "WEBFORM_ID", "ASSIGNED_BY_ID", "COMMENTS",
        "ACCOUNT_NUMBER", "LOCATION_ID", "IS_RECURRING", "LAST_ACTIVITY_BY", "LAST_ACTIVITY_TIME", "LAST_COMMUNICATION_TIME",
        "LAST_COMMUNICATION_CALL_TIME", "LAST_COMMUNICATION_EMAIL_TIME", "LAST_COMMUNICATION_IMOL_TIME",
        "LAST_COMMUNICATION_WEBFORM_TIME", "PARENT_ID_2", "PARENT_ID_7", "OBSERVERS", "CONTACT_IDS"
    ];

    $items = $factory->getItems(["order"=> ["ID"=> "DESC"], "filter"=> ["=ID"=> $invoices], "select"=> $Selectors]);

    $result = [];
    foreach ($items as $item) {
        $data = $item->getData();

        $filteredData = [];
        foreach ($Selectors as $field) {
             if (isset($data[$field])) $filteredData[$field] = $data[$field];
        }

        // Преобразование дат
        $dateFields = ["CREATED_TIME", "UPDATED_TIME", "MOVED_TIME", "BEGINDATE", "CLOSEDATE", "LAST_ACTIVITY_TIME"];
        foreach ($dateFields as $field) {
            if (in_array($field, $Selectors) && $filteredData[$field] instanceof \Bitrix\Main\Type\Date) {
                $filteredData[$field] = $filteredData[$field]->toString();
            }
        }

        $result[$filteredData['ID']] = $filteredData;
    }

    return $result;
}


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