/**
  * @inheritdoc
  */
 public function validate(array $request, array $builderData)
 {
     $iblockElement = new \CIBlockElement();
     $fields['IBLOCK_ID'] = $builderData['DATA']['ID'];
     foreach ($builderData['DEFAULT_FIELDS'] as $fieldName => $field) {
         if (isset($request[$fieldName])) {
             $fields[$fieldName] = $request[$fieldName];
         }
     }
     foreach ($builderData['FIELDS'] as $fieldName => $field) {
         if (isset($request[$fieldName])) {
             $fields['PROPERTY_VALUES'][$fieldName] = $request[$fieldName];
         }
     }
     if (!$iblockElement->checkFields($fields)) {
         $iblockErrorParser = new IBlockErrorParser($builderData['FIELDS'], $builderData['DEFAULT_FIELDS']);
         $this->errorList = $iblockErrorParser->parse($iblockElement->LAST_ERROR);
     }
 }
 /**
  * @inheritdoc
  */
 public function save(array $request, array $builderData)
 {
     $iblockElement = new \CIBlockElement();
     $fields['IBLOCK_ID'] = $builderData['DATA']['ID'];
     foreach ($builderData['DEFAULT_FIELDS'] as $fieldName => $field) {
         if (isset($request[$fieldName])) {
             $fields[$fieldName] = $request[$fieldName];
         }
     }
     foreach ($builderData['FIELDS'] as $fieldName => $field) {
         if (isset($request[$fieldName])) {
             $fields['PROPERTY_VALUES'][$fieldName] = $request[$fieldName];
         }
     }
     $result = $iblockElement->Add($fields);
     if (is_numeric($result)) {
         return $result;
     }
     $iblockErrorParser = new IBlockErrorParser($builderData['FIELDS'], $builderData['DEFAULT_FIELDS']);
     $this->errorList = $iblockErrorParser->parse($iblockElement->LAST_ERROR);
     return false;
 }