37 if (empty($queueOption))
43 $queueOption[
"errorOffset"] = (int)($queueOption[
"errorOffset"] ?? 0);
45 $iblockId = (int)($queueOption[
"iblockId"] ?? 0);
46 $copiedIblockId = (int)($queueOption[
"copiedIblockId"] ?? 0);
47 $errorOffset = $queueOption[
"errorOffset"];
48 $queueOption[
"errorOffset"] ??= 0;
51 $offset = $this->getOffset($copiedIblockId) + $errorOffset;
53 $enumRatio = ($queueOption[
"enumRatio"] ?? []);
54 if (!is_array($enumRatio))
58 $sectionsRatio = ($queueOption[
"sectionsRatio"] ?? []);
59 if (!is_array($sectionsRatio))
63 $mapIdsCopiedElements = ($queueOption[
"mapIdsCopiedElements"] ?? []);
64 if (!is_array($mapIdsCopiedElements))
66 $mapIdsCopiedElements = [];
68 $fieldRatio = ($queueOption[
'fieldRatio'] ?? []);
69 if (!is_array($fieldRatio))
76 list($elementIds, $selectedRowsCount) = $this->getElementIds(
$iblockId, $limit, $offset);
80 if (empty($fieldRatio))
82 $fieldRatio = $this->compileFieldRatio(
$iblockId, $copiedIblockId);
83 if (!empty($fieldRatio))
85 $queueOption[
'fieldRatio'] = $fieldRatio;
90 'targetIblockId' => $copiedIblockId,
91 'enumRatio' => $enumRatio,
92 'sectionsRatio' => $sectionsRatio,
93 'fieldRatio' => $fieldRatio,
98 $result = $elementCopier->copy($containerCollection);
101 $queueOption[
"errorOffset"] += $this->
getErrorOffset($elementCopier);
104 $mapIdsCopiedElements = $elementCopier->getMapIdsCopiedEntity() + $mapIdsCopiedElements;
105 $queueOption[
"mapIdsCopiedElements"] = $mapIdsCopiedElements;
108 if ($selectedRowsCount < $limit)
117 $option[
"steps"] = $offset;
129 catch (\Exception $exception)