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

Как получить свойства заказа в 1С-Битрикс: старые методы и современный API D7

Внимание! Все сообщения на форуме проходят модерацию. Ваше сообщение появится после проверки.
Как получить свойства заказа в 1С-Битрикс: старые методы и современный API D7

Задача: Получить все доступные свойства заказа для всех активных типов плательщика из модуля магазина.
Пример получения свойств заказа с улучшением по производительности
Код
use Bitrix\Main\Loader;
use Bitrix\Sale\Internals\PersonTypeTable;
use Bitrix\Sale\Internals\OrderPropsTable;

Loader::includeModule("sale");

// Получаем типы плательщиков
$personTypes = PersonTypeTable::getList([
    'filter' => [
        'ACTIVE' => 'Y'// Только активные
    ],
    'order' => [
        'SORT' => 'ASC'// Сортировка
    ],

    // Нам нужен только ID плательщика
    // остальные поля не отбираем
    // экономя запросы к БД
    'select' => [
        'ID'
    ],

    // Кешируем запрос
    'cache' => [
        'ttl' => 36000,
    ],
]);

while ($personType = $personTypes->fetch()) {

    // Получаем свойства для типа плательщика
    $orderProps = OrderPropsTable::getList([
        'filter' => [
            'PERSON_TYPE_ID' => $personType['ID']
        ],
        'order' => [
            'SORT' => 'ASC'
        ],

        // Нам нужны только название, код и тип поля
        // остальные поля не отбираем
        // экономя запросы к БД
        'select' => [
            'NAME',
            'CODE',
            'TYPE'
        ],

        // Кешируем запрос
        'cache' => [
            'ttl' => 36000,
        ],
    ])->fetchAll();

    echo '<pre>';
    print_r($orderProps);
    echo '</pre>';

}
Форма ответов
 
Текст сообщения*
Перетащите файлы
Ничего не найдено
Загрузить файлы
 

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