• Модуль: disk
  • Путь к файлу: ~/bitrix/modules/disk/lib/copy/integration/group.php
  • Класс: BitrixDiskCopyIntegrationGroup
  • Вызов: Group::copy
public function copy($groupId, $copiedGroupId)
{
	$this->addToQueue($copiedGroupId);

	$storage = Driver::getInstance()->getStorageByGroupId($groupId);
	$targetStorage = Driver::getInstance()->getStorageByGroupId($copiedGroupId);

	if ($storage && $targetStorage)
	{
		if ($storage->isEnabledShowExtendedRights())
		{
			$targetStorage->enableShowExtendedRights();
		}

		$rootFolder = $storage->getRootObject();
		$targetRootFolder = $targetStorage->getRootObject();

		$mapFolderIds = [];
		$this->copyFolders(
			$groupId,
			$copiedGroupId,
			$rootFolder,
			$targetRootFolder,
			$mapFolderIds
		);

		if (!in_array("onlyFolders", $this->features))
		{
			Option::set(self::MODULE_ID, self::CHECKER_OPTION.$copiedGroupId, "Y");

			$dataToCopy = [
				"groupId" => $groupId,
				"copiedGroupId" => $copiedGroupId,
				"executiveUserId" => $this->executiveUserId,
				"mapFolderIds" => $mapFolderIds
			];
			Option::set(
				self::MODULE_ID,
				self::STEPPER_OPTION . $copiedGroupId,
				serialize($dataToCopy)
			);

			$agent = CAgent::getList([], [
				"MODULE_ID" => self::MODULE_ID,
				"NAME" => GroupStepper::class."::execAgent();"
			])->fetch();
			if (!$agent)
			{
				GroupStepper::bind(1);
			}
		}
	}
}