Для поиска товара в 1С Битрикс по кастомному полю необходимо выполнить несколько шагов:
1. Определите идентификатор кастомного поля товара, по которому вы хотите выполнить поиск. Идентификатор поля можно найти в административной панели Битрикса, перейдя в раздел "Настройки" -> "Пользовательские поля". Найдите нужное вам поле и запомните его идентификатор.
2. Создайте новый экземпляр класса CIBlockElement и используйте его метод GetList(), чтобы выполнить запрос к базе данных и получить список товаров, удовлетворяющих вашему критерию. Пример кода:
$arFilter = array( 'IBLOCK_ID' => <идентификатор_инфоблока>, '<идентификатор_кастомного_поля>' => <значение_кастомного_поля>, ); $arSelect = array( 'ID', 'NAME', 'PROPERTY_<идентификатор_кастомного_поля>', ); $res = CIBlockElement::GetList(array(), $arFilter, false, false, $arSelect); while ($ob = $res->GetNextElement()) { $arFields = $ob->GetFields(); $elementId = $arFields['ID']; $elementName = $arFields['NAME']; $customFieldValue = $arFields['PROPERTY_<идентификатор_кастомного_поля>_VALUE']; // Дальнейшая обработка найденных элементов // ... }
В приведенном коде вы должны заменить <идентификатор_инфоблока>
на идентификатор нужного инфоблока, <идентификатор_кастомного_поля>
на идентификатор вашего кастомного поля, а <значение_кастомного_поля>
на значение, по которому вы хотите выполнить поиск.
3. Внутри цикла while, который перебирает найденные элементы, вы можете получить доступ к значениям других стандартных полей товара (как в примере: ID, NAME) и других кастомных полей, если они указаны в массиве $arSelect.
Данный подход позволяет осуществлять поиск товаров по одному или нескольким кастомным полям, а также забирать значения других полей товара для дальнейшей обработки.
Не забудьте подключить модуль инфоблоков Bitrix в вашем коде перед использованием вышеуказанных функций:
CModule::IncludeModule("iblock");
Благодаря этому вы сможете использовать класс CIBlockElement и его методы для работы с данными.