Добро пожаловать на сайт <БагБД>, где вы можете задавать вопросы о программировании и разработке на Битрикс и Битрикс24, и получать быстрые и квалифицированные ответы от профессионалов!

Где находятся и инициируются поля для заказа

00 голосов
2
Я добавил в таблицу b_sale_order дополнительные поля, в частности есть тип дата, текст и т.д.

Теперь загвоздка в чем, при построении вывода информации о заказе в админке нужно дергать информацию из этих полей. Прямым запросами к БД все получается, но это не одобряется разрабами Bitrix, и советуют использовать API.
Ладно, в этом случае нужен CSaleOrder::GetList...делаю в нем запрос по нужному мне полю и облом..инфа не выводится в отличии от стандартной информации о заказе..как я понял, где то идет запрос по этим полям в другом файле..

Вроде как нашел в файле bitrix\modules\sale\mysql\order.php нечто подобное, но даже при добавлении своих полей аналогично стандартным все равно они не выводятся..

Вопрос: Где еще нужно их добавить, чтобы CSaleOrder::GetList мог работать с моими полями тоже?

Вывожу информацию кстати в \bitrix\modules\sale\admin\order_detail.php
там есть запрос к стандартным полям:

Код
$dbOrder = CSaleOrder::GetList(
   array("ID" => "DESC"),
   array("ID" => $ID),
   false,
   false,
   array("ID", "LID", "PERSON_TYPE_ID", "PAYED", "DATE_PAYED", "EMP_PAYED_ID", "CANCELED", "DATE_CANCELED", "EMP_CANCELED_ID", "REASON_CANCELED", "STATUS_ID", "DATE_STATUS", "PAY_VOUCHER_NUM", "PAY_VOUCHER_DATE", "EMP_STATUS_ID", "PRICE_DELIVERY", "ALLOW_DELIVERY", "DATE_ALLOW_DELIVERY", "EMP_ALLOW_DELIVERY_ID", "PRICE", "CURRENCY", "DISCOUNT_VALUE", "SUM_PAID", "USER_ID", "PAY_SYSTEM_ID", "DELIVERY_ID", "DATE_INSERT", "DATE_INSERT_FORMAT", "DATE_UPDATE", "USER_DESCRIPTION", "ADDITIONAL_INFO", "PS_STATUS", "PS_STATUS_CODE", "PS_STATUS_DESCRIPTION", "PS_STATUS_MESSAGE", "PS_SUM", "PS_CURRENCY", "PS_RESPONSE_DATE", "COMMENTS", "TAX_VALUE", "STAT_GID", "RECURRING_ID", "AFFILIATE_ID", "LOCK_STATUS", "USER_LOGIN", "USER_NAME", "USER_LAST_NAME", "USER_EMAIL", "DELIVERY_DOC_NUM", "DELIVERY_DOC_DATE")
);
if (!($arOrder = $dbOrder->Fetch()))
   LocalRedirect("sale_order.php?lang=".LANG.GetFilterParams("filter_", false));
спросил 06 Апр, 14 от Veet (120 баллов)

2 Ответы

00 голосов
Модификация таблиц тоже не одобряется...

Цитата
Ладно, в этом случае нужен CSaleOrder::GetList...делаю в нем запрос по нужному мне полю и облом..инфа не выводится в отличии от стандартной информации о заказе..


Потому что в АПИ созданные ВАМИ поля не используются

Цитата
Вопрос: Где еще нужно их добавить, чтобы CSaleOrder::GetList мог работать с моими полями тоже?

Нигде API не увидит Ваши поля.

Используйте Свойства заказа доступные из админки.
ответил 24 Окт, 14 от Run (1,300 баллов)
00 голосов
Цитата
Дмитрий Шкуркин пишет:
Потому что в АПИ созданные ВАМИ поля не используются

НУ тут я в курсе поэтому и создал тему.
Цитата
Дмитрий Шкуркин пишет:
Нигде API не увидит Ваши поля.

Используйте Свойства заказа доступные из админки.


Ну так категорично отрицать я думаю бессмысленно, потому что где то в API происходит подгрузка этих полей.

Свойства заказа мне не подходят, потому что используется свой компонент, в котором недостаточно просто создать поля, там идет расчет в зависимости от выбранных параметров при заказе.
ответил 23 Фев, 15 от Veet (120 баллов)

Похожие вопросы