Скрипт удаления элементов Битрикс
Логика скрипта (скачать):
1) Задаём set_time_limit
2) Включаем вывод ошибок
3) Подключаем prolog bitrix
4) Подключаем нужный модуль iblock
5) Вытаскиваем элементы
6) Собираем ID-шники
7) Делаем перебор массива ID-шников и удаляем элементы
set_time_limit(60000); // включаем вывод ошибочек ini_set(‘error_reporting’, E_ALL); ini_set(‘display_errors’, 1); ini_set(‘display_startup_errors’, 1); // включаем замер исполнения скрипта // подключаем prolog bitrix require $_SERVER[«DOCUMENT_ROOT»] . ‘/bitrix/modules/main/include/prolog_before.php’; // подключаем нужные модули CModule::IncludeModule(«iblock»); $infoblock = 3; // Инфоблок с ID ХХХ (необходимо установить ID нужного инфоблока) //Вытаскиваем элементы $arSelectElems = array ( «ID» ); $arFilterElems = array ( «IBLOCK_ID» => $infoblock ); $arSortElems = array ( «NAME» => «ASC» ); $arResult[«ELEMENTS»] = array(); $rsElementElement = CIBlockElement::GetList(array(‘left_margin’ => ‘asc’), $arFilterElems, false, false, $arSelectElems); while ( $ar_Element = $rsElementElement->Fetch() ) < $ar_Resu[] = array( // собираем массив того, что нам нужно 'ID' =>$ar_Element[‘ID’], // id ); > //Удаляем элементы foreach ($ar_Resu as $section)
Ещё статьи:
08.11.2023 Прощай bitrix.xscan, не стало битрикс скан модуля
Сегодня увидел, что полезного модуля bitrix.xscan не стало на маркетплейсе. ID: 464
26.07.2023 Сохренение ютм меток в сессию
Вариант сохренения ютм меток в сессию в афйле init.php ID: 462
29.06.2023 Почему DNS есть, но ошибка «Не удалось получить записи с DNS серверов»
Проверка на VPS показывает, что DNS есть, но по факту ошибка «Не удалось получить записи с DNS серверов» ID: 461
Форум
Как удалить инфоблок. Я полагаю, что этот вопрос необходимо вынести в документацию.
Я думала, что это делается так: Контент -> Информационные блоки -> Типы информационных блоков.
Там выбираем те блоки, которые нужно удалить и жмем на крестик внизу.
Оказывается как-то не так. Вопрос: как?
Сообщений: 1126 Баллов: 569 Регистрация: 23.03.2005
05.07.2006 13:57:22
| Цитата |
|---|
| Гость пишет: Оказывается как-то не так. Вопрос: как? |
именно так и удаляются типы информационных блоков.
Чтобы удалить информационный блок, нужно зайти в его тип и там проделать вышеуказанную операцию.
студия Leveret
05.07.2006 15:29:57
Не получается. Пожалуйста, укажите на раздел в документации, где подробно указана данная процедура. Я думаю, что такой раздел просто обязан быть в документации.
05.07.2006 15:34:42
Не работают функции редактирования и удаления записей. И еще раз прошу дать ссылку нараздел в документации.
05.07.2006 15:40:06
Просто удивительно! в опере все работает, в а IE — нет.
Администратор
Сообщений: 2449 Баллов: 271 Регистрация: 30.12.2002
05.07.2006 16:01:34
| Цитата |
|---|
| Гость пишет: Просто удивительно! в опере все работает, в а IE — нет. |
Не совсем понятен вопрос, что и где не получается удалить?
Если проблему решить не удается, создайте пожалуйста обращение в техподдержку, проконсультируем.
Заглянувший
Сообщений: 4 Регистрация: 27.09.2016
27.09.2016 09:30:58
У меня инфоблок создался с пустым именем. теперь не могу его удалить
Как удалить его
Заглянувший
Сообщений: 2 Регистрация: 28.10.2017
01.07.2021 15:53:30
| Цитата |
|---|
| Сико Дос написал: У меня инфоблок создался с пустым именем. теперь не могу его удалить Как удалить его |
Поддерживаю, такая же ситуация. Не знаю как так получилось, но у клиента Инфоблок с пустым именем, соответственно нет возможности его удалить стандартными средствами. Только через базу походу (если он там будет)
Страницы: 1
Центр поддержки
Продукты
Управление сайтом
Битрикс24
Интернет-магазин + CRM
Решения
Для интернет-магазинов
Каталог готовых решений
Внедрение
Выбрать партнера
Проверить партнера
Стать партнером
1С-Битрикс http://www.1c-bitrix.ru Общие вопросы info@1c-bitrix.ru Приобретение и лицензирование продуктов : sales@1c-bitrix.ru Маркетинг/мероприятия/PR marketing@1c-bitrix.ru Партнерская программа partners@1c-bitrix.ru Мы работаем с 10:00 до 19:00 по московскому времени. Офис в Москве 127287 Россия Московская область Москва 2-я Хуторская улица дом 38А строение 9 Офис в Калининграде +7 (4012) 51-05-64 Офис в Калининграде 236001 Россия Калининградская область Калининград Московский проспект 261 Офис в Киеве ukraine@1c-bitrix.ru Телефон в Киеве +3 (8044)221-55-33 Офис в Киеве 01033 Украина Калининградская область Киев улица Шота Руставели 39/41 офис 1507
© 2001-2023 «Битрикс», «1С-Битрикс». Работает на 1С-Битрикс: Управление сайтом. Политика конфиденциальности
Удалить все свойства инфоблока в админке в Битрикс

Для использования этого скрипта вам необходимо открыть административную часть вашего сайта на платформе Битрикс в браузере Google Chrome. Затем откройте JavaScript Console, нажав правую кнопку мыши на любом месте страницы и выбрав «Исследовать элемент» (Inspect). В появившемся окне инструментов выберите вкладку «Console» и вставьте указанный ниже скрипт в поле команд консоли. Нажмите Enter, и все свойства инфоблока будут выделены для удаления.
Выделить сразу все чекбоксы:
var inputs = document.querySelectorAll("input[type=checkbox][value=Y]"); var elements = []; for (var i=0; i_DEL$/.test(inputs[i].id)) inputs[i].checked = true;
Выделить сразу выбранный диапазон чекбоксов:
var startPropertyId = 1; // начальный идентификатор свойства var endPropertyId = 10; // конечный идентификатор свойства var inputs = document.querySelectorAll("input[type=checkbox][value=Y]"); var elements = []; for (var i = 0; i < inputs.length; i++) < var propertyId = inputs[i].id.split('_')[2]; if (inputs[i].name == inputs[i].id && /^IB_PROPERTY_\d_DEL$/.test(inputs[i].id)) < if (propertyId >= startPropertyId && propertyId > >
Как удалить файл в свойстве элемента инфоблока?
Сабж. Казалось просто. А вот и ни фига. Есть камни, о которые новичок порвет мозг. Мне стыдно, но я убил часа полтора. Резюмирую здесь, надеюсь это последний раз у всех нас.
Итак, как нам обновить вообще любое св-во в Битрикс?
1. Update
2. SetPropertyValues
3. SetPropertyValuesEx
В каждом варианте на ключ массива обновления идет код св-ва, а значение — новое значение. Для удаления файла нам надо передать вот такой простой массивчик:
array(‘MY_FILE’ => array(‘XXX’ => array(‘del’ => ‘Y’)));
Да, вот такой геморрой. Он универсален, что для ИБ, что для ИБ+, что для документооборота. MY_FILE — это код вашего св-ва типа файл. А что такое ХХХ? Настоящая порнография. Там содержится _ID_ _значения_ св-ва. То есть не ID св-ва, а именно ID значения. И магия еще в том, что в случае ИБ+ у нас нет такого понятия, а ID значения формируется как ID_элемента:ID_свва. Но вам это знать необязательно, лучше получить универсально.
CModule::IncludeModule('iblock'); $IB = 24; $ID = 220304; $CODE = 'ONE_FL'; if ($arProp = CIBlockElement::GetProperty($IB, $ID, 'ID', 'DESC', array('CODE' => $CODE))->fetch()) < $XXX = $arProp['PROPERTY_VALUE_ID']; CIBlockElement::SetPropertyValueCode($ID, $CODE, array($XXX =>array('del' => 'Y'))); >
Вот таким образом получается этот универсальный XXX, именно так его и надо передавать для каждого файла, который мы хотим удалить.
Что делать в случае множественного файла? Как удалить конкретный файл в списке? Все просто — используем в примере выше не if, а while, ну и дополнительно фильтруем, какой файл надо удалить.
