- CCatalogProductSet
- Методы класса
- Константы класса
- Пользовательские комментарии
- GetList Забирает не все элементы
- getAllSetsByProduct
- Описание и параметры
- Параметры вызова
- Возвращаемые значения
- Примеры использования
- Пользовательские комментарии
- GetList
- Описание и параметры
- Параметры вызова
- Возвращаемые значения
- Пользовательские комментарии
- GetList
- Описание и параметры
- Параметры вызова
- Примеры использования
- Пользовательские комментарии
CCatalogProductSet
Методы класса
Метод | Описание | С версии |
---|---|---|
add | Метод добавляет набор или комплект. | 14.0.0 |
delete | Метод удаляет комплект/набор. | 14.0.0 |
getAllSetsByProduct | Метод получает состав комплекта или набора(ов), принадлежащих товару. | 14.0.0 |
getSetByID | Метод получает комплект/набор по его ID. | 14.0.0 |
isProductHaveSet | Метод проверяет, является ли товар комплектом или имеет набор(ы). | 14.0.0 |
isProductInSet | Метод проверяет, входит ли товар $intProductID в комплект или набор. | 14.0.0 |
recalculateSetsByProduct | Метод пересчитывает все комплекты, в которые входит товар. | 14.5.13 |
update | Метод изменяет набор или комплект. | 14.0.0 |
Константы класса
Константа | Описание | С версии |
---|---|---|
TYPE_SET | Комплект. | 14.0.0 |
TYPE_GROUP | Набор. | 14.0.0 |
Пользовательские комментарии
Мы будем рады, если разработчики добавят свои комментарии по практическому использованию методов системы.
Для этого нужно всего лишь авторизоваться на сайте
Но помните, что Пользовательские комментарии, несмотря на модерацию, не являются официальной документацией. Ответственность за их использование несет сам пользователь.
Также Пользовательские комментарии не являются местом для обсуждения функционала. По подобным вопросам обращайтесь на форумы.
Источник
GetList Забирает не все элементы
Столкнулся с интересной проблемой.
Стандартный инфоблок «документы» Корпоративного портала.
В нём находится 55 документов на текущий момент. Что подтверждает функция:
Но! Функция CIBlockElement::GetList() возвращает только около половины элементов (все — с довольно старыми id-шниками):
Возвращает только 29 элементов (было 30, пока я не стёр один из старых элементов), который заканчивается самым последним id, равным 131. Последний добавленный мной элемент имеет/>
Добавление в фильтр ID проблемы не решает — таких документов GetList не возвращает:
Но если указать один из старых id (а не новых), которые до этого попадают в «неполный список», возвращаемый GetList — всё выводится.
Опять же «Но!» Если запрашивать элемент функцией CIBlockElement::GetByID(740); элемент исправно выводится.
В административном интерфейсе все документы (элементы инфоблока) на месте. При подключении модуля «Webdav» — так же выводятся все документы. Но если подключить компонент news.list — выводится опять кастрированный список в 29 элементов.
Но они ведь ЕСТЬ ! И я командой GetList прошу их вывести, фильтруя всего лишь по IBLOCK_ID. почему они не выводятся ?!
Если кто сталкивался с чем подобным — дайте кто-нибудь хоть какую-то наводку. Почему при запросе напрямую по GetByID элемент есть, а через GetList его нет . О_о
licaon, в ТП не писали?
У меня ваш код выводит все элементы, которые у меня есть.
По крайней мере если сделать
Цитата |
---|
Чем отличаются те элементы, которые показываются от тех, которые не показываются? |
Сегодня утром, на свежую голову, разобрался в чём проблема.
До момента, когда я начал добавлять новые документы в инфоблок, я поставил ему (инфоблоку) статус » участвует в бизнес процессах «. И как выяснилось, после этого все документы стали добавляться как » неопубликованные » (родное свойство «BP_PUBLISHED» = «N»). И по этой причине они не улавливаются функцией «CIBlockElement::GetList», даже если в кач-ве фильтра устанавливаем только id инфоблока:
После снятия с инфоблока статуса » участвует в бизнес процессах » Ситуация не меняется, так как ранее добавленные документы всё равно неопубликованы. Также не помогает указывать в фильтрации :
GetList никак на это не реагирует и вытаскивает только опубликованные документы. Хотя по логике работы функции он должен вытащить мне ВСЕ элементы инфоблока, не обращая внимания на отдельные свойства элементов, если я ЯВНО не указываю их в фильтре.
Кто подскажет решение проблемы или, хотя, как мне сделать документы опубликованными ? При беглом осмотре инфоблока и его инструментов подобной команды не нашёл, плюс функция CIBlockElement::Update() не помогает решить эту проблему — она не изменяет статус опубликованности документа.
Небольшой баг : В настройках элемента инфоблока галочка «Документ опубликован» влияет на его АКТИВНОСТЬ, а не на опубликованность. Это только вносит путаницу в работу.
Источник
getAllSetsByProduct
Описание и параметры
Метод получает состав комплекта или набора(ов), принадлежащих товару. Статический метод.
Параметры вызова
Параметр | Описание |
---|---|
ProductID | Код товара. |
SetType | Тип сущности (комплект/набор). |
Возвращаемые значения
Метод возвращает: false в случае ошибочных параметров, пусто — если ничего не найдено. Если найдено, то возвращает ассоциативный массив параметров с ключами со следующей структурой:
Для комплекта (ключ — идентификатор комплекта):
- TYPE — константа CCatalogProductSet::TYPE_SET (комплект),
- SET_ID — идентификатор комплекта,
- ITEM_ID — идентификатор товара-комплекта,
- ACTIVE — (Y|N) активность,
- QUANTITY — количество,
- MEASURE — идентификатор единицы измерения,
- DISCOUNT_PERCENT — false,
- SORT — индекс сортировки,
- ITEMS — массив (список элементов комплекта.) Для каждого идентификатора записи комплекта массив:
- ITEM_ID — идентификатор товара входящего в комплект,
- QUANTITY — множитель единицы измерения товара,
- MEASURE — идентификатор единицы измерения,
- DISCOUNT_PERCENT — false (не используется),
- SORT — индекс сортировки в комплекте.
Для наборов (ключ — идентификатор набора)
- TYPE — константа CCatalogProductSet::TYPE_GROUP (набор),
- SET_ID — идентификатор набора,
- ITEM_ID — идентификатор товара, которому принадлежит набор,
- ACTIVE» — (Y|N) активность,
- QUANTITY — количество,
- MEASURE — идентификатор единицы измерения,
- SORT — индекс сортировки,
- ITEMS — массив (список элементов набора). Для каждого идентификатора записи набора массив:
- ITEM_ID — идентификатор товара входящего в набор,
- QUANTITY — множитель единицы измерения товара,
- MEASURE — идентификатор единицы измерения,
- SORT — индекс сортировки в наборе.
Примеры использования
Пользовательские комментарии
Мы будем рады, если разработчики добавят свои комментарии по практическому использованию методов системы.
Для этого нужно всего лишь авторизоваться на сайте
Но помните, что Пользовательские комментарии, несмотря на модерацию, не являются официальной документацией. Ответственность за их использование несет сам пользователь.
Также Пользовательские комментарии не являются местом для обсуждения функционала. По подобным вопросам обращайтесь на форумы.
Источник
GetList
Описание и параметры
Метод возвращает результат выборки записей из каталога в соответствии со своими параметрами. Нестатический метод.
Параметры вызова
Параметр | Описание |
---|---|
arOrder | Массив, в соответствии с которым сортируются результирующие записи. Массив имеет вид: В качестве «название_поляN» может стоять любое поле каталога, а в качестве «направление_сортировкиX» могут быть значения «ASC» (по возрастанию) и «DESC» (по убыванию). |
Если массив сортировки имеет несколько элементов, то результирующий набор сортируется последовательно по каждому элементу (т.е. сначала сортируется по первому элементу, потом результат сортируется по второму и т.д.).
Значение по умолчанию — пустой массив array() — означает, что результат отсортирован не будет.
Допустимыми являются следующие модификаторы:
- ! — отрицание;
- + — значения null, 0 и пустая строка так же удовлетворяют условиям фильтра.
Допустимыми являются следующие операторы:
- >= — значение поля больше или равно передаваемой в фильтр величины;
- > — значение поля строго больше передаваемой в фильтр величины;
- <=— значение поля меньше или равно передаваемой в фильтр величины;
- <— значение поля строго меньше передаваемой в фильтр величины;
- @ — оператор может использоваться для целочисленных и вещественных данных при передаче набора значений (массива). В этом случае при генерации sql-запроса будет использован sql-оператор IN, дающий компактную форму записи;
-
— значение поля проверяется на соответствие передаваемому в фильтр шаблону;
- % — значение поля проверяется на соответствие передаваемой в фильтр строке в соответствии с языком запросов.
В качестве «название_поляX» может стоять любое поле каталога.
Пример фильтра: Этот фильтр означает «выбрать все записи, в которых значение в поле SUBSCRIPTION (флаг «Продажа контента») равно Y».
Значение по умолчанию — пустой массив array() — означает, что результат отфильтрован не будет.
Если массив пустой, то метод вернет число записей, удовлетворяющих фильтру.
Значение по умолчанию — false — означает, что результат группироваться не будет.
- «nTopCount» — количество возвращаемых методом записей будет ограничено сверху значением этого ключа;
- любой ключ, принимаемый методом CDBResult::NavQuery в качестве третьего параметра.
Значение по умолчанию — false — означает, что параметров выборки нет.
Значение по умолчанию — пустой массив array() — означает, что будут возвращены все поля основной таблицы запроса.
Возвращаемые значения
Возвращает объект класса CDBResult, содержащий коллекцию ассоциативных массивов с ключами:
Ключ | Описание |
---|---|
ID | Код каталога. Совпадает с кодом информационного блока. |
IBLOCK_ID | Код информационного блока. |
IBLOCK_TYPE_ID | Тип информационного блока. |
SUBSCRIPTION | Флаг «Продажа контента». |
NAME | Название информационного блока. |
YANDEX_EXPORT | флаг «экспортировать в Яндекс.Товары» |
Если в качестве параметра arGroupBy передается пустой массив, то метод вернет число записей, удовлетворяющих фильтру.
Пользовательские комментарии
Мы будем рады, если разработчики добавят свои комментарии по практическому использованию методов системы.
Для этого нужно всего лишь авторизоваться на сайте
Но помните, что Пользовательские комментарии, несмотря на модерацию, не являются официальной документацией. Ответственность за их использование несет сам пользователь.
Также Пользовательские комментарии не являются местом для обсуждения функционала. По подобным вопросам обращайтесь на форумы.
Источник
GetList
Описание и параметры
Метод возвращает результат выборки записей товаров в соответствии со своими параметрами. Нестатический метод.
Метод устарел, рекомендуется вместо него использовать метод \Bitrix\Catalog\ProductTable::getList .
Параметры вызова
Параметр | Описание |
---|---|
arOrder | Массив, в соответствии с которым сортируются результирующие записи. Массив имеет вид: В качестве «название_поляN» может стоять любое поле товара, а в качестве «направление_сортировкиX» могут быть значения «ASC» (по возрастанию) и «DESC» (по убыванию). |
Если массив сортировки имеет несколько элементов, то результирующий набор сортируется последовательно по каждому элементу (т.е. сначала сортируется по первому элементу, потом результат сортируется по второму и т.д.).
Значение по умолчанию — пустой массив array() — означает, что результат отсортирован не будет.
Допустимыми являются следующие модификаторы:
- ! — отрицание;
- + — значения null, 0 и пустая строка так же удовлетворяют условиям фильтра.
Допустимыми являются следующие операторы:
- >= — значение поля больше или равно передаваемой в фильтр величины;
- > — значение поля строго больше передаваемой в фильтр величины;
NEGATIVE_AMOUNT_TRACE_ORIG Флаг (Y/N/D*) «разрешить отрицательное количество товара». 12.0.0 TMP_ID Временный строковый идентификатор, используемый для служебных целей. BARCODE_MULTI (Y/N) Определяет каждый ли экземпляр товара имеет собственный штрихкод. 12.5.0 MEASURE ID единицы измерения. 14.0.0 TYPE Тип товара. Возможные значения: «1» — «простой товар», «2» — «комплект», «3» — «товар с торговыми предложениями», «4» — «торговое предложение». До версии 16.0.3 для типа товара «комплект» значение равно «2», во всех других случаях — «1».
14.0.0 ELEMENT_IBLOCK_ID Код инфоблока товара. ELEMENT_XML_ID Внешний код товара. ELEMENT_NAME Название товара. * — значение берется из настроек модуля. Примеры использования
Пользовательские комментарии
Мы будем рады, если разработчики добавят свои комментарии по практическому использованию методов системы.
Для этого нужно всего лишь авторизоваться на сайте
Но помните, что Пользовательские комментарии, несмотря на модерацию, не являются официальной документацией. Ответственность за их использование несет сам пользователь.
Также Пользовательские комментарии не являются местом для обсуждения функционала. По подобным вопросам обращайтесь на форумы.
Источник