• Модуль: rest
  • Путь к файлу: ~/bitrix/modules/rest/lib/configuration/appconfiguration.php
  • Класс: BitrixRestConfigurationAppConfiguration
  • Вызов: AppConfiguration::clearApp
static function clearApp($option)
{
	$result = [
		'NEXT' => false
	];
	if ($option['CLEAR_FULL'])
	{
		$dbRes = AppTable::getList(
			[
				'order' => [
					'ID' => 'ASC'
				],
				'filter' => [
					'=ACTIVE' => AppTable::ACTIVE,
					"!=STATUS" => AppTable::STATUS_LOCAL,
					'>ID' => $option['NEXT']
				],
				'limit' => 5
			]
		);

		while ($appInfo = $dbRes->Fetch())
		{
			$result['NEXT'] = $appInfo['ID'];

			$currentApp = Helper::getInstance()->getContextAction($appInfo['ID']);
			if (!empty($option['CONTEXT']) && $option['CONTEXT'] === $currentApp)
			{
				continue;
			}

			$checkResult = AppTable::checkUninstallAvailability($appInfo['ID']);
			if ($checkResult->isEmpty())
			{
				AppTable::uninstall($appInfo['ID']);
				$appFields = [
					'ACTIVE' => 'N',
					'INSTALLED' => 'N',
				];
				AppTable::update($appInfo['ID'], $appFields);
				AppLogTable::log($appInfo['ID'], AppLogTable::ACTION_TYPE_UNINSTALL);
			}
		}
	}

	return $result;
}