7sites - внедрение Битрикс24
Услуги
  • Лицензии 1С-Битрикс
    • Облачный сервис Битрикс24
    • Коробочная версия Битрикс24
    • Подписка Битрикс24.Маркет Плюс
  • Внедрение CRM
  • Доработка корпоративных порталов Битрикс24
  • Техническое сопровождение
  • Перенос Битрикс24 из облака в коробку
  • Сайты на 1С-Битрикс24
Проекты
  • Государственные организации
  • Управление бизнесом
  • Спорт
  • Автомобильный бизнес
Акции
Новости
Компания
  • О компании
  • Сертификаты
  • Карьера
  • Разработка ПО
Контакты
Ещё
    Задать вопрос
    +7 (495) 118-30-89
    Заказать звонок
    info@7sites.ru
    г. Пермь, ш. Космонавтов 111, к. 10
    • Вконтакте
    • Facebook
    • Twitter
    • Telegram
    +7 (495) 118-30-89
    Заказать звонок
    7sites - внедрение Битрикс24
    Услуги
    • Лицензии 1С-Битрикс
      • Облачный сервис Битрикс24 —
      • Коробочная версия Битрикс24 —
      • Подписка Битрикс24.Маркет Плюс
    • Внедрение CRM
    • Доработка корпоративных порталов Битрикс24
    • Техническое сопровождение
    • Перенос Битрикс24 из облака в коробку
    • Сайты на 1С-Битрикс24
    Проекты
    • Государственные организации
    • Управление бизнесом
    • Спорт
    • Автомобильный бизнес
    Акции
    Новости
    Компания
    • О компании
    • Сертификаты
    • Карьера
    • Разработка ПО
    Контакты
      7sites - внедрение Битрикс24
      Услуги
      • Лицензии 1С-Битрикс
        • Облачный сервис Битрикс24 —
        • Коробочная версия Битрикс24 —
        • Подписка Битрикс24.Маркет Плюс
      • Внедрение CRM
      • Доработка корпоративных порталов Битрикс24
      • Техническое сопровождение
      • Перенос Битрикс24 из облака в коробку
      • Сайты на 1С-Битрикс24
      Проекты
      • Государственные организации
      • Управление бизнесом
      • Спорт
      • Автомобильный бизнес
      Акции
      Новости
      Компания
      • О компании
      • Сертификаты
      • Карьера
      • Разработка ПО
      Контакты
        7sites - внедрение Битрикс24
        7sites - внедрение Битрикс24
        • Услуги
          • Назад
          • Услуги
          • Лицензии 1С-Битрикс
            • Назад
            • Лицензии 1С-Битрикс
            • Облачный сервис Битрикс24
            • Коробочная версия Битрикс24
            • Подписка Битрикс24.Маркет Плюс
          • Внедрение CRM
          • Доработка корпоративных порталов Битрикс24
          • Техническое сопровождение
          • Перенос Битрикс24 из облака в коробку
          • Сайты на 1С-Битрикс24
        • Проекты
          • Назад
          • Проекты
          • Государственные организации
          • Управление бизнесом
          • Спорт
          • Автомобильный бизнес
        • Акции
        • Новости
        • Компания
          • Назад
          • Компания
          • О компании
          • Сертификаты
          • Карьера
          • Разработка ПО
        • Контакты
        • +7 (495) 118-30-89
        info@7sites.ru
        г. Пермь, ш. Космонавтов 111, к. 10
        • Вконтакте
        • Facebook
        • Twitter
        • Telegram
        • Главная
        • Пресс-центр
        • Полезное
        • Чтение компании в Битрикс24 по ID: метод CCrmCompany::GetByID

        Чтение компании в Битрикс24 по ID: метод CCrmCompany::GetByID

        20 апреля 2026
        Полезное

        Введение

        При разработке на коробочной версии Битрикс24 часто возникает необходимость программно получить данные компании по её идентификатору. Это может потребоваться при выводе информации о компании на сайте, в отчётах, при интеграции с внешними системами или для последующей обработки данных. Основным и наиболее простым методом для получения информации о компании является CCrmCompany::GetByID.

        Важное отличие от CCrmCompany::GetList

        Ключевая особенность метода CCrmCompany::GetByID: в отличие от CCrmCompany::GetList, данный метод возвращает все поля компании, включая пользовательские поля (UF_CRM_*). Это делает его незаменимым, когда вам нужно получить значения пользовательских полей компании.

        Метод Пользовательские поля Скорость Тип результата
        CCrmCompany::GetByID ✅ Возвращает Быстрый (один запрос) Одна запись
        CCrmCompany::GetList ❌ Не возвращает Средний (можно с пагинацией) Выборка записей

        Поэтому для получения полной информации о компании со всеми пользовательскими полями всегда используйте CCrmCompany::GetByID, а не GetList.

        Область применения и ключесущности

        Метод CCrmCompany::GetByID используется для получения полной информации о компании по её ID. Понимание этой связки необходимо при:

        • Выводе данных компании на сайте — отображение названия, реквизитов, контактов
        • Создании связанных сущностей — при добавлении сделки или лида, привязанного к компании
        • Интеграции с внешними системами — выгрузка данных о контрагентах
        • Отчётах и дашбордах — получение названия компании для отображения в отчётах
        • Обработчиках событий — при изменении или создании компании
        • Чтении пользовательских полей компании — в отличие от GetList, этот метод их возвращает

        Ключевые сущности:


        Таблица / Класс Описание
        b_crm_company Таблица с данными компаний в CRM
        CCrmCompany Класс для работы с компаниями
        CCrmOwnerType Константы типов владельцев (Company = 4)
        CCrmCompany::GetByID() Метод получения компании по ID
        CCrmCompany::GetList() Метод получения списка компаний (НЕ возвращает пользовательские поля)

        Параметры метода CCrmCompany::GetByID

        Метод имеет следующую сигнатуру:

        php
        public static function GetByID($ID, $bCheckPermissions = true)

        Параметр $ID (идентификатор компании)

        Числовой идентификатор компании, информацию о которой необходимо получить.

        Параметр $bCheckPermissions (проверка прав)

        Логический параметр, определяющий, нужно ли проверять права доступа текущего пользователя:

        Значение Описание
        true (по умолчанию) Проверяются права доступа. Если у пользователя нет прав на чтение компании, метод вернёт false.
        false Проверка прав не выполняется. Метод вернёт данные компании независимо от прав текущего пользователя.

        Возвращаемое значение

        Метод возвращает ассоциативный массив с данными компании или false, если компания не найдена или нет прав доступа.

        Основные поля массива:

        Поле Описание
        ID Уникальный идентификатор компании
        TITLE Название компании
        COMPANY_TYPE Тип компании (клиент, партнёр, конкурент и т.д.)
        INDUSTRY Сфера деятельности
        EMPLOYEES Количество сотрудников
        ADDRESS Адрес
        ADDRESS_LEGAL Юридический адрес
        BANKING_DETAILS Банковские реквизиты
        PHONE Телефон
        EMAIL E-mail
        WEB Веб-сайт
        COMMENTS Комментарий
        ASSIGNED_BY_ID ID ответственного пользователя
        CREATED_BY_ID ID создателя
        MODIFY_BY_ID ID последнего изменившего
        DATE_CREATE Дата создания
        DATE_MODIFY Дата изменения
        OPENED Открытая компания (видна всем)
        IS_MY_COMPANY Флаг "Моя компания"
        ORIGINATOR_ID Внешний источник
        ORIGIN_ID ID во внешней системе
        UF_CRM_* Пользовательские поля (ключевая особенность метода!)

        Практические примеры

        Пример 1. Базовое получение компании по ID (с пользовательскими полями)

        php
        $companyId = 123; // ID компании
        
        if (\Bitrix\Main\Loader::includeModule('crm')) {
            // Метод возвращает ВСЕ поля, включая пользовательские UF_CRM_*
            $companyData = CCrmCompany::GetByID($companyId, false);
            
            echo "<pre>"; 
            print_r($companyData); 
            echo "</pre>";
            
            // Пользовательские поля доступны напрямую
            if (!empty($companyData['UF_CRM_12345678'])) {
                echo "Значение пользовательского поля: " . $companyData['UF_CRM_12345678'];
            }
        }

        Пример 2. Сравнение GetByID и GetList (пользовательские поля)

        php
        // ❌ CCrmCompany::GetList НЕ возвращает пользовательские поля
        $dbList = CCrmCompany::GetList([], ['ID' => 123], ['ID', 'TITLE']);
        $companyFromList = $dbList->Fetch();
        // В $companyFromList НЕТ полей UF_CRM_*
        
        // ✅ CCrmCompany::GetByID возвращает ВСЕ поля, включая UF_CRM_*
        $companyFromGetByID = CCrmCompany::GetByID(123, false);
        // В $companyFromGetByID ЕСТЬ все пользовательские поля UF_CRM_*
        
        echo "GetList: " . print_r($companyFromList, true);
        echo "GetByID: " . print_r($companyFromGetByID, true);

        Пример 3. Получение компании с выводом пользовательских полей

        php
        function getCompanyWithUserFields(int $companyId, bool $skipPermissions = false): ?array
        {
            if (!\Bitrix\Main\Loader::includeModule('crm')) {
                return null;
            }
            
            // Только GetByID возвращает пользовательские поля!
            $company = \CCrmCompany::GetByID($companyId, !$skipPermissions);
            
            if (!$company) {
                return null;
            }
            
            // Собираем все пользовательские поля (начинаются с UF_CRM)
            $userFields = [];
            foreach ($company as $key => $value) {
                if (strpos($key, 'UF_CRM') === 0) {
                    $userFields[$key] = $value;
                }
            }
            
            return [
                'ID' => $company['ID'],
                'TITLE' => $company['TITLE'],
                'PHONE' => $company['PHONE'],
                'EMAIL' => $company['EMAIL'],
                'USER_FIELDS' => $userFields  // ← только GetByID может это вернуть
            ];
        }
        
        // Использование
        $company = getCompanyWithUserFields(123, true);
        echo '<pre>'; print_r($company); echo '</pre>';

        Пример 4. Чтение конкретного пользовательского поля компании

        php
        function getCompanyUserFieldValue(int $companyId, string $userFieldName, bool $skipPermissions = false)
        {
            if (!\Bitrix\Main\Loader::includeModule('crm')) {
                return null;
            }
            
            // GetByID - единственный способ получить пользовательские поля
            $company = \CCrmCompany::GetByID($companyId, !$skipPermissions);
            
            if (!$company) {
                return null;
            }
            
            return $company[$userFieldName] ?? null;
        }
        
        // Использование
        $sourceValue = getCompanyUserFieldValue(123, 'UF_CRM_1617204193', true);
        echo "Значение пользовательского поля: " . $sourceValue;

        Пример 5. Получение компании без проверки прав

        php
        // Получаем данные компании из-под администратора (без проверки прав)
        // Это также даст доступ ко всем пользовательским полям
        $companyData = CCrmCompany::GetByID($companyId, false);
        
        if ($companyData) {
            echo "Название: " . $companyData['TITLE'] . "<br>";
            echo "Адрес: " . $companyData['ADDRESS'] . "<br>";
            
            // Читаем пользовательские поля
            if ($companyData['UF_CRM_MY_FIELD']) {
                echo "Доп. информация: " . $companyData['UF_CRM_MY_FIELD'] . "<br>";
            }
        }

        Пример 6. Получение компании с контактами и пользовательскими полями

        php

        function getCompanyFullInfo(int $companyId): ?array
        {
            if (!\Bitrix\Main\Loader::includeModule('crm')) {
                return null;
            }
            
            // GetByID возвращает все поля, включая пользовательские
            $company = \CCrmCompany::GetByID($companyId, false);
            
            if (!$company) {
                return null;
            }
            
            // Получаем контакты компании
            $contacts = [];
            $dbContacts = \CCrmContact::GetList(
                ['LAST_NAME' => 'ASC'],
                ['COMPANY_ID' => $companyId],
                false,
                false,
                ['ID', 'NAME', 'LAST_NAME', 'PHONE', 'EMAIL']
            );
            
            while ($contact = $dbContacts->Fetch()) {
                $contacts[] = $contact;
            }
            
            return [
                'COMPANY' => $company,           // содержит все поля + UF_CRM_*
                'CONTACTS' => $contacts
            ];
        }
        
        // Использование
        $fullInfo = getCompanyFullInfo(123);
        echo '<pre>'; print_r($fullInfo); echo '</pre>';

        Сравнительная таблица: GetByID vs GetList


        Характеристика CCrmCompany::GetByID CCrmCompany::GetList
        Пользовательские поля (UF_CRM_*) ✅ Да ❌ Нет
        Количество записей 1 Много (можно ограничить)
        Скорость при одной записи Быстрый Медленнее (из-за построения запроса)
        Необходимость перебора Нет (Fetch не нужен) Да (цикл while)
        Фильтрация Только по ID Любые поля
        Сортировка Не применима Да
        Пагинация Не применима Да

        Особенности и рекомендации

        1. Пользовательские поля возвращаются только в GetByID: Это ключевое отличие метода. Если вам нужно прочитать значения пользовательских полей компании (UF_CRM_*), используйте именно GetByID, а не GetList.

        2. Обязательная проверка существования поля: Перед обращением к пользовательскому полю проверяйте его наличие через isset() или !empty().

        3. Формат пользовательских полей: В зависимости от типа поля, значение может быть строкой, числом, массивом (для множественных списков) или сериализованными данными.

        4. Второй параметр $bCheckPermissions: При передаче false метод вернёт данные даже если у текущего пользователя нет прав на просмотр компании. Это полезно для служебных скриптов и агентов.

        5. Кеширование: При частых запросах одной и той же компании рекомендуется кешировать результат, так как запрос идёт напрямую в базу данных.

        6. Поля PHONE, EMAIL, WEB: Возвращаются в мульти-формате (сериализованная строка). Для удобного парсинга используйте CCrmFieldMulti::GetEntityFields().

        Альтернативные методы

        Метод Описание
        CCrmCompany::GetByID() ✅ Основной метод. Возвращает пользовательские поля.
        CCrmCompany::GetList() ❌ Не возвращает пользовательские поля. Только для списков.
        CCrmCompany::GetListEx() Расширенная версия GetList, но тоже не возвращает UF_CRM_*
        \Bitrix\Crm\Service\Container::getInstance()->getFactory() D7 способ, возвращает объект Item с пользовательскими полями

        Заключение

        CCrmCompany::GetByID — это основной и наиболее удобный метод для получения полной информации о компании в коробочной версии Битрикс24. Его ключевое преимущество перед CCrmCompany::GetList — возможность получения всех пользовательских полей (UF_CRM_*). Если вам нужно прочитать значения пользовательских полей компании, вы обязаны использовать CCrmCompany::GetByID, так как GetList и GetListEx их не возвращают. Понимание этого различия критически важно для разработчиков, работающих с пользовательскими полями CRM.

        Начните сотрудничество с индивидуальной консультации по подбору инструментов и услуг.
        Заказать услугу

        Подписаться на
        рассылку

        Будьте в курсе последних новостей отрасли

        Подписаться
        • Комментарии
        Загрузка комментариев...
        Назад к списку
        Услуги
        Лицензии 1С-Битрикс
        Внедрение CRM
        Доработка корпоративных порталов Битрикс24
        Техническое сопровождение
        Перенос Битрикс24 из облака в коробку
        Сайты на 1С-Битрикс24
        Компания
        О компании
        Сертификаты
        Карьера
        Разработка ПО
        Проекты
        Новости
        Контакты
        Подписка на рассылку
        +7 (495) 118-30-89
        Заказать звонок
        info@7sites.ru
        г. Пермь, ш. Космонавтов 111, к. 10
        • Вконтакте
        • Facebook
        • Twitter
        • Telegram
        Политика конфиденциальности
        © 2009-2026 ООО "7 САЙТОВ" (с) Все права защищены.
        Заказать звонок
        Написать сообщение
        Ближайший офис