Битрикс API – Как обновить инфоблок

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

Как передать привязку к нескольким сайтам в Битриксе при помощи api

Самый верный способ – внести настройки на сервер и починить проблему. Однако, если доступа нет, а тех. поддержка считает что “у них все хорошо”, и время при этом идет, можно решить данную проблему через bitrix api.

Идем в документацию, нам понадобится update iblock:
https://dev.1c-bitrix.ru/api_help/iblock/classes/ciblock/update.php

Рассмотрим пример, в котором нам необходимо обновить данные по привязке к сайтам (именно с такой проблемой столкнулся на одном из проектов, и т.к. свойств у инфоблока было много, запрос не обрабатывался). Вырезаем лишнее, и оставляем только одну строку в свойствах:

<?
require($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/main/include/prolog_before.php");

CModule::IncludeModule("iblock");
$ID = 3; // IBLOCK_ID
$ib = new CIBlock;
$arFields = Array(
  "SITE_ID" => Array("s1","s2"),
);
if ($ID > 0)
  $res = $ib->Update($ID, $arFields);

Обратите внимание на 2 вещи:
1. это обязательное свойство, и передать его пустым не получится;
2. передаем в массиве, даже если привязать нужно только один сайт – Array(“s2”).

Спасибо за внимание 🙂

автор: Dmitriy

З 2011 року займаюся веб-розробкою. Зараз я – PHP Full Stack Developer.
Обговорити ваш проект, а також дізнатися більше про мене ви можете на цьому сайті:
dev.forwww.com

Email: dmitriyribka@gmail.com

Залишити відповідь

Ваша e-mail адреса не оприлюднюватиметься. Обов’язкові поля позначені *