- Модуль: iblock
- Путь к файлу: ~/bitrix/modules/iblock/lib/grid/panel/ui/actions/item/elementgroup/clearcountergroupchild.php
- Класс: BitrixIblockGridPanelUIActionsItemElementGroupClearCounterGroupChild
- Вызов: ClearCounterGroupChild::processClearCounterElements
private function processClearCounterElements(bool $isSelectedAllRows, array $ids): Result
{
$result = new Result();
$entity = new CIBlockElement();
$filter = [
'IBLOCK_ID' => $this->getIblockId(),
];
if (!$isSelectedAllRows)
{
$filter['ID'] = $ids;
}
$rows = CIBlockElement::GetList(
[],
$filter + ['CHECK_PERMISSIONS' => 'N'],
false,
false,
[
'ID',
]
);
while ($row = $rows->Fetch())
{
$id = (int)$row['ID'];
if (!$this->getIblockRightsChecker()->canEditElement($id))
{
$message = Loc::getMessage('IBLOCK_GRID_PANEL_ELEMENT_ACTION_PANEL_ERROR_ACCESS_DENIED', [
'#ID#' => $id,
]);
$result->addError(
new Error($message)
);
continue;
}
$fields = [
'SHOW_COUNTER' => false,
'SHOW_COUNTER_START' => false,
];
$updateResult = $entity->Update($id, $fields);
if (!$updateResult && $entity->LAST_ERROR)
{
$result->addError(
new Error($entity->LAST_ERROR)
);
}
}
return $result;
}