if ($ID > 0) { unset($fields["ID"]); $res = \Bitrix\Sale\Delivery\Services\Table::update($ID, $fields); if ($res->isSuccess()) { // update some fields in children if need if (!empty($changedFields)) { $fieldsList = array(); if (in_array('ACTIVE', $changedFields)) { if ($fields['ACTIVE'] == 'Y') { $fieldsList['ACTIVE'] = 'Y'; } else { $fieldsList['ACTIVE'] = 'N'; } } if (!empty($fieldsList)) { \Bitrix\Sale\Delivery\Services\Table::setChildrenFieldsValues($ID, $fieldsList); } } } else { $strError .= Loc::getMessage("SALE_DSE_ERROR_EDIT_DELIVERY") . "<br>" . implode("<br>", $res->getErrorMessages()); } } else { $res = \Bitrix\Sale\Delivery\Services\Table::add($fields); if (!$res->isSuccess()) { $strError .= Loc::getMessage("SALE_DSE_ERROR_ADD_DELIVERY") . "<br>" . implode("<br>", $res->getErrorMessages()); } else { $ID = $res->getId(); Services\Manager::onAfterAdd($ID, $fields); } } if ($ID > 0) {