Метка: D7
18 материалов

UserTable и ElementTable — готовые ORM-классы D7 для работы с пользователями и элементами инфоблоков через единый интерфейс запросов. Разберём, чем выборка через ORM отличается от старых CUser::GetList/ CIBlockElement::GetList и когда это действительно удобнее. Выборка пользователей через UserTable <?php use Bitrix\Main\UserTable; $result = UserTable::getList([ ‘select’ => [‘ID’, ‘NAME’, ‘EMAIL’, ‘LAST_LOGIN’], ‘filter’ => [‘ACTIVE’ => ‘Y’, ‘>LAST_LOGIN’ => ‘2026-01-01’], ‘order’ => [‘LAST_LOGIN’…

Bitrix\Main\Web\HttpClient — штатный класс D7 для запросов к внешним API: интеграции с CRM, платёжными системами, службами доставки. Разберём базовое использование, обработку ошибок и настройку таймаутов, без которых внешний запрос может подвесить весь сайт. Базовый GET-запрос <?php use Bitrix\Main\Web\HttpClient; $httpClient = new HttpClient(); $response = $httpClient->get(‘https://api.example.com/status’); if ($httpClient->getStatus() === 200) { echo $response; } else { echo ‘Ошибка: ‘ . $httpClient->getStatus();…

D7 в отличие от старого API активно использует исключения для сигнализации об ошибках — вместо возврата false или пустого значения, метод выбрасывает объект исключения с описанием проблемы. Разберём иерархию исключений D7 и как правильно их обрабатывать. Базовая иерархия исключений D7 Exception (стандартный PHP) └── Bitrix\Main\SystemException ├── Bitrix\Main\ArgumentException │ ├── ArgumentNullException │ ├── ArgumentOutOfRangeException │ └── ArgumentTypeException ├── Bitrix\Main\NotSupportedException ├── Bitrix\Main\ObjectNotFoundException…

COption — хранилище настроек старого ядра 1С-Битрикс, работающее с теми же данными, что и современный Bitrix\Main\Config\Option из D7. Значение, записанное одним классом, читается другим без каких-либо преобразований — это одна и та же таблица в базе. Основные методы <?php // запись строки COption::SetOptionString(‘myproject’, ‘api_key’, ‘abc123’); // чтение строки со значением по умолчанию $key = COption::GetOptionString(‘myproject’, ‘api_key’, ‘default’); // запись и…

CSaleOrder и CSaleBasket — устаревшие классы старого модуля «Интернет-магазин» (D6), которые до сих пор встречаются в проектах, не переведённых на современный Bitrix\Sale\Order. Разберём, как они работают, и почему для нового кода стоит выбирать D7-вариант. Добавление товара в корзину (D6) <?php CSaleBasket::Add([ ‘PRODUCT_ID’ => $productId, ‘QUANTITY’ => 1, ‘LID’ => ‘s1’, ‘PRICE’ => $price, ‘CURRENCY’ => ‘RUB’, ]); Создание заказа (D6)…

Мобильное приложение, внешняя интеграция или SPA-фронтенд, работающий с данными сайта, — всем им нужен API. Разберём, как реализовать собственный REST-эндпоинт на 1С-Битрикс через штатный механизм контроллеров D7, а не через самописную маршрутизацию с нуля. Контроллер как основа REST-эндпоинта <?php namespace Vendor\Module\Controller; use Bitrix\Main\Engine\Controller; use Bitrix\Main\Engine\ActionFilter; class Product extends Controller { public function configureActions(): array { return [ ‘list’ => […

CModule::IncludeModule — предшественник современного Loader::includeModule из D7. В коде старого ядра и во множестве чужих решений из Маркетплейса он встречается до сих пор, и разработчику важно понимать оба варианта одинаково хорошо. Базовый вызов <?php if (CModule::IncludeModule(‘iblock’)) { $result = CIBlockElement::GetList([], [‘IBLOCK_ID’ => 5]); } else { // модуль недоступен } Метод возвращает true при успешном подключении и false при неудаче…

Заказ покупателя, оформленный через sale.order.ajax, — не единственный способ создать заказ в 1С-Битрикс. Часто нужно собрать его программно: при импорте из внешней системы, при оформлении по звонку менеджером, при переносе заказов со старого сайта. Разберём, как создать заказ через объектную модель Bitrix\Sale\Order из кода D7 — без обращения к устаревшим функциям старого модуля продаж. Основные объекты Модуль продаж в D7…