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;
}