Yandex Metrika

Поиск по блогу

Найдите нужную статью о модулях 1С-Битрикс,
настройке и оптимизации

Теги: D7 ×

Найдено результатов: 50 по тегам D7

Платёжные обработчики в Битрикс Sale (D7)

С чего начинается платёжный обработчик Sale D7 В новой модели платёжная интеграция оформляется как отдельный каталог под /bitrix/php_interface/include/sale_payment/ или /local/php_interface/include/sale_payment/ . Внутри лежит handler.php с описанием сервиса, .description.php с параметрами из административной части и…

Ядро Bitrix D7: короткая шпаргалка для разработчика

Подключение окружения В типовых шаблонах достаточно require $_SERVER['DOCUMENT_ROOT'].'/bitrix/header.php' : он поднимает ядро, зарегистрированные модули и контекст запроса. Глобальные переменные старого стиля остаются ради совместимости, но новый код строится вокруг сервисов ядра и ORM вместо «магических» глобальных…

Пользователи и группы в D7 ORM

Связующая модель Таблица UserGroupTable описывает пары пользователь / группа: по ней удобно узнать, в каких группах состоит конкретный логин и каких пользователей содержит роль администратора каталога. Таблицы UserTable и GroupTable дают реквизиты сторон связи. Списки и фильтры Достаточно собрать 'select' / 'filter'…

Новый highload-блок: запись блока и первого UF-поля через CUserTypeEntity

Создание строки описания блока через HighloadBlockTable::add и привязка пользовательских полей сущности вида HLBLOCK_ID; для строки задают подписи RU/EN через массивы меток формы без забывания обязательных ключей настроек.

Значения спискового свойства инфоблока в D7 через PropertyEnumerationTable

Что именно считают «перечнем» инфоблока Свойства с типом List хранят варианты в отдельной табличной модели фиксированного вида «строки перечня». Связь с свойствем — через PROPERTY_ID , а ключевые столбцы — ID (то, что пишется в значение свойства элемента) и XML_ID (ключ для обменов и интеграций). Ссылки на таблицы…

Классические события D7: Event и EventManager вне ORM

Место модели событий Рядом с ORM-хуками есть «плоские» точки расширения: модуль, событие, массив аргументов. Ими пользуются миграционные решения до полного перехода на новые API и кастомные модули, где важнее явный контракт, чем рефлексия таблицы. Подключение слушателя addEventHandler регистрирует коллбек на связку…

Отладочный вывод в D7: Diag\Debug без var_dump по всему продакшену

Зачем свой слой над var_dump Прямой var_dump в шаблоне легко утекёт в браузер вместе со стилями страницы, а большие структуры разрывают разметку. \Bitrix\Main\Diag\Debug даёт управляемый формат маркированного дампа по метке переменной — удобно сравнивать несколько снимков одного сценария. Вывод и строка-буфер Третий…

Cookie в Bitrix D7: класс Cookie, префикс и ответ

Как выставить cookie через \Bitrix\Main\Web\Cookie и ответ приложения, когда нужен writeHeaders после AJAX без эпилога, и как прочитать значение через HttpRequest — с автоматическим префиксом главного модуля или «как есть» через getCookieRaw.

Региональные настройки в Bitrix D7: \Bitrix\Main\Context\Culture

Класс Culture в ядре main хранит форматы даты, времени и представления имени, кодировку, направление текста и день начала недели. Как получить объект культуры из текущего контекста, собрать свой экземпляр на время обработки, поднять запись из БД по ID и выбрать все культуры через CultureTable.

Смена кодировки данных в D7: \Bitrix\Main\Text\Encoding

Зачем не iconv напрямую В обменах, почтовых заголовках и старых модулях строки часто уже в UTF-8, тогда как в настройках конкретного сайта в многосайтовости задан другой CHARSET. Ядро «1С‑Битрикс» даёт статические методы \Bitrix\Main\Text\Encoding , которые кроме скаляров рекурсивно обходят массивы и переводят и…

Контекст текущего запроса в Bitrix D7: \Bitrix\Main\Context, Request и локаль

Зачем нужен Context В модуле main класс Bitrix\Main\Context описывает один проход скрипта: входящий HTTP-запрос, объект ответа, снимок окружения сервера и привязка к символьному коду сайта и языковым настройкам. Это предпочтительнее сборки данных из разрозненных глобальных массивов: API ядра стабильнее при…

Дата и время в Bitrix D7: Type\Date, Type\DateTime, культура сайта и часовые пояса

Классы \Bitrix\Main\Type\Date и \Bitrix\Main\Type\DateTime: разбор строк в формате сайта и с произвольным шаблоном, часовые пояса, региональные настройки и вывод для другого LID, UNIX-время, перевод из PHP-\DateTime, пользовательское время, арифметика add() и проверка isCorrect().

Доработка навигационного меню

Материал Для модуля Заведение ПРО сайт ресторана . Различные готовые решения для доработки навигационного меню. Перенести кнопку открытия мобильного меню влево - необходимо перенести код кнопки из шаблона компонента меню navbar в include/header/navbar.php до включаемой области с логотипом: <button…

Работа со складами и количеством товара

Материал Работа со складами и количеством товара средствами классов "\Bitrix\Catalog\StoreTable" и "\Bitrix\Catalog\StoreProductTable". Выборка всех активных складов: $rsStore = \Bitrix\Catalog\StoreTable::getList(array( 'filter' => array('ACTIVE'>='Y'), )); while($arStore=$rsStore->fetch()) { print_r($arStore); }…

Типы цен и цены на товары

Материал Работа с типами цен модуля "Торговый каталог" при помощи классов "\Bitrix\Catalog\GroupTable", "\Bitrix\Catalog\GroupLangTable", "\Bitrix\Catalog\GroupAccessTable", "\Bitrix\Catalog\PriceTable". "\Bitrix\Catalog\GroupTable": Таблица типов цен "\Bitrix\Catalog\GroupLangTable": Таблица языковых параметров…

Обработка исключений битрикса

Материал Обработка исключений, "вброшенных" стандартным классом битрикс "\Bitrix\Main\SystemException". Пример обработки ошибочного преобразования json функцией "\Bitrix\Main\Web\Json::decode": try { $arRes = \Bitrix\Main\Web\Json::decode($result); } catch (\Bitrix\Main\SystemException $e) { $error = true;…

Подключение файлов CSS, JS, и др.

Материал Подключение JS скриптов, файлов стилей CSS, программного кода для области <head> или помещаемого в конец страницы. За то, в какое место страницы будет помещены коды подключения скриптов (либо они будут объединены или подключены в виде единого файла), отвечают настройки главного модуля: Подключение CSS файла,…

Логирование агентов Битрикс: BX_AGENTS_LOG_FUNCTION

Константа BX_AGENTS_LOG_FUNCTION указывает имя пользовательской функции: ядро вызывает её на старт и финиш каждого агента — удобно писать длительность и имя задачи в отдельный файл без профайлеров.

Фильтр списка заказов в админке через OnSaleAdminOrderList

Событие модуля sale позволяет подмешать условие в параметры выборки заказов перед отрисовкой таблицы: только свои статусы, диапазон ID, свойство заказа через runtime-связь или дополнительные сервисы отгрузки.

Где в коде объявлена функция PHP: ReflectionFunction в отладке Битрикс

Быстро найти файл и строку объявления любой пользовательской или ядерной функции — через ReflectionFunction; полезно, когда нужно понять переопределения и хуки вокруг типичных вызовов вроде bx_mail.

Ускорение Bitrix: catalog.section — урезать select в getElementList

.section (раздел «Ускорение» / витрина). На списке раздела тяжёлые поля вроде DETAIL_TEXT часто не нужны шаблону: их можно не тащить из БД, сузив массив $selectFields перед CIBlockElement::GetList . Идея Копируете шаблон компонента bitrix:catalog.section , подключаете класс компонента и объявляете наследника. В…

Bitrix Sale: события OnSaleOrderSaved, OnSaleOrderBeforeSaved и OnSaleOrderEntitySaved

Ниже. Три точки входа дополняют (но не заменяют) события на изменение отдельных полей заказа и связанных сущностей. OnSaleOrderSaved — после записи Параметр IS_NEW позволяет выполнить код только при первом появлении заказа в базе. ENTITY — объект \Bitrix\Sale\Order .…

Уведомления интернет-магазина Bitrix: письмо «новый заказ» вручную и штатные Notify

Система сама шлёт письмо о новом заказе, но если вы отменили отправку на этапе оформления (через события или свою логику), позже может понадобиться повторить событие SALE_NEW_ORDER — например, после онлайн-оплаты. В штатном API нет «короткого» вызова; ниже — разбор полей и аккуратная отправка через CEvent::Send с…

Проверка административного раздела в Bitrix D7: HttpRequest::isAdminSection()

Как одной проверкой понять, что текущий HTTP-запрос обслуживает админку, а не публичную часть сайта: метод запроса в D7, что он учитывает про константы и пути, и чем заменить ручной разбор URI в своих модулях.

Работа с валютами в Bitrix: CurrencyManager, ORM и модуль Sale

Подключение модуля currency, человекочитаемый список валют, выборки через CurrencyTable и CurrencyRateTable, языковые названия, базовая валюта, валюта заказа и позиции корзины, сброс кеша — в духе D7 без лишнего наследия C-классов.

MobileDetect в Битрикс D7: мобильное устройство через модуль conversion

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

Дополнительное поле в письме о заказе: OnBeforeAdd почтового события Sale

Задача Стандартный набор полей почтового события магазина не всегда покрывает вывод: например, в письме о разрешении доставки хочется вывести текст правил самовывоза, который хранится в пользовательском поле склада. Значение нужно попасть в массив подстановок C_FIELDS до того, как запись события уйдёт в очередь…

События почтовой подсистемы Битрикс: OnBeforeMailSend, запись события и OnBeforeEventAdd

Где перехватывать логику В «Главном модуле» исходящее письмо проходит несколько стадий: формируется запись о почтовом событии (тип, поля‑макросы, привязка к сайту и языку), подбирается шаблон, собираются заголовки и тело, затем пакет уходит транспорту. В зависимости от задачи удобнее цепляться либо к уже собранным…

Сброс кеша инфоблока при изменении связанного highload-блока (D7)

Когда это нужно Типичный кейс: в инфоблоке хранятся «основные» материалы, а в highload — служебные справочники (флаги, подписи, привязки), из которых собирается финальный HTML в компонентах. Компоненты кешируют результат и помечают запись тегами вида iblock_id_N . Пока меняется только HL, ядро само по себе не обязано…

События при оплате заказа в Bitrix Sale D7: заказ и отдельный платёж

Два уровня — два события В модуле sale полная оплата заказа может пройти одним платежом или несколькими. Сохранение заказа после смены поля PAYED даёт событие OnSaleOrderSaved : удобно, когда нужно среагировать именно на деньги по заказу в целом. Сохранение сущности платежа порождает OnSalePaymentEntitySaved : его…

Подарки в интернет-магазине: Gift\Manager, коллекции и тип товара в D7

Откуда берутся правила Условия «при покупке подарить товар» задаются в админке: Маркетинг → Товарный маркетинг → Правила работы с корзиной . Сам по себе подарок не «прилетает» на склад заказа: покупатель должен добавить подарочную позицию в корзину . Тогда строка обычно уходит со 100 % скидкой; при количестве больше…

Выборка инфоблоков через IblockTable и привязки к сайтам в Bitrix D7

Зачем смотреть именно на IblockTable Глобальный список инфоблоков хранится в b_iblock ; в D7 к нему обращаются через \Bitrix\Iblock\IblockTable . Отдельная сущность \Bitrix\Iblock\IblockSiteTable описывает, на каких сайтах ( SITE_ID ) разрешён каждый инфоблок — одна строка на пару «инфоблок–сайт». Для выпадающих…

События OnBeforeSale*SetField в Bitrix: заказ, корзина, отгрузка, оплата

Зачем это нужно В интернет-магазине на D7 сущности заказа, корзины, отгрузки и оплаты — это объекты с набором полей. Ядро при каждом присвоении значения через штатные сеттеры порождает события до фиксации в хранилище и после неё. Так можно перехватить смену статуса, флагов отгрузки, оплаты или пользовательских…

Элементы инфоблока через ORM в D7: API-код, объекты и свойства

Символьный код API — обязательное звено ORM для элементов инфоблока «видит» структуру только после того, как в настройках инфоблока заполнено поле символьный код API (латиница, с буквы). По нему генерируется класс вида \Bitrix\Iblock\Elements\Element{ApiCode}Table . Без кода придётся опираться на универсальные…

Текущий пользователь в Bitrix D7: CurrentUser вместо устаревших вызовов $USER

Как в ядре D7 получить «объект текущего пользователя», проверить авторизацию, админство и группы, вывести ФИО и контакты, проверить операцию и добрать поля из UserTable — без привычных, но уходящих из моды методов глобального $USER.

Местоположения Sale: LocationTable, маска телефона и дерево регионов

Справочник местоположений в модуле sale Иерархия стран, регионов и населённых пунктов в интернет-магазине хранится в ORM-слое модуля sale . Для выборки используют класс \Bitrix\Sale\Location\LocationTable , а параметры вида маски телефона, которые задаются в административной части для узла дерева, читают методом…