Документация для разработчиков
Темная тема

CheckFields

Описание и параметры

bool
CCatalog::CheckFields(
	string $ACTION,
	array &$arFields[,
	int $ID = 0]
);

Метод служит для проверки (и корректировки, если это возможно) параметров, переданных в методы CCatalog::Add и CCatalog::Update. Нестатический метод.

Параметры вызова

Параметр Описание
ACTION Указывает, для какого метода идет проверка. Возможные значения:
arFields Ассоциативный массив параметров привязки инфоблока к модулю Торгового каталога. Массив передается по ссылке и его значения могут быть изменены методом.
Допустимые ключи:
  • IBLOCK_ID - код (ID) инфоблока;
  • SUBSCRIPTION - флаг "Продажа контента" (Y/N);
  • YANDEX_EXPORT - флаг "Экспортировать в Яндекс.Маркет" (Y/N);
  • VAT_ID - код (ID) типа НДС;
  • PRODUCT_IBLOCK_ID - код (ID) инфоблока товаров (для инфоблока торговых предложений);
  • SKU_PROPERTY_ID - код (ID) свойства привязки к инфоблоку товаров (для инфоблока торговых предложений);
ID Код (ID) инфоблока.

Возвращаемое значение

В случае корректности переданных параметров возвращает true, иначе - false. Если метод вернул false, с помощью $APPLICATION->GetException() можно получить текст ошибок.

Обязательные проверки

  • для CCatalog::Add
    • ключ IBLOCK_ID присутствует и содержит код (ID) существующего инфоблока;
    • если ключ SUBSCRIPTION не существует или не равен Y, ему присваивается значение N;
    • если ключ YANDEX_EXPORT не существует или не равен Y, ему присваивается значение N;
    • если ключ VAT_ID не существует или меньше 0, ему присваивается значение 0;
    • PRODUCT_IBLOCK_ID и SKU_PROPERTY_ID оба отсутствуют, оба равны нулю, либо отвечают правилу:
      • PRODUCT_IBLOCK_ID - код (ID) существующего инфоблока;
      • SKU_PROPERTY_ID - код (ID) существующего свойства инфоблока IBLOCK_ID. Тип свойства - "SKU", свойство одиночное, поле LINK_IBLOCK_ID свойства = PRODUCT_IBLOCK_ID.

  • для CCatalog::Update
    • инфоблок с кодом ID должен являться торговым каталогом;
    • если ключ SUBSCRIPTION существует и не равен Y, ему присваивается значение N;
    • если ключ YANDEX_EXPORT существует и не равен Y, ему присваивается значение N;
    • если ключ VAT_ID существует и меньше 0, ему присваивается значение 0;
    • PRODUCT_IBLOCK_ID и SKU_PROPERTY_ID оба отсутствуют либо оба заданы;

Примеры использования

<?
$arFields = array(
	'IBLOCK_ID' => 2,
	'YANDEX_EXPORT' => 'Y'
);
$boolResult = CCatalog::CheckFields('ADD',$arFields);
if ($boolResult == false)
{
	if ($ex = $APPLICATION->GetException())
	{
		$strError = $ex->GetString();
		ShowError($strError);
	}
}
?>


© «Битрикс», 2001-2024, «1С-Битрикс», 2024