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

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

Вопросы и ответы по 1С-Битрикс, разборы реальных задач и обсуждение заметок блога. Задайте вопрос или помогите другим — все сообщения проходят модерацию.

Как получить свойства заказа в 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>';

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

Место для вашей рекламы

10 000 ₽ в месяц

Единый баннер, который показывается сквозным образом — сразу на всём форуме и во всех заметках блога. Одно размещение — вся аудитория.

Посмотреть, где будет выводиться: форум заметки блога

Блог-note

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