Михаил Базаров Разработка на 1С-Битрикс Михаил Базаров

1C-Битрикс getlist как вывести запрос в текстовом виде - увидеть выполняемый SQL

Вопрос задан: 27 мая 2026 в 05:00 | Просмотров: 55 Использованные MCP инструменты: searchDocs, liveApiFindFunction, liveApiGetDocResource

Задайте свой вопрос — Работает AI в связке с MCP сервером. Перепроверяйте важную информацию.

В 1С-Битрикс есть несколько способов посмотреть SQL-запрос в текстовом виде, который формирует метод getList (как для D7 ORM, так и для старого API). Ниже приведены основные подходы.

Способ 1. SqlTracker (рекомендуемый)

Самый популярный и гибкий способ — использовать класс Bitrix\Main\Diag\SqlTracker. Он перехватывает все SQL-запросы между startTracker() и stopTracker().

Полный пример для ORM D7:

$connection = \Bitrix\Main\Application::getConnection();

// Запускаем трекинг (true — начать новый трекинг)
$connection->startTracker(true);

// Выполняем getList
$result = \Bitrix\Main\UserTable::getList([
    'filter' => ['ACTIVE' => 'Y'],
    'limit'  => 5,
])->fetchAll();

// Получаем объект трекера
$tracker = $connection->getTracker();

// Останавливаем трекинг
$connection->stopTracker();

// Перебираем все перехваченные запросы
$queries = $tracker->getQueries();
foreach ($queries as $query) {
    echo 'SQL: ' . $query->getSql() . '<br>';
    echo 'Время: ' . round($query->getTime(), 5) . ' сек.<hr>';
}

Метод $query->getSql() возвращает непосредственно текст SQL-запроса. Дополнительно доступны:

  • getTime() — время выполнения в секундах;
  • getTrace() — стек вызовов (где был выполнен запрос);
  • getBinds() — значения параметров, подставленные в запрос.

Способ 2. getTrackerQuery() у результата выборки

У объекта Bitrix\Main\DB\Result есть метод getTrackerQuery(), который позволяет получить объект последнего запроса напрямую:

$result = \Bitrix\Main\UserTable::getList([
    'filter' => ['=ID' => 1],
]);

// Получаем объект запроса трекера
$trackerQuery = $result->getTrackerQuery();

if ($trackerQuery) {
    echo 'SQL: ' . $trackerQuery->getSql();
    echo '<br>';
    echo 'Время: ' . $trackerQuery->getTime() . ' сек.';
}

Этот способ удобен, когда нужно «подсмотреть» SQL для одного конкретного вызова getList.

Способ 3. Запись лога SQL-запросов в файл

SqlTracker также умеет писать все запросы в файл:

$tracker = \Bitrix\Main\Application::getConnection()->startTracker(true);

// Указываем путь к лог-файлу
$logPath = $_SERVER['DOCUMENT_ROOT'] . '/upload/sql_queries.log';
$tracker->startFileLog($logPath);

// Выполняем запросы
$result = \Bitrix\Main\UserTable::getList(['filter' => ['ACTIVE' => 'Y']])->fetchAll();

// Останавливаем запись в файл
$tracker->stopFileLog();

Способ 4. Встроенный профайлер в админке

Если сайт работает в режиме отладки (define('BX_DEBUG', true); или SITE_CHARSET != "windows-1251"), в нижней части страницы административного интерфейса появляется панель профайлера. Там есть вкладка SQL, где отображаются все выполненные запросы, их текст и время выполнения.

Включить режим отладки можно в файле bitrix/.settings.php:

'exception_handling' => [
    'value' => [
        'debug' => true,
    ],
],

Важно: не включайте режим отладки на боевом (production) сайте без необходимости, так как это может замедлить работу и раскрыть служебную информацию.

Услуги Стоимость разработки на 1С-Битрикс

Стоимость разработки сайта зависит от объёма и сложности проекта. Ниже приведены ориентировочные цены, как правило не выходят за обозначенные рамки. Срок разработки зависит от сложности проекта: как правило называю сроки с запасом.
Финальная стоимость и сроки разработки обговариваются на этапе обсуждения. Скачайте опросник на разработку, заполните как можно подробнее и вышлите удобным способом. После ознакомления смогу задать уточняющие вопросы и оценить проект.
Индивидуальная разработка магазина
от 250 000 руб. от 4-х недель

Разработка магазина на 1С-Битрикс с нуля. Дизайн, сборка и оптимизация производительности под конкретный проект и требования. Реализация любого функционала без ограничений готовых решений.

Подробнее
Сайт на готовом решении 1С-Битрикс
от 50 000 руб. от 5-ти дней

Вариант для тех, кто не хочет тратить много средств на индивидуальный проект, и не имеет серьезных требований к сайту. Магазин, быстро запускается на базе одного из 200-та готовых решений.

Подробнее
Мобильное приложение
от 300 000 руб. от 4-х недель

Разработка кроссплатформенного мобильного приложения, которое не уступает нативным решениям как в производительности, так и пользовательском опыте. Публикуется в AppStore, GooglePlay и RuStore

Подробнее
Сайт компании
от 120 000 руб. от 2-х недель

Корпоративный сайт с информационными разделами, каталогом товаров или услуг. Включает формы обратной связи карточек каталога, любое количество статичных и динамичных разделов.

Подробнее
Инфоресурс
от 100 000 руб. от 3-х недель

Информационный ресурс любой сложности. Сайт для СМИ, городской портал или многопользовательская доска объявлений. Внутренние форумы, блоги- по необходимости.

Подробнее
Поддержка и доработки проектов
от 3 000 руб. от 1 часа

Выполнение доработок любой сложности. Поддержка, модернизация и расширение функционала существующих проектов. Решение задач: от мелких правок вёрстки до разработки новых модулей.

Подробнее

Включено в стоимость разработки:

  • Лицензия на 1С-Битрикс необходимой редакции, дополнительные модули, для реализации функционала и видео-инструкции по работе с готовым проектом
  • Оптимизация программной части проекта и конфигурации сервера под максимальную скорость работы. Базовая СЕО оптимизация и добавление сайта в поисковые системы.

Блог-note Заметки по 1С-Битрикс