• Модуль: iblock
  • Путь к файлу: ~/bitrix/modules/iblock/lib/Controller/Property/Directory/Action/SaveSettingsAction.php
  • Класс: BitrixIblockControllerPropertyDirectoryActionSaveSettingsAction
  • Вызов: SaveSettingsAction::updatePropertyTable
private function updatePropertyTable(int $propertyId, string $tableName, bool $isNewHighload): Result
{
	$result = new Result();

	$ibp = new CIBlockProperty();
	$oldFields = $ibp::GetByID($propertyId)->Fetch();
	if ($oldFields)
	{
		$settings = (array)($oldFields['USER_TYPE_SETTINGS'] ?? []);

		$isChangeTableName = isset($settings['TABLE_NAME']) && $settings['TABLE_NAME'] !== $tableName;
		if ($isNewHighload || $isChangeTableName)
		{
			$settings['TABLE_NAME'] = $tableName;

			$ibp->Update($propertyId, [
				'USER_TYPE_SETTINGS' => serialize($settings),
			]);
			if ($ibp->LAST_ERROR)
			{
				$result->addError(
					new Error($ibp->LAST_ERROR)
				);
			}
		}
	}

	return $result;
}