[QUOTE]Денис Сон написал:
Почему?[/QUOTE]
1. Основной инфоблок товаров может не являться торговым каталогом. В этом случае CCatalog::GetByID вернет false
2. Информацию о свойстве привязки предложений к товару через CCatalog::GetByID можно получить, только передавая ID инфоблока предложений, но никак не инфоблока товаров.
[QUOTE]Наталия Курилович написал:
Может вы знаете способ проще?[/QUOTE]
Для Вашего кода:
[QUOTE]Наталия Курилович написал:
$IBLOCK_ID = 2;
$ID = 95;
$arInfo = CCatalog::GetByID($IBLOCK_ID);
if (is_array($arInfo))
{
$rsOffers = CIBlockElement::GetList(array(),array('IBLOCK_ID' => $arInfo['IBLOCK_ID'], 'PROPERTY_'.$arInfo['SKU_PROPERTY_ID'] => $ID));
while ($arOffer = $rsOffers->GetNext())
{ var_dump($arOffer);}
}[/QUOTE]
так:[CODE]$offers = CCatalogSku::getOffersList(
$ID, // можно сразу массив ID основных товаров
$IBLOCK_ID,
array('ACTIVE' => 'Y'),
array('ID', 'NAME', 'CODE') // перечень полей предложений
);
if (empty($offers[$ID]))
{
echo 'ГНет предложений';
}
[/CODE]
Почему?[/QUOTE]
1. Основной инфоблок товаров может не являться торговым каталогом. В этом случае CCatalog::GetByID вернет false
2. Информацию о свойстве привязки предложений к товару через CCatalog::GetByID можно получить, только передавая ID инфоблока предложений, но никак не инфоблока товаров.
[QUOTE]Наталия Курилович написал:
Может вы знаете способ проще?[/QUOTE]
Для Вашего кода:
[QUOTE]Наталия Курилович написал:
$IBLOCK_ID = 2;
$ID = 95;
$arInfo = CCatalog::GetByID($IBLOCK_ID);
if (is_array($arInfo))
{
$rsOffers = CIBlockElement::GetList(array(),array('IBLOCK_ID' => $arInfo['IBLOCK_ID'], 'PROPERTY_'.$arInfo['SKU_PROPERTY_ID'] => $ID));
while ($arOffer = $rsOffers->GetNext())
{ var_dump($arOffer);}
}[/QUOTE]
так:[CODE]$offers = CCatalogSku::getOffersList(
$ID, // можно сразу массив ID основных товаров
$IBLOCK_ID,
array('ACTIVE' => 'Y'),
array('ID', 'NAME', 'CODE') // перечень полей предложений
);
if (empty($offers[$ID]))
{
echo 'ГНет предложений';
}
[/CODE]