Задать вопрос
@spbty

Проверить на уникальность поле инфоблока?

у инфоблока Каталог есть пользовательское поле Артикул , подскажите как можно реализовать чтобы при добавлении нового товара это поле проверялось на уникальность, т.е. если такой артикул уже существует то выводить предупреждение и не давать создавать товар
  • Вопрос задан
  • 323 просмотра
Подписаться 1 Средний Комментировать
Решения вопроса 1
@mirexdoors
Добавить обработчик на ссобытия перед созданием и изменением элемента, в котором и будет происходить проверка
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
@spbty Автор вопроса
кому интересно решение, сделал такой обработчик в init.php
<?
AddEventHandler("iblock", "OnBeforeIBlockElementAdd",   array("СatalogAdd", "OnBeforeIBlockElementAdd"));
 

class СatalogAdd
{ 
   function OnBeforeIBlockElementAdd (&$arFields) 
     { 

CModule::IncludeModule("iblock"); 
$iblock_id = 6; // Указываем ID инфоблока
$arFilter = Array("IBLOCK_ID"=>$iblock_id,'PROPERTY_ARTICUL'=>(end(end($arFields['PROPERTY_VALUES']['13'])))); 
$res_count = CIBlockElement::GetList(Array(), $arFilter, Array(), false, Array()); // Получаем элементы инфоблока



     if ($res_count>0 and (end(end($arFields['PROPERTY_VALUES']['13'])))!="" ) {
          global $APPLICATION;
     $APPLICATION->throwException('Такой артикул уже есть');
            return false;  

     }
}
}
?>
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

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