Your IP : 3.139.81.114


Current Path : /home/bitrix/ext_www/dev.ballu.in.ua/local/modules/rusklimat.exchange/
Upload File :
Current File : /home/bitrix/ext_www/dev.ballu.in.ua/local/modules/rusklimat.exchange/add_ib.php

<?php

/*
 * RusKlimat Module Exchange
 * добавление всех необходимых инфоблоков
 * 
 * @author  Alex
 * @date   28/02/2018
*/



IncludeModuleLangFile( __FILE__ );
$type_iblock = COption::GetOptionString( $sModuleId, 'RK_EXCHANGE_MAIN_TYPE_IBLOCK');

if(empty($type_iblock))
{
	echo '<p>Error: empty setting type iblock</p>';
}
else
{
	// смотрим что у нас есть
	// main
	$RK_EXCHANGE_MAIN_GLOBUS_IBLOCK_ID = COption::GetOptionInt( $sModuleId, 'RK_EXCHANGE_MAIN_GLOBUS_IBLOCK_ID');
	$RK_EXCHANGE_MAIN_TIMETOBUY_IBLOCK_ID = COption::GetOptionInt( $sModuleId, 'RK_EXCHANGE_MAIN_TIMETOBUY_IBLOCK_ID');
	// action
	$RK_EXCHANGE_ACTIONS_IBLOCK_ID = COption::GetOptionInt( $sModuleId, 'RK_EXCHANGE_ACTIONS_IBLOCK_ID');
	// -- свойства
	$RK_EXCHANGE_ACTIONS_PROP_MAIN_BANNER = COption::GetOptionString( $sModuleId, 'RK_EXCHANGE_ACTIONS_PROP_MAIN_BANNER');
	$RK_EXCHANGE_ACTIONS_PROP_SHOW_IN_MAIN = COption::GetOptionString( $sModuleId, 'RK_EXCHANGE_ACTIONS_PROP_SHOW_IN_MAIN');
	$RK_EXCHANGE_ACTIONS_PROP_PIC_PRODUCT = COption::GetOptionString( $sModuleId, 'RK_EXCHANGE_ACTIONS_PROP_PIC_PRODUCT');
	$RK_EXCHANGE_ACTIONS_PROP_GEO_NETWORKS = COption::GetOptionString( $sModuleId, 'RK_EXCHANGE_ACTIONS_PROP_GEO_NETWORKS');
	$RK_EXCHANGE_ACTIONS_PROP_GOODS_XML = COption::GetOptionString( $sModuleId, 'RK_EXCHANGE_ACTIONS_PROP_GOODS_XML');
	$RK_EXCHANGE_ACTIONS_PROP_ALL_GOODS = COption::GetOptionString( $sModuleId, 'RK_EXCHANGE_ACTIONS_PROP_ALL_GOODS');
	$RK_EXCHANGE_ACTIONS_PROP_MAIN_BANNER_SORT = COption::GetOptionString( $sModuleId, 'RK_EXCHANGE_ACTIONS_PROP_MAIN_BANNER_SORT');
	$RK_EXCHANGE_ACTIONS_PROP_GOODS_PAGE_SORT = COption::GetOptionString( $sModuleId, 'RK_EXCHANGE_ACTIONS_PROP_GOODS_PAGE_SORT');
	
	// catalog
	$RK_EXCHANGE_CATALOG_IBLOCK_ID = COption::GetOptionInt( $sModuleId, 'RK_EXCHANGE_CATALOG_IBLOCK_ID');
	$RK_EXCHANGE_CATALOG_PROPS_GROUPER_IBLOCK_ID = COption::GetOptionInt( $sModuleId, 'RK_EXCHANGE_CATALOG_PROPS_GROUPER_IBLOCK_ID');
	$RK_EXCHANGE_CATALOG_PROPERTIES_IBLOCK_ID = COption::GetOptionInt( $sModuleId, 'RK_EXCHANGE_CATALOG_PROPERTIES_IBLOCK_ID');
	$RK_EXCHANGE_CATALOG_BRANDS_IBLOCK_ID = COption::GetOptionInt( $sModuleId, 'RK_EXCHANGE_CATALOG_BRANDS_IBLOCK_ID');
	$RK_EXCHANGE_CATALOG_PICKUP_IBLOCK_ID = COption::GetOptionInt( $sModuleId, 'RK_EXCHANGE_CATALOG_PICKUP_IBLOCK_ID');
	$RK_EXCHANGE_CATALOG_UNITS_IBLOCK_ID = COption::GetOptionInt( $sModuleId, 'RK_EXCHANGE_CATALOG_UNITS_IBLOCK_ID');
	$RK_EXCHANGE_CATALOG_MENU_IBLOCK_ID = COption::GetOptionInt( $sModuleId, 'RK_EXCHANGE_CATALOG_MENU_IBLOCK_ID');

	// b2b documents
	$RK_EXCHANGE_B2B_DOCUMENTS_AGREEMENTS_IBLOCK_ID = COption::GetOptionInt( $sModuleId, 'RK_EXCHANGE_B2B_DOCUMENTS_AGREEMENTS_IBLOCK_ID');

	$ib = new CIBlock;
	$oUserTypeEntity = new CUserTypeEntity();
	
	// получим коды сайтов
	$arSites = array();
	$rsSites = CSite::GetList($by="sort", $order="desc", Array());
	while ($arSite = $rsSites->Fetch())
		$arSites[] = $arSite["LID"];
	
	/*
	 * Процесс добавления
	 */
	
	// ИБ Акции
	if(empty($RK_EXCHANGE_ACTIONS_IBLOCK_ID))
	{
		$arFields = Array(
			"NAME" => GetMessage("RK_EXCHANGE_ADD_IB_ACTIONS_NAME"),
			"CODE" => "actions_rk",
			"SECTION_PAGE_URL" => "/special/",
			"DETAIL_PAGE_URL" => "/special/",
			"IBLOCK_TYPE_ID" => $type_iblock,
			"SITE_ID" => $arSites,
			"GROUP_ID" => Array("2"=>"R"),
		);
		// если создали инфоблок, можем создать ему свойства
		if ($ib_ID = AddIblock($arFields)){
			
			COption::SetOptionInt( $sModuleId, 'RK_EXCHANGE_ACTIONS_IBLOCK_ID', $ib_ID);
			
			$arFieldsProps = Array();
			$arFieldsProps[] = Array(
				"NAME" => "Баннер для главной", "CODE" => "MAIN_BANNER", "IBLOCK_ID" => $ib_ID, "PROPERTY_TYPE" => "F",
			);
			$arFieldsProps[] = Array(
				"NAME" => "Показывать баннер на главной", "CODE" => "SHOW_IN_MAIN", "IBLOCK_ID" => $ib_ID, "PROPERTY_TYPE" => "N", "USER_TYPE" => "SASDCheckboxNum"
			);
			$arFieldsProps[] = Array(
				"NAME" => "Картинка для товара", "CODE" => "PIC_PRODUCT", "IBLOCK_ID" => $ib_ID, "PROPERTY_TYPE" => "F",
			);
			$arFieldsProps[] = Array(
				"NAME" => "География: кусты", "CODE" => "geo_networks", "IBLOCK_ID" => $ib_ID, "PROPERTY_TYPE" => "S", "USER_TYPE" => "ElementXmlID", "MULTIPLE" => "Y"
			);
			$arFieldsProps[] = Array(
				"NAME" => "Товары по акции", "CODE" => "GOODS_XML", "IBLOCK_ID" => $ib_ID, "PROPERTY_TYPE" => "S", "USER_TYPE" => "ElementXmlID", "MULTIPLE" => "Y"
			);
			$arFieldsProps[] = Array(
				"NAME" => "На все товары", "CODE" => "ALL_GOODS", "IBLOCK_ID" => $ib_ID, "PROPERTY_TYPE" => "S",
			);
			$arFieldsProps[] = Array(
				"NAME" => "Сортировка в слайдере на главной", "CODE" => "MAIN_BANNER_SORT", "IBLOCK_ID" => $ib_ID, "PROPERTY_TYPE" => "N",
			);
			$arFieldsProps[] = Array(
				"NAME" => "Сортировка на странице товара", "CODE" => "GOODS_PAGE_SORT", "IBLOCK_ID" => $ib_ID, "PROPERTY_TYPE" => "N",
			);
			
			$actionsProps = AddProps($arFieldsProps, "CODE");
			// теперь установим свойства
			foreach($actionsProps as $code => $idProp)
			{
				$optionName = 'RK_EXCHANGE_ACTIONS_PROP_'.strtoupper($code);
				COption::SetOptionString( $sModuleId, $optionName, $code);
			}			
			
			echo '<p class="status-ok">'.GetMessage("RK_EXCHANGE_ADD_IB_ADDED", array("#CODE#" => "actions_rk")).'</p>';
		} else {
			echo '<p class="status-error">'.GetMessage("RK_EXCHANGE_ADD_IB_HAS_IB", array("#CODE#" => "actions_rk")).'</p>';
		}
	}
	else
		echo '<p>'.GetMessage("RK_EXCHANGE_ADD_IB_HAS_MODULE", array("#CODE#" => "actions_rk")).'</p>';
	
	
	/////////////////////////////////////////////////////////////////
	// ИБ Глобус
	if(empty($RK_EXCHANGE_MAIN_GLOBUS_IBLOCK_ID))
	{
		$arFields = Array(
		  "NAME" => GetMessage("RK_EXCHANGE_ADD_IB_GLOBUS_NAME"),
		  "CODE" => "geo_rk",
		  "IBLOCK_TYPE_ID" => $type_iblock,
		  "SITE_ID" => $arSites,
		  "GROUP_ID" => Array("2"=>"R"),
		  "VERSION" => 2,
		  );
		// если создали инфоблок, можем создать ему свойства
		if ($ib_ID = AddIblock($arFields)){
		
			COption::SetOptionInt( $sModuleId, 'RK_EXCHANGE_MAIN_GLOBUS_IBLOCK_ID', $ib_ID);
			
			$arFieldsProps = array();
			
			$arFieldsProps[] = Array(
				"NAME" => "Способы оплаты", "CODE" => "availablePaymentTips", "IBLOCK_ID" => $ib_ID, "MULTIPLE" => "Y"
			);			
			$arFieldsProps[] = Array(
				"NAME" => 'ID "куста"', "CODE" => "network_data_site_id", "IBLOCK_ID" => $ib_ID
			);
			$arFieldsProps[] = Array(
				"NAME" => 'Регион', "CODE" => "region", "IBLOCK_ID" => $ib_ID
			);
			$arFieldsProps[] = Array(
				"NAME" => 'ID торгующей организации', "CODE" => "ORG_ID", "IBLOCK_ID" => $ib_ID
			);
			$arFieldsProps[] = Array(
				"NAME" => 'Наименование торгующей организации', "CODE" => "ORG_Name", "IBLOCK_ID" => $ib_ID
			);
			$arFieldsProps[] = Array(
				"NAME" => 'Наименование полное торгующей организации', "CODE" => "ORG_FullName", "IBLOCK_ID" => $ib_ID
			);
			$arFieldsProps[] = Array(
				"NAME" => 'Юр.адрес торгующей организации', "CODE" => "ORG_UrAdress", "IBLOCK_ID" => $ib_ID
			);
			$arFieldsProps[] = Array(
				"NAME" => 'ИНН торгующей организации', "CODE" => "ORG_INN", "IBLOCK_ID" => $ib_ID
			);
			$arFieldsProps[] = Array(
				"NAME" => 'КПП торгующей организации', "CODE" => "ORG_KPP", "IBLOCK_ID" => $ib_ID
			);
			$arFieldsProps[] = Array(
				"NAME" => 'Расчетный счет торгующей организации', "CODE" => "ORG_Chec_account", "IBLOCK_ID" => $ib_ID
			);
			$arFieldsProps[] = Array(
				"NAME" => 'Наименование банка торгующей организации', "CODE" => "ORG_Bank", "IBLOCK_ID" => $ib_ID
			);
			$arFieldsProps[] = Array(
				"NAME" => 'Корр.счет торгующей организации', "CODE" => "ORG_Bank_Corr_account", "IBLOCK_ID" => $ib_ID
			);
			$arFieldsProps[] = Array(
				"NAME" => 'БИК торгующей организации', "CODE" => "ORG_Bank_BIK", "IBLOCK_ID" => $ib_ID
			);
			$arFieldsProps[] = Array(
				"NAME" => 'Телефон торгующей организации', "CODE" => "ORG_Phone", "IBLOCK_ID" => $ib_ID
			);
			$arFieldsProps[] = Array(
				"NAME" => 'Email торгующей организации', "CODE" => "ORG_Email", "IBLOCK_ID" => $ib_ID
			);
			$arFieldsProps[] = Array(
				"NAME" => 'Филиал', "CODE" => "FLL_ID", "IBLOCK_ID" => $ib_ID
			);
			$arFieldsProps[] = Array(
				"NAME" => 'РРЦ', "CODE" => "RRC_ID", "IBLOCK_ID" => $ib_ID
			);
			$arFieldsProps[] = Array(
				"NAME" => 'ФРЦ', "CODE" => "FRC_ID", "IBLOCK_ID" => $ib_ID
			);
			$arFieldsProps[] = Array(
				"NAME" => 'Доставка по субботам', "CODE" => "DeliverySat", "IBLOCK_ID" => $ib_ID
			);
			$arFieldsProps[] = Array(
				"NAME" => 'Доставка по воскресеньям', "CODE" => "DeliverySun", "IBLOCK_ID" => $ib_ID
			);
			$arFieldsProps[] = Array(
				"NAME" => 'Самовывоз по субботам', "CODE" => "PickupSat", "IBLOCK_ID" => $ib_ID
			);
			$arFieldsProps[] = Array(
				"NAME" => 'Самовывоз по воскресеньям', "CODE" => "PickupSun", "IBLOCK_ID" => $ib_ID
			);
			$arFieldsProps[] = Array(
				"NAME" => 'Предоплата для доставки', "CODE" => "predoplata_required", "IBLOCK_ID" => $ib_ID
			);
			$arFieldsProps[] = Array(
				"NAME" => 'Доставка от осн. филиала', "CODE" => "shipping_1", "IBLOCK_ID" => $ib_ID
			);
			$arFieldsProps[] = Array(
				"NAME" => 'Доставка от осн. филиала (РРЦ)', "CODE" => "shipping_2", "IBLOCK_ID" => $ib_ID
			);
			$arFieldsProps[] = Array(
				"NAME" => 'Доставка от осн. филиала (ФРЦ)', "CODE" => "shipping_3", "IBLOCK_ID" => $ib_ID
			);
			$arFieldsProps[] = Array(
				"NAME" => 'Тарифы доставки, стандарт', "CODE" => "deliveryTariffs_st", "IBLOCK_ID" => $ib_ID, "MULTIPLE" => "Y"
			);
			$arFieldsProps[] = Array(
				"NAME" => 'Тарифы доставки, крупногабарит', "CODE" => "deliveryTariffs_kr", "IBLOCK_ID" => $ib_ID, "MULTIPLE" => "Y"
			);
			$arFieldsProps[] = Array(
				"NAME" => 'Код виртуального склада', "CODE" => "WH_HASH", "IBLOCK_ID" => $ib_ID
			);
			$arFieldsProps[] = Array(
				"NAME" => 'Склад наличия', "CODE" => "WH", "IBLOCK_ID" => $ib_ID
			);
			$arFieldsProps[] = Array(
				"NAME" => 'Склад под заказ', "CODE" => "WH_ORDER", "IBLOCK_ID" => $ib_ID
			);
			$arFieldsProps[] = Array(
				"NAME" => 'Склад активности', "CODE" => "WH_GENERAL", "IBLOCK_ID" => $ib_ID
			);
			$arFieldsProps[] = Array(
				"NAME" => "Комбинация ИСКЛЮЧЕНИЯ из экспорта YML в регионах", "CODE" => "EXPORT_YML_CHECK", "IBLOCK_ID" => $ib_ID
			);			
			$arFieldsProps[] = Array(
				"NAME" => "Комбинация предоплаты в регионах", "CODE" => "PREPAY_CHECK", "IBLOCK_ID" => $ib_ID
			);
			$arFieldsProps[] = Array(
				"NAME" => 'Комбинация "под заказ" в регионах', "CODE" => "PREORDER_CHECK", "IBLOCK_ID" => $ib_ID
			);
			$arFieldsProps[] = Array(
				"NAME" => 'Комбинация невидимости в регионах', "CODE" => "VISIBILITY_CHECK", "IBLOCK_ID" => $ib_ID
			);
			$arFieldsProps[] = Array(
				"NAME" => 'Имя "куста"', "CODE" => "network_name", "IBLOCK_ID" => $ib_ID
			);
			$arFieldsProps[] = Array(
				"NAME" => 'Код "куста"', "CODE" => "network_data_code", "IBLOCK_ID" => $ib_ID
			);
			$arFieldsProps[] = Array(
				"NAME" => 'Код филиала 1', "CODE" => "filial1_code", "IBLOCK_ID" => $ib_ID
			);
			$arFieldsProps[] = Array(
				"NAME" => 'Код филиала 2', "CODE" => "filial2_code", "IBLOCK_ID" => $ib_ID
			);
			$arFieldsProps[] = Array(
				"NAME" => 'Столица региона', "CODE" => "CAPITAL", "IBLOCK_ID" => $ib_ID, "PROPERTY_TYPE" => "N", "USER_TYPE" => "SASDCheckboxNum"
			);
			$arFieldsProps[] = Array(
				"NAME" => 'Время начала работы', "CODE" => "TimeWorkStart", "IBLOCK_ID" => $ib_ID
			);
			$arFieldsProps[] = Array(
				"NAME" => 'Время окончания работы', "CODE" => "TimeWorkEnd", "IBLOCK_ID" => $ib_ID
			);
			
			AddProps($arFieldsProps);
			
			echo '<p class="status-ok">'.GetMessage("RK_EXCHANGE_ADD_IB_ADDED", array("#CODE#" => "geo_rk")).'</p>';
		} else {
			echo '<p class="status-error">'.GetMessage("RK_EXCHANGE_ADD_IB_HAS_IB", array("#CODE#" => "geo_rk")).'</p>';
		}
	}
	else
		echo '<p>'.GetMessage("RK_EXCHANGE_ADD_IB_HAS_MODULE", array("#CODE#" => "geo_rk")).'</p>';
	
	
	/////////////////////////////////////////////////////////////////
	// ИБ Свойства
	if(empty($RK_EXCHANGE_CATALOG_PROPERTIES_IBLOCK_ID))
	{
		$arFields = Array(
		  "NAME" => GetMessage("RK_EXCHANGE_ADD_IB_PROPERTIES_NAME"),
		  "CODE" => "properties_rk",
		  "IBLOCK_TYPE_ID" => $type_iblock,
		  "SITE_ID" => $arSites,
		  "GROUP_ID" => Array("2"=>"R"),
		  "VERSION" => 2,
		  );
		// если создали инфоблок, можем создать ему свойства
		if ($ib_ID = AddIblock($arFields)){
			
			COption::SetOptionInt( $sModuleId, 'RK_EXCHANGE_CATALOG_PROPERTIES_IBLOCK_ID', $ib_ID);
			
			$arFieldsProps = array();
			
			$arFieldsProps[] = Array(
				"NAME" => "Категории Тайлов XML", "CODE" => "TILE_CATS_XML", "IBLOCK_ID" => $ib_ID, "MULTIPLE" => "Y"
			);

			$arFieldsProps[] = Array(
				"NAME" => "Категории Фильтра XML", "CODE" => "FILTER_CATS_XML", "IBLOCK_ID" => $ib_ID, "MULTIPLE" => "Y"
			);

			$arFieldsProps[] = Array(
				"NAME" => "Категории диапазонов XML", "CODE" => "FILTER_N_CATS_XML", "IBLOCK_ID" => $ib_ID, "MULTIPLE" => "Y"
			);
			
			$arFieldsProps[] = Array(
				"NAME" => "Единица измерения", "CODE" => "MEASURE_XML", "IBLOCK_ID" => $ib_ID
			);
			
			AddProps($arFieldsProps);
			
			echo '<p class="status-ok">'.GetMessage("RK_EXCHANGE_ADD_IB_ADDED", array("#CODE#" => "properties_rk")).'</p>';
		} else {
			echo '<p class="status-error">'.GetMessage("RK_EXCHANGE_ADD_IB_HAS_IB", array("#CODE#" => "properties_rk")).'</p>';
		}
	}
	else
		echo '<p>'.GetMessage("RK_EXCHANGE_ADD_IB_HAS_MODULE", array("#CODE#" => "properties_rk")).'</p>';
	
	/////////////////////////////////////////////////////////////////
	// ИБ Группы свойств
	if(empty($RK_EXCHANGE_CATALOG_PROPS_GROUPER_IBLOCK_ID))
	{
		$arFields = Array(
		  "NAME" => GetMessage("RK_EXCHANGE_ADD_IB_PROPS_GROUPER_NAME"),
		  "CODE" => "group_prop_rk",
		  "IBLOCK_TYPE_ID" => $type_iblock,
		  "SITE_ID" => $arSites,
		  "GROUP_ID" => Array("2"=>"R"),
		  "VERSION" => 2,
		  );
		// если создали инфоблок, можем создать ему свойства
		if ($ib_ID = AddIblock($arFields)){
			
			COption::SetOptionInt( $sModuleId, 'RK_EXCHANGE_CATALOG_PROPS_GROUPER_IBLOCK_ID', $ib_ID);
			
			$arFieldsProps = array();
			
			$arFieldsProps[] = Array(
				"NAME" => "Свойства", "CODE" => "PROPS", "IBLOCK_ID" => $ib_ID, "MULTIPLE" => "Y"
			);

			AddProps($arFieldsProps);
			
			echo '<p class="status-ok">'.GetMessage("RK_EXCHANGE_ADD_IB_ADDED", array("#CODE#" => "group_prop_rk")).'</p>';
		} else {
			echo '<p class="status-error">'.GetMessage("RK_EXCHANGE_ADD_IB_HAS_IB", array("#CODE#" => "group_prop_rk")).'</p>';
		}
	}
	else
		echo '<p>'.GetMessage("RK_EXCHANGE_ADD_IB_HAS_MODULE", array("#CODE#" => "group_prop_rk")).'</p>';
	
	/////////////////////////////////////////////////////////////////
	// ИБ Единицы измерения
	if(empty($RK_EXCHANGE_CATALOG_UNITS_IBLOCK_ID))
	{
		$arFields = Array(
		  "NAME" => GetMessage("RK_EXCHANGE_ADD_IB_MEASURE_NAME"),
		  "CODE" => "measure_rk",
		  "IBLOCK_TYPE_ID" => $type_iblock,
		  "SITE_ID" => $arSites,
		  "GROUP_ID" => Array("2"=>"R")
		  );
		// если создали инфоблок, можем создать ему свойства
		if ($ib_ID = AddIblock($arFields)){
			
			COption::SetOptionInt( $sModuleId, 'RK_EXCHANGE_CATALOG_UNITS_IBLOCK_ID', $ib_ID);
			
			$arFieldsProps = array();
			
			$arFieldsProps[] = Array(
				"NAME" => "Код НСИ", "CODE" => "NSI_CODE", "IBLOCK_ID" => $ib_ID
			);
			$arFieldsProps[] = Array(
				"NAME" => "Сокращение", "CODE" => "SHORT_NAME", "IBLOCK_ID" => $ib_ID
			);
			$arFieldsProps[] = Array(
				"NAME" => "Международное сокращение", "CODE" => "INTERNATIONAL_SHORTNAME", "IBLOCK_ID" => $ib_ID, "MULTIPLE" => "Y"
			);

			AddProps($arFieldsProps);
			
			echo '<p class="status-ok">'.GetMessage("RK_EXCHANGE_ADD_IB_ADDED", array("#CODE#" => "measure_rk")).'</p>';
		} else {
			echo '<p class="status-error">'.GetMessage("RK_EXCHANGE_ADD_IB_HAS_IB", array("#CODE#" => "measure_rk")).'</p>';
		}
	}
	else
		echo '<p>'.GetMessage("RK_EXCHANGE_ADD_IB_HAS_MODULE", array("#CODE#" => "measure_rk")).'</p>';
	
	/////////////////////////////////////////////////////////////////
	// ИБ Каталога
	if(empty($RK_EXCHANGE_CATALOG_IBLOCK_ID))
	{
		$arFields = Array(
		  "NAME" => GetMessage("RK_EXCHANGE_ADD_IB_CATALOG_NAME"),
		  "CODE" => "catalog_rk",
		  "SECTION_PAGE_URL" => "/#SECTION_CODE_PATH#/",
		  "DETAIL_PAGE_URL" => "/product-#CODE#/",
		  "IBLOCK_TYPE_ID" => $type_iblock,
		  "SITE_ID" => $arSites,
		  "GROUP_ID" => Array("2"=>"R"),
		  "VERSION" => 2,
		  );
		// если создали инфоблок, можем создать ему свойства
		if ($ib_ID = AddIblock($arFields))
		{
			// запишем для зависимостей с каталогом
			$RK_EXCHANGE_CATALOG_IBLOCK_ID = $ib_ID;
			
			COption::SetOptionInt( $sModuleId, 'RK_EXCHANGE_CATALOG_IBLOCK_ID', $ib_ID);
			
			$arFieldsProps = array();
			
			$arFieldsProps[] = Array(
				"NAME" => "Комбинация ИСКЛЮЧЕНИЯ из экспорта YML в регионах", "CODE" => "EXPORT_YML_CHECK", "IBLOCK_ID" => $ib_ID, "MULTIPLE" => "Y"
			);			
			$arFieldsProps[] = Array(
				"NAME" => "Комбинация предоплаты в регионах", "CODE" => "PREPAY_CHECK", "IBLOCK_ID" => $ib_ID, "MULTIPLE" => "Y"
			);
			$arFieldsProps[] = Array(
				"NAME" => 'Комбинация "под заказ" в регионах', "CODE" => "PREORDER_CHECK", "IBLOCK_ID" => $ib_ID, "MULTIPLE" => "Y"
			);
			$arFieldsProps[] = Array(
				"NAME" => 'Комбинация невидимости в регионах', "CODE" => "VISIBILITY_CHECK", "IBLOCK_ID" => $ib_ID, "MULTIPLE" => "Y"
			);
			$arFieldsProps[] = Array(
				"NAME" => 'Новинка', "CODE" => "IS_NEW", "IBLOCK_ID" => $ib_ID
			);
			$arFieldsProps[] = Array(
				"NAME" => 'Полное Наименование', "CODE" => "FULL_NAME", "IBLOCK_ID" => $ib_ID
			);
			$arFieldsProps[] = Array(
				"NAME" => 'Наименование', "CODE" => "NAME", "IBLOCK_ID" => $ib_ID
			);
			$arFieldsProps[] = Array(
				"NAME" => 'Код', "CODE" => "CODE", "IBLOCK_ID" => $ib_ID
			);
			$arFieldsProps[] = Array(
				"NAME" => 'Артикул', "CODE" => "ARTIKUL", "IBLOCK_ID" => $ib_ID
			);
			$arFieldsProps[] = Array(
				"NAME" => 'Группа', "CODE" => "GROUP", "IBLOCK_ID" => $ib_ID
			);
			$arFieldsProps[] = Array(
				"NAME" => 'Марка', "CODE" => "EL_BRAND", "IBLOCK_ID" => $ib_ID
			);
			// ПРОВЕРИТЬ!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
			$arFieldsProps[] = Array(
				"NAME" => 'Крупногабаритный', "CODE" => "IS_BIG_SIZE", "IBLOCK_ID" => $ib_ID, "PROPERTY_TYPE" => "N", "USER_TYPE" => "SASDCheckboxNum"
				//"VALUES" => array(),
			);
			$arFieldsProps[] = Array(
				"NAME" => 'Аналоги', "CODE" => "ANALOGS", "IBLOCK_ID" => $ib_ID, "PROPERTY_TYPE" => "E", "LINK_IBLOCK_ID" => $ib_ID, "MULTIPLE" => "Y",
			);
			$arFieldsProps[] = Array(
				"NAME" => 'Сопутствующие товары', "CODE" => "RELATED_PRODUCTS", "IBLOCK_ID" => $ib_ID, "PROPERTY_TYPE" => "E", "LINK_IBLOCK_ID" => $ib_ID, "MULTIPLE" => "Y",
			);
			$arFieldsProps[] = Array(
				"NAME" => 'Товар участвует в выгрузке НСИ', "CODE" => "IMPORT_NSI_ACTIVE", "IBLOCK_ID" => $ib_ID, "PROPERTY_TYPE" => "N"
			);
			
			
			// добавим свойства которые не приходят в exchange_properties
			AddProps($arFieldsProps);
			
			/**
			 * Добавление пользовательского свойства для разделов
			 */
			// Код
			
			$aFieldsCode    = array(
				'ENTITY_ID'         => 'IBLOCK_'.$ib_ID.'_SECTION',
				'FIELD_NAME'        => 'UF_CAT_CODE',
				'USER_TYPE_ID'      => 'string',
				'MULTIPLE'          => 'N',
				'MANDATORY'         => 'N', /* Обязательное или нет свойство */
				'EDIT_FORM_LABEL'   => array(
					'ru'    => 'Код',
					'en'    => 'Code',
				),
				'LIST_COLUMN_LABEL' => array(
					'ru'    => 'Код',
					'en'    => 'Code',
				),
			);
			$iUserFieldCodeId = $oUserTypeEntity->Add($aFieldsCode);
			
			$aFieldsCodeSort    = array(
				'ENTITY_ID'         => 'IBLOCK_'.$ib_ID.'_SECTION',
				'FIELD_NAME'        => 'UF_ORDER_PARAMETERS',
				'XML_ID'            => 'ORDER_PARAMETERS',
				'USER_TYPE_ID'      => 'integer',
				'MULTIPLE'          => 'Y',
				'MANDATORY'         => 'N', /* Обязательное или нет свойство */
				'EDIT_FORM_LABEL'   => array(
					'ru'    => 'Порядок вывода свойств',
					'en'    => 'Sort props',
				),
				'LIST_COLUMN_LABEL' => array(
					'ru'    => 'Порядок вывода свойств',
					'en'    => 'Sort props',
				),
			);
			$iUserFieldCodeId = $oUserTypeEntity->Add($aFieldsCodeSort);

			echo '<p class="status-ok">'.GetMessage("RK_EXCHANGE_ADD_IB_ADDED", array("#CODE#" => "catalog_rk")).'</p>';
		} else {
			echo '<p class="status-error">'.GetMessage("RK_EXCHANGE_ADD_IB_HAS_IB", array("#CODE#" => "catalog_rk")).'</p>';
		}
	}
	else
		echo '<p>'.GetMessage("RK_EXCHANGE_ADD_IB_HAS_MODULE", array("#CODE#" => "catalog_rk")).'</p>';
	
	/////////////////////////////////////////////////////////////////
	// ИБ Бренды
	if(empty($RK_EXCHANGE_CATALOG_BRANDS_IBLOCK_ID))
	{
		$arFields = Array(
		  "NAME" => GetMessage("RK_EXCHANGE_ADD_IB_BRANDS_NAME"),
		  "CODE" => "brands_rk",
		  "LIST_PAGE_URL" => "/catalog/brands/",
		  "DETAIL_PAGE_URL" => "/catalog/brands/#CODE#/",
		  "IBLOCK_TYPE_ID" => $type_iblock,
		  "SITE_ID" => $arSites,
		  "GROUP_ID" => Array("2"=>"R"),
		  "VERSION" => 2,
		  );
		// если создали инфоблок, можем создать ему свойства
		if ($ib_ID = AddIblock($arFields)){
			COption::SetOptionInt( $sModuleId, 'RK_EXCHANGE_CATALOG_BRANDS_IBLOCK_ID', $ib_ID);
			echo '<p class="status-ok">'.GetMessage("RK_EXCHANGE_ADD_IB_ADDED", array("#CODE#" => "brands_rk")).'</p>';
		} else {
			echo '<p class="status-error">'.GetMessage("RK_EXCHANGE_ADD_IB_HAS_IB", array("#CODE#" => "brands_rk")).'</p>';
		}
	}
	else
		echo '<p>'.GetMessage("RK_EXCHANGE_ADD_IB_HAS_MODULE", array("#CODE#" => "brands_rk")).'</p>';
	
	/////////////////////////////////////////////////////////////////
	// ИБ Hide_menu
	if(empty($RK_EXCHANGE_CATALOG_MENU_IBLOCK_ID) && !empty($RK_EXCHANGE_CATALOG_IBLOCK_ID))
	{
		$arFields = Array(
		  "NAME" => GetMessage("RK_EXCHANGE_ADD_IB_HIDE_MENU_NAME"),
		  "CODE" => "top_catalog_menu_rk",
		  "IBLOCK_TYPE_ID" => $type_iblock,
		  "SITE_ID" => $arSites,
		  "GROUP_ID" => Array("2"=>"R")
		  );
		// если создали инфоблок, можем создать ему свойства
		if ($ib_ID = AddIblock($arFields)){
			
			COption::SetOptionInt( $sModuleId, 'RK_EXCHANGE_CATALOG_MENU_IBLOCK_ID', $ib_ID);
			
			/**
			 * Добавление пользовательских свойств для разделов
			 */
			// Реальная категория
			$aFieldsRealCat    = array(
				'ENTITY_ID'         => 'IBLOCK_'.$ib_ID.'_SECTION',
				'FIELD_NAME'        => 'UF_REAL_CAT_LINK',
				'USER_TYPE_ID'      => 'iblock_section',
				'MULTIPLE'          => 'N',
				'MANDATORY'         => 'N', /* Обязательное или нет свойство */
				'SETTINGS' => array(
					'IBLOCK_TYPE_ID' => $type_iblock,
					'IBLOCK_ID' => $RK_EXCHANGE_CATALOG_IBLOCK_ID,
					'DISPLAY' => 'LIST',
				),
				'EDIT_FORM_LABEL'   => array(
					'ru'    => 'Реальная категория',
					'en'    => 'REAL_CATEGORY',
				),
				'LIST_COLUMN_LABEL' => array(
					'ru'    => 'Реальная категория',
					'en'    => 'REAL_CATEGORY',
				),
			);
			$iUserFieldRealCatId = $oUserTypeEntity->Add($aFieldsRealCat);
			
			// Реальная категория
			$aFieldsUnReg    = array(
				'ENTITY_ID'         => 'IBLOCK_'.$ib_ID.'_SECTION',
				'FIELD_NAME'        => 'UF_UNACTIVE_REGION',
				'USER_TYPE_ID'      => 'string',
				'MULTIPLE'          => 'Y',
				'MANDATORY'         => 'N', /* Обязательное или нет свойство */
				'EDIT_FORM_LABEL'   => array(
					'ru'    => 'Неактивен в категориях',
					'en'    => 'UNACTIVE_REGION',
				),
				'LIST_COLUMN_LABEL' => array(
					'ru'    => 'Неактивен в категориях',
					'en'    => 'UNACTIVE_REGION',
				),
			);
			
			$iUserFieldUnRegId = $oUserTypeEntity->Add($aFieldsUnReg);
			
			echo '<p class="status-ok">'.GetMessage("RK_EXCHANGE_ADD_IB_ADDED", array("#CODE#" => "top_catalog_menu_rk")).'</p>';
		} else {
			echo '<p class="status-error">'.GetMessage("RK_EXCHANGE_ADD_IB_HAS_IB", array("#CODE#" => "top_catalog_menu_rk")).'</p>';
		}
	}
	else
		echo '<p>'.GetMessage("RK_EXCHANGE_ADD_IB_HAS_MODULE", array("#CODE#" => "top_catalog_menu_rk")).'</p>';
	
	/////////////////////////////////////////////////////////////////
	// ИБ Склады
	if(empty($RK_EXCHANGE_CATALOG_PICKUP_IBLOCK_ID))
	{
		$arFields = Array(
		  "NAME" => GetMessage("RK_EXCHANGE_ADD_IB_PICKUP_NAME"),
		  "CODE" => "warehouses_rk",
		  "IBLOCK_TYPE_ID" => $type_iblock,
		  "SITE_ID" => $arSites,
		  "GROUP_ID" => Array("2"=>"R")
		  );
		// если создали инфоблок, можем создать ему свойства
		if ($ib_ID = AddIblock($arFields)){
			COption::SetOptionInt( $sModuleId, 'RK_EXCHANGE_CATALOG_PICKUP_IBLOCK_ID', $ib_ID);
			
			$arFieldsProps = Array();
			
			$arFieldsProps[] = Array(
				"NAME" => 'Полное наименование', "CODE" => "FullName", "IBLOCK_ID" => $ib_ID
			);
			
			$arFieldsProps[] = Array(
				"NAME" => 'Точка на карте', "CODE" => "place", "IBLOCK_ID" => $ib_ID, "PROPERTY_TYPE" => "S", "USER_TYPE" => 'map_google'
			);
			
			$arFieldsProps[] = Array(
				"NAME" => 'Адрес', "CODE" => "PickupPoint_Adress", "IBLOCK_ID" => $ib_ID
			);
			
			$arFieldsProps[] = Array(
				"NAME" => 'Координаты', "CODE" => "PickupPoint_Coordinates", "IBLOCK_ID" => $ib_ID
			);
			
			$arFieldsProps[] = Array(
				"NAME" => 'Координаты автобусной остановки', "CODE" => "PickupPoint_BusStopsCoordinates", "IBLOCK_ID" => $ib_ID
			);
			
			$arFieldsProps[] = Array(
				"NAME" => 'Привязка к городу глобуса', "CODE" => "PickupPoint_GlobusRK_ID", "IBLOCK_ID" => $ib_ID
			);
			
			$arFieldsProps[] = Array(
				"NAME" => 'Флаг сдвига самовывоза', "CODE" => "ShiftPickup", "IBLOCK_ID" => $ib_ID
			);
			
			$arFieldsProps[] = Array(
				"NAME" => 'Сдвиг самовывоза Филиал', "CODE" => "ShiftPickupFLL", "IBLOCK_ID" => $ib_ID
			);
			
			$arFieldsProps[] = Array(
				"NAME" => 'Сдвиг самовывоза РРЦ', "CODE" => "ShiftPickupRRC", "IBLOCK_ID" => $ib_ID
			);
			
			$arFieldsProps[] = Array(
				"NAME" => 'Сдвиг самовывоза ФРЦ', "CODE" => "ShiftPickupFRC", "IBLOCK_ID" => $ib_ID
			);
			
			$arFieldsProps[] = Array(
				"NAME" => 'ВремяПриемаЗаказов01', "CODE" => "TimeOrders01", "IBLOCK_ID" => $ib_ID
			);
			
			$arFieldsProps[] = Array(
				"NAME" => 'ВремяПриемаЗаказов02', "CODE" => "TimeOrders02", "IBLOCK_ID" => $ib_ID
			);
			
			$arFieldsProps[] = Array(
				"NAME" => 'ВремяПриемаЗаказов03', "CODE" => "TimeOrders03", "IBLOCK_ID" => $ib_ID
			);
			
			AddProps($arFieldsProps);
			
			echo '<p class="status-ok">'.GetMessage("RK_EXCHANGE_ADD_IB_ADDED", array("#CODE#" => "warehouses_rk")).'</p>';
		} else {
			echo '<p class="status-error">'.GetMessage("RK_EXCHANGE_ADD_IB_HAS_IB", array("#CODE#" => "warehouses_rk")).'</p>';
		}
	}
	else
	{
		echo '<p>'.GetMessage("RK_EXCHANGE_ADD_IB_HAS_MODULE", array("#CODE#" => "warehouses_rk")).'</p>';
	}

	/////////////////////////////////////////////////////////////////
	// ИБ Документы для b2b
	if(empty($RK_EXCHANGE_B2B_DOCUMENTS_AGREEMENTS_IBLOCK_ID))
	{
		$arFields = Array(
		  "NAME" => GetMessage("RK_EXCHANGE_ADD_IB_B2B_DOCUMENTS_AGREEMENTS_NAME"),
		  "CODE" => "b2b_agreements",
		  "IBLOCK_TYPE_ID" => $type_iblock,
		  "SITE_ID" => $arSites,
		  "GROUP_ID" => Array("2"=>"R")
		  );

		if ($ib_ID = AddIblock($arFields))
		{
			COption::SetOptionInt( $sModuleId, 'RK_EXCHANGE_B2B_DOCUMENTS_AGREEMENTS_IBLOCK_ID', $ib_ID);

			$arFieldsProps = Array();

			$arFieldsProps[] = Array(
				"NAME" => 'ТипДоговора', "CODE" => "TYPE", "IBLOCK_ID" => $ib_ID, "PROPERTY_TYPE" => "S"
			);

			$arFieldsProps[] = Array(
				"NAME" => 'ИдентфикаторПартнера', "ID_PARTNER" => "TYPE", "IBLOCK_ID" => $ib_ID, "PROPERTY_TYPE" => "S"
			);

			$arFieldsProps[] = Array(
				"NAME" => 'ИдентфикаторКонтрагента', "ID_COUNTERPARTY" => "TYPE", "IBLOCK_ID" => $ib_ID, "PROPERTY_TYPE" => "S"
			);

			$arFieldsProps[] = Array(
				"NAME" => 'ИдентфикаторОрганизации', "ID_ORG" => "TYPE", "IBLOCK_ID" => $ib_ID, "PROPERTY_TYPE" => "S"
			);

			$arFieldsProps[] = Array(
				"NAME" => 'СуммаКредитногоЛимита', "CREDIT_LIMIT_AMOUNT" => "TYPE", "IBLOCK_ID" => $ib_ID, "PROPERTY_TYPE" => "N"
			);

			AddProps($arFieldsProps);

			echo '<p class="status-ok">'.GetMessage("RK_EXCHANGE_ADD_IB_ADDED", array("#CODE#" => $arFields['CODE'])).'</p>';
		}
		else
		{
			echo '<p class="status-error">'.GetMessage("RK_EXCHANGE_ADD_IB_HAS_IB", array("#CODE#" => $arFields['CODE'])).'</p>';
		}
	}
	else
	{
		echo '<p>'.GetMessage("RK_EXCHANGE_ADD_IB_HAS_MODULE", array("#CODE#" => $arFields['CODE'])).'</p>';
	}
	
}