Ошибка при удалении в модуле crubric onbeforelangdelete subscribe

ByBit

Для решения проблемы отправляемся в Сервисы — Рассылки — Список рассылок и удаляем лишние рассылки привязанные к этому сайту

Возвращаемся в Настройки — Сайты — Список сайтов и спокойно удаляем сайт

Для того чтобы победить ошибку “Ошибка при удалении в CSalePersonType::OnBeforeLangDelete (sale)” нужно проделать следующее:

Открыть раздел Настройки магазина – Типы плательщиков, путь имя_сайта/bitrix/admin/sale_person_type.php?lang=ru  и удалить там типы плательщиков привязанные к тому сайту который мы удаляем. Перед удалением, возможно, потребуется удаление заказов связанных с этим плательщиком, путь имя_сайта/bitrix/admin/sale_order.php?lang=ru

Ошибка при удалении в CSalePersonType::OnBeforeLangDelete (sale)

Содержание

3 ноября 2019 г.

2 минуты287 слов

как удалить 1с Битрикс превью к статье

Иногда возникает необходимость удалить сайт на битриксе и забыть все, что с ним связано.
Но это не такая уж и простая задача, т.к. существуют зависимости, ссылающиеся на сайт, которые нужно удалить.

Ниже краткая инструкция для удаления сайта.
В моем случае было установлено решение Аспро Next. Порядок удаления может отличаться.

Ошибки при удалении сайта на CMS 1C-Bitrix

CRubric::OnBeforeLangDelete (subscribe)

CRubric::OnBeforeLangDelete (subscribe)

Это означает, что нужно удалить списки рассылок.
Для решения проблемы отправляемся в Сервисы > Рассылки > Список рассылок и удаляем лишние рассылки, привязанные к этому сайту.

CForumNew::OnBeforeLangDelete (forum)

CForumNew::OnBeforeLangDelete (forum)

Это означает, что нужно отправиться в Сервисы > Форумы и удалить ненужный форум. Скорее всего это форум «Отзывы о товарах».

После удаления форума возвращаемся в Настройки > Сайты > Список сайтов и спокойно удаляем сайт.

CSalePersonType::OnBeforeLangDelete (sale)

CSalePersonType::OnBeforeLangDelete (sale)

Для того чтобы победить ошибку «Ошибка при удалении в CSalePersonType::OnBeforeLangDelete (sale)» нужно проделать следующее:
Открыть раздел Магазин > Настройки > Типы плательщиков и удалить там типы плательщиков, привязанные к тому сайту который мы удаляем. Перед удалением, возможно, потребуется удаление заказов, связанных с этим плательщиком.

CIBlock::OnBeforeLangDelete (iblock)

CIBlock::OnBeforeLangDelete (iblock)

Надо удалить несколько инфоблоков: Найдены инфоблоки связанные с сайтом. Их идентификаторы: 11, 20, 21, 22, 23, 24. . Идентификаторы в каждом случае свои, но метод решения одинаковый.
Идем в Контент - Инфоблоки - Типы инфоблоков и удаляем инфоблоки с указанными id. Скорее-всего нужные нам «жертвы» раскиданы по разным типам инфоблоков и проверить придется все.
Если видим ошибку при удалении каталога, то заходим в настройки инфоблока и снимаем галочку «инфоблок имеет торговые предложения»

Спокойно удаляем сайт.

Удаление сайта из панели 1С-Битрикс

Тривиальная задача удаления лишнего сайта из списка сайтов в 1С-Битрикс может оказаться не такой уж и простой. Пройдемся по процедуре на практике.

Шаг 1. Удаление сайта

Идем в Настройки — Сайты — Список сайтов

Ставим галочку возле ненужного сайта

удаление сайта в Битрикс
Жмем удалить записи, получаем . ошибка по типу 1

Шаг 2. Ошибка при удалении в CForumNew::OnBeforeLangDelete

Сие сообщение — Ошибка при удалении в CForumNew::OnBeforeLangDelete (forum), значит, что нужно отправиться в Сервисы — Форумы и удалить не нужный форум (форум принадлежащий удаляемому сайту). Скорее всего это форум «Отзывы о товарах».
После удаления форума возвращаемся в Настройки — Сайты — Список сайтов
Ставим галочку возле ненужного сайта
Жмем удалить записи, получаем . ошибка по типу 2

Шаг 3. Ошибка при удалении в CIBlock::OnBeforeLangDelete (iblock):

Система сообщает нам об ошибке CIBlock::OnBeforeLangDelete (iblock) и даже подсказывает, что надо удалить несколько инфоблоков:

Идентификаторы в каждом случае свои, но метод решения одинаковый.

ошибка удаления сайта Битрикс

Идем в Контент — Инфоблоки — Типы инфоблоков и удаляем инфоблоки с указанными id (у нас это 11, 20, 21, 22, 23, 24).
Скорее-всего нужные нам «жертвы» раскиданы по разным типам инфоблоков и проверить придется все.
При удалении инфоблока — Каталог вероятно появление ошибки по типу 3

Шаг 4. Ошибка удаления. Возможно есть ссылающиеся объекты.

Данная ошибка более таинственна, для ее решения необходимо войти в инфоблок (нажать изменить)
Перейти на вкладку «Торговый каталог» и снять галочку у параметра Инфоблок имеет торговые предложения
Cохранить изменения
Повторить попытку удалить инфоблок
После удаления инфоблоков возвращаемся в Настройки — Сайты — Список сайтов
Ставим галочку возле ненужного сайта
Жмем удалить записи, получаем . ошибка по типу 4

Шаг 5. Ошибка при удалении в CSalePersonType::OnBeforeLangDelete

Очередная ошибка связана с наличием лишних типов плательщиков от которых тоже нужно избавиться.
Идем в Магазин — Типы плательщиков
Ставим галочки у лишних плательщиков
Жмем удалить записи, получаем . ошибка по типу 5

Шаг 6. В заказах используется тип плательщика с >Как все догадались — нужно стереть заказы. Идем в Магазин — Заказы и удаляем лишние заказы
Возвращаемся в Магазин — Типы плательщиков
Удаляем плательщиков привязанных к удаляемому магазину
Возвращаемся в Настройки — Сайты — Список сайтов
Ставим галочку возле ненужного сайта
Жмем удалить записи, получаем . ошибка по типу 6

Шаг 7. Ошибка при удалении в CRubric::OnBeforeLangDelete

Ошибка на данном этапе снова снабжена подсказкой:

Для решения проблемы отправляемся в Сервисы — Рассылки — Список рассылок и удаляем лишние рассылки
Возвращаемся в Настройки — Сайты — Список сайтов
Ставим галочку возле ненужного сайта
Жмем удалить записи, . ВАУУУУ — сайт удален

Итоги

Естественно, мы привели пример одного из случаев (далеко не худшего) и у Вас могут не возникнуть указанные ошибки или возникнуть ошибки не всех типов. Сайт может удалиться намного проще, но помните, алгоритм всегда одинаков.

Как удалить инфоблок битрикс

Современные сайты наполняются содержанием с помощью специального программного обеспечения: CMS.

Соответственно, контент-менеджер (или редактор сайта) — это специалист, работающий с CMS.

Для кого этот курс?

Курс Контент-менеджер адресован тем, кто работает с содержанием сайта: наполнение, изменение текста, загрузка и размещение картинок и так далее.

  • работать с элементами управления в интерфейсе системы;
  • приемам работы в визуальном редакторе — основном инструменте при работе над содержанием сайта;
  • работать с информационными блоками — местом хранения большей части информации на сайте;
  • работать с компонентами — инструментом вывода информации на страницах сайта;
  • работать с некоторыми модулями системы.
У нас часто спрашивают, сколько нужно заплатить

Курс полностью бесплатен. Изучение курса, прохождение итоговых тестов и получение сертификатов — ничего из этого оплачивать не нужно.

Ещё у нас есть Академия 1С-Битрикс, где можно обучиться на платной основе на курсах нашей компании либо наших партнёров.

Баллы опыта

В конце каждого урока есть кнопка Прочитано! . При клике на неё в Вашу итоговую таблицу опыта добавляется то количество баллов, которое указано в прочитанном После нажатия кнопки Прочитано! появится
окно подтверждения:

уроке.

Периодически мы заново оцениваем сложность уроков, увеличивая/уменьшая число баллов, поэтому итоговое количество набранных Вами баллов может отличаться от максимально возможного. Не переживайте! Отличный результат — это если общее число набранных Вами баллов отличается от максимального на 1-2%.

Практика и тесты

При изучении курса рекомендуется повторять описываемые действия на демонстрационной версии сайта, установленной локально или в Виртуальной лаборатории.

После изучения курса пройдите тесты на сертификацию. При успешной сдаче линейки тестов со страницы Моё обучение скачайте сертификат об успешном прохождении курса в формате PDF.

Также Вы можете поделиться ссылкой на страницу со своими сертификатами. Для этого на странице Моё обучение отметьте опцию Разрешить публичный доступ к резюме студента и скопируйте ссылку на страницу резюме . Страница с Вашим резюме будет доступна всем, кому Вы отправите ссылку на неё.

Комментарии к урокам
На каждой странице курса авторизованный на сайте посетитель может дать комментарий к содержимому страницы. Комментарий — не форум, там не ведётся обсуждений или разъяснений. Это инструмент для сообщений нам об ошибках, неточностях. Для отправки комментария воспользуйтесь расположенной в правом нижнем углу окна браузера кнопкой:
Для преподавания офлайн

Если данный курс берётся в качестве основы для офлайнового преподавания, то рекомендуемая продолжительность: 2 дня (16 академических часов).

Если нет интернета

Скачать материалы курса в формате EPUB. Файлы формата EPUB Чем открыть файл на
Android:
EPUB Reader
CoolReader
FBReader
Moon+ Reader
eBoox

iPhone:
FBReader
CoolReader
iBook
Bookmate

Windows:
Calibre
FBReader
Icecream Ebook Reader
Плагины для браузеров:
EpuBReader – для Firefox
Readium – для Google Chrome

iOS
Marvin for iOS
ShortBook

Linux:
Calibre
FBReader
Cool Reader
Okular
обновляются периодически, поэтому возможно некоторое отставание их от онлайновой версии курса. Версия файла — от 25.01.2023.

Удаление решения с сайта

Полное удаление решения с сайта. В итоге останется чистый Битрикс.

Важно. В данном решение показано как удалить ВСЕ демо данные. Останется только чистый Битрикс. После удаление необходимо будет установить новое решение через мастер установки решений.

1. Заходим в Битрикс.
2. Удаление файлов решения.
2.1. Переходим в «Файлы и папки»

2.2. Отображаем все файлы

2.2. Выделяем все файлы в папке кроме папок «bitrix», «upload», файлов «.htaccess», «.access» и если есть файл «web.config»

2.3. Нажимаем «Удалить»

2.4. Итог. Файл urlrewrite.php останется в списке.

3. Удаляем инфоблоки

4. Удаляем шаблоны

5. Удаляем сайт где установлено наше решение.

После удаления сайта с при переходе на вкладку «Сайт» сайт перестанет отображаться. Необходимо перейти в мастер установки решений и установить новое решение.
1.

2. Выбрать решение и приступить к установке

3. Указать id сайта. По умолчанию указываем s1


Подробная установка решения описана в Инструкции по установке решения

Массовое удаление seo-свойств инфоблоков в Битрикс

Как известно, в 14 версии Битрикса появились вычисляемые сео-свойства инфоблоков, которые могут быть заданы шаблонами или точными значениями. В них входят, например, метатеги title и description. Они могут быть заданы для инфоблока в целом, для разделов и элементов.

Заполняются сео-свойства очень легко — в интерфейсе инфоблоков. Но сеошники приходят и уходят, требования к шаблонам и значениям метатегов меняются. Но не предусмотрено возможности массовой чистки сео-свойств для всего каталога, поэтому нужно разобраться как хранятся эти данные и как их нужно очищать.

Все шаблоны и значения вычисляемых сео-свойств хранятся в таблице b_iblock_iproperty : Схема таблицы b_iblock_iproperty

В поле ENTITY_TYPE хранится тип сущности:

  • B — инфоблок (то, что задаётся в настройках инфоблока),
  • S — раздел (то, что задаётся при редактировании раздела),
  • E — элемент (то, что задаётся при редактировании элемента).

Например, для того, чтобы удалить все значения и шаблоны для целого инфоблока, необходимо выполнить запрос:

Но это еще не всё. Уже вычисленные значения хранятся в отдельных таблицах для инфоблоков (на самом деле, там пусто. не знаю, зачем нужна эта таблица, ведь у инфоблока нет своих метатегов, только шаблоны для разделов и элементов), разделов и элементов:

iprops.png

Например, чтобы почистить все вычисленные значения, нужно выполнить запросы:

Дальше, возможно, нужно почистить кеш сайта и приступить к новому наполнению сео-свойств.

Иногда приходится сталкиваться с сайтами, которые размещены на очень слабом хостинге. Если на таком хостинге нужно удалить все элементы инфоблока — тут или удалять напрямую, через базу данных (что не очень хорошо), либо постранично удалять элементы, что тоже муторно:(

Представляю вашему вниманию скрипт, позволяющий настроить автоматическое удаление всех элементов инфоблока с постраничной переборкой элементов в автоматическом режиме:

use BitrixMain;
use BitrixMainApplication;
use BitrixMainLocalizationLoc as Loc;
use BitrixMainDataCache;
require_once($_SERVER["DOCUMENT_ROOT"] . "/bitrix/modules/main/include/prolog_admin_before.php");
require_once($_SERVER["DOCUMENT_ROOT"] . "/bitrix/modules/main/prolog.php");
Loc::loadMessages(__FILE__);
if (!MainLoader::includeModule('iblock'))
{
die('Module `iblock` is not installed');
}
CJSCore::Init(array('jquery'));
$POST_RIGHT = $APPLICATION->GetGroupRight("catalog");
// если нет прав - отправим к форме авторизации с сообщением об ошибке
if ($POST_RIGHT == "D")
$APPLICATION->AuthForm(GetMessage("ACCESS_DENIED"));
$context = Application::getInstance()->getContext();
$request = $context->getRequest();
if ($request->isPost() && $request->get('action') && $POST_RIGHT == "W" && check_bitrix_sessid())
{
$arResult = array();
$arPostData = $request->getPostList()->toArray();
switch ($request->get('action'))
{
case 'clearElements':
$arSelect = Array("ID", "IBLOCK_ID");
$arFilter = Array("IBLOCK_ID" => IntVal($arPostData['IBLOCK_ID']));
$maxForStep = 5;
$pagesParams = ($arPostData['num'] == 1) ? array('nPageSize' => $maxForStep) : array('nTopCount' => $maxForStep);
$res = CIBlockElement::GetList(Array(), $arFilter, false,
$pagesParams, $arSelect);
$arResult['CNT'] = $res->NavPageCount;
global $DB;
while ($arFields = $res->GetNext())
{
$DB->StartTransaction();
if (!CIBlockElement::Delete($arFields['ID']))
{
$arResult['STATUS']['ERROR'][] = $arFields['ID'] . ' not deleted!';
$DB->Rollback();
} else
{
$arResult['STATUS']['OK'][] = $arFields['ID'];
$DB->Commit();
}
// $arResult[] = $arFields;
}
break;
default:
print_r($arPostData);
}
if ($request->isAjaxRequest() && !empty($arResult))
{
$APPLICATION->RestartBuffer();
header('Content-type: application/json');
echo BitrixMainWebJson::encode($arResult);
exit();
}
}
$APPLICATION->SetTitle('Обработчик элементов информационного блока');
require($_SERVER["DOCUMENT_ROOT"] . "/bitrix/modules/main/include/prolog_admin_after.php");
class clIblockEntitiesProcessor
{
public static function GetIblockTypes($life_time = 3600 * 24 * 30)
{
$result = false;
$cache_params = array('function' => 'CIBlockType::GetList');
$cache_id = md5(serialize($cache_params));
$cache_dir = __CLASS__;
$cache = Cache::createInstance();
if ($life_time < 0)
{
$cache->clean($cache_id, $cache_dir);
}
if ($cache->initCache($life_time, $cache_id, $cache_dir))
{
$result = $cache->getVars();
} elseif ($cache->startDataCache() && BitrixMainLoader::includeModule('iblock'))
{
$db_iblock_type = CIBlockType::GetList();
while ($ar_iblock_type = $db_iblock_type->Fetch())
{
if ($arIBType = CIBlockType::GetByIDLang($ar_iblock_type["ID"], LANG))
{
$arIBType['NAME'] = htmlspecialcharsEx($arIBType["NAME"]);
$result[$arIBType['IBLOCK_TYPE_ID']] = array(
'IBLOCK_TYPE_ID' => $arIBType['IBLOCK_TYPE_ID'],
'NAME' => $arIBType['NAME'],
);
}
}
$cache->endDataCache($result);
}
return $result;
}
public static function GetIblockList($filter = array(), $life_time = 3600 * 24 * 30)
{
$result = false;
$cache_params = array('function' => 'CIBlock::GetList', 'filter_params' => $filter);
$cache_id = md5(serialize($cache_params));
$cache_dir = __CLASS__;
$cache = BitrixMainDataCache::createInstance();
if ($life_time < 0)
{
$cache->clean($cache_id, $cache_dir);
}
if ($cache->initCache($life_time, $cache_id, $cache_dir))
{
$result = $cache->getVars();
} elseif ($cache->startDataCache() && BitrixMainLoader::includeModule('iblock'))
{
$res = CIBlock::GetList(
Array(),
$filter,
false
);
while ($ar_res = $res->Fetch())
{
$result[$ar_res['ID']] = array(
'ID' => $ar_res['ID'],
'IBLOCK_TYPE_ID' => $ar_res['IBLOCK_TYPE_ID'],
'CODE' => $ar_res['CODE'],
'NAME' => $ar_res['NAME'],
'ACTIVE' => $ar_res['ACTIVE'],
'PICTURE' => $ar_res['PICTURE'],
'DESCRIPTION' => $ar_res['DESCRIPTION'],
'DESCRIPTION_TYPE' => $ar_res['DESCRIPTION_TYPE'],
'CATALOG' => CCatalogSKU::GetInfoByProductIBlock(intval($ar_res['ID'])),
);
}
$cache->endDataCache($result);
}
return $result;
}
public static function GetIblockElementItems(
$arParams = array('filter' => array(), 'select' => false, 'sort' => array('name' => 'asc'),
'page_params' => false, 'group' => false),
$life_time = 3600)
{
if (!isset($arParams['filter']) || empty($arParams['filter'])) return false;
$arFilter = $arParams['filter'];
$arSelect = (isset($arParams['select'])) ? $arParams['select'] : false;
$arSort = (isset($arParams['sort'])) ? $arParams['sort'] : array('name' => 'asc');
$pageParams = (isset($arParams['page_params'])) ? $arParams['page_params'] : false;
$groupParams = (isset($arParams['group'])) ? $arParams['group'] : false;
$result = false;
$cache_params = array();
foreach (array_keys($arParams) as $array_key)
{
if (is_array($arParams[$array_key]))
{
foreach ($arParams[$array_key] as $key => $value)
{
$cache_params[$array_key . '-' . $key] = $value;
}
} elseif (is_bool($arParams[$array_key]))
{
$cache_params[$array_key] = $arParams[$array_key] ? 1 : 0;
}
}
$cache_id = md5(serialize($cache_params));
$cache_dir = __CLASS__ . '/' . __FUNCTION__;
$cache = BitrixMainDataCache::createInstance();
if ($life_time < 0)
{
$cache->clean($cache_id, $cache_dir);
}
if ($cache->initCache($life_time, $cache_id, $cache_dir))
{
$result = $cache->getVars();
} elseif ($cache->startDataCache() && BitrixMainLoader::includeModule('iblock'))
{
$rsItems = CIBlockElement::GetList($arSort, $arFilter, $groupParams, $pageParams, $arSelect);
if (
is_array($arSelect)
&& in_array('IBLOCK_ID', $arSelect)
&& in_array('ID', $arSelect)
)
{
$filterProperties = array();
foreach ($arSelect as $select)
{
if (strpos($select, 'PROPERTY_') !== false)
{
$filterProperties[] = str_replace('PROPERTY_', '', $select);
}
}
while ($arElement = $rsItems->GetNextElement())
{
$arFields = $arElement->GetFields();
if (!empty($filterProperties))
{
foreach ($filterProperties as $arFilterCode)
{
if (!isset($arFields['PROPERTIES'])) $arFields['PROPERTIES'] = array();
$arFields['PROPERTIES'] = array_merge($arFields['PROPERTIES'], $arElement->GetProperties(false, array(
'CODE' => $arFilterCode
)));
// $arFields['PROPERTIES'][$arFilterCode] = ;
}
// $arFields['PROPERTIES'] = $arElement->GetProperties(false,array('CODE'=>$filterProperties));
}
$result[] = $arFields;
}
} elseif (empty($arSelect))
{
while ($arElement = $rsItems->GetNextElement())
{
$arFields = $arElement->GetFields();
$arFields['PROPERTIES'] = $arElement->GetProperties();
$result[] = $arFields;
}
} else
{
while ($arElement = $rsItems->GetNext())
{
$result[] = $arElement;
}
}
if (!empty($result))
{
foreach ($result as $key => $arItem)
{
if (!empty($arItem['PROPERTIES']))
{
foreach ($arItem['PROPERTIES'] as $pCode => $arProperty)
{
$result[$key]['PROPERTIES'][$pCode] = CIBlockFormatProperties::GetDisplayValue(
array('ID' => $arItem['ID'], 'NAME' => $arItem['NAME']), $arProperty, '');
}
}
}
}
if (isset($pageParams) && !empty($pageParams) && $pageParams['nPageSize'] == 1 && !empty($result[0]))
{
$result = $result[0];
}
$cache->endDataCache($result);
}
return $result;
}
}
$tmp = clIblockEntitiesProcessor::GetIblockList(array('ACTIVE' => 'Y'));
$arIblockList = array();
foreach ($tmp as $item)
{
$arIblockList[$item['ID']] = $item;
}
// echo '<pre>'; print_r($arIblockList);echo '</pre>';
?>
<form method="post" action="<? echo $APPLICATION->GetCurPage() ?>"
enctype="multipart/form-data" name="iblocksProcessorForm">
<? echo bitrix_sessid_post(); ?>
<div>
<select name="IBLOCK_ID" id="IBLOCK_ID">
<? foreach ($arIblockList as $arIblock)
{
?>
<option value="<?= $arIblock['ID'] ?>">[<?= $arIblock['ID'] ?>]
<?= $arIblock['NAME'] ?></option>
<? } ?>
</select>
</div>
<div id="loading"><p class="persents" style="display: none;">
Обработано: <span class="pv">0</span>%  (Строка: <span class="rv">1</span>/
<span class="maxrows">0</span>) </p></div>
<div>
<button id="DeleteElements">Удалить все элементы</button>
</div>
</form>
<script type="text/javascript">
var deferreds = [];
var i = 10;
var maxRows = false;
var Form;
$(document).ready(function(){
lastSelectedIblock = localStorage.getItem('IBLOCK_ID');
if(lastSelectedIblock!==undefined && parseInt(lastSelectedIblock)>0){
$('form[name="iblocksProcessorForm"]').find('option[value="'+lastSelectedIblock+'"]').attr('selected','selected');
}
});
$(document).on('change','form[name="iblocksProcessorForm"] select[name="IBLOCK_ID"]', function () {
localStorage.setItem('IBLOCK_ID',$(this).val()) ;
});
$(document).on('click', 'form[name="iblocksProcessorForm"] button#DeleteElements', function () {
var that = this;
Form = $(this).parents('form');
var num = 1;
var wait = BX.showWait('loading');
var persentsContainer = Form.find('p.persents');
var PostParams = {
num: num, action: 'clearElements', sessid: Form.find('input[name="sessid"]').val(),
'IBLOCK_ID': Form.find('select[name="IBLOCK_ID"]').val()
};
function work_with_row(num, d) {
var Persents = (parseInt(num)-1) * 100 / parseInt(maxRows);
persentsContainer.find('span.pv').html(Math.round(Persents));
persentsContainer.find('span.rv').html(parseInt(num)-1);
PostParams.num = num;
$.ajax({
type: "POST",
url: location.href,
data: PostParams,
dataType: "json",
success: function (data) {
d && d.resolve();
},
onfailure: function () {
d && d.resolve();
}
});
}
$.ajax({
type: "POST",
url: location.href,
data: PostParams,
dataType: "json"
}).then(function (data) {
if (!maxRows && data.CNT !== undefined) {
maxRows = data.CNT;
var deferreds = [];
var i = 10;
persentsContainer.find('span.maxrows').html(maxRows);
persentsContainer.show();
for (var index = num + 1; index <= maxRows; index++) {
(function (index) {
var d = new $.Deferred();
window.setTimeout(function () {
work_with_row(index, d)
}, 3000 * index + (i++));
deferreds.push(d);
})(index);
}
$.when.apply($, deferreds).done(function () {
$('p.persents').html('Обработка завершена!');
BX.closeWait('loading', wait);
$(that).remove();
});
}
}, function (reason) {
console.debug(reason);
});
return false;
});
</script>
<?
require($_SERVER["DOCUMENT_ROOT"] . "/bitrix/modules/main/include/epilog_admin.php");

Таким образом, при первом аякс-запросе скрипт получает информацию о том, сколько всего страниц ему нужно обработать
(количество элементов на странице выбирается на основании производительности сервера),а дальше уже проходится по всем страницам и производит удаление.

P.S. Скрипт написан в виде страницы административного раздела сайта

Понравилась статья? Поделить с друзьями:
  • Ошибка при удалении в модуле ciblock onbeforelangdelete iblock
  • Ошибка при удалении в модуле cforumnew onbeforelangdelete forum
  • Ошибка при удалении в корзину вордпресс
  • Ошибка при удалении блютуз устройства
  • Ошибка при удалении антивируса 902